---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.11.4
  name: etcdadmconfigs.bootstrap.cluster.x-k8s.io
spec:
  group: bootstrap.cluster.x-k8s.io
  names:
    kind: EtcdadmConfig
    listKind: EtcdadmConfigList
    plural: etcdadmconfigs
    singular: etcdadmconfig
  scope: Namespaced
  versions:
  - name: v1alpha3
    schema:
      openAPIV3Schema:
        description: EtcdadmConfig is the Schema for the etcdadmconfigs API
        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:
            description: EtcdadmConfigSpec defines the desired state of EtcdadmConfig
            properties:
              bottlerocketConfig:
                description: BottlerocketConfig specifies the configuration for the
                  bottlerocket bootstrap data
                properties:
                  adminImage:
                    description: AdminImage specifies the admin container image to
                      use for bottlerocket.
                    type: string
                  boot:
                    description: Boot specifies boot settings for bottlerocket
                    properties:
                      bootKernelParameters:
                        additionalProperties:
                          items:
                            type: string
                          type: array
                        type: object
                    type: object
                  bootstrapImage:
                    description: BootstrapImage specifies the container image to use
                      for bottlerocket's bootstrapping
                    type: string
                  controlImage:
                    description: ControlImage specifies the control container image
                      to use for bottlerocket.
                    type: string
                  customBootstrapContainers:
                    description: CustomBootstrapContainers adds additional bootstrap
                      containers for bottlerocket.
                    items:
                      description: BottlerocketBootstrapContainer holds the bootstrap
                        container setting for bottlerocket.
                      properties:
                        essential:
                          description: Essential decides whether or not the container
                            should fail the boot process. Bootstrap containers configured
                            with essential = true will stop the boot process if they
                            exit code is a non-zero value. Default is false.
                          type: boolean
                        image:
                          description: Image is the actual image used for Bottlerocket
                            bootstrap.
                          type: string
                        mode:
                          description: Mode represents the bootstrap container mode.
                          enum:
                          - always
                          - "off"
                          - once
                          type: string
                        name:
                          description: Name is the bootstrap container name that will
                            be given to the container in BR's `apiserver`.
                          type: string
                        userData:
                          description: UserData is the base64-encoded userdata.
                          type: string
                      required:
                      - image
                      - mode
                      - name
                      type: object
                    type: array
                  customHostContainers:
                    description: CustomHostContainers adds additional host containers
                      for bottlerocket.
                    items:
                      description: BottlerocketHostContainer holds the host container
                        setting for bottlerocket.
                      properties:
                        image:
                          description: Image is the actual location of the host container
                            image.
                          type: string
                        name:
                          description: Name is the host container name that will be
                            given to the container in BR's `apiserver`
                          type: string
                        superpowered:
                          description: Superpowered indicates if the container will
                            be superpowered
                          type: boolean
                        userData:
                          description: UserData is the userdata that will be attached
                            to the image.
                          type: string
                      required:
                      - image
                      - name
                      - superpowered
                      type: object
                    type: array
                  etcdImage:
                    description: EtcdImage specifies the etcd image to use by etcdadm
                    type: string
                  kernel:
                    description: Kernel specifies additional kernel settings for bottlerocket
                    properties:
                      sysctlSettings:
                        additionalProperties:
                          type: string
                        description: SysctlSettings defines the kernel sysctl settings
                          to set for bottlerocket nodes.
                        type: object
                    type: object
                  pauseImage:
                    description: PauseImage specifies the image to use for the pause
                      container
                    type: string
                required:
                - bootstrapImage
                - pauseImage
                type: object
              certBundles:
                description: Certbundle holds additional cert bundles.
                items:
                  description: CertBundle holds the cert data.
                  properties:
                    data:
                      description: Data is the actual cert.
                      type: string
                    name:
                      description: Name is the name of the cert bundle.
                      type: string
                  required:
                  - data
                  - name
                  type: object
                type: array
              cipherSuites:
                description: CipherSuites is a list of comma-delimited supported TLS
                  cipher suites, mapping to the --cipher-suites flag. Default is empty,
                  which means that they will be auto-populated by Go.
                type: string
              cloudInitConfig:
                description: CloudInitConfig specifies the configuration for the cloud-init
                  bootstrap data
                properties:
                  etcdReleaseURL:
                    description: EtcdReleaseURL is an optional field to specify where
                      etcdadm can download etcd from
                    type: string
                  installDir:
                    description: InstallDir is an optional field to specify where
                      etcdadm will extract etcd binaries to
                    type: string
                  version:
                    type: string
                type: object
              etcdadmBuiltin:
                type: boolean
              etcdadmInstallCommands:
                items:
                  type: string
                type: array
              files:
                description: Files specifies extra files to be passed to user_data
                  upon creation.
                items:
                  description: File defines the input for generating write_files in
                    cloud-init.
                  properties:
                    append:
                      description: Append specifies whether to append Content to existing
                        file if Path exists.
                      type: boolean
                    content:
                      description: Content is the actual content of the file.
                      type: string
                    contentFrom:
                      description: ContentFrom is a referenced source of content to
                        populate the file.
                      properties:
                        secret:
                          description: Secret represents a secret that should populate
                            this file.
                          properties:
                            key:
                              description: Key is the key in the secret's data map
                                for this value.
                              type: string
                            name:
                              description: Name of the secret in the KubeadmBootstrapConfig's
                                namespace to use.
                              type: string
                          required:
                          - key
                          - name
                          type: object
                      required:
                      - secret
                      type: object
                    encoding:
                      description: Encoding specifies the encoding of the file contents.
                      enum:
                      - base64
                      - gzip
                      - gzip+base64
                      type: string
                    owner:
                      description: Owner specifies the ownership of the file, e.g.
                        "root:root".
                      type: string
                    path:
                      description: Path specifies the full path on disk where to store
                        the file.
                      type: string
                    permissions:
                      description: Permissions specifies the permissions to assign
                        to the file, e.g. "0640".
                      type: string
                  required:
                  - path
                  type: object
                type: array
              format:
                description: Format specifies the output format of the bootstrap data
                enum:
                - cloud-config
                - bottlerocket
                type: string
              ntp:
                description: NTP specifies NTP configuration
                properties:
                  enabled:
                    description: Enabled specifies whether NTP should be enabled
                    type: boolean
                  servers:
                    description: Servers specifies which NTP servers to use
                    items:
                      type: string
                    type: array
                type: object
              postEtcdadmCommands:
                description: PostEtcdadmCommands specifies extra commands to run after
                  kubeadm runs
                items:
                  type: string
                type: array
              preEtcdadmCommands:
                description: PreEtcdadmCommands specifies extra commands to run before
                  kubeadm runs
                items:
                  type: string
                type: array
              proxy:
                description: Proxy holds the https and no proxy information This is
                  only used for bottlerocket
                properties:
                  httpProxy:
                    description: HTTP Proxy
                    type: string
                  httpsProxy:
                    description: HTTPS proxy
                    type: string
                  noProxy:
                    description: No proxy, list of ips that should not use proxy
                    items:
                      type: string
                    type: array
                type: object
              registryMirror:
                description: RegistryMirror holds the image registry mirror information
                  This is only used for bottlerocket
                properties:
                  caCert:
                    description: CACert defines the CA cert for the registry mirror
                    type: string
                  endpoint:
                    description: Endpoint defines the registry mirror endpoint to
                      use for pulling images
                    type: string
                type: object
              users:
                description: Users specifies extra users to add
                items:
                  description: User defines the input for a generated user in cloud-init.
                  properties:
                    gecos:
                      description: Gecos specifies the gecos to use for the user
                      type: string
                    groups:
                      description: Groups specifies the additional groups for the
                        user
                      type: string
                    homeDir:
                      description: HomeDir specifies the home directory to use for
                        the user
                      type: string
                    inactive:
                      description: Inactive specifies whether to mark the user as
                        inactive
                      type: boolean
                    lockPassword:
                      description: LockPassword specifies if password login should
                        be disabled
                      type: boolean
                    name:
                      description: Name specifies the user name
                      type: string
                    passwd:
                      description: Passwd specifies a hashed password for the user
                      type: string
                    passwdFrom:
                      description: PasswdFrom is a referenced source of passwd to
                        populate the passwd.
                      properties:
                        secret:
                          description: Secret represents a secret that should populate
                            this password.
                          properties:
                            key:
                              description: Key is the key in the secret's data map
                                for this value.
                              type: string
                            name:
                              description: Name of the secret in the KubeadmBootstrapConfig's
                                namespace to use.
                              type: string
                          required:
                          - key
                          - name
                          type: object
                      required:
                      - secret
                      type: object
                    primaryGroup:
                      description: PrimaryGroup specifies the primary group for the
                        user
                      type: string
                    shell:
                      description: Shell specifies the user's shell
                      type: string
                    sshAuthorizedKeys:
                      description: SSHAuthorizedKeys specifies a list of ssh authorized
                        keys for the user
                      items:
                        type: string
                      type: array
                    sudo:
                      description: Sudo specifies a sudo role for the user
                      type: string
                  required:
                  - name
                  type: object
                type: array
            type: object
          status:
            description: EtcdadmConfigStatus defines the observed state of EtcdadmConfig
            properties:
              conditions:
                description: Conditions defines current service state of the KubeadmConfig.
                items:
                  description: Condition defines an observation of a Cluster API resource
                    operational state.
                  properties:
                    lastTransitionTime:
                      description: Last time the condition transitioned from one status
                        to another. This should be when the underlying condition changed.
                        If that is not known, then using the time when the API field
                        changed is acceptable.
                      format: date-time
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition. This field may be empty.
                      type: string
                    reason:
                      description: The reason for the condition's last transition
                        in CamelCase. The specific API may choose whether or not this
                        field is considered a guaranteed API. This field may not be
                        empty.
                      type: string
                    severity:
                      description: Severity provides an explicit classification of
                        Reason code, so the users or machines can immediately understand
                        the current situation and act accordingly. The Severity field
                        MUST be set only when Status=False.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of condition in CamelCase or in foo.example.com/CamelCase.
                        Many .condition.type values are consistent across resources
                        like Available, but because arbitrary conditions can be useful
                        (see .node.status.conditions), the ability to deconflict is
                        important.
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              dataSecretName:
                type: string
              ready:
                type: boolean
            type: object
        type: object
    served: true
    storage: false
    subresources:
      status: {}
  - name: v1beta1
    schema:
      openAPIV3Schema:
        description: EtcdadmConfig is the Schema for the etcdadmconfigs API
        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:
            description: EtcdadmConfigSpec defines the desired state of EtcdadmConfig
            properties:
              bottlerocketConfig:
                description: BottlerocketConfig specifies the configuration for the
                  bottlerocket bootstrap data
                properties:
                  adminImage:
                    description: AdminImage specifies the admin container image to
                      use for bottlerocket.
                    type: string
                  boot:
                    description: Boot specifies boot settings for bottlerocket
                    properties:
                      bootKernelParameters:
                        additionalProperties:
                          items:
                            type: string
                          type: array
                        type: object
                    type: object
                  bootstrapImage:
                    description: BootstrapImage specifies the container image to use
                      for bottlerocket's bootstrapping
                    type: string
                  controlImage:
                    description: ControlImage specifies the control container image
                      to use for bottlerocket.
                    type: string
                  customBootstrapContainers:
                    description: CustomBootstrapContainers adds additional bootstrap
                      containers for bottlerocket.
                    items:
                      description: BottlerocketBootstrapContainer holds the bootstrap
                        container setting for bottlerocket.
                      properties:
                        essential:
                          description: Essential decides whether or not the container
                            should fail the boot process. Bootstrap containers configured
                            with essential = true will stop the boot process if they
                            exit code is a non-zero value. Default is false.
                          type: boolean
                        image:
                          description: Image is the actual image used for Bottlerocket
                            bootstrap.
                          type: string
                        mode:
                          description: Mode represents the bootstrap container mode.
                          enum:
                          - always
                          - "off"
                          - once
                          type: string
                        name:
                          description: Name is the bootstrap container name that will
                            be given to the container in BR's `apiserver`.
                          type: string
                        userData:
                          description: UserData is the base64-encoded userdata.
                          type: string
                      required:
                      - image
                      - mode
                      - name
                      type: object
                    type: array
                  customHostContainers:
                    description: CustomHostContainers adds additional host containers
                      for bottlerocket.
                    items:
                      description: BottlerocketHostContainer holds the host container
                        setting for bottlerocket.
                      properties:
                        image:
                          description: Image is the actual location of the host container
                            image.
                          type: string
                        name:
                          description: Name is the host container name that will be
                            given to the container in BR's `apiserver`
                          type: string
                        superpowered:
                          description: Superpowered indicates if the container will
                            be superpowered
                          type: boolean
                        userData:
                          description: UserData is the userdata that will be attached
                            to the image.
                          type: string
                      required:
                      - image
                      - name
                      - superpowered
                      type: object
                    type: array
                  etcdImage:
                    description: EtcdImage specifies the etcd image to use by etcdadm
                    type: string
                  kernel:
                    description: Kernel specifies additional kernel settings for bottlerocket
                    properties:
                      sysctlSettings:
                        additionalProperties:
                          type: string
                        description: SysctlSettings defines the kernel sysctl settings
                          to set for bottlerocket nodes.
                        type: object
                    type: object
                  pauseImage:
                    description: PauseImage specifies the image to use for the pause
                      container
                    type: string
                required:
                - bootstrapImage
                - pauseImage
                type: object
              certBundles:
                description: Certbundle holds additional cert bundles.
                items:
                  description: CertBundle holds the cert data.
                  properties:
                    data:
                      description: Data is the actual cert.
                      type: string
                    name:
                      description: Name is the name of the cert bundle.
                      type: string
                  required:
                  - data
                  - name
                  type: object
                type: array
              cipherSuites:
                description: CipherSuites is a list of comma-delimited supported TLS
                  cipher suites, mapping to the --cipher-suites flag. Default is empty,
                  which means that they will be auto-populated by Go.
                type: string
              cloudInitConfig:
                description: CloudInitConfig specifies the configuration for the cloud-init
                  bootstrap data
                properties:
                  etcdReleaseURL:
                    description: EtcdReleaseURL is an optional field to specify where
                      etcdadm can download etcd from
                    type: string
                  installDir:
                    description: InstallDir is an optional field to specify where
                      etcdadm will extract etcd binaries to
                    type: string
                  version:
                    type: string
                type: object
              etcdadmBuiltin:
                type: boolean
              etcdadmInstallCommands:
                items:
                  type: string
                type: array
              files:
                description: Files specifies extra files to be passed to user_data
                  upon creation.
                items:
                  description: File defines the input for generating write_files in
                    cloud-init.
                  properties:
                    append:
                      description: Append specifies whether to append Content to existing
                        file if Path exists.
                      type: boolean
                    content:
                      description: Content is the actual content of the file.
                      type: string
                    contentFrom:
                      description: ContentFrom is a referenced source of content to
                        populate the file.
                      properties:
                        secret:
                          description: Secret represents a secret that should populate
                            this file.
                          properties:
                            key:
                              description: Key is the key in the secret's data map
                                for this value.
                              type: string
                            name:
                              description: Name of the secret in the KubeadmBootstrapConfig's
                                namespace to use.
                              type: string
                          required:
                          - key
                          - name
                          type: object
                      required:
                      - secret
                      type: object
                    encoding:
                      description: Encoding specifies the encoding of the file contents.
                      enum:
                      - base64
                      - gzip
                      - gzip+base64
                      type: string
                    owner:
                      description: Owner specifies the ownership of the file, e.g.
                        "root:root".
                      type: string
                    path:
                      description: Path specifies the full path on disk where to store
                        the file.
                      type: string
                    permissions:
                      description: Permissions specifies the permissions to assign
                        to the file, e.g. "0640".
                      type: string
                  required:
                  - path
                  type: object
                type: array
              format:
                description: Format specifies the output format of the bootstrap data
                enum:
                - cloud-config
                - bottlerocket
                type: string
              ntp:
                description: NTP specifies NTP configuration
                properties:
                  enabled:
                    description: Enabled specifies whether NTP should be enabled
                    type: boolean
                  servers:
                    description: Servers specifies which NTP servers to use
                    items:
                      type: string
                    type: array
                type: object
              postEtcdadmCommands:
                description: PostEtcdadmCommands specifies extra commands to run after
                  kubeadm runs
                items:
                  type: string
                type: array
              preEtcdadmCommands:
                description: PreEtcdadmCommands specifies extra commands to run before
                  kubeadm runs
                items:
                  type: string
                type: array
              proxy:
                description: Proxy holds the https and no proxy information This is
                  only used for bottlerocket
                properties:
                  httpProxy:
                    description: HTTP Proxy
                    type: string
                  httpsProxy:
                    description: HTTPS proxy
                    type: string
                  noProxy:
                    description: No proxy, list of ips that should not use proxy
                    items:
                      type: string
                    type: array
                type: object
              registryMirror:
                description: RegistryMirror holds the image registry mirror information
                  This is only used for bottlerocket
                properties:
                  caCert:
                    description: CACert defines the CA cert for the registry mirror
                    type: string
                  endpoint:
                    description: Endpoint defines the registry mirror endpoint to
                      use for pulling images
                    type: string
                type: object
              users:
                description: Users specifies extra users to add
                items:
                  description: User defines the input for a generated user in cloud-init.
                  properties:
                    gecos:
                      description: Gecos specifies the gecos to use for the user
                      type: string
                    groups:
                      description: Groups specifies the additional groups for the
                        user
                      type: string
                    homeDir:
                      description: HomeDir specifies the home directory to use for
                        the user
                      type: string
                    inactive:
                      description: Inactive specifies whether to mark the user as
                        inactive
                      type: boolean
                    lockPassword:
                      description: LockPassword specifies if password login should
                        be disabled
                      type: boolean
                    name:
                      description: Name specifies the user name
                      type: string
                    passwd:
                      description: Passwd specifies a hashed password for the user
                      type: string
                    passwdFrom:
                      description: PasswdFrom is a referenced source of passwd to
                        populate the passwd.
                      properties:
                        secret:
                          description: Secret represents a secret that should populate
                            this password.
                          properties:
                            key:
                              description: Key is the key in the secret's data map
                                for this value.
                              type: string
                            name:
                              description: Name of the secret in the KubeadmBootstrapConfig's
                                namespace to use.
                              type: string
                          required:
                          - key
                          - name
                          type: object
                      required:
                      - secret
                      type: object
                    primaryGroup:
                      description: PrimaryGroup specifies the primary group for the
                        user
                      type: string
                    shell:
                      description: Shell specifies the user's shell
                      type: string
                    sshAuthorizedKeys:
                      description: SSHAuthorizedKeys specifies a list of ssh authorized
                        keys for the user
                      items:
                        type: string
                      type: array
                    sudo:
                      description: Sudo specifies a sudo role for the user
                      type: string
                  required:
                  - name
                  type: object
                type: array
            type: object
          status:
            description: EtcdadmConfigStatus defines the observed state of EtcdadmConfig
            properties:
              conditions:
                description: Conditions defines current service state of the KubeadmConfig.
                items:
                  description: Condition defines an observation of a Cluster API resource
                    operational state.
                  properties:
                    lastTransitionTime:
                      description: Last time the condition transitioned from one status
                        to another. This should be when the underlying condition changed.
                        If that is not known, then using the time when the API field
                        changed is acceptable.
                      format: date-time
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition. This field may be empty.
                      type: string
                    reason:
                      description: The reason for the condition's last transition
                        in CamelCase. The specific API may choose whether or not this
                        field is considered a guaranteed API. This field may not be
                        empty.
                      type: string
                    severity:
                      description: Severity provides an explicit classification of
                        Reason code, so the users or machines can immediately understand
                        the current situation and act accordingly. The Severity field
                        MUST be set only when Status=False.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of condition in CamelCase or in foo.example.com/CamelCase.
                        Many .condition.type values are consistent across resources
                        like Available, but because arbitrary conditions can be useful
                        (see .node.status.conditions), the ability to deconflict is
                        important.
                      type: string
                  required:
                  - lastTransitionTime
                  - status
                  - type
                  type: object
                type: array
              dataSecretName:
                type: string
              ready:
                type: boolean
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
