config/crd/bases/anywhere.eks.amazonaws.com_clusters.yaml (747 lines of code) (raw):
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.2
name: clusters.anywhere.eks.amazonaws.com
spec:
group: anywhere.eks.amazonaws.com
names:
kind: Cluster
listKind: ClusterList
plural: clusters
singular: cluster
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: Cluster is the Schema for the clusters 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: ClusterSpec defines the desired state of Cluster.
properties:
bundlesRef:
description: |-
BundlesRef contains a reference to the Bundles containing the desired dependencies for the cluster.
DEPRECATED: Use EksaVersion instead.
properties:
apiVersion:
description: APIVersion refers to the Bundles APIVersion
type: string
name:
description: Name refers to the name of the Bundles object in
the cluster
type: string
namespace:
description: Namespace refers to the Bundles's namespace
type: string
required:
- apiVersion
- name
- namespace
type: object
clusterNetwork:
properties:
cni:
description: Deprecated. Use CNIConfig
type: string
cniConfig:
description: CNIConfig specifies the CNI plugin to be installed
in the cluster
properties:
cilium:
description: CiliumConfig contains configuration specific
to the Cilium CNI.
properties:
egressMasqueradeInterfaces:
description: EgressMasquaradeInterfaces determines which
network interfaces are used for masquerading. Accepted
values are a valid interface name or interface prefix.
type: string
ipv4NativeRoutingCIDR:
description: |-
IPv4NativeRoutingCIDR specifies the CIDR to use when RoutingMode is set to direct.
When specified, Cilium assumes networking for this CIDR is preconfigured and
hands traffic destined for that range to the Linux network stack without
applying any SNAT.
If this is not set autoDirectNodeRoutes will be set to true
type: string
ipv6NativeRoutingCIDR:
description: |-
IPv6NativeRoutingCIDR specifies the IPv6 CIDR to use when RoutingMode is set to direct.
When specified, Cilium assumes networking for this CIDR is preconfigured and
hands traffic destined for that range to the Linux network stack without
applying any SNAT.
If this is not set autoDirectNodeRoutes will be set to true
type: string
policyEnforcementMode:
description: PolicyEnforcementMode determines communication
allowed between pods. Accepted values are default, always,
never.
type: string
routingMode:
description: |-
RoutingMode indicates the routing tunnel mode to use for Cilium. Accepted values are overlay (geneve tunnel with overlay)
or direct (tunneling disabled with direct routing)
Defaults to overlay.
type: string
skipUpgrade:
description: |-
SkipUpgrade indicicates that Cilium maintenance should be skipped during upgrades. This can
be used when operators wish to self manage the Cilium installation.
type: boolean
type: object
kindnetd:
description: KindnetdConfig contains configuration specific
to the Kindnetd CNI.
type: object
type: object
dns:
properties:
resolvConf:
description: ResolvConf refers to the DNS resolver configuration
properties:
path:
description: Path defines the path to the file that contains
the DNS resolver configuration
type: string
type: object
type: object
nodes:
properties:
cidrMaskSize:
description: CIDRMaskSize defines the mask size for node cidr
in the cluster, default for ipv4 is 24. This is an optional
field
type: integer
type: object
pods:
description: |-
Comma-separated list of CIDR blocks to use for pod and service subnets.
Defaults to 192.168.0.0/16 for pod subnet.
properties:
cidrBlocks:
items:
type: string
type: array
type: object
services:
properties:
cidrBlocks:
items:
type: string
type: array
type: object
type: object
controlPlaneConfiguration:
properties:
apiServerExtraArgs:
additionalProperties:
type: string
description: APIServerExtraArgs defines the flags to configure
for the API server.
type: object
certSans:
description: |-
CertSANs is a slice of domain names or IPs to be added as Subject Name Alternatives of the
Kube API Servers Certificate.
items:
type: string
type: array
count:
description: Count defines the number of desired control plane
nodes. Defaults to 1.
type: integer
endpoint:
description: Endpoint defines the host ip and port to use for
the control plane.
properties:
host:
description: Host defines the ip that you want to use to connect
to the control plane
type: string
required:
- host
type: object
kubeletConfiguration:
description: KubeletConfiguration is a struct that exposes the
Kubelet settings for the user to set on control plane nodes.
type: object
x-kubernetes-preserve-unknown-fields: true
labels:
additionalProperties:
type: string
description: Labels define the labels to assign to the node
type: object
machineGroupRef:
description: MachineGroupRef defines the machine group configuration
for the control plane.
properties:
kind:
type: string
name:
type: string
type: object
machineHealthCheck:
description: MachineHealthCheck is a control-plane level override
for the timeouts and maxUnhealthy specified in the top-level
MHC configuration. If not configured, the defaults in the top-level
MHC configuration are used.
properties:
maxUnhealthy:
anyOf:
- type: integer
- type: string
description: MaxUnhealthy is used to configure the maximum
number of unhealthy machines in machine health checks. This
setting applies to both control plane and worker machines.
If the number of unhealthy machines exceeds the limit set
by maxUnhealthy, further remediation will not be performed.
If not configured, the default value is set to "100%" for
controlplane machines and "40%" for worker machines.
x-kubernetes-int-or-string: true
nodeStartupTimeout:
description: NodeStartupTimeout is used to configure the node
startup timeout in machine health checks. It determines
how long a MachineHealthCheck should wait for a Node to
join the cluster, before considering a Machine unhealthy.
If not configured, the default value is set to "10m0s" (10
minutes) for all providers. For Tinkerbell provider the
default is "20m0s".
type: string
unhealthyMachineTimeout:
description: UnhealthyMachineTimeout is used to configure
the unhealthy machine timeout in machine health checks.
If any unhealthy conditions are met for the amount of time
specified as the timeout, the machines are considered unhealthy.
If not configured, the default value is set to "5m0s" (5
minutes).
type: string
type: object
skipLoadBalancerDeployment:
description: |-
SkipLoadBalancerDeployment skip deploying control plane load balancer.
Make sure your infrastructure can handle control plane load balancing when you set this field to true.
type: boolean
taints:
description: Taints define the set of taints to be applied on
control plane nodes
items:
description: |-
The node this Taint is attached to has the "effect" on
any pod that does not tolerate the Taint.
properties:
effect:
description: |-
Required. The effect of the taint on pods
that do not tolerate the taint.
Valid effects are NoSchedule, PreferNoSchedule and NoExecute.
type: string
key:
description: Required. The taint key to be applied to a
node.
type: string
timeAdded:
description: |-
TimeAdded represents the time at which the taint was added.
It is only written for NoExecute taints.
format: date-time
type: string
value:
description: The taint value corresponding to the taint
key.
type: string
required:
- effect
- key
type: object
type: array
upgradeRolloutStrategy:
description: |-
UpgradeRolloutStrategy determines the rollout strategy to use for rolling upgrades
and related parameters/knobs
properties:
rollingUpdate:
description: ControlPlaneRollingUpdateParams is API for rolling
update strategy knobs.
properties:
maxSurge:
type: integer
required:
- maxSurge
type: object
type:
description: UpgradeRolloutStrategyType defines the types
of upgrade rollout strategies.
type: string
type: object
type: object
datacenterRef:
properties:
kind:
type: string
name:
type: string
type: object
eksaVersion:
description: EksaVersion is the semver identifying the release of
eks-a used to populate the cluster components.
type: string
etcdEncryption:
items:
description: EtcdEncryption defines the configuration for ETCD encryption.
properties:
providers:
items:
description: |-
EtcdEncryptionProvider defines the configuration for ETCD encryption providers.
Currently only KMS provider is supported.
properties:
kms:
description: KMS defines the configuration for KMS Encryption
provider.
properties:
cachesize:
description: |-
CacheSize defines the maximum number of encrypted objects to be cached in memory. The default value is 1000.
You can set this to a negative value to disable caching.
format: int32
type: integer
name:
description: Name defines the name of KMS plugin to
be used.
type: string
socketListenAddress:
description: SocketListenAddress defines a UNIX socket
address that the KMS provider listens on.
type: string
timeout:
description: Timeout for kube-apiserver to wait for
KMS plugin. Default is 3s.
type: string
required:
- name
- socketListenAddress
type: object
required:
- kms
type: object
type: array
resources:
description: Resources defines a list of objects and custom
resources definitions that should be encrypted.
items:
type: string
type: array
required:
- providers
- resources
type: object
type: array
externalEtcdConfiguration:
description: ExternalEtcdConfiguration defines the configuration options
for using unstacked etcd topology.
properties:
count:
type: integer
machineGroupRef:
description: MachineGroupRef defines the machine group configuration
for the etcd machines.
properties:
kind:
type: string
name:
type: string
type: object
type: object
gitOpsRef:
properties:
kind:
type: string
name:
type: string
type: object
identityProviderRefs:
items:
properties:
kind:
type: string
name:
type: string
type: object
type: array
kubernetesVersion:
type: string
licenseToken:
type: string
machineHealthCheck:
description: |-
MachineHealthCheck allows to configure timeouts for machine health checks. Machine Health Checks are responsible for remediating unhealthy Machines.
Configuring these values will decide how long to wait to remediate unhealthy machine or determine health of nodes' machines.
properties:
maxUnhealthy:
anyOf:
- type: integer
- type: string
description: MaxUnhealthy is used to configure the maximum number
of unhealthy machines in machine health checks. This setting
applies to both control plane and worker machines. If the number
of unhealthy machines exceeds the limit set by maxUnhealthy,
further remediation will not be performed. If not configured,
the default value is set to "100%" for controlplane machines
and "40%" for worker machines.
x-kubernetes-int-or-string: true
nodeStartupTimeout:
description: NodeStartupTimeout is used to configure the node
startup timeout in machine health checks. It determines how
long a MachineHealthCheck should wait for a Node to join the
cluster, before considering a Machine unhealthy. If not configured,
the default value is set to "10m0s" (10 minutes) for all providers.
For Tinkerbell provider the default is "20m0s".
type: string
unhealthyMachineTimeout:
description: UnhealthyMachineTimeout is used to configure the
unhealthy machine timeout in machine health checks. If any unhealthy
conditions are met for the amount of time specified as the timeout,
the machines are considered unhealthy. If not configured, the
default value is set to "5m0s" (5 minutes).
type: string
type: object
managementCluster:
properties:
name:
type: string
type: object
packages:
description: PackageConfiguration for installing EKS Anywhere curated
packages.
properties:
controller:
description: Controller package controller configuration
properties:
digest:
description: Digest package controller digest
type: string
disableWebhooks:
description: DisableWebhooks on package controller
type: boolean
env:
description: Env of package controller in the format `key=value`
items:
type: string
type: array
repository:
description: Repository package controller repository
type: string
resources:
description: Resources of package controller
properties:
limits:
description: ImageResource resources for container image.
properties:
cpu:
description: CPU image cpu
type: string
memory:
description: Memory image memory
type: string
type: object
requests:
description: Requests for image resources
properties:
cpu:
description: CPU image cpu
type: string
memory:
description: Memory image memory
type: string
type: object
type: object
tag:
description: Tag package controller tag
type: string
type: object
cronjob:
description: Cronjob for ecr token refresher
properties:
digest:
description: Digest ecr token refresher digest
type: string
disable:
description: Disable on cron job
type: boolean
repository:
description: Repository ecr token refresher repository
type: string
tag:
description: Tag ecr token refresher tag
type: string
type: object
disable:
description: Disable package controller on cluster
type: boolean
type: object
podIamConfig:
properties:
serviceAccountIssuer:
type: string
required:
- serviceAccountIssuer
type: object
proxyConfiguration:
properties:
httpProxy:
type: string
httpsProxy:
type: string
noProxy:
items:
type: string
type: array
type: object
registryMirrorConfiguration:
description: RegistryMirrorConfiguration defines the settings for
image registry mirror.
properties:
authenticate:
description: Authenticate defines if registry requires authentication
type: boolean
caCertContent:
description: CACertContent defines the contents registry mirror
CA certificate
type: string
endpoint:
description: Endpoint defines the registry mirror endpoint to
use for pulling images
type: string
insecureSkipVerify:
description: |-
InsecureSkipVerify skips the registry certificate verification.
Only use this solution for isolated testing or in a tightly controlled, air-gapped environment.
type: boolean
ociNamespaces:
description: |-
OCINamespaces defines the mapping from an upstream registry to a local namespace where upstream
artifacts are placed into
items:
description: OCINamespace represents an entity in a local reigstry
to group related images.
properties:
namespace:
description: Namespace refers to the name of a namespace
in the local registry
type: string
registry:
description: Registry refers to the name of the upstream
registry
type: string
required:
- namespace
- registry
type: object
type: array
port:
description: Port defines the port exposed for registry mirror
endpoint
type: string
type: object
workerNodeGroupConfigurations:
items:
properties:
autoscalingConfiguration:
description: AutoScalingConfiguration defines the auto scaling
configuration
properties:
maxCount:
description: MaxCount defines the maximum number of nodes
for the associated resource group.
type: integer
minCount:
description: MinCount defines the minimum number of nodes
for the associated resource group.
type: integer
type: object
count:
description: Count defines the number of desired worker nodes.
Defaults to 1.
type: integer
failureDomains:
description: FailureDomains is the optional list of failure
domains to distribute worker nodes across the infrastructure.
items:
type: string
type: array
kubeletConfiguration:
description: KubeletConfiguration is a struct that exposes the
Kubelet settings for the user to set on worker nodes.
type: object
x-kubernetes-preserve-unknown-fields: true
kubernetesVersion:
description: KubernetesVersion defines the version for worker
nodes. If not set, the top level spec kubernetesVersion will
be used.
type: string
labels:
additionalProperties:
type: string
description: Labels define the labels to assign to the node
type: object
machineGroupRef:
description: MachineGroupRef defines the machine group configuration
for the worker nodes.
properties:
kind:
type: string
name:
type: string
type: object
machineHealthCheck:
description: MachineHealthCheck is a worker node level override
for the timeouts and maxUnhealthy specified in the top-level
MHC configuration. If not configured, the defaults in the
top-level MHC configuration are used.
properties:
maxUnhealthy:
anyOf:
- type: integer
- type: string
description: MaxUnhealthy is used to configure the maximum
number of unhealthy machines in machine health checks.
This setting applies to both control plane and worker
machines. If the number of unhealthy machines exceeds
the limit set by maxUnhealthy, further remediation will
not be performed. If not configured, the default value
is set to "100%" for controlplane machines and "40%" for
worker machines.
x-kubernetes-int-or-string: true
nodeStartupTimeout:
description: NodeStartupTimeout is used to configure the
node startup timeout in machine health checks. It determines
how long a MachineHealthCheck should wait for a Node to
join the cluster, before considering a Machine unhealthy.
If not configured, the default value is set to "10m0s"
(10 minutes) for all providers. For Tinkerbell provider
the default is "20m0s".
type: string
unhealthyMachineTimeout:
description: UnhealthyMachineTimeout is used to configure
the unhealthy machine timeout in machine health checks.
If any unhealthy conditions are met for the amount of
time specified as the timeout, the machines are considered
unhealthy. If not configured, the default value is set
to "5m0s" (5 minutes).
type: string
type: object
name:
description: Name refers to the name of the worker node group
type: string
taints:
description: Taints define the set of taints to be applied on
worker nodes
items:
description: |-
The node this Taint is attached to has the "effect" on
any pod that does not tolerate the Taint.
properties:
effect:
description: |-
Required. The effect of the taint on pods
that do not tolerate the taint.
Valid effects are NoSchedule, PreferNoSchedule and NoExecute.
type: string
key:
description: Required. The taint key to be applied to
a node.
type: string
timeAdded:
description: |-
TimeAdded represents the time at which the taint was added.
It is only written for NoExecute taints.
format: date-time
type: string
value:
description: The taint value corresponding to the taint
key.
type: string
required:
- effect
- key
type: object
type: array
upgradeRolloutStrategy:
description: |-
UpgradeRolloutStrategy determines the rollout strategy to use for rolling upgrades
and related parameters/knobs
properties:
rollingUpdate:
description: WorkerNodesRollingUpdateParams is API for rolling
update strategy knobs.
properties:
maxSurge:
type: integer
maxUnavailable:
type: integer
required:
- maxSurge
- maxUnavailable
type: object
type:
description: UpgradeRolloutStrategyType defines the types
of upgrade rollout strategies.
type: string
type: object
type: object
type: array
type: object
status:
description: ClusterStatus defines the observed state of Cluster.
properties:
childrenReconciledGeneration:
description: |-
ChildrenReconciledGeneration represents the sum of the .metadata.generation
for all the linked objects for the cluster, observed the last time the
cluster was successfully reconciled.
NOTE: This field was added for internal use and we do not provide guarantees
to its behavior if changed externally. Its meaning and implementation are
subject to change in the future.
format: int64
type: integer
conditions:
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
eksdReleaseRef:
description: EksdReleaseRef defines the properties of the EKS-D object
on the cluster
properties:
apiVersion:
description: ApiVersion refers to the EKS-D API version
type: string
kind:
description: Kind refers to the Release kind for the EKS-D object
type: string
name:
description: Name refers to the name of the EKS-D object on the
cluster
type: string
namespace:
description: Namespace refers to the namespace for the EKS-D release
resources
type: string
required:
- apiVersion
- kind
- name
- namespace
type: object
failureMessage:
description: Descriptive message about a fatal problem while reconciling
a cluster
type: string
failureReason:
description: |-
Machine readable value about a terminal problem while reconciling the cluster
set at the same time as failureMessage
type: string
observedGeneration:
description: ObservedGeneration is the latest generation observed
by the controller.
format: int64
type: integer
reconciledGeneration:
description: |-
ReconciledGeneration represents the .metadata.generation the last time the
cluster was successfully reconciled. It is the latest generation observed
by the controller.
NOTE: This field was added for internal use and we do not provide guarantees
to its behavior if changed externally. Its meaning and implementation are
subject to change in the future.
format: int64
type: integer
type: object
type: object
served: true
storage: true
subresources:
status: {}