Commit dfb58b86 authored by Jorge Moratinos's avatar Jorge Moratinos
Browse files

delete_ocf_staging step modified

parent f7f1696b
Loading
Loading
Loading
Loading
+317 −169
Original line number Diff line number Diff line
@@ -94,6 +94,13 @@ deploy_ocf_staging:
      whoami
      kubectl cluster-info
      yq --version

      export CI_ENV_ENDPOINT=$(cat cd_env_endpoint.txt)
      export NAMESPACE_DEV_TO_STAGING=$(echo $CI_ENV_ENDPOINT)

      if [[ -d helm/capif ]]; then
        echo "### helm capif directory exists ###"

        ls -rtt helm/capif
        cat helm/capif/Chart.yaml
        yq e -i ".appVersion = \"$IMAGE_TAG_STAGING\"" helm/capif/Chart.yaml
@@ -110,9 +117,6 @@ deploy_ocf_staging:
          yq e -i ".appVersion = \"$IMAGE_TAG_STAGING\"" "helm/capif/charts/$chart/Chart.yaml"
        done

      export CI_ENV_ENDPOINT=$(cat cd_env_endpoint.txt)
      export NAMESPACE_DEV_TO_STAGING=$(echo $CI_ENV_ENDPOINT)

        echo "### download dependencies###"
        helm dependency build helm/capif
        echo "### updating capif###"
@@ -263,6 +267,76 @@ deploy_ocf_staging:
        --set celery-worker.env.redisPort=6379 \
        --set celery-worker.env.logLevel="DEBUG" \
        --wait --timeout=10m --create-namespace --atomic
      else
        echo "### helm capif directory does not exist ###"
        echo "New deployment behaviour, creating env file and installing helm chart with it"

        echo "Generate env file for helm scripts"

        cat <<EOF > helm/scripts/envs/$NAMESPACE_DEV_TO_STAGING-mr.env
# This file is generated by the GitLab CI pipeline for deploying CAPIF to the staging environment. 
# It contains environment variables that are used in the deployment process. 
# The values of these variables are set based on the current GitLab CI environment and the configuration 
# of the CAPIF deployment.

# Common variables
## Non Default values on next variables
export CAPIF_NAMESPACE=$NAMESPACE_DEV_TO_STAGING-mr
export CAPIF_CI_ENV_ENDPOINT=$CI_ENV_ENDPOINT-mr
export CAPIF_NAME_VERSION_CHART=ocf-pre-staging
export CAPIF_DOMAIN=$DOMAIN_DEV
export BASE_DOCKER_REGISTRY=labs.etsi.org:5050/ocf/capif
export CAPIF_DOCKER_REGISTRY=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG
export CAPIF_IMAGE_TAG=$CI_COMMIT_REF_SLUG
export VAULT_INTERNAL_HOSTNAME=$VAULT_HOSTNAME
export VAULT_PORT=$VAULT_PORT
export VAULT_ACCESS_TOKEN=$VAULT_ACCESS_TOKEN

export CAPIF_HOSTNAME=capif-$CI_ENV_ENDPOINT-mr.$DOMAIN_DEV
export REGISTER_HOSTNAME=register-$CI_ENV_ENDPOINT-mr.$DOMAIN_DEV

## Default values on next variables
export LOG_LEVEL=DEBUG

# Step 0 CAPIF Monitoring configuration
## Configuration of the monitoring components of CAPIF, such as Grafana, Loki, Fluentbit, Tempo and Otelcollector.
export PROMETHEUS_URL=http://prometheus.ocf.pre-production

## Default values on next variables
### Storage configuration
# export CAPIF_STORAGE_CLASS=nfs-01
# export CAPIF_GRAFANA_STORAGE_SIZE=10Gi
# export CAPIF_LOKI_STORAGE_SIZE=100Mi
# export CAPIF_TEMPO_STORAGE_SIZE=100Mi
# export CAPIF_TEMPO_STORAGE_SIZE=3Gi
### OpenCAPIF Monitoring configuration
# export CAPIF_GRAFANA_ENABLED=true
# export CAPIF_LOKI_ENABLED=true
# export CAPIF_FLUENTBIT_ENABLED=true
# export CAPIF_TEMPO_ENABLED=true
# export CAPIF_OTELCOLLECTOR_ENABLED=true

# Step 1: OpenCAPIF Mongo configuration
## Default values on next variables
# export CAPIF_MONGO_REGISTER_STORAGE_SIZE=8Gi
# export CAPIF_MONGO_STORAGE_SIZE=8Gi

# Step 2: OpenCAPIF Mongo Express configuration
# Only Common configuration of env apply to both mongo express components.

# Step 3: OpenCAPIF Common Core Components configuration
# Only Common configuration of env apply to both mongo express components.

# Step 4: OpenCAPIF Core Components configuration
# Only Common configuration of env apply to both mongo express components. CAPIF_HOSTNAME

# Step 5: OpenCAPIF Register configuration
# Only Common configuration of env apply to both mongo express components. REGISTER_HOSTNAME

