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.
The Container Cloud Cluster
CR contains the following fields:
apiVersion
API version of the object that is ipam.mirantis.com/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 the REGION
parameter in the bootstrap script.
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
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
The providerSpec
object field of the Cluster
resource
contains the following common fields for all Container Cloud
providers:
publicKeys
List of the SSH public key references
release
Name of the ClusterRelease
object to install on a cluster
helmReleases
List of the enabled Helm releases from the Release
object that run
on a Container Cloud cluster
Configuration example:
spec:
...
providerSpec:
value:
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
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
and values
fields. The specified values will be merged with relevant Helm release
values of the management cluster in the Release
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
and values
fields. The specified values will be merged with relevant
regional Helm release values in the Release
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
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
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
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 the Cluster
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 of requested
nodes, it means that a cluster is being
currently deployed or updated.
notReadyObjects
The list of the services
, deployments
, and statefulsets
Kubernetes objects that are not in the Ready
state yet.
A service
is not ready if its external address has not been provisioned
yet. A deployment
or statefulset
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, the
notReadyObjects
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: {}
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 the
LCMCluster
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
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
and
version
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