v1alpha2

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Sep 19, 2019 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

Package v1alpha2 contains managed resources for AWS compute services such as EKS. +kubebuilder:object:generate=true +groupName=compute.aws.crossplane.io +versionName=v1alpha2

Index

Constants

View Source
const (
	Group   = "compute.aws.crossplane.io"
	Version = "v1alpha2"
)

Package type metadata.

View Source
const (
	// The resource is inaccessible while it is being created.
	ClusterStatusCreating = "CREATING"

	ClusterStatusActive = "ACTIVE"
)

Cluster statuses.

Variables

View Source
var (
	// SchemeGroupVersion is group version used to register these objects
	SchemeGroupVersion = schema.GroupVersion{Group: Group, Version: Version}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}
)
View Source
var (
	EKSClusterKind             = reflect.TypeOf(EKSCluster{}).Name()
	EKSClusterKindAPIVersion   = EKSClusterKind + "." + SchemeGroupVersion.String()
	EKSClusterGroupVersionKind = SchemeGroupVersion.WithKind(EKSClusterKind)
)

EKSCluster type metadata.

View Source
var (
	EKSClusterClassKind             = reflect.TypeOf(EKSClusterClass{}).Name()
	EKSClusterClassKindAPIVersion   = EKSClusterClassKind + "." + SchemeGroupVersion.String()
	EKSClusterClassGroupVersionKind = SchemeGroupVersion.WithKind(EKSClusterClassKind)
)

EKSClusterClass type metadata.

Functions

This section is empty.

Types

type EKSCluster

type EKSCluster struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   EKSClusterSpec   `json:"spec,omitempty"`
	Status EKSClusterStatus `json:"status,omitempty"`
}

An EKSCluster is a managed resource that represents an AWS Elastic Kubernetes Service cluster. +kubebuilder:printcolumn:name="STATUS",type="string",JSONPath=".status.bindingPhase" +kubebuilder:printcolumn:name="STATE",type="string",JSONPath=".status.state" +kubebuilder:printcolumn:name="CLUSTER-NAME",type="string",JSONPath=".status.clusterName" +kubebuilder:printcolumn:name="ENDPOINT",type="string",JSONPath=".status.endpoint" +kubebuilder:printcolumn:name="CLUSTER-CLASS",type="string",JSONPath=".spec.classRef.name" +kubebuilder:printcolumn:name="LOCATION",type="string",JSONPath=".spec.location" +kubebuilder:printcolumn:name="RECLAIM-POLICY",type="string",JSONPath=".spec.reclaimPolicy" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp"

func (*EKSCluster) DeepCopy

func (in *EKSCluster) DeepCopy() *EKSCluster

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EKSCluster.

func (*EKSCluster) DeepCopyInto

func (in *EKSCluster) DeepCopyInto(out *EKSCluster)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*EKSCluster) DeepCopyObject

func (in *EKSCluster) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*EKSCluster) GetBindingPhase

func (c *EKSCluster) GetBindingPhase() runtimev1alpha1.BindingPhase

GetBindingPhase of this EKSCluster.

func (*EKSCluster) GetClaimReference

func (c *EKSCluster) GetClaimReference() *corev1.ObjectReference

GetClaimReference of this EKSCluster.

func (*EKSCluster) GetNonPortableClassReference

func (c *EKSCluster) GetNonPortableClassReference() *corev1.ObjectReference

GetNonPortableClassReference of this EKSCluster.

func (*EKSCluster) GetReclaimPolicy

func (c *EKSCluster) GetReclaimPolicy() runtimev1alpha1.ReclaimPolicy

GetReclaimPolicy of this EKSCluster.

func (*EKSCluster) GetWriteConnectionSecretToReference

func (c *EKSCluster) GetWriteConnectionSecretToReference() corev1.LocalObjectReference

GetWriteConnectionSecretToReference of this EKSCluster.

func (*EKSCluster) SetBindingPhase

func (c *EKSCluster) SetBindingPhase(p runtimev1alpha1.BindingPhase)

SetBindingPhase of this EKSCluster.

func (*EKSCluster) SetClaimReference

func (c *EKSCluster) SetClaimReference(r *corev1.ObjectReference)

SetClaimReference of this EKSCluster.

func (*EKSCluster) SetConditions

func (c *EKSCluster) SetConditions(cd ...runtimev1alpha1.Condition)

SetConditions of this EKSCluster.

func (*EKSCluster) SetNonPortableClassReference

