Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetAddonsConfig

func GetAddonsConfig(addons []string) *container.AddonsConfig

    GetAddonsConfig gets AddonsConfig from a slice of addon names, contains the logic of converting string argument to typed AddonsConfig, for example `IstioConfig`. Currently supports Istio, HorizontalPodAutoscaling, HttpLoadBalancing and CloudRun.

    func GetClusterLocation

    func GetClusterLocation(region, zone string) string

      GetClusterLocation returns the location used in GKE operations, given the region and zone.

      func NewCreateClusterRequest

      func NewCreateClusterRequest(request *Request) (*container.CreateClusterRequest, error)

        NewCreateClusterRequest returns a new CreateClusterRequest that can be used in gcloud SDK.

        func RegionZoneFromLoc

        func RegionZoneFromLoc(location string) (string, string)

          RegionZoneFromLoc returns the region and the zone, given the location.

          func ServiceEndpoint

          func ServiceEndpoint(environment string) (string, error)

            ServiceEndpoint returns the container service endpoint for the given environment.

            func Wait

            func Wait(gsc SDKOperations, project, region, zone, opName string, wait time.Duration) error

              Wait depends on unique opName(operation ID created by cloud), and waits until it's done

              Types

              type Request

              type Request struct {
              	// Project: name of the gcloud project for the cluster
              	Project string
              
              	// GKEVersion: GKE version of the cluster, default to be latest if not provided
              	GKEVersion string
              
              	// ReleaseChannel: GKE release channel. Only one of GKEVersion or ReleaseChannel can be
              	// specified at a time.
              	// https://cloud.google.com/kubernetes-engine/docs/concepts/release-channels
              	ReleaseChannel string
              
              	// ClusterName: name of the cluster
              	ClusterName string
              
              	// MinNodes: the minimum number of nodes of the cluster
              	MinNodes int64
              
              	// MaxNodes: the maximum number of nodes of the cluster
              	MaxNodes int64
              
              	// NodeType: node type of the cluster, e.g. e2-standard-4, e2-standard-8
              	NodeType string
              
              	// Region: region of the cluster, e.g. us-west1, us-central1
              	Region string
              
              	// Zone: default is none, must be provided together with region
              	Zone string
              
              	// Addons: cluster addons to be added to cluster, such as istio
              	Addons []string
              
              	// EnableWorkloadIdentity: whether to enable Workload Identity for this cluster
              	EnableWorkloadIdentity bool
              
              	// ServiceAccount: service account that will be used on this cluster
              	ServiceAccount string
              }

                Request contains all settings collected for cluster creation

                func (*Request) DeepCopy

                func (r *Request) DeepCopy() *Request

                  DeepCopy will make a deepcopy of the request struct.

                  type SDKOperations

                  type SDKOperations interface {
                  	CreateCluster(project, region, zone string, req *container.CreateClusterRequest) error
                  	CreateClusterAsync(project, region, zone string, req *container.CreateClusterRequest) (*container.Operation, error)
                  	DeleteCluster(project, region, zone, clusterName string) error
                  	DeleteClusterAsync(project, region, zone, clusterName string) (*container.Operation, error)
                  	GetCluster(project, region, zone, clusterName string) (*container.Cluster, error)
                  	GetOperation(project, region, zone, opName string) (*container.Operation, error)
                  	ListClustersInProject(project string) ([]*container.Cluster, error)
                  }

                    SDKOperations wraps GKE SDK related functions

                    func NewSDKClient

                    func NewSDKClient(opts ...option.ClientOption) (SDKOperations, error)

                      NewSDKClient returns an SDKClient that implements SDKOperations

                      Directories

                      Path Synopsis