EKS



A managed Kubernetes service that automates key tasks like patching, node provisioning, and updates.


Example yaml file:


apiVersion: aws.boundless.software/v1alpha1
kind: Eks
metadata:
  name: my-eks-cluster
spec:
  provider:
    region: us-west-2
  cluster:
    version: "1.21"
    roleArn: arn:aws:iam::123456789012:role/eks-cluster-role
    subnetIds:
      - subnet-abcdef01
      - subnet-abcdef02
    tags:
      Name: my-eks-cluster
      Environment: Dev
    oidcProvider:
      issuerUrl: "https://oidc.eks.us-west-2.amazonaws.com/id/EXAMPLED539D4633E53DE1B716D3041E"
      clientId: "example-id"
    endpoint:
      public: true
      private: false
    addons:
      - name: coredns
        addonVersion: "1.8.4"
    logTypes:
      - api
      - audit
    nodeGroups:
      primary:
        amiType: AL2_x86_64
        capacityType: ON_DEMAND
        diskSize: 20
        instanceTypes:
          - m5.large
        labels:
          role: primary
        launchTemplate:
          name: my-launch-template
          version: "1"
        scalingConfig:
          desiredSize: 2
          maxSize: 3
          minSize: 1
        subnets:
          - subnet-abcdef01
        tags:
          Name: primary-nodes
          Environment: Dev
        taints:
          - key: "key1"
            value: "value1"
            effect: "NoSchedule"

Inputs


NameTypeDescription
provider*AwsProviderSpecProvider specifies the AWS provider settings for the EKS cluster.
clusterEksClusterSpecCluster specifies the configuration for the EKS cluster.

EksClusterSpec


NameTypeDescription
addons[]AddOnSpecAddons specifies the add-ons to enable for the EKS cluster.
logTypes[]types.LogTypeLogTypes specifies the types of logs to enable.
nodeGroupsmap[string]EksNodeGroupSpecNodeGroups specifies the node groups for the EKS cluster.
roleArnstringRoleArn specifies the ARN of the IAM role for the EKS cluster.
subnetIds*[]stringSubnetIds specifies the IDs of the subnets for the EKS cluster.
tagsmap[string]stringTags are metadata to assign to the EKS cluster.
oidcProviderOidcProviderSpecOidcProvider specifies the OIDC identity provider for the EKS cluster.
versionstringVersion specifies the Kubernetes version for the EKS cluster.
endpointEndPointSpecEndpoint specifies the public and private access points for the EKS cluster.

AddOnSpec


NameTypeDescription
name*stringName specifies the name of the add-on.
addonVersionstringAddonVersion specifies the version of the add-on.

EksNodeGroupSpec


NameTypeDescription
amiTypestringAmyType specifies the AMI type for the node group.
capacityTypestringCapacityType specifies the EC2 capacity type.
clientRequestTokenstringClientRequestToken is an idempotency token.
diskSizeint32DiskSize specifies the root disk size.
instanceTypes[]stringInstanceTypes specifies the types of instances in the node group.
labelsmap[string]stringLabels to apply to the Kubernetes nodes.
launchTemplateLaunchTemplateSpecLaunchTemplate specifies the launch template for the node group.
maxUnavailableint32MaxUnavailable specifies the maximum number of nodes that can be unavailable during an update.
MaxUnavailablePercentageint32MaxUnavailablePercentage specifies the max number of nodes that can be unavailable during an update.
nodeRoleArnstringNodeRoleArn specifies the ARN of the role for the nodes.
releaseVersionstringReleaseVersion specifies the release version of the node group.
remoteAccessNodeGroupRemoteAccessSpecRemoteAccess specifies the remote access settings.
scallingConfigEksNodeGroupScallingConfigScallingConfig specifies the scalling settings for the node group.
subnets[]stringSubents specifies which subnets to associate with the node group.
tagsmap[string]stringTags are metadata to assign to the node group.
taints[]EksNodeGroupTaintTaints to apply to the Kubernetes nodes.
versionstringVersion specifies the Kubernetes version for the node group.

OidcProviderSpec


NameTypeDescription
clientIdList*[]stringClientIdList specifies the list of clients for the OIDC identity provider.
thumbpringList*[]string

ThumbprintList specifies the list of the thumbprints of the OIDC identity provider's server certificate(s).

url*stringUrl is the URL of the OIDC identity provider.

EndPointSpec


NameTypeDescription
publicboolPublic indicates whether the endpoint is publicly accessible.
privateboolPrivate indicates whether the endpoint is privately accessible.

LaunchTemplateSpec


NameTypeDescription
namestringName specifies the name of the launch template.
versionstringVersion specifies the version of the launch template.

NodeGroupRemoteAccessSpec


NameTypeDescription
ec2SshKeystringEc2SshKey specifies EC2 SSH Key.
sourceSecurityGroups[]stringSourceSecurityGroups specifies the security groups for SSH.

EksNodeGroupScallingConfig


NameTypeDescription
desiredSizeint32DesiredSize specifies the desired number of worker nodes.
maxSizeint32MaxSize specifies the maximum number of worker nodes.
minSizeint32MinSize specifies the minimum number of worker nodes.

EksNodeGroupTaint


NameTypeDescription
keystringKey is the taint key to apply.
valuestringValue is the taint value to apply.
effectstringEffect is the taint effect to apply.

Outputs


NameTypeDescription
addonsmap[string]EksAddonsStatusAddons defines the observed state of the configured add-ons.
arnstringArn is the Amazon Resource Name of the cluster.
clusterRolestringClusterRole specifies the role of the cluster.
clusterTypestringClusterType specifies the type of the cluster.
conditionmetav1.ConditionCondition indicates the condition of the cluster.
endpointstringEndpoint is the cluster endpoint.
issuerstringIssuer is the OIDC issuer for the cluster.
logTypes[]types.LogTypeLogTypes are the types of logs that are enabled.
nodeGroupsmap[string]EksNodeGroupStateNodeGroups defines the observed state of the configured groups.
oidcProviderstringOidcProvider is the OIDC provider associated with the cluster.

EksAddonStatus


NameTypeDescription
conditionmetav1.conditionCondition indicates the condition of the add-on.
arnstringArn is the Amazon resource name of the add-on.
versionstringVersion is the version of the add-on.

EksNodeGroupStatus


NameTypeDescription
conditionmetav1.ConditionCondition indicates the condition of the node group.
idstringArn is the Amazon Resource Name of the node group.
nodeRolestringNodeRole is the role associated with the node group.