func (c *EKSCluster) SetNonPortableClassReference(r *corev1.ObjectReference)

SetNonPortableClassReference of this EKSCluster.

func (*EKSCluster) SetReclaimPolicy

func (c *EKSCluster) SetReclaimPolicy(p runtimev1alpha1.ReclaimPolicy)

SetReclaimPolicy of this EKSCluster.

func (*EKSCluster) SetWriteConnectionSecretToReference

func (c *EKSCluster) SetWriteConnectionSecretToReference(r corev1.LocalObjectReference)

SetWriteConnectionSecretToReference of this EKSCluster.

type EKSClusterClass

type EKSClusterClass struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// SpecTemplate is a template for the spec of a dynamically provisioned
	// EKSCluster.
	SpecTemplate EKSClusterClassSpecTemplate `json:"specTemplate"`
}

An EKSClusterClass is a non-portable resource class. It defines the desired spec of resource claims that use it to dynamically provision a managed resource. +kubebuilder:printcolumn:name="PROVIDER-REF",type="string",JSONPath=".specTemplate.providerRef.name" +kubebuilder:printcolumn:name="RECLAIM-POLICY",type="string",JSONPath=".specTemplate.reclaimPolicy" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp"

func (*EKSClusterClass) DeepCopy

func (in *EKSClusterClass) DeepCopy() *EKSClusterClass

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EKSClusterClass.

func (*EKSClusterClass) DeepCopyInto

func (in *EKSClusterClass) DeepCopyInto(out *EKSClusterClass)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*EKSClusterClass) DeepCopyObject

func (in *EKSClusterClass) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*EKSClusterClass) GetReclaimPolicy

func (i *EKSClusterClass) GetReclaimPolicy() runtimev1alpha1.ReclaimPolicy

GetReclaimPolicy of this EKSClusterClass.

func (*EKSClusterClass) SetReclaimPolicy

func (i *EKSClusterClass) SetReclaimPolicy(p runtimev1alpha1.ReclaimPolicy)

SetReclaimPolicy of this EKSClusterClass.

type EKSClusterClassList

type EKSClusterClassList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []EKSClusterClass `json:"items"`
}

EKSClusterClassList contains a list of cloud memorystore resource classes.

func (*EKSClusterClassList) DeepCopy

func (in *EKSClusterClassList) DeepCopy() *EKSClusterClassList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EKSClusterClassList.

func (*EKSClusterClassList) DeepCopyInto

func (in *EKSClusterClassList) DeepCopyInto(out *EKSClusterClassList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*EKSClusterClassList) DeepCopyObject

func (in *EKSClusterClassList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type EKSClusterClassSpecTemplate

type EKSClusterClassSpecTemplate struct {
	runtimev1alpha1.NonPortableClassSpecTemplate `json:",inline"`
	EKSClusterParameters                         `json:",inline"`
}

An EKSClusterClassSpecTemplate is a template for the spec of a dynamically provisioned EKSCluster.

func (*EKSClusterClassSpecTemplate) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EKSClusterClassSpecTemplate.

func (*EKSClusterClassSpecTemplate) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EKSClusterList

type EKSClusterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []EKSCluster `json:"items"`
}

EKSClusterList contains a list of EKSCluster items

func (*EKSClusterList) DeepCopy

func (in *EKSClusterList) DeepCopy() *EKSClusterList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EKSClusterList.

func (*EKSClusterList) DeepCopyInto

func (in *EKSClusterList) DeepCopyInto(out *EKSClusterList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*EKSClusterList) DeepCopyObject

