crds/node.eks.aws_nodeconfigs.yaml (156 lines of code) (raw):
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.3
name: nodeconfigs.node.eks.aws
spec:
group: node.eks.aws
names:
kind: NodeConfig
listKind: NodeConfigList
plural: nodeconfigs
singular: nodeconfig
scope: Cluster
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: NodeConfig is the primary configuration object for `nodeadm`.
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
properties:
cluster:
description: |-
ClusterDetails contains the coordinates of your EKS cluster.
These details can be found using the [DescribeCluster API](https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeCluster.html).
properties:
apiServerEndpoint:
description: APIServerEndpoint is the URL of your EKS cluster's
kube-apiserver.
type: string
certificateAuthority:
description: CertificateAuthority is a base64-encoded string of
your cluster's certificate authority chain.
format: byte
type: string
cidr:
description: CIDR is your cluster's Pod IP CIDR. This value is
used to infer your cluster's DNS address.
type: string
enableOutpost:
description: EnableOutpost determines how your node is configured
when running on an AWS Outpost.
type: boolean
id:
description: ID is an identifier for your cluster; this is only
used when your node is running on an AWS Outpost.
type: string
name:
description: Name is the name of your EKS cluster
type: string
region:
description: |-
Region is an AWS region (e.g. us-east-1) used to retrieve regional artifacts
as well as region where EKS cluster lives.
type: string
type: object
containerd:
description: ContainerdOptions are additional parameters passed to
`containerd`.
properties:
config:
description: |-
Config is inline [`containerd` configuration TOML](https://github.com/containerd/containerd/blob/main/docs/man/containerd-config.toml.5.md)
that will be [imported](https://github.com/containerd/containerd/blob/32169d591dbc6133ef7411329b29d0c0433f8c4d/docs/man/containerd-config.toml.5.md?plain=1#L146-L154)
by the default configuration file.
type: string
type: object
hybrid:
description: HybridOptions defines the options specific to hybrid
node enrollment.
properties:
enableCredentialsFile:
description: |-
EnableCredentialsFile enables a shared credentials file on the host at /eks-hybrid/.aws/credentials
For SSM, this means that nodeadm will create a symlink from `/root/.aws/credentials` to `/eks-hybrid/.aws/credentials`.
For IAM Roles Anywhere, this means that nodeadm will set up a systemd service to write and refresh the credentials to `/eks-hybrid/.aws/credentials`.
type: boolean
iamRolesAnywhere:
description: |-
IAMRolesAnywhere includes IAM Roles Anywhere specific configuration and is mutually exclusive
with SSM.
properties:
awsConfigPath:
description: |-
AwsConfigPath is the path where the Aws config is stored for hybrid nodes.
This field is only used to init phase
type: string
certificatePath:
description: CertificatePath is the location on disk for the
certificate used to authenticate with AWS.
type: string
nodeName:
description: NodeName is the name the node will adopt.
type: string
privateKeyPath:
description: PrivateKeyPath is the location on disk for the
certificate's private key.
type: string
profileArn:
description: ProfileARN is the ARN of the profile linked with
the Hybrid IAM Role.
type: string
roleArn:
description: RoleARN is the role to IAM roles anywhere gets
authorized as to get temporary credentials.
type: string
trustAnchorArn:
description: TrustAnchorARN is the ARN of the trust anchor.
type: string
type: object
ssm:
description: |-
SSM includes Systems Manager specific configuration and is mutually exclusive with
IAMRolesAnywhere.
properties:
activationCode:
description: ActivationCode is the token generated when creating
an SSM activation.
type: string
activationId:
description: ActivationToken is the ID generated when creating
an SSM activation.
type: string
type: object
type: object
instance:
description: InstanceOptions determines how the node's operating system
and devices are configured.
properties:
localStorage:
description: |-
LocalStorageOptions control how [EC2 instance stores](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html)
are used when available.
properties:
strategy:
description: LocalStorageStrategy specifies how to handle
an instance's local storage devices.
enum:
- RAID0
- Mount
type: string
type: object
type: object
kubelet:
description: KubeletOptions are additional parameters passed to `kubelet`.
properties:
config:
additionalProperties:
type: object
x-kubernetes-preserve-unknown-fields: true
description: |-
Config is a [`KubeletConfiguration`](https://kubernetes.io/docs/reference/config-api/kubelet-config.v1/)
that will be merged with the defaults.
type: object
flags:
description: |-
Flags are [command-line `kubelet`` arguments](https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/).
that will be appended to the defaults.
items:
type: string
type: array
type: object
type: object
type: object
served: true
storage: true