Cluster¶
This section describes the Cluster
resource used the in Mirantis
Container Cloud API that describes the cluster-level parameters.
For demonstration purposes, the Container Cloud Cluster
custom resource (CR) is split into the following major sections:
Warning
The fields of the Cluster
resource that are located
under the status
section including providerStatus
are available for viewing only.
They are automatically generated by the bare metal cloud provider
and must not be modified using Container Cloud API.
metadata¶
The Container Cloud Cluster
CR contains the following fields:
apiVersion
API version of the object that is
cluster.k8s.io/v1alpha1
.
kind
Object type that is
Cluster
.
The metadata
object field of the Cluster
resource
contains the following fields:
name
Name of a cluster. A managed cluster name is specified under the
Cluster Name
field in the Create Cluster wizard of the Container Cloud web UI. A management and regional cluster names are configurable in the bootstrap script.
namespace
Project in which the cluster object was created. The management and regional clusters are created in the
default
project. The managed cluster project equals to the selected project name.
labels
Key-value pairs attached to the object:
kaas.mirantis.com/provider
Provider type that is
baremetal
for the baremetal-based clusters.
kaas.mirantis.com/region
Region name. The default region name for the management cluster is
region-one
. For the regional cluster, it is configurable using theREGION
parameter in the bootstrap script.
Warning
Labels and annotations that are not documented in this API Reference are generated automatically by Container Cloud. Do not modify them using the Container Cloud API.
Configuration example:
apiVersion: cluster.k8s.io/v1alpha1
kind: Cluster
metadata:
name: demo
namespace: test
labels:
kaas.mirantis.com/provider: baremetal
kaas.mirantis.com/region: region-one
spec:providerSpec¶
The spec
object field of the Cluster
object
represents the BaremetalClusterProviderSpec
subresource that
contains a complete description of the desired bare metal cluster
state and all details to create the cluster-level
resources. It also contains the fields required for LCM deployment
and integration of the Container Cloud components.
The providerSpec
object field is custom for each cloud provider and
contains the following generic fields for the bare metal provider:
apiVersion
API version of the object that is
baremetal.k8s.io/v1alpha1
kind
Object type that is
BaremetalClusterProviderSpec
Configuration example:
spec:
...
providerSpec:
value:
apiVersion: baremetal.k8s.io/v1alpha1
kind: BaremetalClusterProviderSpec
spec:providerSpec common¶
The common providerSpec
object field of the Cluster
resource
contains the following fields:
credentials
Field reserved for other cloud providers, has an empty value. Disregard this field.
dedicatedControlPlane
Cluster control plane nodes to be tainted, defaults to
true
publicKeys
List of the
PublicKey
resource referencesname
Public key name
release
Name of the
ClusterRelease
object to install on a cluster
helmReleases
List of enabled Helm releases from the
Release
object that run on a cluster
proxy
Name of the
Proxy
object
tls
TLS configuration for endpoints of a cluster
keycloak
KeyCloak endpoint
tlsConfigRef
Reference to the
TLSConfig
object
ui
Web UI endpoint
tlsConfigRef
Reference to the
TLSConfig
object
For more details, see TLSConfig resource.
maintenance
Maintenance mode of a cluster. Prepares a cluster for maintenance and enables the possibility to switch machines into maintenance mode.
containerRegistries
List of the
ContainerRegistries
resources names.Note
For MOSK-based deployments, the feature support is available since MOSK 22.3.
Configuration example:
spec:
...
providerSpec:
value:
credentials: ""
publicKeys:
- name: bootstrap-key
release: ucp-5-7-0-3-3-3-tp11
helmReleases:
- name: metallb
values:
configInline:
address-pools:
- addresses:
- 10.0.0.101-10.0.0.120
name: default
protocol: layer2
...
- name: stacklight
...
tls:
keycloak:
certificate:
name: keycloak
hostname: container-cloud-auth.example.com
ui:
certificate:
name: ui
hostname: container-cloud-ui.example.com
containerRegistries:
- demoregistry
...
spec:providerSpec configuration¶
This section represents the Container Cloud components that are enabled on a cluster. It contains the following fields:
management
Configuration for the management cluster components:
enabled
Management cluster enabled (
true
) or disabled (false
).
helmReleases
List of the management cluster Helm releases that will be installed on the cluster. A Helm release includes the
name
andvalues
fields. The specified values will be merged with relevant Helm release values of the management cluster in theRelease
object.
regional
List of regional clusters components on the Container Cloud cluster for each configured provider available for a specific region:
provider
Provider type that is
baremetal
.
helmReleases
List of the regional Helm releases that will be installed on the cluster. A Helm release includes the
name
andvalues
fields. The specified values will be merged with relevant regional Helm release values in theRelease
object.
release
Name of the Container Cloud
Release
object.
Configuration example:
spec:
...
providerSpec:
value:
kaas:
management:
enabled: true
helmReleases:
- name: kaas-ui
values:
serviceConfig:
server: https://10.0.0.117
regional:
- helmReleases:
- name: baremetal-provider
values: {}
provider: baremetal
- helmReleases:
- name: byo-provider
values: {}
provider: byo
release: kaas-2-0-0
status:providerStatus common¶
Must not be modified using API
The common providerStatus
object field of the Cluster
resource
contains the following fields:
apiVersion
API version of the object that is
baremetal.k8s.io/v1alpha1
kind
Object type that is
BaremetalClusterProviderStatus
loadBalancerHost
Load balancer IP or host name of the Container Cloud cluster
apiServerCertificate
Server certificate of Kubernetes API
ucpDashboard
URL of the Mirantis Kubernetes Engine (MKE) Dashboard
maintenance
Maintenance mode of a cluster. Prepares a cluster for maintenance and enables the possibility to switch machines into maintenance mode.
Configuration example:
status:
providerStatus:
apiVersion: baremetal.k8s.io/v1alpha1
kind: BaremetalClusterProviderStatus
loadBalancerHost: 10.0.0.100
apiServerCertificate: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS…
ucpDashboard: https://10.0.0.100:6443
status:providerStatus for cluster readiness¶
Must not be modified using API
The providerStatus
object field of the Cluster
resource that reflects
the cluster readiness contains the following fields:
persistentVolumesProviderProvisioned
Status of the persistent volumes provisioning. Prevents the Helm releases that require persistent volumes from being installed until some default
StorageClass
is added to theCluster
object.
helm
Details about the deployed Helm releases:
ready
Status of the deployed Helm releases. The
true
value indicates that all Helm releases are deployed successfully.
releases
List of the enabled Helm releases that run on the Container Cloud cluster:
releaseStatuses
List of the deployed Helm releases. The
success: true
field indicates that the release is deployed successfully.
stacklight
Status of the StackLight deployment. Contains URLs of all StackLight components. The
success: true
field indicates that StackLight is deployed successfully.
nodes
Details about the cluster nodes:
ready
Number of nodes that completed the deployment or update.
requested
Total number of nodes. If the number of
ready
nodes does not match the number ofrequested
nodes, it means that a cluster is being currently deployed or updated.
notReadyObjects
The list of the
services
,deployments
, andstatefulsets
Kubernetes objects that are not in theReady
state yet. Aservice
is not ready if its external address has not been provisioned yet. Adeployment
orstatefulset
is not ready if the number of ready replicas is not equal to the number of desired replicas. Both objects contain the name and namespace of the object and the number of ready and desired replicas (for controllers). If all objects are ready, thenotReadyObjects
list is empty.
Configuration example:
status:
providerStatus:
persistentVolumesProviderProvisioned: true
helm:
ready: true
releases:
releaseStatuses:
iam:
success: true
...
stacklight:
alerta:
url: http://10.0.0.106
alertmanager:
url: http://10.0.0.107
grafana:
url: http://10.0.0.108
kibana:
url: http://10.0.0.109
prometheus:
url: http://10.0.0.110
success: true
nodes:
ready: 3
requested: 3
notReadyObjects:
services:
- name: testservice
namespace: default
deployments:
- name: baremetal-provider
namespace: kaas
replicas: 3
readyReplicas: 2
statefulsets: {}
status:providerStatus for Open ID Connect¶
Must not be modified using API
The oidc
section of the providerStatus
object field
in the Cluster
resource reflects the Open ID Connect configuration details.
It contains the required details to obtain a token for
a Container Cloud cluster and consists of the following fields:
certificate
Base64-encoded OIDC certificate.
clientId
Client ID for OIDC requests.
groupsClaim
Name of an OIDC groups claim.
issuerUrl
Issuer URL to obtain the representation of the realm.
ready
OIDC status relevance. If
true
, the status corresponds to theLCMCluster
OIDC configuration.
Configuration example:
status:
providerStatus:
oidc:
certificate: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUREekNDQWZ...
clientId: kaas
groupsClaim: iam_roles
issuerUrl: https://10.0.0.117/auth/realms/iam
ready: true
status:providerStatus for cluster releases¶
Must not be modified using API
The releaseRefs
section of the providerStatus
object field
in the Cluster
resource provides the current Cluster release version
as well as the one available for upgrade. It contains the following fields:
current
Details of the currently installed Cluster release:
lcmType
Type of the Cluster release (
ucp
).
name
Name of the Cluster release resource.
version
Version of the Cluster release.
unsupportedSinceKaaSVersion
Indicates that a Container Cloud release newer than the current one exists and that it does not support the current Cluster release.
available
List of the releases available for upgrade. Contains the
name
andversion
fields.
Configuration example:
status:
providerStatus:
releaseRefs:
available:
- name: ucp-5-5-0-3-4-0-dev
version: 5.5.0+3.4.0-dev
current:
lcmType: ucp
name: ucp-5-4-0-3-3-0-beta1
version: 5.4.0+3.3.0-beta1