diff --git a/capif/.gitlab-ci.yml b/capif/.gitlab-ci.yml index 947d60f95ea124da3b87f8b443ff108898d9a088..b53821add428ba7c28eeb486310ce9ea773cb434 100644 --- a/capif/.gitlab-ci.yml +++ b/capif/.gitlab-ci.yml @@ -65,19 +65,27 @@ variables: - docker-in-docker include: - - template: 'Jobs/SAST.gitlab-ci.yml' - - template: 'Jobs/Dependency-Scanning.gitlab-ci.yml' - - template: 'Jobs/Container-Scanning.gitlab-ci.yml' - - template: 'Secret-Detection.gitlab-ci.yml' - - project: 'ocf/pipeline-scripts' - ref: cicd-capif - file: - - '/capif/templates/ci_staging.gitlab-ci.yml' - - 'capif/templates/ci_dev.gitlab-ci.yml' - - 'capif/templates/ci_unit_test.gitlab-ci.yml' - - 'capif/templates/cd-deploy-ocf.gitlab-ci.yml' - - 'capif/templates/cicd-deploy-release.gitlab-ci.yml' -# - 'capif/templates/ci_main.gitlab-ci.yml' + # Official GitLab CI templates for SAST, Dependency Scanning, Container Scanning and Secret Detection + - template: 'Jobs/SAST.gitlab-ci.yml' + - template: 'Jobs/Dependency-Scanning.gitlab-ci.yml' + - template: 'Jobs/Container-Scanning.gitlab-ci.yml' + - template: 'Secret-Detection.gitlab-ci.yml' + + # Include internal templates of ocf/pipeline-scripts repository + - local: 'capif/templates/ci_staging.gitlab-ci.yml' + - local: 'capif/templates/ci_dev.gitlab-ci.yml' + - local: 'capif/templates/ci_unit_test.gitlab-ci.yml' + - local: 'capif/templates/cd-deploy-ocf.gitlab-ci.yml' + - local: 'capif/templates/cicd-deploy-release.gitlab-ci.yml' +# - project: 'ocf/pipeline-scripts' +# ref: jms_change +# file: +# - 'capif/templates/ci_staging.gitlab-ci.yml' +# - 'capif/templates/ci_dev.gitlab-ci.yml' +# - 'capif/templates/ci_unit_test.gitlab-ci.yml' +# - 'capif/templates/cd-deploy-ocf.gitlab-ci.yml' +# - 'capif/templates/cicd-deploy-release.gitlab-ci.yml' +## - 'capif/templates/ci_main.gitlab-ci.yml' #sast: # variables: @@ -592,168 +600,252 @@ deploy_ocf_main: whoami kubectl cluster-info yq --version - ls -rtt helm/capif - cat helm/capif/Chart.yaml - yq e -i ".appVersion = \"main\"" helm/capif/Chart.yaml - cat helm/capif/Chart.yaml - - charts=("mock-server" "nginx" "ocf-access-control-policy" - "ocf-api-invocation-logs" "ocf-api-invoker-management" - "ocf-api-provider-management" "ocf-auditing-api-logs" - "ocf-discover-service-api" "ocf-events" "ocf-helper" - "ocf-publish-service-api" "ocf-register" "ocf-routing-info" - "ocf-security" "celery-beat" "celery-worker") - - for chart in "${charts[@]}"; do - yq e -i ".appVersion = \"main\"" "helm/capif/charts/$chart/Chart.yaml" - done - - - echo "### download dependencies###" - helm dependency build helm/capif - echo "### updating capif###" - helm upgrade --install -n $NAMESPACE_PRE_PROD ocf-main helm/capif/ \ - --set grafana.enabled=true \ - --set grafana.ingress.enabled=true \ - --set grafana.ingress.hosts[0].host=ocf-mon-main.$DOMAIN_PRE_PROD \ - --set grafana.ingress.hosts[0].paths[0].path="/" \ - --set grafana.ingress.hosts[0].paths[0].pathType="Prefix" \ - --set grafana.env.prometheusUrl=http://prometheus.ocf.pre-production \ - --set grafana.env.tempoUrl="http://ocf-main-tempo:3100" \ - --set fluentbit.enabled=true \ - --set loki.enabled=true \ - --set tempo.tempo.metricsGenerator.remoteWriteUrl=http://prometheus.ocf.pre-production/api/v1/write \ - --set otelcollector.enabled=true \ - --set otelcollector.configMap.tempoEndpoint=ocf-main-tempo:4317 \ - --set ocf-access-control-policy.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-access-control-policy-api \ - --set ocf-access-control-policy.image.tag=$CI_COMMIT_REF_SLUG \ - --set ocf-access-control-policy.env.capifHostname=capif-main.$DOMAIN_PRE_PROD \ - --set ocf-access-control-policy.monitoring="true" \ - --set ocf-access-control-policy.env.logLevel="INFO" \ - --set ocf-api-invocation-logs.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-logging-api-invocation-api \ - --set ocf-api-invocation-logs.image.tag=$CI_COMMIT_REF_SLUG \ - --set ocf-api-invocation-logs.env.monitoring="true" \ - --set ocf-api-invocation-logs.env.capifHostname=capif-main.$DOMAIN_PRE_PROD \ - --set ocf-api-invocation-logs.env.vaultHostname=$VAULT_HOSTNAME \ - --set ocf-api-invocation-logs.env.vaultPort=$VAULT_PORT \ - --set ocf-api-invocation-logs.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ - --set ocf-api-invocation-logs.env.logLevel="INFO" \ - --set ocf-api-invoker-management.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-api-invoker-management-api \ - --set ocf-api-invoker-management.image.tag=$CI_COMMIT_REF_SLUG \ - --set ocf-api-invoker-management.env.monitoring="true" \ - --set ocf-api-invoker-management.env.capifHostname=capif-main.$DOMAIN_PRE_PROD \ - --set ocf-api-invoker-management.env.vaultHostname=$VAULT_HOSTNAME \ - --set ocf-api-invoker-management.env.vaultPort=$VAULT_PORT \ - --set ocf-api-invoker-management.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ - --set ocf-api-invoker-management.env.logLevel="INFO" \ - --set ocf-api-provider-management.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-api-provider-management-api \ - --set ocf-api-provider-management.image.tag=$CI_COMMIT_REF_SLUG \ - --set ocf-api-provider-management.env.monitoring="true" \ - --set ocf-api-provider-management.env.capifHostname=capif-main.$DOMAIN_PRE_PROD \ - --set ocf-api-provider-management.env.vaultHostname=$VAULT_HOSTNAME \ - --set ocf-api-provider-management.env.vaultPort=$VAULT_PORT \ - --set ocf-api-provider-management.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ - --set ocf-api-provider-management.env.logLevel="INFO" \ - --set ocf-events.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-events-api \ - --set ocf-events.image.tag=$CI_COMMIT_REF_SLUG \ - --set ocf-events.env.monitoring="true" \ - --set ocf-events.env.capifHostname=capif-main.$DOMAIN_PRE_PROD \ - --set ocf-events.env.logLevel="INFO" \ - --set ocf-routing-info.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-routing-info-api \ - --set ocf-routing-info.image.tag=$CI_COMMIT_REF_SLUG \ - --set ocf-routing-info.env.monitoring="true" \ - --set ocf-routing-info.env.logLevel="INFO" \ - --set ocf-security.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-security-api \ - --set ocf-security.image.tag=$CI_COMMIT_REF_SLUG \ - --set ocf-security.env.monitoring="true" \ - --set ocf-security.env.capifHostname=capif-main.$DOMAIN_PRE_PROD \ - --set ocf-security.env.vaultHostname=$VAULT_HOSTNAME \ - --set ocf-security.env.vaultPort=$VAULT_PORT \ - --set ocf-security.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ - --set ocf-security.env.logLevel="INFO" \ - --set ocf-register.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/register \ - --set ocf-register.image.tag=$CI_COMMIT_REF_SLUG \ - --set ocf-register.env.vaultHostname=$VAULT_HOSTNAME \ - --set ocf-register.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ - --set ocf-register.env.vaultPort=$VAULT_PORT \ - --set ocf-register.env.mongoHost=mongo-register \ - --set ocf-register.env.mongoPort=27017 \ - --set ocf-register.env.capifHostname=capif-main.$DOMAIN_PRE_PROD \ - --set ocf-register.ingress.enabled=true \ - --set ocf-register.ingress.hosts[0].host=register-main.$DOMAIN_PRE_PROD \ - --set ocf-register.ingress.hosts[0].paths[0].path="/" \ - --set ocf-register.ingress.hosts[0].paths[0].pathType="Prefix" \ - --set ocf-register.env.logLevel="INFO" \ - --set ocf-auditing-api-logs.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-auditing-api \ - --set ocf-auditing-api-logs.image.tag=$CI_COMMIT_REF_SLUG \ - --set ocf-auditing-api-logs.env.monitoring="true" \ - --set ocf-auditing-api-logs.env.logLevel="INFO" \ - --set ocf-publish-service-api.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-publish-service-api \ - --set ocf-publish-service-api.image.tag=$CI_COMMIT_REF_SLUG \ - --set ocf-publish-service-api.env.monitoring="true" \ - --set ocf-publish-service-api.env.capifHostname=capif-main.$DOMAIN_PRE_PROD \ - --set ocf-publish-service-api.env.logLevel="INFO" \ - --set ocf-discover-service-api.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-discover-service-api \ - --set ocf-discover-service-api.image.tag=$CI_COMMIT_REF_SLUG \ - --set ocf-discover-service-api.env.monitoring="true" \ - --set ocf-discover-service-api.env.logLevel="INFO" \ - --set nginx.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/nginx \ - --set nginx.image.tag=$CI_COMMIT_REF_SLUG \ - --set nginx.env.capifHostname=capif-main.$DOMAIN_PRE_PROD \ - --set nginx.env.vaultHostname=$VAULT_HOSTNAME \ - --set nginx.env.vaultPort=$VAULT_PORT \ - --set nginx.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ - --set nginx.ingress.enabled=true \ - --set nginx.ingress.hosts[0].host=capif-main.$DOMAIN_PRE_PROD \ - --set nginx.ingress.hosts[0].paths[0].path="/" \ - --set nginx.ingress.hosts[0].paths[0].pathType="Prefix" \ - --set nginx.env.logLevel="info" \ - --set ocf-helper.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/helper \ - --set ocf-helper.image.tag=$CI_COMMIT_REF_SLUG \ - --set ocf-helper.env.vaultHostname=$VAULT_HOSTNAME \ - --set ocf-helper.env.vaultPort=$VAULT_PORT \ - --set ocf-helper.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ - --set ocf-helper.env.capifHostname=capif-main.$DOMAIN_PRE_PROD \ - --set ocf-helper.env.logLevel="INFO" \ - --set mock-server.enabled=true \ - --set mock-server.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/mock-server \ - --set mock-server.image.tag=$CI_COMMIT_REF_SLUG \ - --set mock-server.ingress.enabled=true \ - --set mock-server.ingress.hosts[0].host=mock-server-main.$DOMAIN_PRE_PROD \ - --set mock-server.ingress.hosts[0].paths[0].path="/" \ - --set mock-server.ingress.hosts[0].paths[0].pathType="Prefix" \ - --set mock-server.env.logLevel="INFO" \ - --set mongo.image.repository=labs.etsi.org:5050/ocf/capif/mongo \ - --set mongo.image.tag=6.0.2 \ - --set mongo-register-express.enabled=true \ - --set mongo-register-express.image.repository=labs.etsi.org:5050/ocf/capif/mongo-express \ - --set mongo-register-express.image.tag=1.0.0-alpha.4 \ - --set mongo-register-express.ingress.enabled=true \ - --set mongo-register-express.ingress.hosts[0].host="mongo-express-register-main.$DOMAIN_PRE_PROD" \ - --set mongo-register-express.ingress.hosts[0].paths[0].path="/" \ - --set mongo-register-express.ingress.hosts[0].paths[0].pathType="Prefix" \ - --set mongo-express.enabled=true \ - --set mongo-express.image.repository=labs.etsi.org:5050/ocf/capif/mongo-express \ - --set mongo-express.image.tag=1.0.0-alpha.4 \ - --set mongo-express.ingress.enabled=true \ - --set mongo-express.ingress.hosts[0].host="mongo-express-main.$DOMAIN_PRE_PROD" \ - --set mongo-express.ingress.hosts[0].paths[0].path="/" \ - --set mongo-express.ingress.hosts[0].paths[0].pathType="Prefix" \ - --set redis.image.repository=labs.etsi.org:5050/ocf/capif/redis \ - --set redis.image.tag=7.4.2-alpine \ - --set celery-beat.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/celery \ - --set celery-beat.image.tag=$CI_COMMIT_REF_SLUG \ - --set celery-beat.env.celeryModel=beat \ - --set celery-beat.env.redisHostname=redis \ - --set celery-beat.env.redisPort=6379 \ - --set celery-beat.env.logLevel="DEBUG" \ - --set celery-worker.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/celery \ - --set celery-worker.image.tag=$CI_COMMIT_REF_SLUG \ - --set celery-worker.env.celeryModel=worker \ - --set celery-worker.env.redisHostname=redis \ - --set celery-worker.env.redisPort=6379 \ - --set celery-worker.env.logLevel="DEBUG" \ - --wait --timeout=10m --create-namespace --atomic + if [[ -d helm/capif ]]; then + echo "### helm capif directory exists ###" + ls -rtt helm/capif + cat helm/capif/Chart.yaml + yq e -i ".appVersion = \"main\"" helm/capif/Chart.yaml + cat helm/capif/Chart.yaml + + charts=("mock-server" "nginx" "ocf-access-control-policy" + "ocf-api-invocation-logs" "ocf-api-invoker-management" + "ocf-api-provider-management" "ocf-auditing-api-logs" + "ocf-discover-service-api" "ocf-events" "ocf-helper" + "ocf-publish-service-api" "ocf-register" "ocf-routing-info" + "ocf-security" "celery-beat" "celery-worker") + + for chart in "${charts[@]}"; do + yq e -i ".appVersion = \"main\"" "helm/capif/charts/$chart/Chart.yaml" + done + + + echo "### download dependencies###" + helm dependency build helm/capif + echo "### updating capif###" + helm upgrade --install -n $NAMESPACE_PRE_PROD ocf-main helm/capif/ \ + --set grafana.enabled=true \ + --set grafana.ingress.enabled=true \ + --set grafana.ingress.hosts[0].host=ocf-mon-main.$DOMAIN_PRE_PROD \ + --set grafana.ingress.hosts[0].paths[0].path="/" \ + --set grafana.ingress.hosts[0].paths[0].pathType="Prefix" \ + --set grafana.env.prometheusUrl=http://prometheus.ocf.pre-production \ + --set grafana.env.tempoUrl="http://ocf-main-tempo:3100" \ + --set fluentbit.enabled=true \ + --set loki.enabled=true \ + --set tempo.tempo.metricsGenerator.remoteWriteUrl=http://prometheus.ocf.pre-production/api/v1/write \ + --set otelcollector.enabled=true \ + --set otelcollector.configMap.tempoEndpoint=ocf-main-tempo:4317 \ + --set ocf-access-control-policy.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-access-control-policy-api \ + --set ocf-access-control-policy.image.tag=$CI_COMMIT_REF_SLUG \ + --set ocf-access-control-policy.env.capifHostname=capif-main.$DOMAIN_PRE_PROD \ + --set ocf-access-control-policy.monitoring="true" \ + --set ocf-access-control-policy.env.logLevel="INFO" \ + --set ocf-api-invocation-logs.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-logging-api-invocation-api \ + --set ocf-api-invocation-logs.image.tag=$CI_COMMIT_REF_SLUG \ + --set ocf-api-invocation-logs.env.monitoring="true" \ + --set ocf-api-invocation-logs.env.capifHostname=capif-main.$DOMAIN_PRE_PROD \ + --set ocf-api-invocation-logs.env.vaultHostname=$VAULT_HOSTNAME \ + --set ocf-api-invocation-logs.env.vaultPort=$VAULT_PORT \ + --set ocf-api-invocation-logs.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ + --set ocf-api-invocation-logs.env.logLevel="INFO" \ + --set ocf-api-invoker-management.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-api-invoker-management-api \ + --set ocf-api-invoker-management.image.tag=$CI_COMMIT_REF_SLUG \ + --set ocf-api-invoker-management.env.monitoring="true" \ + --set ocf-api-invoker-management.env.capifHostname=capif-main.$DOMAIN_PRE_PROD \ + --set ocf-api-invoker-management.env.vaultHostname=$VAULT_HOSTNAME \ + --set ocf-api-invoker-management.env.vaultPort=$VAULT_PORT \ + --set ocf-api-invoker-management.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ + --set ocf-api-invoker-management.env.logLevel="INFO" \ + --set ocf-api-provider-management.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-api-provider-management-api \ + --set ocf-api-provider-management.image.tag=$CI_COMMIT_REF_SLUG \ + --set ocf-api-provider-management.env.monitoring="true" \ + --set ocf-api-provider-management.env.capifHostname=capif-main.$DOMAIN_PRE_PROD \ + --set ocf-api-provider-management.env.vaultHostname=$VAULT_HOSTNAME \ + --set ocf-api-provider-management.env.vaultPort=$VAULT_PORT \ + --set ocf-api-provider-management.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ + --set ocf-api-provider-management.env.logLevel="INFO" \ + --set ocf-events.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-events-api \ + --set ocf-events.image.tag=$CI_COMMIT_REF_SLUG \ + --set ocf-events.env.monitoring="true" \ + --set ocf-events.env.capifHostname=capif-main.$DOMAIN_PRE_PROD \ + --set ocf-events.env.logLevel="INFO" \ + --set ocf-routing-info.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-routing-info-api \ + --set ocf-routing-info.image.tag=$CI_COMMIT_REF_SLUG \ + --set ocf-routing-info.env.monitoring="true" \ + --set ocf-routing-info.env.logLevel="INFO" \ + --set ocf-security.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-security-api \ + --set ocf-security.image.tag=$CI_COMMIT_REF_SLUG \ + --set ocf-security.env.monitoring="true" \ + --set ocf-security.env.capifHostname=capif-main.$DOMAIN_PRE_PROD \ + --set ocf-security.env.vaultHostname=$VAULT_HOSTNAME \ + --set ocf-security.env.vaultPort=$VAULT_PORT \ + --set ocf-security.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ + --set ocf-security.env.logLevel="INFO" \ + --set ocf-register.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/register \ + --set ocf-register.image.tag=$CI_COMMIT_REF_SLUG \ + --set ocf-register.env.vaultHostname=$VAULT_HOSTNAME \ + --set ocf-register.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ + --set ocf-register.env.vaultPort=$VAULT_PORT \ + --set ocf-register.env.mongoHost=mongo-register \ + --set ocf-register.env.mongoPort=27017 \ + --set ocf-register.env.capifHostname=capif-main.$DOMAIN_PRE_PROD \ + --set ocf-register.ingress.enabled=true \ + --set ocf-register.ingress.hosts[0].host=register-main.$DOMAIN_PRE_PROD \ + --set ocf-register.ingress.hosts[0].paths[0].path="/" \ + --set ocf-register.ingress.hosts[0].paths[0].pathType="Prefix" \ + --set ocf-register.env.logLevel="INFO" \ + --set ocf-auditing-api-logs.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-auditing-api \ + --set ocf-auditing-api-logs.image.tag=$CI_COMMIT_REF_SLUG \ + --set ocf-auditing-api-logs.env.monitoring="true" \ + --set ocf-auditing-api-logs.env.logLevel="INFO" \ + --set ocf-publish-service-api.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-publish-service-api \ + --set ocf-publish-service-api.image.tag=$CI_COMMIT_REF_SLUG \ + --set ocf-publish-service-api.env.monitoring="true" \ + --set ocf-publish-service-api.env.capifHostname=capif-main.$DOMAIN_PRE_PROD \ + --set ocf-publish-service-api.env.logLevel="INFO" \ + --set ocf-discover-service-api.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-discover-service-api \ + --set ocf-discover-service-api.image.tag=$CI_COMMIT_REF_SLUG \ + --set ocf-discover-service-api.env.monitoring="true" \ + --set ocf-discover-service-api.env.logLevel="INFO" \ + --set nginx.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/nginx \ + --set nginx.image.tag=$CI_COMMIT_REF_SLUG \ + --set nginx.env.capifHostname=capif-main.$DOMAIN_PRE_PROD \ + --set nginx.env.vaultHostname=$VAULT_HOSTNAME \ + --set nginx.env.vaultPort=$VAULT_PORT \ + --set nginx.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ + --set nginx.ingress.enabled=true \ + --set nginx.ingress.hosts[0].host=capif-main.$DOMAIN_PRE_PROD \ + --set nginx.ingress.hosts[0].paths[0].path="/" \ + --set nginx.ingress.hosts[0].paths[0].pathType="Prefix" \ + --set nginx.env.logLevel="info" \ + --set ocf-helper.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/helper \ + --set ocf-helper.image.tag=$CI_COMMIT_REF_SLUG \ + --set ocf-helper.env.vaultHostname=$VAULT_HOSTNAME \ + --set ocf-helper.env.vaultPort=$VAULT_PORT \ + --set ocf-helper.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ + --set ocf-helper.env.capifHostname=capif-main.$DOMAIN_PRE_PROD \ + --set ocf-helper.env.logLevel="INFO" \ + --set mock-server.enabled=true \ + --set mock-server.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/mock-server \ + --set mock-server.image.tag=$CI_COMMIT_REF_SLUG \ + --set mock-server.ingress.enabled=true \ + --set mock-server.ingress.hosts[0].host=mock-server-main.$DOMAIN_PRE_PROD \ + --set mock-server.ingress.hosts[0].paths[0].path="/" \ + --set mock-server.ingress.hosts[0].paths[0].pathType="Prefix" \ + --set mock-server.env.logLevel="INFO" \ + --set mongo.image.repository=labs.etsi.org:5050/ocf/capif/mongo \ + --set mongo.image.tag=6.0.2 \ + --set mongo-register-express.enabled=true \ + --set mongo-register-express.image.repository=labs.etsi.org:5050/ocf/capif/mongo-express \ + --set mongo-register-express.image.tag=1.0.0-alpha.4 \ + --set mongo-register-express.ingress.enabled=true \ + --set mongo-register-express.ingress.hosts[0].host="mongo-express-register-main.$DOMAIN_PRE_PROD" \ + --set mongo-register-express.ingress.hosts[0].paths[0].path="/" \ + --set mongo-register-express.ingress.hosts[0].paths[0].pathType="Prefix" \ + --set mongo-express.enabled=true \ + --set mongo-express.image.repository=labs.etsi.org:5050/ocf/capif/mongo-express \ + --set mongo-express.image.tag=1.0.0-alpha.4 \ + --set mongo-express.ingress.enabled=true \ + --set mongo-express.ingress.hosts[0].host="mongo-express-main.$DOMAIN_PRE_PROD" \ + --set mongo-express.ingress.hosts[0].paths[0].path="/" \ + --set mongo-express.ingress.hosts[0].paths[0].pathType="Prefix" \ + --set redis.image.repository=labs.etsi.org:5050/ocf/capif/redis \ + --set redis.image.tag=7.4.2-alpine \ + --set celery-beat.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/celery \ + --set celery-beat.image.tag=$CI_COMMIT_REF_SLUG \ + --set celery-beat.env.celeryModel=beat \ + --set celery-beat.env.redisHostname=redis \ + --set celery-beat.env.redisPort=6379 \ + --set celery-beat.env.logLevel="DEBUG" \ + --set celery-worker.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/celery \ + --set celery-worker.image.tag=$CI_COMMIT_REF_SLUG \ + --set celery-worker.env.celeryModel=worker \ + --set celery-worker.env.redisHostname=redis \ + --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 < helm/scripts/envs/$NAMESPACE_PRE_PROD.template + # -------------------------------------------------------------------------------------------------------------- + # 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_PRE_PROD + export CAPIF_CI_ENV_ENDPOINT=main + export CAPIF_NAME_VERSION_CHART=ocf-main + export CAPIF_DOMAIN=$DOMAIN_PRE_PROD + 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= + + export CAPIF_HOSTNAME=capif-$CI_ENV_ENDPOINT-mr.$DOMAIN_PRE_PROD + export REGISTER_HOSTNAME=register-$CI_ENV_ENDPOINT-mr.$DOMAIN_PRE_PROD + + ## 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 + sed -e "s/^[ ]*export VAULT_ACCESS_TOKEN=.*/export VAULT_ACCESS_TOKEN=$VAULT_ACCESS_TOKEN_PROD/" \ + helm/scripts/envs/$NAMESPACE_PRE_PROD.template > helm/scripts/envs/$NAMESPACE_PRE_PROD.env + ./helm/scripts/install_capif.sh $NAMESPACE_PRE_PROD + kubectl delete pod --field-selector=status.phase=Failed -n $NAMESPACE_PRE_PROD + kubectl delete pod --field-selector=status.phase=Succeeded -n $NAMESPACE_PRE_PROD + + fi + + artifacts: + name: "$NAMESPACE_PRE_PROD.template" + paths: + - helm/scripts/envs/$NAMESPACE_PRE_PROD.template + expire_in: 1 day + when: always main_rf_testing: needs: ["deploy_ocf_main"] diff --git a/capif/templates/cd-deploy-ocf.gitlab-ci.yml b/capif/templates/cd-deploy-ocf.gitlab-ci.yml index 65e82daefba0acf927d9a1c8620c3fd43bd41ee1..6345f2d078c86eb35c687a4b8d6573a308efdbd3 100644 --- a/capif/templates/cd-deploy-ocf.gitlab-ci.yml +++ b/capif/templates/cd-deploy-ocf.gitlab-ci.yml @@ -71,9 +71,17 @@ prep_ocf_cd_staging: echo $CD_ENV_NAME echo $CD_ENV_NAME | rev | cut -c 1-6 | rev echo $(echo $CD_ENV_NAME | rev | cut -c 1-6 | rev) > cd_env_endpoint.txt + echo "Setting up a namespace .env file for the staging environment" + CI_ENV_ENDPOINT=$(cat cd_env_endpoint.txt) + echo "NAMESPACE_DEV_TO_STAGING=$CI_ENV_ENDPOINT" > namespace.env + echo "CI_ENV_ENDPOINT=$CI_ENV_ENDPOINT" >> namespace.env + echo "Generated namespace: $NAMESPACE_DEV_TO_STAGING" + artifacts: paths: - cd_env_endpoint.txt + reports: + dotenv: namespace.env deploy_ocf_staging: stage: deploy_ocf_staging @@ -95,10 +103,6 @@ deploy_ocf_staging: whoami kubectl cluster-info yq --version - echo "NEW 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 ###" @@ -275,71 +279,84 @@ deploy_ocf_staging: echo "Generate env file for helm scripts" - cat < 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 + cat < helm/scripts/envs/$NAMESPACE_DEV_TO_STAGING-mr.template + # -------------------------------------------------------------------------------------------------------------- + # 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= + + 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 + sed -e "s/^[ ]*export VAULT_ACCESS_TOKEN=.*/export VAULT_ACCESS_TOKEN=$VAULT_ACCESS_TOKEN/" \ + helm/scripts/envs/$NAMESPACE_DEV_TO_STAGING-mr.template > helm/scripts/envs/$NAMESPACE_DEV_TO_STAGING-mr.env + ./helm/scripts/install_capif.sh $NAMESPACE_DEV_TO_STAGING-mr + kubectl delete pod --field-selector=status.phase=Failed -n $NAMESPACE_DEV_TO_STAGING-mr + kubectl delete pod --field-selector=status.phase=Succeeded -n $NAMESPACE_DEV_TO_STAGING-mr + fi + artifacts: + name: "$NAMESPACE_DEV_TO_STAGING-mr.template" + paths: + - helm/scripts/envs/$NAMESPACE_DEV_TO_STAGING-mr.template + expire_in: 1 day + when: always + + delete_ocf_staging: stage: delete_ocf_staging needs: @@ -347,7 +364,7 @@ delete_ocf_staging: <<: *staging_common script: - | - export NAMESPACE_DEV_TO_STAGING=$(cat cd_env_endpoint.txt) + # export NAMESPACE_DEV_TO_STAGING=$(cat cd_env_endpoint.txt) echo "### deleting environment $NAMESPACE_DEV_TO_STAGING###" if [[ -d helm/capif ]]; then @@ -358,70 +375,74 @@ delete_ocf_staging: 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 < 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 + cat < helm/scripts/envs/$NAMESPACE_DEV_TO_STAGING-mr.template + # -------------------------------------------------------------------------------------------------------------- + # 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= + + 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_RESOURCES_RESERVE="YES" + # 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 + sed -e "s/^[ ]*export VAULT_ACCESS_TOKEN=.*/export VAULT_ACCESS_TOKEN=$VAULT_ACCESS_TOKEN/" \ + helm/scripts/envs/$NAMESPACE_DEV_TO_STAGING-mr.template > helm/scripts/envs/$NAMESPACE_DEV_TO_STAGING-mr.env + fi + ./helm/scripts/uninstall_capif.sh $NAMESPACE_DEV_TO_STAGING-mr -y fi when: manual @@ -456,172 +477,255 @@ deploy_ocf_oficial_staging: whoami kubectl cluster-info yq --version - ls -rtt helm/capif - cat helm/capif/Chart.yaml - yq e -i ".appVersion = \"staging\"" helm/capif/Chart.yaml - cat helm/capif/Chart.yaml - - charts=("mock-server" "nginx" "ocf-access-control-policy" - "ocf-api-invocation-logs" "ocf-api-invoker-management" - "ocf-api-provider-management" "ocf-auditing-api-logs" - "ocf-discover-service-api" "ocf-events" "ocf-helper" - "ocf-publish-service-api" "ocf-register" "ocf-routing-info" - "ocf-security" "celery-beat" "celery-worker") - - for chart in "${charts[@]}"; do - yq e -i ".appVersion = \"staging\"" "helm/capif/charts/$chart/Chart.yaml" - done - - - echo "### download dependencies###" - helm dependency build helm/capif - echo "### updating capif###" - helm upgrade --install -n $NAMESPACE_STAGING ocf-staging helm/capif/ \ - --set grafana.enabled=true \ - --set grafana.ingress.enabled=true \ - --set grafana.ingress.hosts[0].host=ocf-mon-staging.$DOMAIN_STAGING \ - --set grafana.ingress.hosts[0].paths[0].path="/" \ - --set grafana.ingress.hosts[0].paths[0].pathType="Prefix" \ - --set grafana.env.prometheusUrl=http://prometheus.ocf.pre-production \ - --set grafana.env.tempoUrl="http://ocf-staging-tempo:3100" \ - --set fluentbit.enabled=true \ - --set loki.enabled=true \ - --set tempo.tempo.metricsGenerator.remoteWriteUrl=http://prometheus.ocf.pre-production/api/v1/write \ - --set otelcollector.enabled=true \ - --set otelcollector.configMap.tempoEndpoint=ocf-staging-tempo:4317 \ - --set ocf-access-control-policy.image.repository=$CI_REGISTRY/ocf/capif/staging/ocf-access-control-policy-api \ - --set ocf-access-control-policy.image.tag=staging \ - --set ocf-access-control-policy.env.logLevel="DEBUG" \ - --set ocf-access-control-policy.env.capifHostname=capif-staging.$DOMAIN_STAGING \ - --set ocf-access-control-policy.monitoring="true" \ - --set ocf-api-invocation-logs.image.repository=$CI_REGISTRY/ocf/capif/staging/ocf-logging-api-invocation-api \ - --set ocf-api-invocation-logs.image.tag=staging \ - --set ocf-api-invocation-logs.env.monitoring="true" \ - --set ocf-api-invocation-logs.env.logLevel="DEBUG" \ - --set ocf-api-invocation-logs.env.capifHostname=capif-staging.$DOMAIN_STAGING \ - --set ocf-api-invocation-logs.env.vaultHostname=$VAULT_HOSTNAME \ - --set ocf-api-invocation-logs.env.vaultPort=$VAULT_PORT \ - --set ocf-api-invocation-logs.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ - --set ocf-api-invoker-management.image.repository=$CI_REGISTRY/ocf/capif/staging/ocf-api-invoker-management-api \ - --set ocf-api-invoker-management.image.tag=staging \ - --set ocf-api-invoker-management.env.monitoring="true" \ - --set ocf-api-invoker-management.env.logLevel="DEBUG" \ - --set ocf-api-invoker-management.env.capifHostname=capif-staging.$DOMAIN_STAGING \ - --set ocf-api-invoker-management.env.vaultHostname=$VAULT_HOSTNAME \ - --set ocf-api-invoker-management.env.vaultPort=$VAULT_PORT \ - --set ocf-api-invoker-management.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ - --set ocf-api-provider-management.image.repository=$CI_REGISTRY/ocf/capif/staging/ocf-api-provider-management-api \ - --set ocf-api-provider-management.image.tag=staging \ - --set ocf-api-provider-management.env.monitoring="true" \ - --set ocf-api-provider-management.env.logLevel="DEBUG" \ - --set ocf-api-provider-management.env.capifHostname=capif-staging.$DOMAIN_STAGING \ - --set ocf-api-provider-management.env.vaultHostname=$VAULT_HOSTNAME \ - --set ocf-api-provider-management.env.vaultPort=$VAULT_PORT \ - --set ocf-api-provider-management.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ - --set ocf-events.image.repository=$CI_REGISTRY/ocf/capif/staging/ocf-events-api \ - --set ocf-events.image.tag=staging \ - --set ocf-events.env.monitoring="true" \ - --set ocf-events.env.logLevel="DEBUG" \ - --set ocf-events.env.capifHostname=capif-staging.$DOMAIN_STAGING \ - --set ocf-routing-info.image.repository=$CI_REGISTRY/ocf/capif/staging/ocf-routing-info-api \ - --set ocf-routing-info.image.tag=staging \ - --set ocf-routing-info.env.monitoring="true" \ - --set ocf-security.image.repository=$CI_REGISTRY/ocf/capif/staging/ocf-security-api \ - --set ocf-security.image.tag=staging \ - --set ocf-security.env.logLevel="DEBUG" \ - --set ocf-security.env.monitoring="true" \ - --set ocf-security.env.capifHostname=capif-staging.$DOMAIN_STAGING \ - --set ocf-security.env.vaultHostname=$VAULT_HOSTNAME \ - --set ocf-security.env.vaultPort=$VAULT_PORT \ - --set ocf-security.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ - --set ocf-register.image.repository=$CI_REGISTRY/ocf/capif/staging/register \ - --set ocf-register.image.tag=staging \ - --set ocf-register.env.logLevel="DEBUG" \ - --set ocf-register.env.registerHostname=register-staging.$DOMAIN_STAGING \ - --set ocf-register.env.vaultHostname=$VAULT_HOSTNAME \ - --set ocf-register.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ - --set ocf-register.env.vaultPort=$VAULT_PORT \ - --set ocf-register.env.mongoHost=mongo-register \ - --set ocf-register.env.mongoPort=27017 \ - --set ocf-register.env.capifHostname=capif-staging.$DOMAIN_STAGING \ - --set ocf-register.ingress.enabled=true \ - --set ocf-register.ingress.hosts[0].host=register-staging.$DOMAIN_STAGING \ - --set ocf-register.ingress.hosts[0].paths[0].path="/" \ - --set ocf-register.ingress.hosts[0].paths[0].pathType="Prefix" \ - --set ocf-auditing-api-logs.image.repository=$CI_REGISTRY/ocf/capif/staging/ocf-auditing-api \ - --set ocf-auditing-api-logs.image.tag=staging \ - --set ocf-auditing-api-logs.env.monitoring="true" \ - --set ocf-auditing-api-logs.env.logLevel="DEBUG" \ - --set ocf-publish-service-api.image.repository=$CI_REGISTRY/ocf/capif/staging/ocf-publish-service-api \ - --set ocf-publish-service-api.image.tag=staging \ - --set ocf-publish-service-api.env.capifHostname=capif-staging.$DOMAIN_STAGING \ - --set ocf-publish-service-api.env.monitoring="true" \ - --set ocf-publish-service-api.env.logLevel="DEBUG" \ - --set ocf-discover-service-api.image.repository=$CI_REGISTRY/ocf/capif/staging/ocf-discover-service-api \ - --set ocf-discover-service-api.image.tag=staging \ - --set ocf-discover-service-api.env.monitoring="true" \ - --set ocf-discover-service-api.env.logLevel="DEBUG" \ - --set nginx.image.repository=$CI_REGISTRY/ocf/capif/staging/nginx \ - --set nginx.image.tag=staging \ - --set nginx.env.capifHostname=capif-staging.$DOMAIN_STAGING \ - --set nginx.env.vaultHostname=$VAULT_HOSTNAME \ - --set nginx.env.vaultPort=$VAULT_PORT \ - --set nginx.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ - --set nginx.ingress.enabled=true \ - --set nginx.ingress.hosts[0].host=capif-staging.$DOMAIN_STAGING \ - --set nginx.ingress.hosts[0].paths[0].path="/" \ - --set nginx.ingress.hosts[0].paths[0].pathType="Prefix" \ - --set ocf-helper.image.repository=$CI_REGISTRY/ocf/capif/staging/helper \ - --set ocf-helper.image.tag=staging \ - --set ocf-helper.env.vaultHostname=$VAULT_HOSTNAME \ - --set ocf-helper.env.vaultPort=$VAULT_PORT \ - --set ocf-helper.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ - --set ocf-helper.env.capifHostname=capif-staging.$DOMAIN_STAGING \ - --set ocf-helper.env.logLevel="DEBUG" \ - --set mock-server.enabled=true \ - --set mock-server.image.repository=$CI_REGISTRY/ocf/capif/staging/mock-server \ - --set mock-server.image.tag=staging \ - --set mock-server.ingress.enabled=true \ - --set mock-server.ingress.hosts[0].host=mock-server-staging.$DOMAIN_STAGING \ - --set mock-server.ingress.hosts[0].paths[0].path="/" \ - --set mock-server.ingress.hosts[0].paths[0].pathType="Prefix" \ - --set mock-server.env.logLevel="DEBUG" \ - --set mongo.image.repository=labs.etsi.org:5050/ocf/capif/mongo \ - --set mongo.image.tag=6.0.2 \ - --set mongo.busybox.repository=labs.etsi.org:5050/ocf/capif/busybox \ - --set mongo.busybox.tag=1.37.0 \ - --set mongo-register.image.repository=labs.etsi.org:5050/ocf/capif/mongo \ - --set mongo-register.image.tag=6.0.2 \ - --set mongo-register-express.enabled=true \ - --set mongo-register-express.image.repository=labs.etsi.org:5050/ocf/capif/mongo-express \ - --set mongo-register-express.image.tag=1.0.0-alpha.4 \ - --set mongo-register-express.ingress.enabled=true \ - --set mongo-register-express.ingress.hosts[0].host="mongo-express-register-staging.$DOMAIN_STAGING" \ - --set mongo-register-express.ingress.hosts[0].paths[0].path="/" \ - --set mongo-register-express.ingress.hosts[0].paths[0].pathType="Prefix" \ - --set mongo-express.enabled=true \ - --set mongo-express.image.repository=labs.etsi.org:5050/ocf/capif/mongo-express \ - --set mongo-express.image.tag=1.0.0-alpha.4 \ - --set mongo-express.ingress.enabled=true \ - --set mongo-express.ingress.hosts[0].host="mongo-express-staging.$DOMAIN_STAGING" \ - --set mongo-express.ingress.hosts[0].paths[0].path="/" \ - --set mongo-express.ingress.hosts[0].paths[0].pathType="Prefix" \ - --set redis.image.repository=labs.etsi.org:5050/ocf/capif/redis \ - --set redis.image.tag=7.4.2-alpine \ - --set celery-beat.image.repository=$CI_REGISTRY/ocf/capif/staging/celery \ - --set celery-beat.image.tag=staging \ - --set celery-beat.env.celeryModel=beat \ - --set celery-beat.env.redisHost=redis \ - --set celery-beat.env.redisPort=6379 \ - --set celery-beat.env.logLevel="DEBUG" \ - --set celery-worker.image.repository=$CI_REGISTRY/ocf/capif/staging/celery \ - --set celery-worker.image.tag=staging \ - --set celery-worker.env.celeryModel=worker \ - --set celery-worker.env.redisHost=redis \ - --set celery-worker.env.redisPort=6379 \ - --set celery-worker.env.logLevel="DEBUG" \ - --wait --timeout=10m --create-namespace --atomic + if [[ -d helm/capif ]]; then + echo "### helm capif directory exists ###" + ls -rtt helm/capif + cat helm/capif/Chart.yaml + yq e -i ".appVersion = \"staging\"" helm/capif/Chart.yaml + cat helm/capif/Chart.yaml + + charts=("mock-server" "nginx" "ocf-access-control-policy" + "ocf-api-invocation-logs" "ocf-api-invoker-management" + "ocf-api-provider-management" "ocf-auditing-api-logs" + "ocf-discover-service-api" "ocf-events" "ocf-helper" + "ocf-publish-service-api" "ocf-register" "ocf-routing-info" + "ocf-security" "celery-beat" "celery-worker") + + for chart in "${charts[@]}"; do + yq e -i ".appVersion = \"staging\"" "helm/capif/charts/$chart/Chart.yaml" + done + + + echo "### download dependencies###" + helm dependency build helm/capif + echo "### updating capif###" + helm upgrade --install -n $NAMESPACE_STAGING ocf-staging helm/capif/ \ + --set grafana.enabled=true \ + --set grafana.ingress.enabled=true \ + --set grafana.ingress.hosts[0].host=ocf-mon-staging.$DOMAIN_STAGING \ + --set grafana.ingress.hosts[0].paths[0].path="/" \ + --set grafana.ingress.hosts[0].paths[0].pathType="Prefix" \ + --set grafana.env.prometheusUrl=http://prometheus.ocf.pre-production \ + --set grafana.env.tempoUrl="http://ocf-staging-tempo:3100" \ + --set fluentbit.enabled=true \ + --set loki.enabled=true \ + --set tempo.tempo.metricsGenerator.remoteWriteUrl=http://prometheus.ocf.pre-production/api/v1/write \ + --set otelcollector.enabled=true \ + --set otelcollector.configMap.tempoEndpoint=ocf-staging-tempo:4317 \ + --set ocf-access-control-policy.image.repository=$CI_REGISTRY/ocf/capif/staging/ocf-access-control-policy-api \ + --set ocf-access-control-policy.image.tag=staging \ + --set ocf-access-control-policy.env.logLevel="DEBUG" \ + --set ocf-access-control-policy.env.capifHostname=capif-staging.$DOMAIN_STAGING \ + --set ocf-access-control-policy.monitoring="true" \ + --set ocf-api-invocation-logs.image.repository=$CI_REGISTRY/ocf/capif/staging/ocf-logging-api-invocation-api \ + --set ocf-api-invocation-logs.image.tag=staging \ + --set ocf-api-invocation-logs.env.monitoring="true" \ + --set ocf-api-invocation-logs.env.logLevel="DEBUG" \ + --set ocf-api-invocation-logs.env.capifHostname=capif-staging.$DOMAIN_STAGING \ + --set ocf-api-invocation-logs.env.vaultHostname=$VAULT_HOSTNAME \ + --set ocf-api-invocation-logs.env.vaultPort=$VAULT_PORT \ + --set ocf-api-invocation-logs.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ + --set ocf-api-invoker-management.image.repository=$CI_REGISTRY/ocf/capif/staging/ocf-api-invoker-management-api \ + --set ocf-api-invoker-management.image.tag=staging \ + --set ocf-api-invoker-management.env.monitoring="true" \ + --set ocf-api-invoker-management.env.logLevel="DEBUG" \ + --set ocf-api-invoker-management.env.capifHostname=capif-staging.$DOMAIN_STAGING \ + --set ocf-api-invoker-management.env.vaultHostname=$VAULT_HOSTNAME \ + --set ocf-api-invoker-management.env.vaultPort=$VAULT_PORT \ + --set ocf-api-invoker-management.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ + --set ocf-api-provider-management.image.repository=$CI_REGISTRY/ocf/capif/staging/ocf-api-provider-management-api \ + --set ocf-api-provider-management.image.tag=staging \ + --set ocf-api-provider-management.env.monitoring="true" \ + --set ocf-api-provider-management.env.logLevel="DEBUG" \ + --set ocf-api-provider-management.env.capifHostname=capif-staging.$DOMAIN_STAGING \ + --set ocf-api-provider-management.env.vaultHostname=$VAULT_HOSTNAME \ + --set ocf-api-provider-management.env.vaultPort=$VAULT_PORT \ + --set ocf-api-provider-management.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ + --set ocf-events.image.repository=$CI_REGISTRY/ocf/capif/staging/ocf-events-api \ + --set ocf-events.image.tag=staging \ + --set ocf-events.env.monitoring="true" \ + --set ocf-events.env.logLevel="DEBUG" \ + --set ocf-events.env.capifHostname=capif-staging.$DOMAIN_STAGING \ + --set ocf-routing-info.image.repository=$CI_REGISTRY/ocf/capif/staging/ocf-routing-info-api \ + --set ocf-routing-info.image.tag=staging \ + --set ocf-routing-info.env.monitoring="true" \ + --set ocf-security.image.repository=$CI_REGISTRY/ocf/capif/staging/ocf-security-api \ + --set ocf-security.image.tag=staging \ + --set ocf-security.env.logLevel="DEBUG" \ + --set ocf-security.env.monitoring="true" \ + --set ocf-security.env.capifHostname=capif-staging.$DOMAIN_STAGING \ + --set ocf-security.env.vaultHostname=$VAULT_HOSTNAME \ + --set ocf-security.env.vaultPort=$VAULT_PORT \ + --set ocf-security.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ + --set ocf-register.image.repository=$CI_REGISTRY/ocf/capif/staging/register \ + --set ocf-register.image.tag=staging \ + --set ocf-register.env.logLevel="DEBUG" \ + --set ocf-register.env.registerHostname=register-staging.$DOMAIN_STAGING \ + --set ocf-register.env.vaultHostname=$VAULT_HOSTNAME \ + --set ocf-register.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ + --set ocf-register.env.vaultPort=$VAULT_PORT \ + --set ocf-register.env.mongoHost=mongo-register \ + --set ocf-register.env.mongoPort=27017 \ + --set ocf-register.env.capifHostname=capif-staging.$DOMAIN_STAGING \ + --set ocf-register.ingress.enabled=true \ + --set ocf-register.ingress.hosts[0].host=register-staging.$DOMAIN_STAGING \ + --set ocf-register.ingress.hosts[0].paths[0].path="/" \ + --set ocf-register.ingress.hosts[0].paths[0].pathType="Prefix" \ + --set ocf-auditing-api-logs.image.repository=$CI_REGISTRY/ocf/capif/staging/ocf-auditing-api \ + --set ocf-auditing-api-logs.image.tag=staging \ + --set ocf-auditing-api-logs.env.monitoring="true" \ + --set ocf-auditing-api-logs.env.logLevel="DEBUG" \ + --set ocf-publish-service-api.image.repository=$CI_REGISTRY/ocf/capif/staging/ocf-publish-service-api \ + --set ocf-publish-service-api.image.tag=staging \ + --set ocf-publish-service-api.env.capifHostname=capif-staging.$DOMAIN_STAGING \ + --set ocf-publish-service-api.env.monitoring="true" \ + --set ocf-publish-service-api.env.logLevel="DEBUG" \ + --set ocf-discover-service-api.image.repository=$CI_REGISTRY/ocf/capif/staging/ocf-discover-service-api \ + --set ocf-discover-service-api.image.tag=staging \ + --set ocf-discover-service-api.env.monitoring="true" \ + --set ocf-discover-service-api.env.logLevel="DEBUG" \ + --set nginx.image.repository=$CI_REGISTRY/ocf/capif/staging/nginx \ + --set nginx.image.tag=staging \ + --set nginx.env.capifHostname=capif-staging.$DOMAIN_STAGING \ + --set nginx.env.vaultHostname=$VAULT_HOSTNAME \ + --set nginx.env.vaultPort=$VAULT_PORT \ + --set nginx.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ + --set nginx.ingress.enabled=true \ + --set nginx.ingress.hosts[0].host=capif-staging.$DOMAIN_STAGING \ + --set nginx.ingress.hosts[0].paths[0].path="/" \ + --set nginx.ingress.hosts[0].paths[0].pathType="Prefix" \ + --set ocf-helper.image.repository=$CI_REGISTRY/ocf/capif/staging/helper \ + --set ocf-helper.image.tag=staging \ + --set ocf-helper.env.vaultHostname=$VAULT_HOSTNAME \ + --set ocf-helper.env.vaultPort=$VAULT_PORT \ + --set ocf-helper.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ + --set ocf-helper.env.capifHostname=capif-staging.$DOMAIN_STAGING \ + --set ocf-helper.env.logLevel="DEBUG" \ + --set mock-server.enabled=true \ + --set mock-server.image.repository=$CI_REGISTRY/ocf/capif/staging/mock-server \ + --set mock-server.image.tag=staging \ + --set mock-server.ingress.enabled=true \ + --set mock-server.ingress.hosts[0].host=mock-server-staging.$DOMAIN_STAGING \ + --set mock-server.ingress.hosts[0].paths[0].path="/" \ + --set mock-server.ingress.hosts[0].paths[0].pathType="Prefix" \ + --set mock-server.env.logLevel="DEBUG" \ + --set mongo.image.repository=labs.etsi.org:5050/ocf/capif/mongo \ + --set mongo.image.tag=6.0.2 \ + --set mongo.busybox.repository=labs.etsi.org:5050/ocf/capif/busybox \ + --set mongo.busybox.tag=1.37.0 \ + --set mongo-register.image.repository=labs.etsi.org:5050/ocf/capif/mongo \ + --set mongo-register.image.tag=6.0.2 \ + --set mongo-register-express.enabled=true \ + --set mongo-register-express.image.repository=labs.etsi.org:5050/ocf/capif/mongo-express \ + --set mongo-register-express.image.tag=1.0.0-alpha.4 \ + --set mongo-register-express.ingress.enabled=true \ + --set mongo-register-express.ingress.hosts[0].host="mongo-express-register-staging.$DOMAIN_STAGING" \ + --set mongo-register-express.ingress.hosts[0].paths[0].path="/" \ + --set mongo-register-express.ingress.hosts[0].paths[0].pathType="Prefix" \ + --set mongo-express.enabled=true \ + --set mongo-express.image.repository=labs.etsi.org:5050/ocf/capif/mongo-express \ + --set mongo-express.image.tag=1.0.0-alpha.4 \ + --set mongo-express.ingress.enabled=true \ + --set mongo-express.ingress.hosts[0].host="mongo-express-staging.$DOMAIN_STAGING" \ + --set mongo-express.ingress.hosts[0].paths[0].path="/" \ + --set mongo-express.ingress.hosts[0].paths[0].pathType="Prefix" \ + --set redis.image.repository=labs.etsi.org:5050/ocf/capif/redis \ + --set redis.image.tag=7.4.2-alpine \ + --set celery-beat.image.repository=$CI_REGISTRY/ocf/capif/staging/celery \ + --set celery-beat.image.tag=staging \ + --set celery-beat.env.celeryModel=beat \ + --set celery-beat.env.redisHost=redis \ + --set celery-beat.env.redisPort=6379 \ + --set celery-beat.env.logLevel="DEBUG" \ + --set celery-worker.image.repository=$CI_REGISTRY/ocf/capif/staging/celery \ + --set celery-worker.image.tag=staging \ + --set celery-worker.env.celeryModel=worker \ + --set celery-worker.env.redisHost=redis \ + --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 < helm/scripts/envs/$NAMESPACE_STAGING.template + # -------------------------------------------------------------------------------------------------------------- + # 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_STAGING + export CAPIF_CI_ENV_ENDPOINT=capif-staging + export CAPIF_NAME_VERSION_CHART=ocf-staging + export CAPIF_DOMAIN=$DOMAIN_STAGING + export BASE_DOCKER_REGISTRY=labs.etsi.org:5050/ocf/capif + export CAPIF_DOCKER_REGISTRY=$CI_REGISTRY/ocf/capif/staging + export CAPIF_IMAGE_TAG=staging + export VAULT_INTERNAL_HOSTNAME=$VAULT_HOSTNAME + export VAULT_PORT=$VAULT_PORT + export VAULT_ACCESS_TOKEN= + + export CAPIF_HOSTNAME=capif-staging.$DOMAIN_STAGING + export REGISTER_HOSTNAME=register-staging.$DOMAIN_STAGING + + ## 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 + sed -e "s/^[ ]*export VAULT_ACCESS_TOKEN=.*/export VAULT_ACCESS_TOKEN=$VAULT_ACCESS_TOKEN_PROD/" \ + helm/scripts/envs/$NAMESPACE_STAGING.template > helm/scripts/envs/$NAMESPACE_STAGING.env + ./helm/scripts/install_capif.sh $NAMESPACE_STAGING + kubectl delete pod --field-selector=status.phase=Failed -n $NAMESPACE_STAGING + kubectl delete pod --field-selector=status.phase=Succeeded -n $NAMESPACE_STAGING + + fi + artifacts: + name: "$NAMESPACE_STAGING.template" + paths: + - helm/scripts/envs/$NAMESPACE_STAGING.template + expire_in: 1 day + when: always ## dev ### prep_ocf_cd_dev: @@ -635,9 +739,15 @@ prep_ocf_cd_dev: echo $CD_ENV_NAME echo $CD_ENV_NAME | rev | cut -c 1-6 | rev echo $(echo $CD_ENV_NAME | rev | cut -c 1-6 | rev) > cd_env_endpoint.txt + echo "Setting up a namespace .env file for the dev environment" + CI_ENV_ENDPOINT=$(cat cd_env_endpoint.txt) + echo "CI_ENV_ENDPOINT=$CI_ENV_ENDPOINT" > namespace.env + artifacts: paths: - cd_env_endpoint.txt + reports: + dotenv: namespace.env deploy_ocf_dev: stage: deploy_ocf_dev @@ -646,10 +756,10 @@ deploy_ocf_dev: - prep_ocf_cd_dev <<: *dev_common environment: - name: review/$CI_COMMIT_REF_SLUG + name: review/dev/$CI_COMMIT_REF_SLUG url: https://capif-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV on_stop: delete_ocf_dev - auto_stop_in: 3 day + auto_stop_in: 30 minutes # rules: # - if: $CI_COMMIT_BRANCH == "main" # when: never @@ -663,174 +773,255 @@ deploy_ocf_dev: echo "### setting kubeconfig###" kubectl cluster-info yq --version - ### Chart main ocf### - cat helm/capif/Chart.yaml - yq e -i ".appVersion = \"$IMAGE_TAG_DEV\"" helm/capif/Chart.yaml - cat helm/capif/Chart.yaml - - charts=("mock-server" "nginx" "ocf-access-control-policy" - "ocf-api-invocation-logs" "ocf-api-invoker-management" - "ocf-api-provider-management" "ocf-auditing-api-logs" - "ocf-discover-service-api" "ocf-events" "ocf-helper" - "ocf-publish-service-api" "ocf-register" "ocf-routing-info" - "ocf-security" "celery-beat" "celery-worker") - - for chart in "${charts[@]}"; do - yq e -i ".appVersion = \"$IMAGE_TAG_DEV\"" "helm/capif/charts/$chart/Chart.yaml" - done - - export CI_ENV_ENDPOINT=$(cat cd_env_endpoint.txt) - - echo "### download dependencies###" - helm dependency build helm/capif - echo "### updating capif###" - helm upgrade --install -n $NAMESPACE_DEV ocf-developer helm/capif/ \ - --set grafana.enabled=true \ - --set grafana.ingress.enabled=true \ - --set grafana.ingress.hosts[0].host=ocf-mon-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ - --set grafana.ingress.hosts[0].paths[0].path="/" \ - --set grafana.ingress.hosts[0].paths[0].pathType="Prefix" \ - --set grafana.env.prometheusUrl=http://prometheus.ocf.pre-production \ - --set grafana.env.tempoUrl="http://ocf-developer-tempo:3100" \ - --set fluentbit.enabled=true \ - --set loki.enabled=true \ - --set tempo.tempo.metricsGenerator.remoteWriteUrl=http://prometheus.ocf.pre-production/api/v1/write \ - --set otelcollector.enabled=true \ - --set otelcollector.configMap.tempoEndpoint=ocf-developer-tempo:4317 \ - --set ocf-access-control-policy.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-access-control-policy-api \ - --set ocf-access-control-policy.image.tag=$CI_COMMIT_REF_SLUG \ - --set ocf-access-control-policy.env.capifHostname=capif-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ - --set ocf-access-control-policy.monitoring="true" \ - --set ocf-access-control-policy.env.logLevel="DEBUG" \ - --set ocf-api-invocation-logs.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-logging-api-invocation-api \ - --set ocf-api-invocation-logs.image.tag=$CI_COMMIT_REF_SLUG \ - --set ocf-api-invocation-logs.env.monitoring="true" \ - --set ocf-api-invocation-logs.env.capifHostname=capif-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ - --set ocf-api-invocation-logs.env.vaultHostname=$VAULT_HOSTNAME \ - --set ocf-api-invocation-logs.env.vaultPort=$VAULT_PORT \ - --set ocf-api-invocation-logs.env.vaultAccessToken=$VAULT_ACCESS_TOKEN \ - --set ocf-api-invocation-logs.env.logLevel="DEBUG" \ - --set ocf-api-invoker-management.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-api-invoker-management-api \ - --set ocf-api-invoker-management.image.tag=$CI_COMMIT_REF_SLUG \ - --set ocf-api-invoker-management.env.monitoring="true" \ - --set ocf-api-invoker-management.env.capifHostname=capif-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ - --set ocf-api-invoker-management.env.vaultHostname=$VAULT_HOSTNAME \ - --set ocf-api-invoker-management.env.vaultPort=$VAULT_PORT \ - --set ocf-api-invoker-management.env.vaultAccessToken=$VAULT_ACCESS_TOKEN \ - --set ocf-api-invoker-management.env.logLevel="DEBUG" \ - --set ocf-api-provider-management.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-api-provider-management-api \ - --set ocf-api-provider-management.image.tag=$CI_COMMIT_REF_SLUG \ - --set ocf-api-provider-management.env.monitoring="true" \ - --set ocf-api-provider-management.env.capifHostname=capif-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ - --set ocf-api-provider-management.env.vaultHostname=$VAULT_HOSTNAME \ - --set ocf-api-provider-management.env.logLevel="DEBUG" \ - --set ocf-api-provider-management.env.vaultPort=$VAULT_PORT \ - --set ocf-api-provider-management.env.vaultAccessToken=$VAULT_ACCESS_TOKEN \ - --set ocf-events.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-events-api \ - --set ocf-events.image.tag=$CI_COMMIT_REF_SLUG \ - --set ocf-events.env.monitoring="true" \ - --set ocf-events.env.capifHostname=capif-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ - --set ocf-events.env.logLevel="DEBUG" \ - --set ocf-routing-info.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-routing-info-api \ - --set ocf-routing-info.image.tag=$CI_COMMIT_REF_SLUG \ - --set ocf-routing-info.env.monitoring="true" \ - --set ocf-routing-info.env.logLevel="DEBUG" \ - --set ocf-security.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-security-api \ - --set ocf-security.image.tag=$CI_COMMIT_REF_SLUG \ - --set ocf-security.env.monitoring="true" \ - --set ocf-security.env.capifHostname=capif-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ - --set ocf-security.env.vaultHostname=$VAULT_HOSTNAME \ - --set ocf-security.env.vaultPort=$VAULT_PORT \ - --set ocf-security.env.vaultAccessToken=$VAULT_ACCESS_TOKEN \ - --set ocf-security.env.logLevel="DEBUG" \ - --set ocf-register.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/register \ - --set ocf-register.image.tag=$CI_COMMIT_REF_SLUG \ - --set ocf-register.env.registerHostname=register-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ - --set ocf-register.env.vaultHostname=$VAULT_HOSTNAME \ - --set ocf-register.env.vaultAccessToken=$VAULT_ACCESS_TOKEN \ - --set ocf-register.env.vaultPort=$VAULT_PORT \ - --set ocf-register.env.mongoHost=mongo-register \ - --set ocf-register.env.mongoPort=27017 \ - --set ocf-register.env.capifHostname=capif-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ - --set ocf-register.ingress.enabled=true \ - --set ocf-register.ingress.hosts[0].host=register-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ - --set ocf-register.ingress.hosts[0].paths[0].path="/" \ - --set ocf-register.ingress.hosts[0].paths[0].pathType="Prefix" \ - --set ocf-register.env.logLevel="DEBUG" \ - --set ocf-auditing-api-logs.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-auditing-api \ - --set ocf-auditing-api-logs.image.tag=$CI_COMMIT_REF_SLUG \ - --set ocf-auditing-api-logs.env.monitoring="true" \ - --set ocf-auditing-api-logs.env.logLevel="DEBUG" \ - --set ocf-publish-service-api.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-publish-service-api \ - --set ocf-publish-service-api.image.tag=$CI_COMMIT_REF_SLUG \ - --set ocf-publish-service-api.env.monitoring="true" \ - --set ocf-publish-service-api.env.capifHostname=capif-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ - --set ocf-publish-service-api.env.logLevel="DEBUG" \ - --set ocf-discover-service-api.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-discover-service-api \ - --set ocf-discover-service-api.image.tag=$CI_COMMIT_REF_SLUG \ - --set ocf-discover-service-api.env.monitoring="true" \ - --set ocf-discover-service-api.env.logLevel="DEBUG" \ - --set nginx.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/nginx \ - --set nginx.image.tag=$CI_COMMIT_REF_SLUG \ - --set nginx.env.capifHostname=capif-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ - --set nginx.env.vaultHostname=$VAULT_HOSTNAME \ - --set nginx.env.vaultPort=$VAULT_PORT \ - --set nginx.env.vaultAccessToken=$VAULT_ACCESS_TOKEN \ - --set nginx.ingress.enabled=true \ - --set nginx.ingress.hosts[0].host=capif-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ - --set nginx.ingress.hosts[0].paths[0].path="/" \ - --set nginx.ingress.hosts[0].paths[0].pathType="Prefix" \ - --set nginx.env.logLevel="debug" \ - --set ocf-helper.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/helper \ - --set ocf-helper.image.tag=$CI_COMMIT_REF_SLUG \ - --set ocf-helper.env.vaultHostname=$VAULT_HOSTNAME \ - --set ocf-helper.env.vaultPort=$VAULT_PORT \ - --set ocf-helper.env.vaultAccessToken=$VAULT_ACCESS_TOKEN \ - --set ocf-helper.env.capifHostname=capif-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ - --set ocf-helper.env.logLevel="DEBUG" \ - --set mock-server.enabled=true \ - --set mock-server.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/mock-server \ - --set mock-server.image.tag=$CI_COMMIT_REF_SLUG \ - --set mock-server.ingress.enabled=true \ - --set mock-server.ingress.hosts[0].host=mock-server-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ - --set mock-server.ingress.hosts[0].paths[0].path="/" \ - --set mock-server.ingress.hosts[0].paths[0].pathType="Prefix" \ - --set mock-server.env.logLevel="DEBUG" \ - --set mongo.image.repository=labs.etsi.org:5050/ocf/capif/mongo \ - --set mongo.image.tag=6.0.2 \ - --set mongo.busybox.repository=labs.etsi.org:5050/ocf/capif/busybox \ - --set mongo.busybox.tag=1.37.0 \ - --set mongo-register.image.repository=labs.etsi.org:5050/ocf/capif/mongo \ - --set mongo-register.image.tag=6.0.2 \ - --set mongo-register-express.enabled=true \ - --set mongo-register-express.image.repository=labs.etsi.org:5050/ocf/capif/mongo-express \ - --set mongo-register-express.image.tag=1.0.0-alpha.4 \ - --set mongo-register-express.ingress.enabled=true \ - --set mongo-register-express.ingress.hosts[0].host="mongo-express-register-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV" \ - --set mongo-register-express.ingress.hosts[0].paths[0].path="/" \ - --set mongo-register-express.ingress.hosts[0].paths[0].pathType="Prefix" \ - --set mongo-express.enabled=true \ - --set mongo-express.image.repository=labs.etsi.org:5050/ocf/capif/mongo-express \ - --set mongo-express.image.tag=1.0.0-alpha.4 \ - --set mongo-express.ingress.enabled=true \ - --set mongo-express.ingress.hosts[0].host="mongo-express-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV" \ - --set mongo-express.ingress.hosts[0].paths[0].path="/" \ - --set mongo-express.ingress.hosts[0].paths[0].pathType="Prefix" \ - --set redis.image.repository=labs.etsi.org:5050/ocf/capif/redis \ - --set redis.image.tag=7.4.2-alpine \ - --set celery-beat.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/celery \ - --set celery-beat.image.tag=$CI_COMMIT_REF_SLUG \ - --set celery-beat.env.celeryModel=beat \ - --set celery-beat.env.redisHost=redis \ - --set celery-beat.env.redisPort=6379 \ - --set celery-beat.env.logLevel="DEBUG" \ - --set celery-worker.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/celery \ - --set celery-worker.image.tag=$CI_COMMIT_REF_SLUG \ - --set celery-worker.env.celeryModel=worker \ - --set celery-worker.env.redisHost=redis \ - --set celery-worker.env.redisPort=6379 \ - --set celery-worker.env.logLevel="DEBUG" \ - --wait --timeout=10m --create-namespace --atomic + if [[ -d helm/capif ]]; then + echo "### helm capif directory exists ###" + ### Chart main ocf### + cat helm/capif/Chart.yaml + yq e -i ".appVersion = \"$IMAGE_TAG_DEV\"" helm/capif/Chart.yaml + cat helm/capif/Chart.yaml + + charts=("mock-server" "nginx" "ocf-access-control-policy" + "ocf-api-invocation-logs" "ocf-api-invoker-management" + "ocf-api-provider-management" "ocf-auditing-api-logs" + "ocf-discover-service-api" "ocf-events" "ocf-helper" + "ocf-publish-service-api" "ocf-register" "ocf-routing-info" + "ocf-security" "celery-beat" "celery-worker") + + for chart in "${charts[@]}"; do + yq e -i ".appVersion = \"$IMAGE_TAG_DEV\"" "helm/capif/charts/$chart/Chart.yaml" + done + + echo "### download dependencies###" + helm dependency build helm/capif + echo "### updating capif###" + helm upgrade --install -n $NAMESPACE_DEV ocf-developer helm/capif/ \ + --set grafana.enabled=true \ + --set grafana.ingress.enabled=true \ + --set grafana.ingress.hosts[0].host=ocf-mon-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ + --set grafana.ingress.hosts[0].paths[0].path="/" \ + --set grafana.ingress.hosts[0].paths[0].pathType="Prefix" \ + --set grafana.env.prometheusUrl=http://prometheus.ocf.pre-production \ + --set grafana.env.tempoUrl="http://ocf-developer-tempo:3100" \ + --set fluentbit.enabled=true \ + --set loki.enabled=true \ + --set tempo.tempo.metricsGenerator.remoteWriteUrl=http://prometheus.ocf.pre-production/api/v1/write \ + --set otelcollector.enabled=true \ + --set otelcollector.configMap.tempoEndpoint=ocf-developer-tempo:4317 \ + --set ocf-access-control-policy.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-access-control-policy-api \ + --set ocf-access-control-policy.image.tag=$CI_COMMIT_REF_SLUG \ + --set ocf-access-control-policy.env.capifHostname=capif-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ + --set ocf-access-control-policy.monitoring="true" \ + --set ocf-access-control-policy.env.logLevel="DEBUG" \ + --set ocf-api-invocation-logs.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-logging-api-invocation-api \ + --set ocf-api-invocation-logs.image.tag=$CI_COMMIT_REF_SLUG \ + --set ocf-api-invocation-logs.env.monitoring="true" \ + --set ocf-api-invocation-logs.env.capifHostname=capif-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ + --set ocf-api-invocation-logs.env.vaultHostname=$VAULT_HOSTNAME \ + --set ocf-api-invocation-logs.env.vaultPort=$VAULT_PORT \ + --set ocf-api-invocation-logs.env.vaultAccessToken=$VAULT_ACCESS_TOKEN \ + --set ocf-api-invocation-logs.env.logLevel="DEBUG" \ + --set ocf-api-invoker-management.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-api-invoker-management-api \ + --set ocf-api-invoker-management.image.tag=$CI_COMMIT_REF_SLUG \ + --set ocf-api-invoker-management.env.monitoring="true" \ + --set ocf-api-invoker-management.env.capifHostname=capif-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ + --set ocf-api-invoker-management.env.vaultHostname=$VAULT_HOSTNAME \ + --set ocf-api-invoker-management.env.vaultPort=$VAULT_PORT \ + --set ocf-api-invoker-management.env.vaultAccessToken=$VAULT_ACCESS_TOKEN \ + --set ocf-api-invoker-management.env.logLevel="DEBUG" \ + --set ocf-api-provider-management.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-api-provider-management-api \ + --set ocf-api-provider-management.image.tag=$CI_COMMIT_REF_SLUG \ + --set ocf-api-provider-management.env.monitoring="true" \ + --set ocf-api-provider-management.env.capifHostname=capif-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ + --set ocf-api-provider-management.env.vaultHostname=$VAULT_HOSTNAME \ + --set ocf-api-provider-management.env.logLevel="DEBUG" \ + --set ocf-api-provider-management.env.vaultPort=$VAULT_PORT \ + --set ocf-api-provider-management.env.vaultAccessToken=$VAULT_ACCESS_TOKEN \ + --set ocf-events.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-events-api \ + --set ocf-events.image.tag=$CI_COMMIT_REF_SLUG \ + --set ocf-events.env.monitoring="true" \ + --set ocf-events.env.capifHostname=capif-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ + --set ocf-events.env.logLevel="DEBUG" \ + --set ocf-routing-info.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-routing-info-api \ + --set ocf-routing-info.image.tag=$CI_COMMIT_REF_SLUG \ + --set ocf-routing-info.env.monitoring="true" \ + --set ocf-routing-info.env.logLevel="DEBUG" \ + --set ocf-security.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-security-api \ + --set ocf-security.image.tag=$CI_COMMIT_REF_SLUG \ + --set ocf-security.env.monitoring="true" \ + --set ocf-security.env.capifHostname=capif-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ + --set ocf-security.env.vaultHostname=$VAULT_HOSTNAME \ + --set ocf-security.env.vaultPort=$VAULT_PORT \ + --set ocf-security.env.vaultAccessToken=$VAULT_ACCESS_TOKEN \ + --set ocf-security.env.logLevel="DEBUG" \ + --set ocf-register.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/register \ + --set ocf-register.image.tag=$CI_COMMIT_REF_SLUG \ + --set ocf-register.env.registerHostname=register-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ + --set ocf-register.env.vaultHostname=$VAULT_HOSTNAME \ + --set ocf-register.env.vaultAccessToken=$VAULT_ACCESS_TOKEN \ + --set ocf-register.env.vaultPort=$VAULT_PORT \ + --set ocf-register.env.mongoHost=mongo-register \ + --set ocf-register.env.mongoPort=27017 \ + --set ocf-register.env.capifHostname=capif-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ + --set ocf-register.ingress.enabled=true \ + --set ocf-register.ingress.hosts[0].host=register-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ + --set ocf-register.ingress.hosts[0].paths[0].path="/" \ + --set ocf-register.ingress.hosts[0].paths[0].pathType="Prefix" \ + --set ocf-register.env.logLevel="DEBUG" \ + --set ocf-auditing-api-logs.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-auditing-api \ + --set ocf-auditing-api-logs.image.tag=$CI_COMMIT_REF_SLUG \ + --set ocf-auditing-api-logs.env.monitoring="true" \ + --set ocf-auditing-api-logs.env.logLevel="DEBUG" \ + --set ocf-publish-service-api.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-publish-service-api \ + --set ocf-publish-service-api.image.tag=$CI_COMMIT_REF_SLUG \ + --set ocf-publish-service-api.env.monitoring="true" \ + --set ocf-publish-service-api.env.capifHostname=capif-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ + --set ocf-publish-service-api.env.logLevel="DEBUG" \ + --set ocf-discover-service-api.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/ocf-discover-service-api \ + --set ocf-discover-service-api.image.tag=$CI_COMMIT_REF_SLUG \ + --set ocf-discover-service-api.env.monitoring="true" \ + --set ocf-discover-service-api.env.logLevel="DEBUG" \ + --set nginx.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/nginx \ + --set nginx.image.tag=$CI_COMMIT_REF_SLUG \ + --set nginx.env.capifHostname=capif-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ + --set nginx.env.vaultHostname=$VAULT_HOSTNAME \ + --set nginx.env.vaultPort=$VAULT_PORT \ + --set nginx.env.vaultAccessToken=$VAULT_ACCESS_TOKEN \ + --set nginx.ingress.enabled=true \ + --set nginx.ingress.hosts[0].host=capif-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ + --set nginx.ingress.hosts[0].paths[0].path="/" \ + --set nginx.ingress.hosts[0].paths[0].pathType="Prefix" \ + --set nginx.env.logLevel="debug" \ + --set ocf-helper.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/helper \ + --set ocf-helper.image.tag=$CI_COMMIT_REF_SLUG \ + --set ocf-helper.env.vaultHostname=$VAULT_HOSTNAME \ + --set ocf-helper.env.vaultPort=$VAULT_PORT \ + --set ocf-helper.env.vaultAccessToken=$VAULT_ACCESS_TOKEN \ + --set ocf-helper.env.capifHostname=capif-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ + --set ocf-helper.env.logLevel="DEBUG" \ + --set mock-server.enabled=true \ + --set mock-server.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/mock-server \ + --set mock-server.image.tag=$CI_COMMIT_REF_SLUG \ + --set mock-server.ingress.enabled=true \ + --set mock-server.ingress.hosts[0].host=mock-server-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV \ + --set mock-server.ingress.hosts[0].paths[0].path="/" \ + --set mock-server.ingress.hosts[0].paths[0].pathType="Prefix" \ + --set mock-server.env.logLevel="DEBUG" \ + --set mongo.image.repository=labs.etsi.org:5050/ocf/capif/mongo \ + --set mongo.image.tag=6.0.2 \ + --set mongo.busybox.repository=labs.etsi.org:5050/ocf/capif/busybox \ + --set mongo.busybox.tag=1.37.0 \ + --set mongo-register.image.repository=labs.etsi.org:5050/ocf/capif/mongo \ + --set mongo-register.image.tag=6.0.2 \ + --set mongo-register-express.enabled=true \ + --set mongo-register-express.image.repository=labs.etsi.org:5050/ocf/capif/mongo-express \ + --set mongo-register-express.image.tag=1.0.0-alpha.4 \ + --set mongo-register-express.ingress.enabled=true \ + --set mongo-register-express.ingress.hosts[0].host="mongo-express-register-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV" \ + --set mongo-register-express.ingress.hosts[0].paths[0].path="/" \ + --set mongo-register-express.ingress.hosts[0].paths[0].pathType="Prefix" \ + --set mongo-express.enabled=true \ + --set mongo-express.image.repository=labs.etsi.org:5050/ocf/capif/mongo-express \ + --set mongo-express.image.tag=1.0.0-alpha.4 \ + --set mongo-express.ingress.enabled=true \ + --set mongo-express.ingress.hosts[0].host="mongo-express-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV" \ + --set mongo-express.ingress.hosts[0].paths[0].path="/" \ + --set mongo-express.ingress.hosts[0].paths[0].pathType="Prefix" \ + --set redis.image.repository=labs.etsi.org:5050/ocf/capif/redis \ + --set redis.image.tag=7.4.2-alpine \ + --set celery-beat.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/celery \ + --set celery-beat.image.tag=$CI_COMMIT_REF_SLUG \ + --set celery-beat.env.celeryModel=beat \ + --set celery-beat.env.redisHost=redis \ + --set celery-beat.env.redisPort=6379 \ + --set celery-beat.env.logLevel="DEBUG" \ + --set celery-worker.image.repository=$CI_REGISTRY/ocf/capif/$CI_COMMIT_REF_SLUG/celery \ + --set celery-worker.image.tag=$CI_COMMIT_REF_SLUG \ + --set celery-worker.env.celeryModel=worker \ + --set celery-worker.env.redisHost=redis \ + --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 < helm/scripts/envs/$NAMESPACE_DEV.template + # -------------------------------------------------------------------------------------------------------------- + # 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 + export CAPIF_CI_ENV_ENDPOINT=$CI_ENV_ENDPOINT-dev + export CAPIF_NAME_VERSION_CHART=ocf-developer + 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= + + export CAPIF_HOSTNAME=capif-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV + export REGISTER_HOSTNAME=register-$CI_ENV_ENDPOINT-dev.$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 + sed -e "s/^[ ]*export VAULT_ACCESS_TOKEN=.*/export VAULT_ACCESS_TOKEN=$VAULT_ACCESS_TOKEN/" \ + helm/scripts/envs/$NAMESPACE_DEV.template > helm/scripts/envs/$NAMESPACE_DEV.env + ./helm/scripts/install_capif.sh $NAMESPACE_DEV + kubectl delete pod --field-selector=status.phase=Failed -n $NAMESPACE_DEV + kubectl delete pod --field-selector=status.phase=Succeeded -n $NAMESPACE_DEV + + fi + artifacts: + name: "$NAMESPACE_DEV.template" + paths: + - helm/scripts/envs/$NAMESPACE_DEV.template + expire_in: 1 day + when: always delete_ocf_dev: stage: delete_ocf_dev @@ -838,10 +1029,86 @@ delete_ocf_dev: tags: - shell script: - - echo "### deleting environment $NAMESPACE_DEV###" - - helm uninstall -n $NAMESPACE_DEV ocf-developer - - kubectl delete ns $NAMESPACE_DEV --force + - | + echo "### deleting environment $NAMESPACE_DEV###" + if [[ -d helm/capif ]]; then + helm uninstall -n $NAMESPACE_DEV ocf-developer + kubectl delete ns $NAMESPACE_DEV --force + else + if [[ -f helm/scripts/envs/$NAMESPACE_DEV.env ]]; then + echo "### env file found for $NAMESPACE_DEV, deleting with helm script ###" + else + echo "### No helm capif directory and no env file found for $NAMESPACE_DEV, create file ###" + cat < helm/scripts/envs/$NAMESPACE_DEV.template + # -------------------------------------------------------------------------------------------------------------- + # 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 + export CAPIF_CI_ENV_ENDPOINT=$CI_ENV_ENDPOINT-dev + export CAPIF_NAME_VERSION_CHART=ocf-developer + 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= + + export CAPIF_HOSTNAME=capif-$CI_ENV_ENDPOINT-dev.$DOMAIN_DEV + export REGISTER_HOSTNAME=register-$CI_ENV_ENDPOINT-dev.$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 + sed -e "s/^[ ]*export VAULT_ACCESS_TOKEN=.*/export VAULT_ACCESS_TOKEN=$VAULT_ACCESS_TOKEN/" \ + helm/scripts/envs/$NAMESPACE_DEV.template > helm/scripts/envs/$NAMESPACE_DEV.env + + fi + ./helm/scripts/uninstall_capif.sh $NAMESPACE_DEV -y + fi + when: manual environment: - name: review/$CI_COMMIT_REF_SLUG - action: stop \ No newline at end of file + name: review/dev/$CI_COMMIT_REF_SLUG + action: stop diff --git a/capif/templates/cicd-deploy-release.gitlab-ci.yml b/capif/templates/cicd-deploy-release.gitlab-ci.yml index e81f2fd57877c599382315181d253851190e4706..8b3758f1c8b0591c29b09f0f88c1ba3f5f1ac046 100644 --- a/capif/templates/cicd-deploy-release.gitlab-ci.yml +++ b/capif/templates/cicd-deploy-release.gitlab-ci.yml @@ -139,156 +139,240 @@ deploy_ocf_prod: whoami kubectl cluster-info yq --version - ls -rtt helm/capif - cat helm/capif/Chart.yaml - yq e -i ".appVersion = \"prod\"" helm/capif/Chart.yaml - cat helm/capif/Chart.yaml + if [[ -d helm/capif ]]; then + echo "### helm capif directory exists ###" + ls -rtt helm/capif + cat helm/capif/Chart.yaml + yq e -i ".appVersion = \"prod\"" helm/capif/Chart.yaml + cat helm/capif/Chart.yaml - charts=("mock-server" "nginx" "ocf-access-control-policy" - "ocf-api-invocation-logs" "ocf-api-invoker-management" - "ocf-api-provider-management" "ocf-auditing-api-logs" - "ocf-discover-service-api" "ocf-events" "ocf-helper" - "ocf-publish-service-api" "ocf-register" "ocf-routing-info" - "ocf-security" "celery-beat" "celery-worker") - - for chart in "${charts[@]}"; do - yq e -i ".appVersion = \"$CI_COMMIT_TAG\"" "helm/capif/charts/$chart/Chart.yaml" - done + charts=("mock-server" "nginx" "ocf-access-control-policy" + "ocf-api-invocation-logs" "ocf-api-invoker-management" + "ocf-api-provider-management" "ocf-auditing-api-logs" + "ocf-discover-service-api" "ocf-events" "ocf-helper" + "ocf-publish-service-api" "ocf-register" "ocf-routing-info" + "ocf-security" "celery-beat" "celery-worker") + + for chart in "${charts[@]}"; do + yq e -i ".appVersion = \"$CI_COMMIT_TAG\"" "helm/capif/charts/$chart/Chart.yaml" + done - echo "### download dependencies###" - helm dependency build helm/capif - echo "### updating capif###" - helm upgrade --install -n $NAMESPACE_PROD ocf-prod helm/capif/ \ - --set grafana.enabled=true \ - --set grafana.ingress.enabled=true \ - --set grafana.ingress.hosts[0].host=ocf-mon-prod.$DOMAIN_PROD \ - --set grafana.ingress.hosts[0].paths[0].path="/" \ - --set grafana.ingress.hosts[0].paths[0].pathType="Prefix" \ - --set grafana.env.prometheusUrl=http://prometheus.$DOMAIN_PROD \ - --set grafana.env.tempoUrl="http://ocf-prod-tempo:3100" \ - --set fluentbit.enabled=true \ - --set loki.enabled=true \ - --set tempo.tempo.metricsGenerator.remoteWriteUrl=http://prometheus.$DOMAIN_PROD/api/v1/write \ - --set otelcollector.enabled=true \ - --set otelcollector.configMap.tempoEndpoint=ocf-prod-tempo:4317 \ - --set ocf-access-control-policy.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/ocf-access-control-policy-api \ - --set ocf-access-control-policy.image.tag=$CI_COMMIT_TAG \ - --set ocf-access-control-policy.env.capifHostname=capif-prod.$DOMAIN_PROD \ - --set ocf-access-control-policy.monitoring="true" \ - --set ocf-api-invocation-logs.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/ocf-logging-api-invocation-api \ - --set ocf-api-invocation-logs.image.tag=$CI_COMMIT_TAG \ - --set ocf-api-invocation-logs.env.monitoring="true" \ - --set ocf-api-invocation-logs.env.capifHostname=capif-prod.$DOMAIN_PROD \ - --set ocf-api-invocation-logs.env.vaultHostname=$VAULT_HOSTNAME \ - --set ocf-api-invocation-logs.env.vaultPort=$VAULT_PORT \ - --set ocf-api-invocation-logs.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ - --set ocf-api-invoker-management.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/ocf-api-invoker-management-api \ - --set ocf-api-invoker-management.image.tag=$CI_COMMIT_TAG \ - --set ocf-api-invoker-management.env.monitoring="true" \ - --set ocf-api-invoker-management.env.capifHostname=capif-prod.$DOMAIN_PROD \ - --set ocf-api-invoker-management.env.vaultHostname=$VAULT_HOSTNAME \ - --set ocf-api-invoker-management.env.vaultPort=$VAULT_PORT \ - --set ocf-api-invoker-management.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ - --set ocf-api-provider-management.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/ocf-api-provider-management-api \ - --set ocf-api-provider-management.image.tag=$CI_COMMIT_TAG \ - --set ocf-api-provider-management.env.monitoring="true" \ - --set ocf-api-provider-management.env.capifHostname=capif-prod.$DOMAIN_PROD \ - --set ocf-api-provider-management.env.vaultHostname=$VAULT_HOSTNAME \ - --set ocf-api-provider-management.env.vaultPort=$VAULT_PORT \ - --set ocf-api-provider-management.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ - --set ocf-events.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/ocf-events-api \ - --set ocf-events.image.tag=$CI_COMMIT_TAG \ - --set ocf-events.env.monitoring="true" \ - --set ocf-events.env.capifHostname=capif-prod.$DOMAIN_PROD \ - --set ocf-routing-info.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/ocf-routing-info-api \ - --set ocf-routing-info.image.tag=$CI_COMMIT_TAG \ - --set ocf-routing-info.env.monitoring="true" \ - --set ocf-security.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/ocf-security-api \ - --set ocf-security.image.tag=$CI_COMMIT_TAG \ - --set ocf-security.env.monitoring="true" \ - --set ocf-security.env.capifHostname=capif-prod.$DOMAIN_PROD \ - --set ocf-security.env.vaultHostname=$VAULT_HOSTNAME \ - --set ocf-security.env.vaultPort=$VAULT_PORT \ - --set ocf-security.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ - --set ocf-register.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/register \ - --set ocf-register.image.tag=$CI_COMMIT_TAG \ - --set ocf-register.env.registerHostname=register-prod.$DOMAIN_PROD \ - --set ocf-register.env.vaultHostname=$VAULT_HOSTNAME \ - --set ocf-register.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ - --set ocf-register.env.vaultPort=$VAULT_PORT \ - --set ocf-register.env.mongoHost=mongo-register \ - --set ocf-register.env.mongoPort=27017 \ - --set ocf-register.env.capifHostname=capif-prod.$DOMAIN_PROD \ - --set ocf-register.ingress.enabled=true \ - --set ocf-register.ingress.hosts[0].host=register-prod.$DOMAIN_PROD \ - --set ocf-register.ingress.hosts[0].paths[0].path="/" \ - --set ocf-register.ingress.hosts[0].paths[0].pathType="Prefix" \ - --set ocf-auditing-api-logs.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/ocf-auditing-api \ - --set ocf-auditing-api-logs.image.tag=$CI_COMMIT_TAG \ - --set ocf-auditing-api-logs.env.monitoring="true" \ - --set ocf-publish-service-api.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/ocf-publish-service-api \ - --set ocf-publish-service-api.image.tag=$CI_COMMIT_TAG \ - --set ocf-publish-service-api.env.monitoring="true" \ - --set ocf-publish-service-api.env.capifHostname=capif-prod.$DOMAIN_PROD \ - --set ocf-discover-service-api.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/ocf-discover-service-api \ - --set ocf-discover-service-api.image.tag=$CI_COMMIT_TAG \ - --set ocf-discover-service-api.env.monitoring="true" \ - --set nginx.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/nginx \ - --set nginx.image.tag=$CI_COMMIT_TAG \ - --set nginx.env.capifHostname=capif-prod.$DOMAIN_PROD \ - --set nginx.env.vaultHostname=$VAULT_HOSTNAME \ - --set nginx.env.vaultPort=$VAULT_PORT \ - --set nginx.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ - --set nginx.ingress.enabled=true \ - --set nginx.ingress.hosts[0].host=capif-prod.$DOMAIN_PROD \ - --set nginx.ingress.hosts[0].paths[0].path="/" \ - --set nginx.ingress.hosts[0].paths[0].pathType="Prefix" \ - --set ocf-helper.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/helper \ - --set ocf-helper.image.tag=$CI_COMMIT_TAG \ - --set ocf-helper.env.vaultHostname=$VAULT_HOSTNAME \ - --set ocf-helper.env.vaultPort=$VAULT_PORT \ - --set ocf-helper.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ - --set ocf-helper.env.capifHostname=capif-prod.$DOMAIN_PROD \ - --set mock-server.enabled=true \ - --set mock-server.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/mock-server \ - --set mock-server.image.tag=$CI_COMMIT_TAG \ - --set mock-server.ingress.enabled=true \ - --set mock-server.ingress.hosts[0].host=mock-server-prod.$DOMAIN_PROD \ - --set mock-server.ingress.hosts[0].paths[0].path="/" \ - --set mock-server.ingress.hosts[0].paths[0].pathType="Prefix" \ - --set mongo.image.repository=labs.etsi.org:5050/ocf/capif/mongo \ - --set mongo.image.tag=6.0.2 \ - --set mongo.busybox.repository=labs.etsi.org:5050/ocf/capif/busybox \ - --set mongo.busybox.tag=1.37.0 \ - --set mongo-register.image.repository=labs.etsi.org:5050/ocf/capif/mongo \ - --set mongo-register.image.tag=6.0.2 \ - --set mongo-register-express.enabled=true \ - --set mongo-register-express.image.repository=labs.etsi.org:5050/ocf/capif/mongo-express \ - --set mongo-register-express.image.tag=1.0.0-alpha.4 \ - --set mongo-register-express.ingress.enabled=true \ - --set mongo-register-express.ingress.hosts[0].host="mongo-express-register-prod.$DOMAIN_PROD" \ - --set mongo-register-express.ingress.hosts[0].paths[0].path="/" \ - --set mongo-register-express.ingress.hosts[0].paths[0].pathType="Prefix" \ - --set mongo-express.enabled=true \ - --set mongo-express.image.repository=labs.etsi.org:5050/ocf/capif/mongo-express \ - --set mongo-express.image.tag=1.0.0-alpha.4 \ - --set mongo-express.ingress.enabled=true \ - --set mongo-express.ingress.hosts[0].host="mongo-express-prod.$DOMAIN_PROD" \ - --set mongo-express.ingress.hosts[0].paths[0].path="/" \ - --set mongo-express.ingress.hosts[0].paths[0].pathType="Prefix" \ - --set redis.image.repository=labs.etsi.org:5050/ocf/capif/redis \ - --set redis.image.tag=7.4.2-alpine \ - --set celery-beat.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/celery \ - --set celery-beat.image.tag=$CI_COMMIT_TAG \ - --set celery-beat.env.celeryModel=beat \ - --set celery-beat.env.redisHost=redis \ - --set celery-beat.env.redisPort=6379 \ - --set celery-beat.env.logLevel="DEBUG" \ - --set celery-worker.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/celery \ - --set celery-worker.image.tag=$CI_COMMIT_TAG \ - --set celery-worker.env.celeryModel=worker \ - --set celery-worker.env.redisHost=redis \ - --set celery-worker.env.redisPort=6379 \ - --set celery-worker.env.logLevel="DEBUG" \ - --wait --timeout=10m --create-namespace --atomic \ No newline at end of file + echo "### download dependencies###" + helm dependency build helm/capif + echo "### updating capif###" + helm upgrade --install -n $NAMESPACE_PROD ocf-prod helm/capif/ \ + --set grafana.enabled=true \ + --set grafana.ingress.enabled=true \ + --set grafana.ingress.hosts[0].host=ocf-mon-prod.$DOMAIN_PROD \ + --set grafana.ingress.hosts[0].paths[0].path="/" \ + --set grafana.ingress.hosts[0].paths[0].pathType="Prefix" \ + --set grafana.env.prometheusUrl=http://prometheus.$DOMAIN_PROD \ + --set grafana.env.tempoUrl="http://ocf-prod-tempo:3100" \ + --set fluentbit.enabled=true \ + --set loki.enabled=true \ + --set tempo.tempo.metricsGenerator.remoteWriteUrl=http://prometheus.$DOMAIN_PROD/api/v1/write \ + --set otelcollector.enabled=true \ + --set otelcollector.configMap.tempoEndpoint=ocf-prod-tempo:4317 \ + --set ocf-access-control-policy.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/ocf-access-control-policy-api \ + --set ocf-access-control-policy.image.tag=$CI_COMMIT_TAG \ + --set ocf-access-control-policy.env.capifHostname=capif-prod.$DOMAIN_PROD \ + --set ocf-access-control-policy.monitoring="true" \ + --set ocf-api-invocation-logs.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/ocf-logging-api-invocation-api \ + --set ocf-api-invocation-logs.image.tag=$CI_COMMIT_TAG \ + --set ocf-api-invocation-logs.env.monitoring="true" \ + --set ocf-api-invocation-logs.env.capifHostname=capif-prod.$DOMAIN_PROD \ + --set ocf-api-invocation-logs.env.vaultHostname=$VAULT_HOSTNAME \ + --set ocf-api-invocation-logs.env.vaultPort=$VAULT_PORT \ + --set ocf-api-invocation-logs.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ + --set ocf-api-invoker-management.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/ocf-api-invoker-management-api \ + --set ocf-api-invoker-management.image.tag=$CI_COMMIT_TAG \ + --set ocf-api-invoker-management.env.monitoring="true" \ + --set ocf-api-invoker-management.env.capifHostname=capif-prod.$DOMAIN_PROD \ + --set ocf-api-invoker-management.env.vaultHostname=$VAULT_HOSTNAME \ + --set ocf-api-invoker-management.env.vaultPort=$VAULT_PORT \ + --set ocf-api-invoker-management.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ + --set ocf-api-provider-management.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/ocf-api-provider-management-api \ + --set ocf-api-provider-management.image.tag=$CI_COMMIT_TAG \ + --set ocf-api-provider-management.env.monitoring="true" \ + --set ocf-api-provider-management.env.capifHostname=capif-prod.$DOMAIN_PROD \ + --set ocf-api-provider-management.env.vaultHostname=$VAULT_HOSTNAME \ + --set ocf-api-provider-management.env.vaultPort=$VAULT_PORT \ + --set ocf-api-provider-management.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ + --set ocf-events.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/ocf-events-api \ + --set ocf-events.image.tag=$CI_COMMIT_TAG \ + --set ocf-events.env.monitoring="true" \ + --set ocf-events.env.capifHostname=capif-prod.$DOMAIN_PROD \ + --set ocf-routing-info.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/ocf-routing-info-api \ + --set ocf-routing-info.image.tag=$CI_COMMIT_TAG \ + --set ocf-routing-info.env.monitoring="true" \ + --set ocf-security.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/ocf-security-api \ + --set ocf-security.image.tag=$CI_COMMIT_TAG \ + --set ocf-security.env.monitoring="true" \ + --set ocf-security.env.capifHostname=capif-prod.$DOMAIN_PROD \ + --set ocf-security.env.vaultHostname=$VAULT_HOSTNAME \ + --set ocf-security.env.vaultPort=$VAULT_PORT \ + --set ocf-security.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ + --set ocf-register.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/register \ + --set ocf-register.image.tag=$CI_COMMIT_TAG \ + --set ocf-register.env.registerHostname=register-prod.$DOMAIN_PROD \ + --set ocf-register.env.vaultHostname=$VAULT_HOSTNAME \ + --set ocf-register.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ + --set ocf-register.env.vaultPort=$VAULT_PORT \ + --set ocf-register.env.mongoHost=mongo-register \ + --set ocf-register.env.mongoPort=27017 \ + --set ocf-register.env.capifHostname=capif-prod.$DOMAIN_PROD \ + --set ocf-register.ingress.enabled=true \ + --set ocf-register.ingress.hosts[0].host=register-prod.$DOMAIN_PROD \ + --set ocf-register.ingress.hosts[0].paths[0].path="/" \ + --set ocf-register.ingress.hosts[0].paths[0].pathType="Prefix" \ + --set ocf-auditing-api-logs.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/ocf-auditing-api \ + --set ocf-auditing-api-logs.image.tag=$CI_COMMIT_TAG \ + --set ocf-auditing-api-logs.env.monitoring="true" \ + --set ocf-publish-service-api.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/ocf-publish-service-api \ + --set ocf-publish-service-api.image.tag=$CI_COMMIT_TAG \ + --set ocf-publish-service-api.env.monitoring="true" \ + --set ocf-publish-service-api.env.capifHostname=capif-prod.$DOMAIN_PROD \ + --set ocf-discover-service-api.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/ocf-discover-service-api \ + --set ocf-discover-service-api.image.tag=$CI_COMMIT_TAG \ + --set ocf-discover-service-api.env.monitoring="true" \ + --set nginx.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/nginx \ + --set nginx.image.tag=$CI_COMMIT_TAG \ + --set nginx.env.capifHostname=capif-prod.$DOMAIN_PROD \ + --set nginx.env.vaultHostname=$VAULT_HOSTNAME \ + --set nginx.env.vaultPort=$VAULT_PORT \ + --set nginx.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ + --set nginx.ingress.enabled=true \ + --set nginx.ingress.hosts[0].host=capif-prod.$DOMAIN_PROD \ + --set nginx.ingress.hosts[0].paths[0].path="/" \ + --set nginx.ingress.hosts[0].paths[0].pathType="Prefix" \ + --set ocf-helper.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/helper \ + --set ocf-helper.image.tag=$CI_COMMIT_TAG \ + --set ocf-helper.env.vaultHostname=$VAULT_HOSTNAME \ + --set ocf-helper.env.vaultPort=$VAULT_PORT \ + --set ocf-helper.env.vaultAccessToken=$VAULT_ACCESS_TOKEN_PROD \ + --set ocf-helper.env.capifHostname=capif-prod.$DOMAIN_PROD \ + --set mock-server.enabled=true \ + --set mock-server.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/mock-server \ + --set mock-server.image.tag=$CI_COMMIT_TAG \ + --set mock-server.ingress.enabled=true \ + --set mock-server.ingress.hosts[0].host=mock-server-prod.$DOMAIN_PROD \ + --set mock-server.ingress.hosts[0].paths[0].path="/" \ + --set mock-server.ingress.hosts[0].paths[0].pathType="Prefix" \ + --set mongo.image.repository=labs.etsi.org:5050/ocf/capif/mongo \ + --set mongo.image.tag=6.0.2 \ + --set mongo.busybox.repository=labs.etsi.org:5050/ocf/capif/busybox \ + --set mongo.busybox.tag=1.37.0 \ + --set mongo-register.image.repository=labs.etsi.org:5050/ocf/capif/mongo \ + --set mongo-register.image.tag=6.0.2 \ + --set mongo-register-express.enabled=true \ + --set mongo-register-express.image.repository=labs.etsi.org:5050/ocf/capif/mongo-express \ + --set mongo-register-express.image.tag=1.0.0-alpha.4 \ + --set mongo-register-express.ingress.enabled=true \ + --set mongo-register-express.ingress.hosts[0].host="mongo-express-register-prod.$DOMAIN_PROD" \ + --set mongo-register-express.ingress.hosts[0].paths[0].path="/" \ + --set mongo-register-express.ingress.hosts[0].paths[0].pathType="Prefix" \ + --set mongo-express.enabled=true \ + --set mongo-express.image.repository=labs.etsi.org:5050/ocf/capif/mongo-express \ + --set mongo-express.image.tag=1.0.0-alpha.4 \ + --set mongo-express.ingress.enabled=true \ + --set mongo-express.ingress.hosts[0].host="mongo-express-prod.$DOMAIN_PROD" \ + --set mongo-express.ingress.hosts[0].paths[0].path="/" \ + --set mongo-express.ingress.hosts[0].paths[0].pathType="Prefix" \ + --set redis.image.repository=labs.etsi.org:5050/ocf/capif/redis \ + --set redis.image.tag=7.4.2-alpine \ + --set celery-beat.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/celery \ + --set celery-beat.image.tag=$CI_COMMIT_TAG \ + --set celery-beat.env.celeryModel=beat \ + --set celery-beat.env.redisHost=redis \ + --set celery-beat.env.redisPort=6379 \ + --set celery-beat.env.logLevel="DEBUG" \ + --set celery-worker.image.repository=$CI_REGISTRY/ocf/capif/$PATH_PROD/celery \ + --set celery-worker.image.tag=$CI_COMMIT_TAG \ + --set celery-worker.env.celeryModel=worker \ + --set celery-worker.env.redisHost=redis \ + --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 < helm/scripts/envs/$NAMESPACE_PROD.template + # -------------------------------------------------------------------------------------------------------------- + # 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_PROD + export CAPIF_CI_ENV_ENDPOINT=prod + export CAPIF_NAME_VERSION_CHART=ocf-prod + export CAPIF_DOMAIN=$DOMAIN_PROD + export BASE_DOCKER_REGISTRY=labs.etsi.org:5050/ocf/capif + export CAPIF_DOCKER_REGISTRY=$CI_REGISTRY/ocf/capif/$PATH_PROD + export CAPIF_IMAGE_TAG=$CI_COMMIT_TAG + export VAULT_INTERNAL_HOSTNAME=$VAULT_HOSTNAME + export VAULT_PORT=$VAULT_PORT + export VAULT_ACCESS_TOKEN= + + export CAPIF_HOSTNAME=capif-prod.$DOMAIN_PROD + export REGISTER_HOSTNAME=register-prod.$DOMAIN_PROD + + ## 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.$DOMAIN_PROD + + ## 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 + sed -e "s/^[ ]*export VAULT_ACCESS_TOKEN=.*/export VAULT_ACCESS_TOKEN=$VAULT_ACCESS_TOKEN_PROD/" \ + helm/scripts/envs/$NAMESPACE_PROD.template > helm/scripts/envs/$NAMESPACE_PROD.env + ./helm/scripts/install_capif.sh $NAMESPACE_PROD + kubectl delete pod --field-selector=status.phase=Failed -n $NAMESPACE_PROD + kubectl delete pod --field-selector=status.phase=Succeeded -n $NAMESPACE_PROD + + fi + + artifacts: + name: "$NAMESPACE_PROD.template" + paths: + - helm/scripts/envs/$NAMESPACE_PROD.template + expire_in: 1 day + when: always