Автоматичне розгортання компонентів Minio та Vault

ЗМІСТ

1. Розгортання кластера платформи з нуля у середовищі vSphere

1.1. Передумови

Переконайтеся, що встановлено необхідні пакети: docker, wget, unzip.

План

  1. Завантажте необхідну версію інсталера.

    сd /tmp
    wget -O mdtu-ddm-platform-<version>.zip https://nexus-public-mdtu-ddm-edp-cicd.apps.cicd2.mdtu-ddm.projects.epam.com/repository/edp-maven-releases/ua/gov/mdtu/ddm/infrastructure/mdtu-ddm-platform/<version>/mdtu-ddm-platform-<version>.zip
  2. Розпакуйте архів у домашній директорії.

    unzip /tmp/mdtu-ddm-platform-<version>.zip -d /home/<user>/workdir/installer-<version>
  3. Перенесіть kubeconfig після встановлення кластера:

    cp /path/to/kubeconfig ./

1.2. Додавання окремого конфігураційного файлу для розгортання в середовищі vSphere

  1. Відредагуйте exports.list для vSphere.

    Усі значення необхідно взяти після інсталяції кластера.

    vi exports.list
    
    export KUBECONFIG="/home/<user>/workdir/installer-<version>/kubeconfig"
    
    ### vSphere Credentials ###
    export VSPHERE_SERVER=""
    export VSPHERE_USER=""
    export VSPHERE_PASSWORD=""
    export VSPHERE_CLUSTER=""
    export VSPHERE_DATASTORE=""
    export VSPHERE_DATACENTER=""
    export VSPHERE_NETWORK=""
    export VSPHERE_NETWORK_GATEWAY=""
    export VSPHERE_RESOURCE_POOL=""
    export VSPHERE_FOLDER=""
    
    ### Minio and Vault IPs ###
    export VSPHERE_VAULT_INSTANCE_IP=""
    export VSPHERE_MINIO_INSTANCE_IP=""
    
    ### id.gov.ua ###
    export idgovuaClientId=""
    export idgovuaClientSecret=""
  2. Відредагуйте install.sh, а саме після source ./functions.sh додайте source ./exports.list для vSphere.

    vi install.sh

    Це виглядатиме наступним чином:

    #!/usr/bin/env bash
    set -e
    #Include function file
    source ./functions.sh
    source ./exports.list

1.3. Розгортання інсталера

  1. Виконайте наступні команди:

    IMAGE_CHECKSUM=$(sudo docker load -i control-plane-installer.img | sed -r "s#.*sha256:(.*)#\\1#" | tr -d '\n');
    echo $IMAGE_CHECKSUM
    sudo docker tag $\{IMAGE_CHECKSUM} control-plane-installer:<version>;
  2. Розгорніть нову версію платформи з образами з нуля.

    sudo docker run --rm --name control-plane-installer-*(version)* --user root:$(id -g) --net host -v $(pwd):/tmp/installer --env KUBECONFIG=/tmp/installer/kubeconfig --env idgovuaClientId=f90ab33dc272f047dc330c88e5663b75 --env idgovuaClientSecret=cba49c104faac8c718e6daf3253bc55f2bf11d9e --env CUSTOM_INGRESS_CIDRS="['0.0.0.0/0', '85.223.209.0/24']" --entrypoint "/bin/sh" control-plane-installer:*(version)* -c "./install.sh -i"

2. Оновлення кластера платформи у середовищі vSphere

2.1. Передумови

Переконайтеся, що встановлено необхідні пакети: docker, wget, unzip.

План

  1. Завантажте необхідну версію інсталера.

    сd /tmp
    wget -O mdtu-ddm-platform-<version>.zip https://nexus-public-mdtu-ddm-edp-cicd.apps.cicd2.mdtu-ddm.projects.epam.com/repository/edp-maven-releases/ua/gov/mdtu/ddm/infrastructure/mdtu-ddm-platform/<version>/mdtu-ddm-platform-<version>.zip
  2. Розпакуйте архів у домашній директорії.

    unzip /tmp/mdtu-ddm-platform-<version>.zip -d /home/<user>/workdir/installer-<version>
  3. Перенесіть kubeconfig після встановлення кластера:

    cp /path/to/kubeconfig ./

2.2. Додавання окремого конфігураційного файлу для розгортання в середовищі vSphere

  1. Перенесіть exports.list з минулого релізу.

    cd /home/<user>/workdir/installer-<version>
    cp /home/<user>/workdir/installer-<previous_version>/exports.list ./

2.3. Налаштування компонента Minio при оновленні кластера у середовищі vSphere

  1. Перенесіть tfstate minio з минулого релізу для vSphere.

    cp /home/<user>/workdir/installer-<version>/terraform/minio/vsphere/terraform.tfstate ./terraform/minio/vsphere/
  2. Перенесіть tfstate minio (packer) з минулого релізу для vSphere.

    сp /home/<user>/workdir/installer-<version>/terraform/minio/vsphere/packer/terraform.tfstate ./terraform/minio/vsphere/packer/

2.4. Налаштування компонента Vault при оновленні кластера у середовищі vSphere

  1. Перенесіть tfstate vault з минулого релізу.

    cp /home/<user>/workdir/installer-<version>/terraform/vault/vsphere/terraform.tfstate ./terraform/vault/vsphere/
  2. Перенесіть tfstate vault (packer) з минулого релізу.

    сp /home/<user>/workdir/installer-<version>*/terraform/vault/vsphere/packer/terraform.tfstate ./terraform/vault/vsphere/packer/

