eks

package
v1.14.1-0...-399dd2d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 4, 2018 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package eks provides the client and types for making API requests to Amazon Elastic Container Service for Kubernetes.

Amazon Elastic Container Service for Kubernetes (Amazon EKS) is a managed service that makes it easy for you to run Kubernetes on AWS without needing to stand up or maintain your own Kubernetes control plane. Kubernetes is an open-source system for automating the deployment, scaling, and management of containerized applications.

Amazon EKS runs three Kubernetes control plane instances across three Availability Zones to ensure high availability. Amazon EKS automatically detects and replaces unhealthy control plane instances, and it provides automated version upgrades and patching for them.

Amazon EKS is also integrated with many AWS services to provide scalability and security for your applications, including the following:

  • Elastic Load Balancing for load distribution

  • IAM for authentication

  • Amazon VPC for isolation

Amazon EKS runs up to date versions of the open-source Kubernetes software, so you can use all the existing plugins and tooling from the Kubernetes community. Applications running on Amazon EKS are fully compatible with applications running on any standard Kubernetes environment, whether running in on-premises data centers or public clouds. This means that you can easily migrate any standard Kubernetes application to Amazon EKS without any code modification required.

See https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01 for more information on this service.

See eks package documentation for more information. https://docs.aws.amazon.com/sdk-for-go/api/service/eks/

Using the Client

To contact Amazon Elastic Container Service for Kubernetes with the SDK use the New function to create a new service client. With that client you can make API requests to the service. These clients are safe to use concurrently.

See the SDK's documentation for more information on how to use the SDK. https://docs.aws.amazon.com/sdk-for-go/api/

See aws.Config documentation for more information on configuring SDK clients. https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config

See the Amazon Elastic Container Service for Kubernetes client EKS for more information on creating client for this service. https://docs.aws.amazon.com/sdk-for-go/api/service/eks/#New

Index

Examples

Constants

View Source
const (
	// ClusterStatusCreating is a ClusterStatus enum value
	ClusterStatusCreating = "CREATING"

	// ClusterStatusActive is a ClusterStatus enum value
	ClusterStatusActive = "ACTIVE"

	// ClusterStatusDeleting is a ClusterStatus enum value
	ClusterStatusDeleting = "DELETING"

	// ClusterStatusFailed is a ClusterStatus enum value
	ClusterStatusFailed = "FAILED"
)
View Source
const (

	// ErrCodeClientException for service response error code
	// "ClientException".
	//
	// These errors are usually caused by a client action, such as using an action
	// or resource on behalf of a user that doesn't have permissions to use the
	// action or resource, or specifying an identifier that is not valid.
	ErrCodeClientException = "ClientException"

	// ErrCodeInvalidParameterException for service response error code
	// "InvalidParameterException".
	//
	// The specified parameter is invalid. Review the available parameters for the
	// API request.
	ErrCodeInvalidParameterException = "InvalidParameterException"

	// ErrCodeResourceInUseException for service response error code
	// "ResourceInUseException".
	//
	// The specified resource is in use.
	ErrCodeResourceInUseException = "ResourceInUseException"

	// ErrCodeResourceLimitExceededException for service response error code
	// "ResourceLimitExceededException".
	//
	// You have encountered a service limit on the specified resource.
	ErrCodeResourceLimitExceededException = "ResourceLimitExceededException"

	// ErrCodeResourceNotFoundException for service response error code
	// "ResourceNotFoundException".
	//
	// The specified resource could not be found. You can view your available clusters
	// with ListClusters. Amazon EKS clusters are region-specific.
	ErrCodeResourceNotFoundException = "ResourceNotFoundException"

	// ErrCodeServerException for service response error code
	// "ServerException".
	//
	// These errors are usually caused by a server-side issue.
	ErrCodeServerException = "ServerException"

	// ErrCodeServiceUnavailableException for service response error code
	// "ServiceUnavailableException".
	//
	// The service is unavailable, back off and retry the operation.
	ErrCodeServiceUnavailableException = "ServiceUnavailableException"

	// ErrCodeUnsupportedAvailabilityZoneException for service response error code
	// "UnsupportedAvailabilityZoneException".
	//
	// At least one of your specified cluster subnets is in an Availability Zone
	// that does not support Amazon EKS. The exception output will specify the supported
	// Availability Zones for your account, from which you can choose subnets for
	// your cluster.
	ErrCodeUnsupportedAvailabilityZoneException = "UnsupportedAvailabilityZoneException"
)
View Source
const (
	ServiceName = "eks"       // Service endpoint prefix API calls made to.
	EndpointsID = ServiceName // Service ID for Regions and Endpoints metadata.
	ServiceID   = "EKS"       // ServiceID is a unique identifer of a specific service
)

Service information constants

Variables

This section is empty.

Functions

This section is empty.

Types

type Certificate

type Certificate struct {

	// The base64 encoded certificate data required to communicate with your cluster.
	// Add this to the certificate-authority-data section of the kubeconfig file
	// for your cluster.
	Data *string `locationName:"data" type:"string"`
	// contains filtered or unexported fields
}

