Set up a Docker registry¶
Prepare a Docker registry on the Internet-connected machine that contains all of the images that are necessary to install MSR. Kubernetes will pull the required images from this registry to the offline nodes during the installation of the prerequisites and MSR.
On the Internet-connected machine, set up a Docker registry that the offline Kubernetes cluster can access using a private IP address. For more information, refer to Docker official documentation: Deploy a registry server.
Add the
postgres-operator
, andjetstack
Helm repositories:helm repo add postgres-operator https://opensource.zalando.com/postgres-operator/charts/postgres-operator helm repo add jetstack https://charts.jetstack.io helm repo update
Obtain the names of all the images that are required for installing MSR from the desired version of the Helm charts, for MSR, postgres-operator, and cert-manager.
Important
Mirantis has transitioned to an OCI-based Helm registry for
registry.mirantis.com
. As a result, Helm repository management is no longer required. Commands that rely on Helm repository operations, such as helm repo update and helm upgrade, will fail with HTTP 4xx errors.For both new installations and upgrades, use the OCI-based registry URL directly. To check for available upgrades, run helm upgrade --dry-run without specifying a version.
For more details, see the Helm documentation.
Template each chart and grep for
image:
:helm template msr oci://registry.mirantis.com/msr/helm/msr \ --version=<msr-chart-version> \ --api-versions=acid.zalan.do/v1 \ --api-versions=cert-manager.io/v1 | grep image: helm template postgres-operator postgres-operator/postgres-operator \ --version 1.7.1 \ --set configKubernetes.spilo_runasuser=101 \ --set configKubernetes.spilo_runasgroup=103 \ --set configKubernetes.spilo_fsgroup=103 | grep image: helm template cert-manager jetstack/cert-manager \ --version 1.7.2 \ --set installCRDs=true | grep image:
MSR version compatibility with Helm charts
MSR 3.1 version
Chart version
3.1.10
1.1.12
3.1.9
1.1.11
3.1.8
1.1.10
3.1.7
1.1.9
3.1.6
1.1.8
3.1.5
1.1.6
3.1.4
1.1.5
3.1.3
1.1.4
3.1.2
1.1.3
3.1.1
1.1.2
3.1.0
1.1.0
3.0.12
1.0.14
3.0.11
1.0.13
3.0.10
1.0.12
3.0.9
1.0.10
3.0.8
1.0.9
3.0.7
1.0.8
3.0.6
1.0.7
3.0.5
1.0.6
3.0.4
1.0.5
3.0.3
1.0.4
3.0.2
1.0.2
3.0.1
1.0.1
3.0.0
1.0.0
Pull the images listed in the previous step.
Tag each image, including its original namespace, in preparation for pushing the image to the Docker registry. For example:
docker tag registry.mirantis.com/msr/msr-api:<msr-version> <registry-ip>/msr/msr-api:<msr-version>
Push all the required images to the Docker registry. For example:
docker push <registry-ip>/msr/msr-api:<msr-version>
Create the following YAML files, which you will reference to override the image repository information that is contained in the Helm charts used for MSR installation:
my_msr_values.yaml
:imageRegistry: <registry-ip> enzi: image: registry: <registry-ip> rethinkdb: image: registry: <registry-ip>
my_postgres_values.yaml
:image: registry: <registry-ip> configGeneral: docker_image: <registry-ip>/acid/spilo-14:<version> configLogicalBackup: logical_backup_docker_image: <registry-ip>/acid/logical-backup:<version> configConnectionPooler: connection_pooler_image: <registry-ip>/acid/pgbouncer:<version>
my_certmanager_values.yaml
:image: registry: <registry-ip> repository: jetstack/cert-manager-controller webhook: image: registry: <registry-ip> repository: jetstack/cert-manager-webhook cainjector: image: registry: <registry-ip> repository: jetstack/cert-manager-cainjector startupapicheck: image: registry: <registry-ip> repository: jetstack/cert-manager-ctl