func (in *EKSClusterList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type EKSClusterParameters

type EKSClusterParameters struct {

	// Region for this EKS Cluster.
	// +kubebuilder:validation:Enum=us-west-2;us-east-1;eu-west-1
	Region EKSRegion `json:"region"`

	// RoleARN: The Amazon Resource Name (ARN) of the IAM role that provides
	// permis sions for Amazon EKS to make calls to other AWS  API  operations
	// on your behalf. For more information, see 'Amazon EKS Service IAM Role'
	// in the Amazon EKS User Guide.
	RoleARN string `json:"roleARN"`

	// VpcID of this EKS cluster.
	VpcID string `json:"vpcId"`

	// SubnetIds of this EKS cluster.
	SubnetIds []string `json:"subnetIds"`

	// SecurityGroupIds of this EKS cluster.
	SecurityGroupIds []string `json:"securityGroupIds"`

	// ClusterVersion: The desired Kubernetes version of this EKS Cluster. If
	// you do not specify a value here, the latest version available is used.
	// +optional
	ClusterVersion string `json:"clusterVersion,omitempty"`

	// WorkerNodes configuration for cloudformation
	WorkerNodes WorkerNodesSpec `json:"workerNodes"`

	// MapRoles map AWS roles to one or more Kubernetes groups. A Default role
	// that allows nodes access to communicate with master is autogenerated when
	// a node pool comes online.
	// +optional
	MapRoles []MapRole `json:"mapRoles,omitempty"`

	// MapUsers map AWS users to one or more Kubernetes groups.
	// +optional
	MapUsers []MapUser `json:"mapUsers,omitempty"`
}

EKSClusterParameters define the desired state of an AWS Elastic Kubernetes Service cluster.

func (*EKSClusterParameters) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EKSClusterParameters.

func (*EKSClusterParameters) DeepCopyInto

func (in *EKSClusterParameters) DeepCopyInto(out *EKSClusterParameters)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EKSClusterSpec

type EKSClusterSpec struct {
	runtimev1alpha1.ResourceSpec `json:",inline"`
	EKSClusterParameters         `json:",inline"`
}

An EKSClusterSpec defines the desired state of an EKSCluster.

func (*EKSClusterSpec) DeepCopy

func (in *EKSClusterSpec) DeepCopy() *EKSClusterSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EKSClusterSpec.

func (*EKSClusterSpec) DeepCopyInto

func (in *EKSClusterSpec) DeepCopyInto(out *EKSClusterSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EKSClusterStatus

type EKSClusterStatus struct {
	runtimev1alpha1.ResourceStatus `json:",inline"`

	// State of the cluster.
	State string `json:"state,omitempty"`

	// ClusterName of the cluster.
	ClusterName string `json:"resourceName,omitempty"`

	// ClusterVersion of the cluster.
	ClusterVersion string `json:"resourceVersion,omitempty"`

	// Endpoint for connecting to the cluster.
	Endpoint string `json:"endpoint,omitempty"`

	// CloudFormationStackID of the Stack used to create node groups.
	CloudFormationStackID string `json:"cloudformationStackId,omitempty"`
}

An EKSClusterStatus represents the observed state of an EKSCluster.

func (*EKSClusterStatus) DeepCopy

func (in *EKSClusterStatus) DeepCopy() *EKSClusterStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EKSClusterStatus.

func (*EKSClusterStatus) DeepCopyInto

func (in *EKSClusterStatus) DeepCopyInto(out *EKSClusterStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EKSRegion

type EKSRegion string

EKSRegion represents an EKS enabled AWS region.

const (
	// EKSRegionUSWest2 - us-west-2 (Oregon) region for eks cluster
	EKSRegionUSWest2 EKSRegion = "us-west-2"
	// EKSRegionUSEast1 - us-east-1 (N. Virginia) region for eks cluster
	EKSRegionUSEast1 EKSRegion = "us-east-1"
	// EKSRegionUSEast2 - us-east-2 (Ohio) region for eks worker only
	EKSRegionUSEast2 EKSRegion = "us-east-2"
	// EKSRegionEUWest1 - eu-west-1 (Ireland) region for eks cluster
	EKSRegionEUWest1 EKSRegion = "eu-west-1"
)

EKS regions.

type MapRole

type MapRole struct {
	// RoleARN to match, e.g. 'arn:aws:iam::000000000000:role/KubernetesNode'.
	RoleARN string `json:"rolearn"`

	// Username (in Kubernetes) the RoleARN should map to.
	Username string `json:"username"`

	// Groups (in Kubernetes) the RoleARN should map to.
	Groups []string `json:"groups"`
}

MapRole maps an AWS IAM role to one or more Kubernetes groups. See https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html and https://github.com/kubernetes-sigs/aws-iam-authenticator/blob/master/README.md

func (*MapRole) DeepCopy

func (in *MapRole) DeepCopy() *MapRole

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MapRole.

func (*MapRole) DeepCopyInto

func (in *MapRole) DeepCopyInto(out *MapRole)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MapUser

type MapUser struct {
	// UserARN to match, e.g. 'arn:aws:iam::000000000000:user/Alice'
	UserARN string `json:"userarn"`

	// Username (in Kubernetes) the UserARN should map to.
	Username string `json:"username"`

	// Groups (in Kubernetes) the UserARN should map to.
	Groups []string `json:"groups"`
}

MapUser maps an AWS IAM user to one or more Kubernetes groups. See https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html and https://github.com/kubernetes-sigs/aws-iam-authenticator/blob/master/README.md

func (*MapUser) DeepCopy

func (in *MapUser) DeepCopy() *MapUser

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MapUser.

func (*MapUser) DeepCopyInto

func (in *MapUser) DeepCopyInto(out *MapUser)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type WorkerNodesSpec

type WorkerNodesSpec struct {
	// KeyName of the EC2 Key Pair to allow SSH access to the EC2 instances.
	// +optional
	KeyName string `json:"keyName,omitempty"`

	// NodeImageId that the EC2 instances should run. Defaults to the region's
	// standard AMI.
	// +optional
	NodeImageID string `json:"nodeImageId,omitempty"`

	// NodeInstanceType of the EC2 instances.
	// +kubebuilder:validation:Enum=t2.small;t2.medium;t2.large;t2.xlarge;t2.2xlarge;t3.nano;t3.micro;t3.small;t3.medium;t3.large;t3.xlarge;t3.2xlarge;m3.medium;m3.large;m3.xlarge;m3.2xlarge;m4.large;m4.xlarge;m4.2xlarge;m4.4xlarge;m4.10xlarge;m5.large;m5.xlarge;m5.2xlarge;m5.4xlarge;m5.12xlarge;m5.24xlarge;c4.large;c4.xlarge;c4.2xlarge;c4.4xlarge;c4.8xlarge;c5.large;c5.xlarge;c5.2xlarge;c5.4xlarge;c5.9xlarge;c5.18xlarge;i3.large;i3.xlarge;i3.2xlarge;i3.4xlarge;i3.8xlarge;i3.16xlarge;r3.xlarge;r3.2xlarge;r3.4xlarge;r3.8xlarge;r4.large;r4.xlarge;r4.2xlarge;r4.4xlarge;r4.8xlarge;r4.16xlarge;x1.16xlarge;x1.32xlarge;p2.xlarge;p2.8xlarge;p2.16xlarge;p3.2xlarge;p3.8xlarge;p3.16xlarge;r5.large;r5.xlarge;r5.2xlarge;r5.4xlarge;r5.12xlarge;r5.24xlarge;r5d.large;r5d.xlarge;r5d.2xlarge;r5d.4xlarge;r5d.12xlarge;r5d.24xlarge;z1d.large;z1d.xlarge;z1d.2xlarge;z1d.3xlarge;z1d.6xlarge;z1d.12xlarge
	NodeInstanceType string `json:"nodeInstanceType"`

	// NodeAutoScalingGroupMinSize configures the minimum size of this node
	// group's Autoscaling Group. Defaults to 1.
	// +optional
	NodeAutoScalingGroupMinSize *int `json:"nodeAutoScalingGroupMinSize,omitempty"`

	// NodeAutoScalingGroupMaxSize configures the maximum size of this node
	// group's Autoscaling Group. Defaults to 3.
	// +optional
	NodeAutoScalingGroupMaxSize *int `json:"nodeAutoScalingGroupMaxSize,omitempty"`

	// NodeVolumeSize configures the volume size in GB. Defaults to 20.
	// +optional
	NodeVolumeSize *int `json:"nodeVolumeSize,omitempty"`

	// BootstrapArguments to pass to the bootstrap script. See
	// files/bootstrap.sh in https://github.com/awslabs/amazon-eks-ami
	// +optional
	BootstrapArguments string `json:"bootstrapArguments,omitempty"`

	// NodeGroupName is a unique identifier for the Node Group.
	// +optional
	NodeGroupName string `json:"nodeGroupName,omitempty"`

	// ClusterControlPlaneSecurityGroup configures the security group of the
	// cluster control plane in order to allow communication to this node group.
	// +optional
	ClusterControlPlaneSecurityGroup string `json:"clusterControlPlaneSecurityGroup,omitempty"`
}

WorkerNodesSpec - Worker node spec used to define cloudformation template that provisions workers for cluster

func (*WorkerNodesSpec) DeepCopy

func (in *WorkerNodesSpec) DeepCopy() *WorkerNodesSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkerNodesSpec.

func (*WorkerNodesSpec) DeepCopyInto

func (in *WorkerNodesSpec) DeepCopyInto(out *WorkerNodesSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

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