An object representing the certificate-authority-data for your cluster.

func (Certificate) GoString

func (s Certificate) GoString() string

GoString returns the string representation

func (*Certificate) SetData

func (s *Certificate) SetData(v string) *Certificate

SetData sets the Data field's value.

func (Certificate) String

func (s Certificate) String() string

String returns the string representation

type Cluster

type Cluster struct {

	// The Amazon Resource Name (ARN) of the cluster.
	Arn *string `locationName:"arn" type:"string"`

	// The certificate-authority-data for your cluster.
	CertificateAuthority *Certificate `locationName:"certificateAuthority" type:"structure"`

	// Unique, case-sensitive identifier you provide to ensure the idempotency of
	// the request.
	ClientRequestToken *string `locationName:"clientRequestToken" type:"string"`

	// The Unix epoch time stamp in seconds for when the cluster was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"unix"`

	// The endpoint for your Kubernetes API server.
	Endpoint *string `locationName:"endpoint" type:"string"`

	// The name of the cluster.
	Name *string `locationName:"name" type:"string"`

	// The VPC subnets and security groups used by the cluster control plane. Amazon
	// EKS VPC resources have specific requirements to work properly with Kubernetes.
	// For more information, see Cluster VPC Considerations (http://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html)
	// and Cluster Security Group Considerations (http://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html)
	// in the Amazon EKS User Guide.
	ResourcesVpcConfig *VpcConfigResponse `locationName:"resourcesVpcConfig" type:"structure"`

	// The Amazon Resource Name (ARN) of the IAM role that provides permissions
	// for the Kubernetes control plane to make calls to AWS API operations on your
	// behalf.
	RoleArn *string `locationName:"roleArn" type:"string"`

	// The current status of the cluster.
	Status *string `locationName:"status" type:"string" enum:"ClusterStatus"`

	// The Kubernetes server version for the cluster.
	Version *string `locationName:"version" type:"string"`
	// contains filtered or unexported fields
}

An object representing an Amazon EKS cluster.

func (Cluster) GoString

func (s Cluster) GoString() string

GoString returns the string representation

func (*Cluster) SetArn

func (s *Cluster) SetArn(v string) *Cluster

SetArn sets the Arn field's value.

func (*Cluster) SetCertificateAuthority

func (s *Cluster) SetCertificateAuthority(v *Certificate) *Cluster

SetCertificateAuthority sets the CertificateAuthority field's value.

func (*Cluster) SetClientRequestToken

func (s *Cluster) SetClientRequestToken(v string) *Cluster

SetClientRequestToken sets the ClientRequestToken field's value.

func (*Cluster) SetCreatedAt

func (s *Cluster) SetCreatedAt(v time.Time) *Cluster

SetCreatedAt sets the CreatedAt field's value.

func (*Cluster) SetEndpoint

func (s *Cluster) SetEndpoint(v string) *Cluster

SetEndpoint sets the Endpoint field's value.

func (*Cluster) SetName

func (s *Cluster) SetName(v string) *Cluster

SetName sets the Name field's value.

func (*Cluster) SetResourcesVpcConfig

func (s *Cluster) SetResourcesVpcConfig(v *VpcConfigResponse) *Cluster

SetResourcesVpcConfig sets the ResourcesVpcConfig field's value.

func (*Cluster) SetRoleArn

func (s *Cluster) SetRoleArn(v string) *Cluster

SetRoleArn sets the RoleArn field's value.

func (*Cluster) SetStatus

func (s *Cluster) SetStatus(v string) *Cluster

SetStatus sets the Status field's value.

func (*Cluster) SetVersion

func (s *Cluster) SetVersion(v string) *Cluster

SetVersion sets the Version field's value.

func (Cluster) String

func (s Cluster) String() string

String returns the string representation

type CreateClusterInput

