From 5d20dfd54bb5d206f82a9d58052c05f1ecef97b6 Mon Sep 17 00:00:00 2001 From: Taylor Neyland <57606775+taneyland@users.noreply.github.com> Date: Mon, 27 Nov 2023 11:33:46 -0600 Subject: [PATCH] Update optional configuration provider support and etcd (#6538) --- .../vsphere-and-cloudstack-upgrades.md | 2 +- .../getting-started/baremetal/bare-spec.md | 6 ++++++ .../getting-started/cloudstack/cloud-spec.md | 1 + .../getting-started/nutanix/nutanix-spec.md | 15 ++++++++++----- .../docs/getting-started/optional/_index.md | 2 +- .../en/docs/getting-started/optional/cni.md | 5 +++++ .../en/docs/getting-started/optional/etcd.md | 19 ++++++++++++------- .../docs/getting-started/optional/gitops.md | 6 ++++++ .../getting-started/optional/healthchecks.md | 6 ++++++ .../getting-started/optional/hostOSConfig.md | 8 ++++++-- .../docs/getting-started/optional/iamauth.md | 6 ++++++ .../en/docs/getting-started/optional/oidc.md | 5 +++++ .../en/docs/getting-started/optional/proxy.md | 6 ++++++ .../optional/registrymirror.md | 7 +++++++ .../en/docs/getting-started/snow/snow-spec.md | 1 + .../getting-started/vsphere/vsphere-spec.md | 5 +++-- 16 files changed, 82 insertions(+), 18 deletions(-) diff --git a/docs/content/en/docs/clustermgmt/cluster-upgrades/vsphere-and-cloudstack-upgrades.md b/docs/content/en/docs/clustermgmt/cluster-upgrades/vsphere-and-cloudstack-upgrades.md index afc442b9972d..b3c212255a96 100755 --- a/docs/content/en/docs/clustermgmt/cluster-upgrades/vsphere-and-cloudstack-upgrades.md +++ b/docs/content/en/docs/clustermgmt/cluster-upgrades/vsphere-and-cloudstack-upgrades.md @@ -232,7 +232,7 @@ allowing you to upgrade a number of fields simultaneously with the same procedur - `workerNodeGroupConfigurations.count` - `workerNodeGroupConfigurations.machineGroupRef.name` - `workerNodeGroupConfigurations.kubernetesVersion` -- `etcdConfiguration.externalConfiguration.machineGroupRef.name` +- `externalEtcdConfiguration.machineGroupRef.name` - `identityProviderRefs` (Only for `kind:OIDCConfig`, `kind:AWSIamConfig` is immutable) - `gitOpsRef` (Once set, you can't change or delete the field's content later) - `registryMirrorConfiguration` (for non-authenticated registry mirror) diff --git a/docs/content/en/docs/getting-started/baremetal/bare-spec.md b/docs/content/en/docs/getting-started/baremetal/bare-spec.md index 498563fe99c2..d76fc16e076a 100644 --- a/docs/content/en/docs/getting-started/baremetal/bare-spec.md +++ b/docs/content/en/docs/getting-started/baremetal/bare-spec.md @@ -13,6 +13,12 @@ The following additional optional configuration can also be included: * [CNI]({{< relref "../optional/cni.md" >}}) * [Host OS Config]({{< relref "../optional/hostOSConfig.md" >}}) +* [Proxy]({{< relref "../optional/proxy.md" >}}) +* [Gitops]({{< relref "../optional/gitops.md" >}}) +* [IAM Authenticator]({{< relref "../optional/iamauth.md" >}}) +* [OIDC]({{< relref "../optional/oidc.md" >}}) +* [Registry Mirror]({{< relref "../optional/registrymirror.md" >}}) +* [Machine Health Check Timeouts]({{< relref "../optional/healthchecks.md" >}}) To generate your own cluster configuration, follow instructions from the [Create Bare Metal cluster]({{< relref "./baremetal-getstarted" >}}) section and modify it using descriptions below. For information on how to add cluster configuration settings to this file for advanced node configuration, see [Advanced Bare Metal cluster configuration]({{< relref "#advanced-bare-metal-cluster-configuration" >}}). diff --git a/docs/content/en/docs/getting-started/cloudstack/cloud-spec.md b/docs/content/en/docs/getting-started/cloudstack/cloud-spec.md index 5f1bda6855b9..885a8b7f4996 100644 --- a/docs/content/en/docs/getting-started/cloudstack/cloud-spec.md +++ b/docs/content/en/docs/getting-started/cloudstack/cloud-spec.md @@ -17,6 +17,7 @@ The following additional optional configuration can also be included: * [GitOps]({{< relref "../optional/gitops.md" >}}) * [Proxy]({{< relref "../optional/proxy.md" >}}) * [Registry Mirror]({{< relref "../optional/registrymirror.md" >}}) +* [Machine Health Check Timeouts]({{< relref "../optional/healthchecks.md" >}}) ```yaml diff --git a/docs/content/en/docs/getting-started/nutanix/nutanix-spec.md b/docs/content/en/docs/getting-started/nutanix/nutanix-spec.md index c9d1bfff0cad..139148519a54 100644 --- a/docs/content/en/docs/getting-started/nutanix/nutanix-spec.md +++ b/docs/content/en/docs/getting-started/nutanix/nutanix-spec.md @@ -10,6 +10,16 @@ description: > This is a generic template with detailed descriptions below for reference. +The following additional optional configuration can also be included: + +* [CNI]({{< relref "../optional/cni.md" >}}) +* [IAM Authenticator]({{< relref "../optional/iamauth.md" >}}) +* [OIDC]({{< relref "../optional/oidc.md" >}}) +* [Registry Mirror]({{< relref "../optional/registrymirror.md" >}}) +* [Proxy]({{< relref "../optional/proxy.md" >}}) +* [Gitops]({{< relref "../optional/gitops.md" >}}) +* [Machine Health Check Timeouts]({{< relref "../optional/healthchecks.md" >}}) + ```yaml apiVersion: anywhere.eks.amazonaws.com/v1alpha1 kind: Cluster @@ -119,11 +129,6 @@ spec: --- ``` -The following additional optional configuration can also be included: - -* [OIDC]({{< relref "../optional/oidc.md" >}}) -* [Registry Mirror]({{< relref "../optional/registrymirror.md" >}}) - ## Cluster Fields ### name (required) diff --git a/docs/content/en/docs/getting-started/optional/_index.md b/docs/content/en/docs/getting-started/optional/_index.md index 2ed1d4270d28..d6b40f3326c7 100644 --- a/docs/content/en/docs/getting-started/optional/_index.md +++ b/docs/content/en/docs/getting-started/optional/_index.md @@ -8,5 +8,5 @@ aliases: description: > Optional Config references for EKS Anywhere clusters such as etcd, OS, CNI, IRSA, proxy, and registry mirror --- -Configuration pages here describe optional features you can add to your EKS Anywhere provider's clusterspec file. +The configuration pages below describe optional features that you can add to your EKS Anywhere provider's clusterspec file. See each provider's installation section for details on which optional features are supported. diff --git a/docs/content/en/docs/getting-started/optional/cni.md b/docs/content/en/docs/getting-started/optional/cni.md index b8141cb2df48..1578dc2fb242 100644 --- a/docs/content/en/docs/getting-started/optional/cni.md +++ b/docs/content/en/docs/getting-started/optional/cni.md @@ -10,6 +10,11 @@ description: > ### Specifying CNI Plugin in EKS Anywhere cluster spec +#### Provider support details +| | vSphere | Bare Metal | Nutanix | CloudStack | Snow | +|:--------------:|:-------:|:----------:|:-------:|:----------:|:----:| +| **Supported?** | ✓ | ✓ | ✓ | ✓ | ✓ | + EKS Anywhere currently supports two CNI plugins: Cilium and Kindnet. Only one of them can be selected for a cluster, and the plugin cannot be changed once the cluster is created. Up until the 0.7.x releases, the plugin had to be specified using the `cni` field on cluster spec. diff --git a/docs/content/en/docs/getting-started/optional/etcd.md b/docs/content/en/docs/getting-started/optional/etcd.md index b61104a835ae..d4ea38f91b5d 100644 --- a/docs/content/en/docs/getting-started/optional/etcd.md +++ b/docs/content/en/docs/getting-started/optional/etcd.md @@ -8,10 +8,14 @@ description: > EKS Anywhere cluster yaml etcd specification reference --- - >**_NOTE_**: Currently, the Unstacked etcd topology is not supported with the Amazon EKS Anywhere Bare Metal and Nutanix deployment options. - ### Unstacked etcd topology (recommended) -There are two types of etcd topologies for configuring a Kubernetes cluster: + +#### Provider support details +| | vSphere | Bare Metal | Nutanix | CloudStack | Snow | +|:--------------:|:-------:|:----------:|:-------:|:----------:|:----:| +| **Supported?** | ✓ | | | ✓ | ✓ | + +There are two types of etcd topologies for configuring a Kubernetes cluster: * Stacked: The etcd members and control plane components are colocated (run on the same node/machines) * Unstacked/External: With the unstacked or external etcd topology, etcd members have dedicated machines and are not colocated with control plane components @@ -19,9 +23,9 @@ There are two types of etcd topologies for configuring a Kubernetes cluster: The unstacked etcd topology is recommended for a HA cluster for the following reasons: * External etcd topology decouples the control plane components and etcd member. -So if a control plane-only node fails, or if there is a memory leak in a component like kube-apiserver, it won't directly impact an etcd member. + For example, if a control plane-only node fails, or if there is a memory leak in a component like kube-apiserver, it won't directly impact an etcd member. * Etcd is resource intensive, so it is safer to have dedicated nodes for etcd, since it could use more disk space or higher bandwidth. -Having a separate etcd cluster for these reasons could ensure a more resilient HA setup. + Having a separate etcd cluster for these reasons could ensure a more resilient HA setup. EKS Anywhere supports both topologies. In order to configure a cluster with the unstacked/external etcd topology, you need to configure your cluster by updating the configuration file before creating the cluster. @@ -57,7 +61,7 @@ spec: machineGroupRef: kind: VSphereMachineConfig name: my-cluster-name-etcd - kubernetesVersion: "1.19" + kubernetesVersion: "1.27" workerNodeGroupConfigurations: - count: 1 machineGroupRef: @@ -66,11 +70,12 @@ spec: name: md-0 ``` #### externalEtcdConfiguration (under Cluster) -This field accepts any configuration parameters for running external etcd. +External etcd configuration for your Kubernetes cluster. #### count (required) This determines the number of etcd members in the cluster. The recommended number is 3. #### machineGroupRef (required) +Refers to the Kubernetes object with provider specific configuration for your nodes. diff --git a/docs/content/en/docs/getting-started/optional/gitops.md b/docs/content/en/docs/getting-started/optional/gitops.md index 3646889e5eab..e8f4617da59e 100644 --- a/docs/content/en/docs/getting-started/optional/gitops.md +++ b/docs/content/en/docs/getting-started/optional/gitops.md @@ -9,6 +9,12 @@ description: > --- # GitOps Support (Optional) + +#### Provider support details +| | vSphere | Bare Metal | Nutanix | CloudStack | Snow | +|:--------------:|:-------:|:----------:|:-------:|:----------:|:----:| +| **Supported?** | ✓ | ✓ | ✓ | ✓ | ✓ | + EKS Anywhere can create clusters that supports GitOps configuration management with Flux. In order to add GitOps support, you need to configure your cluster by specifying the configuration file with `gitOpsRef` field when creating or upgrading the cluster. We currently support two types of configurations: `FluxConfig` and `GitOpsConfig`. diff --git a/docs/content/en/docs/getting-started/optional/healthchecks.md b/docs/content/en/docs/getting-started/optional/healthchecks.md index 0c8e036aaae9..198601350441 100644 --- a/docs/content/en/docs/getting-started/optional/healthchecks.md +++ b/docs/content/en/docs/getting-started/optional/healthchecks.md @@ -9,6 +9,12 @@ description: > --- ## Machine Health Checks Support + +#### Provider support details +| | vSphere | Bare Metal | Nutanix | CloudStack | Snow | +|:--------------:|:-------:|:----------:|:-------:|:----------:|:----:| +| **Supported?** | ✓ | ✓ | ✓ | ✓ | ✓ | + You can configure EKS Anywhere to specify timeouts for machine health checks. A Machine Health Check is a resource which allows users to define conditions under which Machines within a Cluster should be considered unhealthy. A Machine Health Check is defined on a management cluster and scoped to a particular workload cluster. If not configured in the spec, the default values are used to configure the machine health checks. diff --git a/docs/content/en/docs/getting-started/optional/hostOSConfig.md b/docs/content/en/docs/getting-started/optional/hostOSConfig.md index b9289a62a743..1efa5f44505c 100644 --- a/docs/content/en/docs/getting-started/optional/hostOSConfig.md +++ b/docs/content/en/docs/getting-started/optional/hostOSConfig.md @@ -11,9 +11,13 @@ description: > ## Host OS Configuration You can configure certain host OS settings through EKS Anywhere. +#### Provider support details +| | vSphere | Bare Metal | Nutanix | CloudStack | Snow | +|:--------------:|:-------:|:----------:|:-------:|:----------:|:----:| +| **Supported?** | ✓ | ✓ | | | | + {{% alert title="Note" color="primary" %}} -Currently, these settings are only supported for vSphere and Tinkerbell providers.
-Additionally, settings under `bottlerocketConfiguration` are only supported for `osFamily: bottlerocket` +Settings under `bottlerocketConfiguration` are only supported for `osFamily: bottlerocket` {{% /alert %}} The following cluster spec shows an example of how to configure host OS settings: diff --git a/docs/content/en/docs/getting-started/optional/iamauth.md b/docs/content/en/docs/getting-started/optional/iamauth.md index 21f27af2d659..a1c76ffe3a1f 100644 --- a/docs/content/en/docs/getting-started/optional/iamauth.md +++ b/docs/content/en/docs/getting-started/optional/iamauth.md @@ -9,6 +9,12 @@ description: > --- ## AWS IAM Authenticator support (optional) + +#### Provider support details +| | vSphere | Bare Metal | Nutanix | CloudStack | Snow | +|:--------------:|:-------:|:----------:|:-------:|:----------:|:----:| +| **Supported?** | ✓ | ✓ | ✓ | ✓ | ✓ | + EKS Anywhere can create clusters that support AWS IAM Authenticator-based api server authentication. In order to add IAM Authenticator support, you need to configure your cluster by updating the configuration file before creating the cluster. This is a generic template with detailed descriptions below for reference: diff --git a/docs/content/en/docs/getting-started/optional/oidc.md b/docs/content/en/docs/getting-started/optional/oidc.md index ebc76a5504bc..aba71d12900a 100644 --- a/docs/content/en/docs/getting-started/optional/oidc.md +++ b/docs/content/en/docs/getting-started/optional/oidc.md @@ -12,6 +12,11 @@ description: > ## OIDC support (optional) EKS Anywhere can create clusters that support api server OIDC authentication. +#### Provider support details +| | vSphere | Bare Metal | Nutanix | CloudStack | Snow | +|:--------------:|:-------:|:----------:|:-------:|:----------:|:----:| +| **Supported?** | ✓ | ✓ | ✓ | ✓ | ✓ | + In order to add OIDC support, you need to configure your cluster by updating the configuration file to include the details below. The OIDC configuration can be added at cluster creation time, or introduced via a cluster upgrade in VMware and CloudStack. This is a generic template with detailed descriptions below for reference: diff --git a/docs/content/en/docs/getting-started/optional/proxy.md b/docs/content/en/docs/getting-started/optional/proxy.md index 2341d48ef503..e46587d48e69 100644 --- a/docs/content/en/docs/getting-started/optional/proxy.md +++ b/docs/content/en/docs/getting-started/optional/proxy.md @@ -9,6 +9,12 @@ description: > --- ## Proxy support (optional) + +#### Provider support details +| | vSphere | Bare Metal | Nutanix | CloudStack | Snow | +|:--------------:|:-------:|:----------:|:-------:|:----------:|:----:| +| **Supported?** | ✓ | ✓ | ✓ | ✓ | ✓ | + You can configure EKS Anywhere to use a proxy to connect to the Internet. This is the generic template with proxy configuration for your reference: ```yaml diff --git a/docs/content/en/docs/getting-started/optional/registrymirror.md b/docs/content/en/docs/getting-started/optional/registrymirror.md index 8b4138029a62..7d16d8057aeb 100644 --- a/docs/content/en/docs/getting-started/optional/registrymirror.md +++ b/docs/content/en/docs/getting-started/optional/registrymirror.md @@ -8,6 +8,13 @@ description: > EKS Anywhere cluster specification for registry mirror configuration --- +## Registry Mirror Support (optional) + +#### Provider support details +| | vSphere | Bare Metal | Nutanix | CloudStack | Snow | +|:--------------:|:-------:|:----------:|:-------:|:----------:|:----:| +| **Supported?** | ✓ | ✓ | ✓ | ✓ | ✓ | + You can configure EKS Anywhere to use a local registry mirror for its dependencies. When a registry mirror is configured in the EKS Anywhere cluster specification, EKS Anywhere will use it instead of defaulting to Amazon ECR for its dependencies. For details on how to configure your local registry mirror for EKS Anywhere, see the [Configure local registry mirror]({{< relref "./registrymirror/#configure-local-registry-mirror" >}}) section. See the [airgapped documentation page]({{}}) for instructions on downloading and importing EKS Anywhere dependencies to a local registry mirror. diff --git a/docs/content/en/docs/getting-started/snow/snow-spec.md b/docs/content/en/docs/getting-started/snow/snow-spec.md index 1a76ad07918d..3d10a8c3dccb 100644 --- a/docs/content/en/docs/getting-started/snow/snow-spec.md +++ b/docs/content/en/docs/getting-started/snow/snow-spec.md @@ -17,6 +17,7 @@ The following additional optional configuration can also be included: * [GitOps]({{< relref "../optional/gitops.md" >}}) * [Proxy]({{< relref "../optional/proxy.md" >}}) * [Registry Mirror]({{< relref "../optional/registrymirror.md" >}}) +* [Machine Health Check Timeouts]({{< relref "../optional/healthchecks.md" >}}) ```yaml apiVersion: anywhere.eks.amazonaws.com/v1alpha1 diff --git a/docs/content/en/docs/getting-started/vsphere/vsphere-spec.md b/docs/content/en/docs/getting-started/vsphere/vsphere-spec.md index e9fb06a16263..8f6a3bcec819 100644 --- a/docs/content/en/docs/getting-started/vsphere/vsphere-spec.md +++ b/docs/content/en/docs/getting-started/vsphere/vsphere-spec.md @@ -106,10 +106,11 @@ The following additional optional configuration can also be included: * [IAM Roles for Service Accounts]({{< relref "../optional/irsa.md" >}}) * [IAM Authenticator]({{< relref "../optional/iamauth.md" >}}) * [OIDC]({{< relref "../optional/oidc.md" >}}) -* [gitops]({{< relref "../optional/gitops.md" >}}) -* [proxy]({{< relref "../optional/proxy.md" >}}) +* [Gitops]({{< relref "../optional/gitops.md" >}}) +* [Proxy]({{< relref "../optional/proxy.md" >}}) * [Registry Mirror]({{< relref "../optional/registrymirror.md" >}}) * [Host OS Config]({{< relref "../optional/hostOSConfig.md" >}}) +* [Machine Health Check Timeouts]({{< relref "../optional/healthchecks.md" >}}) ## Cluster Fields