EOF

        ./helm/scripts/install_capif.sh $NAMESPACE_DEV_TO_STAGING-mr.env
      fi

delete_ocf_staging:
  stage: delete_ocf_staging
@@ -270,10 +344,84 @@ delete_ocf_staging:
    - prep_ocf_cd_staging
  <<: *staging_common
  script:
    - export NAMESPACE_DEV_TO_STAGING=$(cat cd_env_endpoint.txt)
    - echo "### deleting environment $NAMESPACE_DEV_TO_STAGING###"
    - helm uninstall -n $NAMESPACE_DEV_TO_STAGING-mr ocf-pre-staging
    - kubectl delete ns $NAMESPACE_DEV_TO_STAGING-mr
    - |
      export NAMESPACE_DEV_TO_STAGING=$(cat cd_env_endpoint.txt)
      echo "### deleting environment $NAMESPACE_DEV_TO_STAGING###"

      if [[ -d helm/capif ]]; then
        helm uninstall -n $NAMESPACE_DEV_TO_STAGING-mr ocf-pre-staging
        kubectl delete ns $NAMESPACE_DEV_TO_STAGING-mr
      else
        if [[ -f helm/scripts/envs/$NAMESPACE_DEV_TO_STAGING-mr.env ]]; then
          echo "### env file found for $NAMESPACE_DEV_TO_STAGING-mr, deleting with helm script ###"
        else
          echo "### No helm capif directory and no env file found for $NAMESPACE_DEV_TO_STAGING-mr, create file ###"
                  cat <<EOF > helm/scripts/envs/$NAMESPACE_DEV_TO_STAGING-mr.env
# This file is generated by the GitLab CI pipeline for deploying CAPIF to the staging environment. 
# It contains environment variables that are used in the deployment process. 
# The values of these variables are set based on the current GitLab CI environment and the configuration 
# of the CAPIF deployment.

# Common variables
## Non Default values on next variables
export CAPIF_NAMESPACE=$NAMESPACE_DEV_TO_STAGING-mr
export CAPIF_CI_ENV_ENDPOINT=$CI_ENV_ENDPOINT-mr
export CAPIF_NAME_VERSION_CHART=ocf-pre-staging
export CAPIF_DOMAIN=$DOMAIN_DEV
export BASE_DOCKER_REGISTRY=labs.etsi.org:5050/ocf/capif
export CAPIF_DOCKER_REGISTRY=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG
export CAPIF_IMAGE_TAG=$CI_COMMIT_REF_SLUG
export VAULT_INTERNAL_HOSTNAME=$VAULT_HOSTNAME
export VAULT_PORT=$VAULT_PORT
export VAULT_ACCESS_TOKEN=$VAULT_ACCESS_TOKEN

export CAPIF_HOSTNAME=capif-$CI_ENV_ENDPOINT-mr.$DOMAIN_DEV
export REGISTER_HOSTNAME=register-$CI_ENV_ENDPOINT-mr.$DOMAIN_DEV

## Default values on next variables
export LOG_LEVEL=DEBUG

# Step 0 CAPIF Monitoring configuration
## Configuration of the monitoring components of CAPIF, such as Grafana, Loki, Fluentbit, Tempo and Otelcollector.
export PROMETHEUS_URL=http://prometheus.ocf.pre-production

## Default values on next variables
### Storage configuration
# export CAPIF_STORAGE_CLASS=nfs-01
# export CAPIF_GRAFANA_STORAGE_SIZE=10Gi
# export CAPIF_LOKI_STORAGE_SIZE=100Mi
# export CAPIF_TEMPO_STORAGE_SIZE=100Mi
# export CAPIF_TEMPO_STORAGE_SIZE=3Gi
### OpenCAPIF Monitoring configuration
# export CAPIF_GRAFANA_ENABLED=true
# export CAPIF_LOKI_ENABLED=true
# export CAPIF_FLUENTBIT_ENABLED=true
# export CAPIF_TEMPO_ENABLED=true
# export CAPIF_OTELCOLLECTOR_ENABLED=true

# Step 1: OpenCAPIF Mongo configuration
## Default values on next variables
# export CAPIF_MONGO_REGISTER_STORAGE_SIZE=8Gi
# export CAPIF_MONGO_STORAGE_SIZE=8Gi

# Step 2: OpenCAPIF Mongo Express configuration
# Only Common configuration of env apply to both mongo express components.

# Step 3: OpenCAPIF Common Core Components configuration
# Only Common configuration of env apply to both mongo express components.

# Step 4: OpenCAPIF Core Components configuration
# Only Common configuration of env apply to both mongo express components. CAPIF_HOSTNAME

# Step 5: OpenCAPIF Register configuration
# Only Common configuration of env apply to both mongo express components. REGISTER_HOSTNAME

EOF

        ./helm/scripts/uninstall_capif.sh $NAMESPACE_DEV_TO_STAGING-mr.env
        fi
      fi

  when: manual
  environment:
    name: review/dev_to_staging/$CI_COMMIT_REF_SLUG