type CreateClusterInput struct {

	// Unique, case-sensitive identifier you provide to ensure the idempotency of
	// the request.
	ClientRequestToken *string `locationName:"clientRequestToken" type:"string" idempotencyToken:"true"`

	// The unique name to give to your cluster.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true"`

	// The VPC subnets and security groups used by the cluster control plane. Amazon
	// EKS VPC resources have specific requirements to work properly with Kubernetes.
	// For more information, see Cluster VPC Considerations (http://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html)
	// and Cluster Security Group Considerations (http://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html)
	// in the Amazon EKS User Guide.
	//
	// ResourcesVpcConfig is a required field
	ResourcesVpcConfig *VpcConfigRequest `locationName:"resourcesVpcConfig" type:"structure" required:"true"`

	// The Amazon Resource Name (ARN) of the IAM role that provides permissions
	// for Amazon EKS to make calls to other AWS API operations on your behalf.
	// For more information, see Amazon EKS Service IAM Role (http://docs.aws.amazon.com/eks/latest/userguide/service_IAM_role.html)
	// in the Amazon EKS User Guide
	//
	// RoleArn is a required field
	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`

	// The desired Kubernetes version for your cluster. If you do not specify a
	// value here, the latest version available in Amazon EKS is used.
	Version *string `locationName:"version" type:"string"`
	// contains filtered or unexported fields
}

func (CreateClusterInput) GoString

func (s CreateClusterInput) GoString() string

GoString returns the string representation

func (*CreateClusterInput) SetClientRequestToken

func (s *CreateClusterInput) SetClientRequestToken(v string) *CreateClusterInput

SetClientRequestToken sets the ClientRequestToken field's value.

func (*CreateClusterInput) SetName

SetName sets the Name field's value.

func (*CreateClusterInput) SetResourcesVpcConfig

func (s *CreateClusterInput) SetResourcesVpcConfig(v *VpcConfigRequest) *CreateClusterInput

SetResourcesVpcConfig sets the ResourcesVpcConfig field's value.

func (*CreateClusterInput) SetRoleArn

func (s *CreateClusterInput) SetRoleArn(v string) *CreateClusterInput

SetRoleArn sets the RoleArn field's value.

func (*CreateClusterInput) SetVersion

func (s *CreateClusterInput) SetVersion(v string) *CreateClusterInput

SetVersion sets the Version field's value.

func (CreateClusterInput) String

func (s CreateClusterInput) String() string

String returns the string representation

func (*CreateClusterInput) Validate

func (s *CreateClusterInput) Validate() error

Validate inspects the fields of the type to determine if they are valid.

type CreateClusterOutput

type CreateClusterOutput struct {

	// The full description of your new cluster.
	Cluster *Cluster `locationName:"cluster" type:"structure"`
	// contains filtered or unexported fields
}

func (CreateClusterOutput) GoString

func (s CreateClusterOutput) GoString() string

GoString returns the string representation

func (*CreateClusterOutput) SetCluster

func (s *CreateClusterOutput) SetCluster(v *Cluster) *CreateClusterOutput

SetCluster sets the Cluster field's value.

func (CreateClusterOutput) String

func (s CreateClusterOutput) String() string

String returns the string representation

type DeleteClusterInput

type DeleteClusterInput struct {

	// The name of the cluster to delete.
	//
	// Name is a required field
	Name *string `location:"uri" locationName:"name" type:"string" required:"true"`
	// contains filtered or unexported fields
}

func (DeleteClusterInput) GoString

func (s DeleteClusterInput) GoString() string

GoString returns the string representation

func (*DeleteClusterInput) SetName

SetName sets the Name field's value.

func (DeleteClusterInput) String

func (s DeleteClusterInput) String() string

String returns the string representation

func (*DeleteClusterInput) Validate

func (s *DeleteClusterInput) Validate() error

Validate inspects the fields of the type to determine if they are valid.

type DeleteClusterOutput

type DeleteClusterOutput struct {

	// The full description of the cluster to delete.
	Cluster *Cluster `locationName:"cluster" type:"structure"`
	// contains filtered or unexported fields
}

func (DeleteClusterOutput) GoString

func (s DeleteClusterOutput) GoString() string

GoString returns the string representation

func (*DeleteClusterOutput) SetCluster

func (s *DeleteClusterOutput) SetCluster(v *Cluster) *DeleteClusterOutput

SetCluster sets the Cluster field's value.

func (DeleteClusterOutput) String

func (s DeleteClusterOutput) String() string

String returns the string representation

type DescribeClusterInput

type DescribeClusterInput struct {

	// The name of the cluster to describe.
	//
	// Name is a required field
	Name *string `location:"uri" locationName:"name" type:"string" required:"true"`
	// contains filtered or unexported fields
}

func (DescribeClusterInput) GoString

func (s DescribeClusterInput) GoString() string

GoString returns the string representation

func (*DescribeClusterInput) SetName

SetName sets the Name field's value.

func (DescribeClusterInput) String

func (s DescribeClusterInput) String() string

String returns the string representation

func (*DescribeClusterInput) Validate

func (s *DescribeClusterInput) Validate() error

Validate inspects the fields of the type to determine if they are valid.

type DescribeClusterOutput

type DescribeClusterOutput struct {

	// The full description of your specified cluster.
	Cluster *Cluster `locationName:"cluster" type:"structure"`
	// contains filtered or unexported fields
}

func (DescribeClusterOutput) GoString

func (s DescribeClusterOutput) GoString() string

GoString returns the string representation

func (*DescribeClusterOutput) SetCluster

SetCluster sets the Cluster field's value.

func (DescribeClusterOutput) String

func (s DescribeClusterOutput) String() string

String returns the string representation

type EKS

type EKS struct {
	*client.Client
}

EKS provides the API operation methods for making requests to Amazon Elastic Container Service for Kubernetes. See this package's package overview docs for details on the service.

EKS methods are safe to use concurrently. It is not safe to modify mutate any of the struct's properties though.

func New

func New(p client.ConfigProvider, cfgs ...*aws.Config) *EKS

New creates a new instance of the EKS client with a session. If additional configuration is needed for the client instance use the optional aws.Config parameter to add your extra config.

Example:

// Create a EKS client from just a session.
svc := eks.New(mySession)

// Create a EKS client with additional configuration
svc := eks.New(mySession, aws.NewConfig().WithRegion("us-west-2"))

func (*EKS) CreateCluster

func (c *EKS) CreateCluster(input *CreateClusterInput) (*CreateClusterOutput, error)

CreateCluster API operation for Amazon Elastic Container Service for Kubernetes.

Creates an Amazon EKS control plane.

The Amazon EKS control plane consists of control plane instances that run the Kubernetes software, like etcd and the API server. The control plane runs in an account managed by AWS, and the Kubernetes API is exposed via the Amazon EKS API server endpoint.

Amazon EKS worker nodes run in your AWS account and connect to your cluster's control plane via the Kubernetes API server endpoint and a certificate file that is created for your cluster.

The cluster control plane is provisioned across multiple Availability Zones and fronted by an Elastic Load Balancing Network Load Balancer. Amazon EKS also provisions elastic network interfaces in your VPC subnets to provide connectivity from the control plane instances to the worker nodes (for example, to support kubectl exec, logs, and proxy data flows).

After you create an Amazon EKS cluster, you must configure your Kubernetes tooling to communicate with the API server and launch worker nodes into your cluster. For more information, see Managing Cluster Authentication (http://docs.aws.amazon.com/eks/latest/userguide/managing-auth.html) and Launching Amazon EKS Worker Nodes (http://docs.aws.amazon.com/eks/latest/userguide/launch-workers.html)in the Amazon EKS User Guide.

Returns awserr.Error for service API and SDK errors. Use runtime type assertions with awserr.Error's Code and Message methods to get detailed information about the error.

See the AWS API reference guide for Amazon Elastic Container Service for Kubernetes's API operation CreateCluster for usage and error information.

Returned Error Codes:

  • ErrCodeResourceInUseException "ResourceInUseException" The specified resource is in use.

  • ErrCodeResourceLimitExceededException "ResourceLimitExceededException" You have encountered a service limit on the specified resource.

  • ErrCodeInvalidParameterException "InvalidParameterException" The specified parameter is invalid. Review the available parameters for the API request.

  • ErrCodeClientException "ClientException" These errors are usually caused by a client action, such as using an action or resource on behalf of a user that doesn't have permissions to use the action or resource, or specifying an identifier that is not valid.

  • ErrCodeServerException "ServerException" These errors are usually caused by a server-side issue.

  • ErrCodeServiceUnavailableException "ServiceUnavailableException" The service is unavailable, back off and retry the operation.

  • ErrCodeUnsupportedAvailabilityZoneException "UnsupportedAvailabilityZoneException" At least one of your specified cluster subnets is in an Availability Zone that does not support Amazon EKS. The exception output will specify the supported Availability Zones for your account, from which you can choose subnets for your cluster.

See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreateCluster

Example (Shared00)

To create a new cluster

The following example creates an Amazon EKS cluster called prod.

package main

import (
	"fmt"

	"github.com/aws/aws-sdk-go/aws"
	"github.com/aws/aws-sdk-go/aws/awserr"
	"github.com/aws/aws-sdk-go/aws/session"
	"github.com/aws/aws-sdk-go/service/eks"
)

func main() {
	svc := eks.New(session.New())
	input := &eks.CreateClusterInput{
		ClientRequestToken: aws.String("1d2129a1-3d38-460a-9756-e5b91fddb951"),
		Name:               aws.String("prod"),
		ResourcesVpcConfig: &eks.VpcConfigRequest{
			SecurityGroupIds: []*string{
				aws.String("sg-6979fe18"),
			},
			SubnetIds: []*string{
				aws.String("subnet-6782e71e"),
				aws.String("subnet-e7e761ac"),
			},
		},
		RoleArn: aws.String("arn:aws:iam::012345678910:role/eks-service-role-AWSServiceRoleForAmazonEKS-J7ONKE3BQ4PI"),
		Version: aws.String("1.10"),
	}

	result, err := svc.CreateCluster(input)
	if err != nil {
		if aerr, ok := err.(awserr.Error); ok {
			switch aerr.Code() {
			case eks.ErrCodeResourceInUseException:
				fmt.Println(eks.ErrCodeResourceInUseException, aerr.Error())
			case eks.ErrCodeResourceLimitExceededException:
				fmt.Println(eks.ErrCodeResourceLimitExceededException, aerr.Error())
			case eks.ErrCodeInvalidParameterException:
				fmt.Println(eks.ErrCodeInvalidParameterException, aerr.Error())
			case eks.ErrCodeClientException:
				fmt.Println(eks.ErrCodeClientException, aerr.Error())
			case eks.ErrCodeServerException:
				fmt.Println(eks.ErrCodeServerException, aerr.Error())
			case eks.ErrCodeServiceUnavailableException:
				fmt.Println(eks.ErrCodeServiceUnavailableException, aerr.Error())
			case eks.ErrCodeUnsupportedAvailabilityZoneException:
				fmt.Println(eks.ErrCodeUnsupportedAvailabilityZoneException, aerr.Error())
			default:
				fmt.Println(aerr.Error())
			}
		} else {
			// Print the error, cast err to awserr.Error to get the Code and
			// Message from an error.
			fmt.Println(err.Error())
		}
		return
	}

	fmt.Println(result)
}
Output:

func (*EKS) CreateClusterRequest

func (c *EKS) CreateClusterRequest(input *CreateClusterInput) (req *request.Request, output *CreateClusterOutput)

CreateClusterRequest generates a "aws/request.Request" representing the client's request for the CreateCluster operation. The "output" return value will be populated with the request's response once the request completes successfuly.

Use "Send" method on the returned Request to send the API call to the service. the "output" return value is not valid until after Send returns without error.

See CreateCluster for more information on using the CreateCluster API call, and error handling.

This method is useful when you want to inject custom logic or configuration into the SDK's request lifecycle. Such as custom headers, or retry logic.

// Example sending a request using the CreateClusterRequest method.
req, resp := client.CreateClusterRequest(params)

err := req.Send()
if err == nil { // resp is now filled
    fmt.Println(resp)
}

See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreateCluster

func (*EKS) CreateClusterWithContext

func (c *EKS) CreateClusterWithContext(ctx aws.Context, input *CreateClusterInput, opts ...request.Option) (*CreateClusterOutput, error)

CreateClusterWithContext is the same as CreateCluster with the addition of the ability to pass a context and additional request options.

See CreateCluster for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If the context is nil a panic will occur. In the future the SDK may create sub-contexts for http.Requests. See https://golang.org/pkg/context/ for more information on using Contexts.

func (*EKS) DeleteCluster

func (c *EKS) DeleteCluster(input *DeleteClusterInput) (*DeleteClusterOutput, error)

DeleteCluster API operation for Amazon Elastic Container Service for Kubernetes.

Deletes the Amazon EKS cluster control plane.

If you have active services in your cluster that are associated with a load balancer, you must delete those services before deleting the cluster so that the load balancers are deleted properly. Otherwise, you can have orphaned resources in your VPC that prevent you from being able to delete the VPC. For more information, see Deleting a Cluster (http://docs.aws.amazon.com/eks/latest/userguide/delete-cluster.html) in the Amazon EKS User Guide.

Returns awserr.Error for service API and SDK errors. Use runtime type assertions with awserr.Error's Code and Message methods to get detailed information about the error.

See the AWS API reference guide for Amazon Elastic Container Service for Kubernetes's API operation DeleteCluster for usage and error information.

Returned Error Codes:

  • ErrCodeResourceInUseException "ResourceInUseException" The specified resource is in use.

  • ErrCodeResourceNotFoundException "ResourceNotFoundException" The specified resource could not be found. You can view your available clusters with ListClusters. Amazon EKS clusters are region-specific.

  • ErrCodeClientException "ClientException" These errors are usually caused by a client action, such as using an action or resource on behalf of a user that doesn't have permissions to use the action or resource, or specifying an identifier that is not valid.

  • ErrCodeServerException "ServerException" These errors are usually caused by a server-side issue.

  • ErrCodeServiceUnavailableException "ServiceUnavailableException" The service is unavailable, back off and retry the operation.

See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeleteCluster

Example (Shared00)

To delete a cluster

This example command deletes a cluster named `devel` in your default region.

package main

import (
	"fmt"

	"github.com/aws/aws-sdk-go/aws"
	"github.com/aws/aws-sdk-go/aws/awserr"
	"github.com/aws/aws-sdk-go/aws/session"
	"github.com/aws/aws-sdk-go/service/eks"
)

func main() {
	svc := eks.New(session.New())
	input := &eks.DeleteClusterInput{
		Name: aws.String("devel"),
	}

	result, err := svc.DeleteCluster(input)
	if err != nil {
		if aerr, ok := err.(awserr.Error); ok {
			switch aerr.Code() {
			case eks.ErrCodeResourceInUseException:
				fmt.Println(eks.ErrCodeResourceInUseException, aerr.Error())
			case eks.ErrCodeResourceNotFoundException:
				fmt.Println(eks.ErrCodeResourceNotFoundException, aerr.Error())
			case eks.ErrCodeClientException:
				fmt.Println(eks.ErrCodeClientException, aerr.Error())
			case eks.ErrCodeServerException:
				fmt.Println(eks.ErrCodeServerException, aerr.Error())
			case eks.ErrCodeServiceUnavailableException:
				fmt.Println(eks.ErrCodeServiceUnavailableException, aerr.Error())
			default:
				fmt.Println(aerr.Error())
			}
		} else {
			// Print the error, cast err to awserr.Error to get the Code and
			// Message from an error.
			fmt.Println(err.Error())
		}
		return
	}

	fmt.Println(result)
}
Output:

func (*EKS) DeleteClusterRequest

func (c *EKS) DeleteClusterRequest(input *DeleteClusterInput) (req *request.Request, output *DeleteClusterOutput)

DeleteClusterRequest generates a "aws/request.Request" representing the client's request for the DeleteCluster operation. The "output" return value will be populated with the request's response once the request completes successfuly.

Use "Send" method on the returned Request to send the API call to the service. the "output" return value is not valid until after Send returns without error.

See DeleteCluster for more information on using the DeleteCluster API call, and error handling.

This method is useful when you want to inject custom logic or configuration into the SDK's request lifecycle. Such as custom headers, or retry logic.

// Example sending a request using the DeleteClusterRequest method.
req, resp := client.DeleteClusterRequest(params)

err := req.Send()
if err == nil { // resp is now filled
    fmt.Println(resp)
}

See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeleteCluster

func (*EKS) DeleteClusterWithContext

func (c *EKS) DeleteClusterWithContext(ctx aws.Context, input *DeleteClusterInput, opts ...request.Option) (*DeleteClusterOutput, error)

DeleteClusterWithContext is the same as DeleteCluster with the addition of the ability to pass a context and additional request options.

See DeleteCluster for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If the context is nil a panic will occur. In the future the SDK may create sub-contexts for http.Requests. See https://golang.org/pkg/context/ for more information on using Contexts.

func (*EKS) DescribeCluster

func (c *EKS) DescribeCluster(input *DescribeClusterInput) (*DescribeClusterOutput, error)

DescribeCluster API operation for Amazon Elastic Container Service for Kubernetes.

Returns descriptive information about an Amazon EKS cluster.

The API server endpoint and certificate authority data returned by this operation are required for kubelet and kubectl to communicate with your Kubernetes API server. For more information, see Create a kubeconfig for Amazon EKS (http://docs.aws.amazon.com/eks/latest/userguide/create-kubeconfig.html).

The API server endpoint and certificate authority data are not available until the cluster reaches the ACTIVE state.

Returns awserr.Error for service API and SDK errors. Use runtime type assertions with awserr.Error's Code and Message methods to get detailed information about the error.

See the AWS API reference guide for Amazon Elastic Container Service for Kubernetes's API operation DescribeCluster for usage and error information.

Returned Error Codes:

  • ErrCodeResourceNotFoundException "ResourceNotFoundException" The specified resource could not be found. You can view your available clusters with ListClusters. Amazon EKS clusters are region-specific.

  • ErrCodeClientException "ClientException" These errors are usually caused by a client action, such as using an action or resource on behalf of a user that doesn't have permissions to use the action or resource, or specifying an identifier that is not valid.

  • ErrCodeServerException "ServerException" These errors are usually caused by a server-side issue.

  • ErrCodeServiceUnavailableException "ServiceUnavailableException" The service is unavailable, back off and retry the operation.

See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeCluster

Example (Shared00)

To describe a cluster

This example command provides a description of the specified cluster in your default region.

package main

import (
	"fmt"

	"github.com/aws/aws-sdk-go/aws"
	"github.com/aws/aws-sdk-go/aws/awserr"
	"github.com/aws/aws-sdk-go/aws/session"
	"github.com/aws/aws-sdk-go/service/eks"
)

func main() {
	svc := eks.New(session.New())
	input := &eks.DescribeClusterInput{
		Name: aws.String("devel"),
	}

	result, err := svc.DescribeCluster(input)
	if err != nil {
		if aerr, ok := err.(awserr.Error); ok {
			switch aerr.Code() {
			case eks.ErrCodeResourceNotFoundException:
				fmt.Println(eks.ErrCodeResourceNotFoundException, aerr.Error())
			case eks.ErrCodeClientException:
				fmt.Println(eks.ErrCodeClientException, aerr.Error())
			case eks.ErrCodeServerException:
				fmt.Println(eks.ErrCodeServerException, aerr.Error())
			case eks.ErrCodeServiceUnavailableException:
				fmt.Println(eks.ErrCodeServiceUnavailableException, aerr.Error())
			default:
				fmt.Println(aerr.Error())
			}
		} else {
			// Print the error, cast err to awserr.Error to get the Code and
			// Message from an error.
			fmt.Println(err.Error())
		}
		return
	}

	fmt.Println(result)
}
Output:

func (*EKS) DescribeClusterRequest

func (c *EKS) DescribeClusterRequest(input *DescribeClusterInput) (req *request.Request, output *DescribeClusterOutput)

DescribeClusterRequest generates a "aws/request.Request" representing the client's request for the DescribeCluster operation. The "output" return value will be populated with the request's response once the request completes successfuly.

Use "Send" method on the returned Request to send the API call to the service. the "output" return value is not valid until after Send returns without error.

See DescribeCluster for more information on using the DescribeCluster API call, and error handling.

This method is useful when you want to inject custom logic or configuration into the SDK's request lifecycle. Such as custom headers, or retry logic.

// Example sending a request using the DescribeClusterRequest method.
req, resp := client.DescribeClusterRequest(params)

err := req.Send()
if err == nil { // resp is now filled
    fmt.Println(resp)
}

See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeCluster

func (*EKS) DescribeClusterWithContext

func (c *EKS) DescribeClusterWithContext(ctx aws.Context, input *DescribeClusterInput, opts ...request.Option) (*DescribeClusterOutput, error)

DescribeClusterWithContext is the same as DescribeCluster with the addition of the ability to pass a context and additional request options.

See DescribeCluster for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If the context is nil a panic will occur. In the future the SDK may create sub-contexts for http.Requests. See https://golang.org/pkg/context/ for more information on using Contexts.

func (*EKS) ListClusters

func (c *EKS) ListClusters(input *ListClustersInput) (*ListClustersOutput, error)

ListClusters API operation for Amazon Elastic Container Service for Kubernetes.

Lists the Amazon EKS clusters in your AWS account in the specified region.

Returns awserr.Error for service API and SDK errors. Use runtime type assertions with awserr.Error's Code and Message methods to get detailed information about the error.

See the AWS API reference guide for Amazon Elastic Container Service for Kubernetes's API operation ListClusters for usage and error information.

Returned Error Codes:

  • ErrCodeInvalidParameterException "InvalidParameterException" The specified parameter is invalid. Review the available parameters for the API request.

  • ErrCodeClientException "ClientException" These errors are usually caused by a client action, such as using an action or resource on behalf of a user that doesn't have permissions to use the action or resource, or specifying an identifier that is not valid.

  • ErrCodeServerException "ServerException" These errors are usually caused by a server-side issue.

  • ErrCodeServiceUnavailableException "ServiceUnavailableException" The service is unavailable, back off and retry the operation.

See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListClusters

Example (Shared00)

To list your available clusters

This example command lists all of your available clusters in your default region.

package main

import (
	"fmt"

	"github.com/aws/aws-sdk-go/aws/awserr"
	"github.com/aws/aws-sdk-go/aws/session"
	"github.com/aws/aws-sdk-go/service/eks"
)

func main() {
	svc := eks.New(session.New())
	input := &eks.ListClustersInput{}

	result, err := svc.ListClusters(input)
	if err != nil {
		if aerr, ok := err.(awserr.Error); ok {
			switch aerr.Code() {
			case eks.ErrCodeInvalidParameterException:
				fmt.Println(eks.ErrCodeInvalidParameterException, aerr.Error())
			case eks.ErrCodeClientException:
				fmt.Println(eks.ErrCodeClientException, aerr.Error())
			case eks.ErrCodeServerException:
				fmt.Println(eks.ErrCodeServerException, aerr.Error())
			case eks.ErrCodeServiceUnavailableException:
				fmt.Println(eks.ErrCodeServiceUnavailableException, aerr.Error())
			default:
				fmt.Println(aerr.Error())
			}
		} else {
			// Print the error, cast err to awserr.Error to get the Code and
			// Message from an error.
			fmt.Println(err.Error())
		}
		return
	}

	fmt.Println(result)
}
Output:

func (*EKS) ListClustersRequest

func (c *EKS) ListClustersRequest(input *ListClustersInput) (req *request.Request, output *ListClustersOutput)

ListClustersRequest generates a "aws/request.Request" representing the client's request for the ListClusters operation. The "output" return value will be populated with the request's response once the request completes successfuly.

Use "Send" method on the returned Request to send the API call to the service. the "output" return value is not valid until after Send returns without error.

See ListClusters for more information on using the ListClusters API call, and error handling.

This method is useful when you want to inject custom logic or configuration into the SDK's request lifecycle. Such as custom headers, or retry logic.

// Example sending a request using the ListClustersRequest method.
req, resp := client.ListClustersRequest(params)

err := req.Send()
if err == nil { // resp is now filled
    fmt.Println(resp)
}

See also, https://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListClusters

func (*EKS) ListClustersWithContext

func (c *EKS) ListClustersWithContext(ctx aws.Context, input *ListClustersInput, opts ...request.Option) (*ListClustersOutput, error)

ListClustersWithContext is the same as ListClusters with the addition of the ability to pass a context and additional request options.

See ListClusters for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If the context is nil a panic will occur. In the future the SDK may create sub-contexts for http.Requests. See https://golang.org/pkg/context/ for more information on using Contexts.

type ListClustersInput

type ListClustersInput struct {

	// The maximum number of cluster results returned by ListClusters in paginated
	// output. When this parameter is used, ListClusters only returns maxResults
	// results in a single page along with a nextToken response element. The remaining
	// results of the initial request can be seen by sending another ListClusters
	// request with the returned nextToken value. This value can be between 1 and
	// 100. If this parameter is not used, then ListClusters returns up to 100 results
	// and a nextToken value if applicable.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// The nextToken value returned from a previous paginated ListClusters request
	// where maxResults was used and the results exceeded the value of that parameter.
	// Pagination continues from the end of the previous results that returned the
	// nextToken value.
	//
	// This token should be treated as an opaque identifier that is only used to
	// retrieve the next items in a list and not for other programmatic purposes.
	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
	// contains filtered or unexported fields
}

func (ListClustersInput) GoString

func (s ListClustersInput) GoString() string

GoString returns the string representation

func (*ListClustersInput) SetMaxResults

func (s *ListClustersInput) SetMaxResults(v int64) *ListClustersInput

SetMaxResults sets the MaxResults field's value.

func (*ListClustersInput) SetNextToken

func (s *ListClustersInput) SetNextToken(v string) *ListClustersInput

SetNextToken sets the NextToken field's value.

func (ListClustersInput) String

func (s ListClustersInput) String() string

String returns the string representation

func (*ListClustersInput) Validate

func (s *ListClustersInput) Validate() error

Validate inspects the fields of the type to determine if they are valid.

type ListClustersOutput

type ListClustersOutput struct {

	// A list of all of the clusters for your account in the specified region.
	Clusters []*string `locationName:"clusters" type:"list"`

	// The nextToken value to include in a future ListClusters request. When the
	// results of a ListClusters request exceed maxResults, this value can be used
	// to retrieve the next page of results. This value is null when there are no
	// more results to return.
	NextToken *string `locationName:"nextToken" type:"string"`
	// contains filtered or unexported fields
}

func (ListClustersOutput) GoString

func (s ListClustersOutput) GoString() string

GoString returns the string representation

func (*ListClustersOutput) SetClusters

func (s *ListClustersOutput) SetClusters(v []*string) *ListClustersOutput

SetClusters sets the Clusters field's value.

func (*ListClustersOutput) SetNextToken

func (s *ListClustersOutput) SetNextToken(v string) *ListClustersOutput

SetNextToken sets the NextToken field's value.

func (ListClustersOutput) String

func (s ListClustersOutput) String() string

String returns the string representation

type VpcConfigRequest

type VpcConfigRequest struct {

	// Specify one or more security groups for the cross-account elastic network
	// interfaces that Amazon EKS creates to use to allow communication between
	// your worker nodes and the Kubernetes control plane.
	SecurityGroupIds []*string `locationName:"securityGroupIds" type:"list"`

	// Specify subnets for your Amazon EKS worker nodes. Amazon EKS creates cross-account
	// elastic network interfaces in these subnets to allow communication between
	// your worker nodes and the Kubernetes control plane.
	//
	// SubnetIds is a required field
	SubnetIds []*string `locationName:"subnetIds" type:"list" required:"true"`
	// contains filtered or unexported fields
}

An object representing an Amazon EKS cluster VPC configuration request.

func (VpcConfigRequest) GoString

func (s VpcConfigRequest) GoString() string

GoString returns the string representation

func (*VpcConfigRequest) SetSecurityGroupIds

func (s *VpcConfigRequest) SetSecurityGroupIds(v []*string) *VpcConfigRequest

SetSecurityGroupIds sets the SecurityGroupIds field's value.

func (*VpcConfigRequest) SetSubnetIds

func (s *VpcConfigRequest) SetSubnetIds(v []*string) *VpcConfigRequest

SetSubnetIds sets the SubnetIds field's value.

func (VpcConfigRequest) String

func (s VpcConfigRequest) String() string

String returns the string representation

func (*VpcConfigRequest) Validate

func (s *VpcConfigRequest) Validate() error

Validate inspects the fields of the type to determine if they are valid.

type VpcConfigResponse

type VpcConfigResponse struct {

	// The security groups associated with the cross-account elastic network interfaces
	// that are used to allow communication between your worker nodes and the Kubernetes
	// control plane.
	SecurityGroupIds []*string `locationName:"securityGroupIds" type:"list"`

	// The subnets associated with your cluster.
	SubnetIds []*string `locationName:"subnetIds" type:"list"`

	// The VPC associated with your cluster.
	VpcId *string `locationName:"vpcId" type:"string"`
	// contains filtered or unexported fields
}

An object representing an Amazon EKS cluster VPC configuration response.

func (VpcConfigResponse) GoString

func (s VpcConfigResponse) GoString() string

GoString returns the string representation

func (*VpcConfigResponse) SetSecurityGroupIds

func (s *VpcConfigResponse) SetSecurityGroupIds(v []*string) *VpcConfigResponse

SetSecurityGroupIds sets the SecurityGroupIds field's value.

func (*VpcConfigResponse) SetSubnetIds

func (s *VpcConfigResponse) SetSubnetIds(v []*string) *VpcConfigResponse

SetSubnetIds sets the SubnetIds field's value.

func (*VpcConfigResponse) SetVpcId

func (s *VpcConfigResponse) SetVpcId(v string) *VpcConfigResponse

SetVpcId sets the VpcId field's value.

func (VpcConfigResponse) String

func (s VpcConfigResponse) String() string

String returns the string representation

Directories

Path Synopsis
Package eksiface provides an interface to enable mocking the Amazon Elastic Container Service for Kubernetes service client for testing your code.
Package eksiface provides an interface to enable mocking the Amazon Elastic Container Service for Kubernetes service client for testing your code.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL