---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.12.0
  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
                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
              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
