Mirantis Container Cloud (MCC) becomes part of Mirantis OpenStack for Kubernetes (MOSK)!
Starting with MOSK 25.2, the MOSK documentation set covers all product layers, including MOSK management (formerly Container Cloud). This means everything you need is in one place. Some legacy names may remain in the code and documentation and will be updated in future releases. The separate Container Cloud documentation site will be retired, so please update your bookmarks for continued easy access to the latest content.
Update a cluster in an air-gapped environment¶
Available since MOSK management 2.30.0 TechPreview
Updating a cluster in an air-gapped private CDN involves the following additional steps aside from the standard MOSK update process depending on the way a cluster was originally deployed:
If a cluster was originally deployed in an air-gapped environment, the update process additionally includes stopping
release-controllerand transfering new release artifacts to a private CDN. Startingrelease-controllertriggers the standard MOSK update process. This option is available since 25.2 for MOSK clusters and 2.30.0 for management clusters.If a cluster was originally deployed in a non-airgapped environment, the update process is similar to updating an air-gapped cluster, but additionally includes applying a CA certificate and updating CDN paths in the
Clusterobject. This option is available since MOSK 25.1 after the management cluster update to 2.29.1.
Update an air-gapped cluster¶
Download the latest available release files and prepare a new offline copy using the procedure for initial deployment of an air-gapped cluster. For details, see Prepare an offline copy for an air-gapped cluster and Prepare a demo CDN.
Stop
release-controllerto prevent the cluster from an accidental update during data structure transfer:kubectl -n kaas scale deployment release-controller-release-controller --replicas 0
Back up existing release files located in the
releasesdirectory on your binary CDN.Transfer new artifacts to the private CDN as described in Transfer artifacts from the demo CDN to private CDN.
Start
release-controllerto trigger the management cluster update:kubectl -n kaas scale deployment release-controller-release-controller --replicas 1
Warning
This action cannot be paused. Therefore, ensure that all preparation steps are completed before starting
release-controller.Proceed to the usual update procedure as described in Update to a major version or Update to a patch version.
Update a non-airgapped cluster in an air-gapped environment¶
Prepare resources and storage for an offline copy of new release artifacts as described in Requirements for air-gapped clusters.
Download the latest available release files and prepare a new offline copy using the procedure for initial deployment of an air-gapped cluster. For details, see Prepare an offline copy for an air-gapped cluster and Prepare a demo CDN.
Stop
release-controllerto prevent the cluster from an accidental update during data structure transfer:kubectl -n kaas scale deployment release-controller-release-controller --replicas 0
Select one of the following options:
Management cluster 2.29.1 or later with MOSK 25.1 or later: apply a proxy CA certificate
Management cluster 2.30.0 or later with MOSK 25.2 or later: apply a CDN CA certificate
To apply a CDN CA certificate
Download the CA certificate
ca.crtfor your private CDN endpoints and convert it to a base64 string:cat ca.crt | base64 -w0; echo ''
In the
Clusterobject of the management cluster, updatecaBundlewith the base64 CA certificate created in the previous step:Important
The base64 value must be a single-line string.
apiVersion: cluster.k8s.io/v1alpha1 kind: Cluster spec: providerSpec: value: kaas: regional: - helmReleases: - name: baremetal-provider values: config: lcm: cdn: caBundle: <BASE64 CA certificate as a single-line string>
To apply a proxy CA certificate
Download the CA certificate
ca.crtfor your private CDN endpoints and convert it to a base64 string:cat ca.crt | base64 -w0; echo ''
Create a
fake-proxy.yamlProxyobject with the following content:apiVersion: kaas.mirantis.com/v1alpha1 kind: Proxy metadata: labels: kaas.mirantis.com/region: region-one name: fake-proxy namespace: default spec: httpProxy: http://127.0.0.1:3128 httpsProxy: http://127.0.0.1:3128 noProxy: <comma-separated private CDN IP addresses>,.mirantis.com,.mirantis.net,mirantis.azurecr.io caCertificate: <BASE64 CA certificate as a single-line string>
Important
The base64 CA certificate value must be a single-line string.
Apply
fake-proxy.yamlto your management cluster:kubectl create -f fake-proxy.yaml
Update the
Clusterobject of your management cluster with proxy data:kubectl patch cluster kaas-mgmt --type 'merge' -p '{"spec": {"providerSpec": {"value": {"proxy": "fake-proxy"}}}}'
While LCM is applying the CA certificate, the
Clusterobject switches to theNot Readystate.Wait until the
Clusterobject status switches back toReady:kubectl get cluster kaas-mgmt -o wide -w
Wait until all
LCMMachineobjects of the management cluster complete theReady → Prepare → Deploy → Reconfigure → Readycycle:kubectl get lcmmachine -o wide
Wait until the
Clusterobject status switches back toReady:kubectl get cluster kaas-mgmt -o wide -w
Note
Once done, manually interrupt the above command.
Back up existing release files located in the
releasesdirectory on your binary CDN.Transfer new artifacts to the private CDN as described in Transfer artifacts from the demo CDN to private CDN.
In the
Clusterobject of the management cluster, replace mirror URLs with endpoints of your private CDN:apiVersion: cluster.k8s.io/v1alpha1 kind: Cluster spec: providerSpec: value: kaas: management: helmReleases: - name: release-controller values: releasesBaseUrl: <MCC_CDN_BINARY>/releases - name: diagnostic-controller values: releasesBaseUrl: <MCC_CDN_BINARY>/releases regional: - helmReleases: - name: baremetal-provider values: config: lcm: cdn: binary: <MCC_CDN_BINARY> debian: <MCC_CDN_DEBIAN> docker: <MCC_CDN_DOCKER> mcrRepo: <MCC_CDN_MCR_REPO>
Parameter name
Description
Endpoint format
<MCC_CDN_BINARY>MOSK binary files such as Helm charts, deployment artifacts, release files, and so on.
https://binary.<private CDN domain suffix><MCC_CDN_DEBIAN>Ubuntu repository mirrors.
https://debian.<private CDN domain suffix><MCC_CDN_MCR_REPO>MCR Ubuntu repository.
https://mcr.<private CDN domain suffix><MCC_CDN_DOCKER>Docker reristry.
registry.<private CDN domain suffix>Wait until all
LCMMachineobjects of the management cluster complete theReady → Prepare → Deploy → Reconfigure → Readycycle:kubectl get lcmmachine -o wide
Wait until the
Clusterobject status switches back toReady:kubectl get cluster kaas-mgmt -o wide -w
Note
Once done, manually interrupt the above command.
Start
release-controllerto trigger the management cluster update:kubectl -n kaas scale deployment release-controller-release-controller --replicas 1
Warning
This action cannot be paused. Therefore, ensure that all preparation steps are completed before starting
release-controller.Proceed to the usual update procedure as described in Update to a major version or Update to a patch version.