2.5. Розгортання інсталера

  1. Виконайте наступні команди:

    IMAGE_CHECKSUM=$(sudo docker load -i control-plane-installer.img | sed -r "s#.*sha256:(.*)#\\1#" | tr -d '\n');
    echo $IMAGE_CHECKSUM
    sudo docker tag $\{IMAGE_CHECKSUM} control-plane-installer:<version>;
  2. Оновіть версію платформи з образами оновлення.

    sudo docker run --rm --name control-plane-installer-*(version)* --user root:$(id -g) --net host -v $(pwd):/tmp/installer --env KUBECONFIG=/tmp/installer/kubeconfig --env idgovuaClientId=f90ab33dc272f047dc330c88e5663b75 --env idgovuaClientSecret=cba49c104faac8c718e6daf3253bc55f2bf11d9e --env CUSTOM_INGRESS_CIDRS="['0.0.0.0/0', '85.223.209.0/24']" --entrypoint "/bin/sh" control-plane-installer:*(version)* -c "./install.sh -u"

3. Розгортання кластера платформи з нуля у середовищі AWS

3.1. Передумови

Переконайтеся, що встановлено необхідні пакети: docker, wget, unzip.

План

  1. Завантажте необхідну версію інсталера.

    сd /tmp
    wget -O mdtu-ddm-platform-<version>.zip https://nexus-public-mdtu-ddm-edp-cicd.apps.cicd2.mdtu-ddm.projects.epam.com/repository/edp-maven-releases/ua/gov/mdtu/ddm/infrastructure/mdtu-ddm-platform/<version>/mdtu-ddm-platform-<version>.zip
  2. Розпакуйте архів у домашній директорії.

    unzip /tmp/mdtu-ddm-platform-<version>.zip -d /home/<user>/workdir/installer-<version>
  3. Перенесіть kubeconfig після встановлення кластера:

    cp /path/to/kubeconfig ./

3.2. Розгортання інсталера

  1. Виконайте наступні команди:

    IMAGE_CHECKSUM=$(sudo docker load -i control-plane-installer.img | sed -r "s#.*sha256:(.*)#\\1#" | tr -d '\n');
    echo $IMAGE_CHECKSUM
    sudo docker tag $\{IMAGE_CHECKSUM} control-plane-installer:<version>;
  2. Розгорніть нову версію платформи з образами з нуля.

    sudo docker run --rm --name control-plane-installer-*(version)* --user root:$(id -g) --net host -v $(pwd):/tmp/installer --env KUBECONFIG=/tmp/installer/kubeconfig --env idgovuaClientId=f90ab33dc272f047dc330c88e5663b75 --env idgovuaClientSecret=cba49c104faac8c718e6daf3253bc55f2bf11d9e --env CUSTOM_INGRESS_CIDRS="['0.0.0.0/0', '85.223.209.0/24']" --entrypoint "/bin/sh" control-plane-installer:*(version)* -c "./install.sh -i"

4. Оновлення кластера платформи у середовищі AWS

4.1. Передумови

Переконайтеся, що встановлено необхідні пакети: docker, wget, unzip.

План

  1. Завантажте необхідну версію інсталера.

    сd /tmp
    wget -O mdtu-ddm-platform-<version>.zip https://nexus-public-mdtu-ddm-edp-cicd.apps.cicd2.mdtu-ddm.projects.epam.com/repository/edp-maven-releases/ua/gov/mdtu/ddm/infrastructure/mdtu-ddm-platform/<version>/mdtu-ddm-platform-<version>.zip
  2. Розпакуйте архів у домашній директорії.

    unzip /tmp/mdtu-ddm-platform-<version>.zip -d /home/<user>/workdir/installer-<version>
  3. Перенесіть kubeconfig після встановлення кластера:

    cp /path/to/kubeconfig ./

4.2. Налаштування компонента Minio при оновленні кластера у середовищі AWS

  1. Перенесіть tfstate minio з минулого релізу.

    cp /home/<user>/workdir/installer-<version>/terraform/minio/aws/terraform.tfstate ./terraform/minio/aws/

4.3. Налаштування компонента Vault при оновленні кластера у середовищі AWS

  1. Перенесіть tfstate vault з минулого релізу.

    cp /home/<user>/workdir/installer-<version>/terraform/vault/aws/terraform.tfstate ./terraform/vault/aws/

4.4. Розгортання інсталера

  1. Виконайте наступні команди:

    IMAGE_CHECKSUM=$(sudo docker load -i control-plane-installer.img | sed -r "s#.*sha256:(.*)#\\1#" | tr -d '\n');
    echo $IMAGE_CHECKSUM
    sudo docker tag $\{IMAGE_CHECKSUM} control-plane-installer:<version>;
  2. Оновіть версію платформи з образами оновлення.

    sudo docker run --rm --name control-plane-installer-*(version)* --user root:$(id -g) --net host -v $(pwd):/tmp/installer --env KUBECONFIG=/tmp/installer/kubeconfig --env idgovuaClientId=f90ab33dc272f047dc330c88e5663b75 --env idgovuaClientSecret=cba49c104faac8c718e6daf3253bc55f2bf11d9e --env CUSTOM_INGRESS_CIDRS="['0.0.0.0/0', '85.223.209.0/24']" --entrypoint "/bin/sh" control-plane-installer:*(version)* -c "./install.sh -u"