Embedded Cluster Config
This topic is a reference for the Replicated Embedded Cluster Config custom resource. For more information about Embedded Cluster, see Using Embedded Cluster.
Overview
To install your application with Embedded Cluster, an Embedded Cluster Config must be included in the release. Embedded Cluster installation artifacts are available only for releases that include an Embedded Cluster Config.
The Embedded Cluster Config lets you define several aspects of the Kubernetes cluster that will be created.
Limitation
The Embedded Cluster Config does not support the use of Go template functions, including KOTS template functions.
For additional property-specific limitations, see the sections below.
Example
apiVersion: embeddedcluster.replicated.com/v1beta1
kind: Config
spec:
version: 2.1.3+k8s-1.30
roles:
controller:
name: management
labels:
management: "true"
custom:
- name: app
labels:
app: "true"
domains:
proxyRegistryDomain: proxy.yourcompany.com
replicatedAppDomain: updates.yourcompany.com
extensions:
helm:
repositories:
- name: ingress-nginx
url: https://kubernetes.github.io/ingress-nginx
charts:
- name: ingress-nginx
chartname: ingress-nginx/ingress-nginx
namespace: ingress-nginx
version: "4.8.3"
values: |
controller:
service:
type: NodePort
nodePorts:
http: "80"
https: "443"
# Known issue: Only use image tags for multi-architecture images.
# Set digest to empty string to ensure the air gap builder uses
# single-architecture images.
image:
digest: ""
digestChroot: ""
admissionWebhooks:
patch:
image:
digest: ""
version
You must specify which version of Embedded Cluster to install. Each version of Embedded Cluster includes particular versions of components like KOTS (Admin Console) and OpenEBS.
For a full list of versions, see the Embedded Cluster releases page in GitHub. It's recommended to keep this version as up to date as possible because Embedded Cluster is changing rapidly.
roles
You can optionally customize node roles in the Embedded Cluster Config using the roles
key.
If the roles
key is configured, users select one or more roles to assign to a node when it is joined to the cluster. A single node can be assigned:
- The
controller
role, which designates nodes that run the Kubernetes control plane - One or more
custom
roles - Both the
controller
role and one or morecustom
roles
For more information about how to assign node roles in the Admin Console, see Managing Multi-Node Clusters with Embedded Cluster.
If the roles
key is not configured, all nodes joined to the cluster are assigned the controller
role. The controller
role designates nodes that run the Kubernetes control plane. Controller nodes can also run other workloads, such as application or Replicated KOTS workloads.
For more information, see the sections below.
controller
By default, all nodes joined to a cluster are assigned the controller
role.
You can customize the controller
role in the following ways:
- Change the
name
that is assigned to controller nodes. By default, controller nodes are named “controller”. If you plan to create anycustom
roles, Replicated recommends that you change the default name for thecontroller
role to a term that is easy to understand, such as "management". This is because, when you addcustom
roles, both the name of thecontroller
role and the names of anycustom
roles are displayed to the user when they join a node. - Add one or more
labels
to be assigned to all controller nodes. See labels.
Example
apiVersion: embeddedcluster.replicated.com/v1beta1
kind: Config
spec:
roles:
controller:
name: management
labels:
management: "true" # Label applied to "management" nodes