Commit bf5fa876 authored by Andres Anaya Amariels's avatar Andres Anaya Amariels 🚀
Browse files

staging to main trigger

parent 59c2c20f
Loading
Loading
Loading
Loading
+161 −60
Original line number Diff line number Diff line
@@ -46,7 +46,7 @@ variables:
#      - $CI_MERGE_REQUEST_TARGET_BRANCH_NAME != "OCF16-first-steps-on-ci-at-gitlab-repository"
  allow_failure: true
  rules:
    - if: '$CI_COMMIT_REF_NAME == "OCF16-first-steps-on-ci-at-gitlab-repository"'
    - if: '$CI_COMMIT_REF_NAME == "main"'
      when: always
    - when: never
  tags:
@@ -57,18 +57,18 @@ variables:
  services:
    - docker:24.0.5-dind
  rules:
    - if: '$CI_COMMIT_REF_NAME == "OCF16-first-steps-on-ci-at-gitlab-repository"'
    - if: '$CI_COMMIT_REF_NAME == "main"'
      when: always
    - when: never
  tags:
    - docker-in-docker

#.staging_common: &staging_common
#.main_common: &main_common
#  only:
#    - merge_requests
#  except:
#    variables:
#      - $CI_MERGE_REQUEST_TARGET_BRANCH_NAME != "staging"
#      - $CI_MERGE_REQUEST_TARGET_BRANCH_NAME != "main"
#  tags:
#    - shell#

@@ -97,27 +97,27 @@ variables:
#     fi
#  <<: *main_common

merge_request_staging_into_main:
  stage: merge_request_staging_into_main
  script:
    - >
      if [ "$CI_COMMIT_REF_NAME" == "staging" ]; then
        # Variables
        SOURCE_BRANCH="staging"
        TARGET_BRANCH="main"
        TITLE="Merge staging into main created by GitLab CICD"

        # Create Merge Request
        curl --request POST --header "PRIVATE-TOKEN: $CI_JOB_TOKEN" \
             --data "source_branch=$SOURCE_BRANCH&target_branch=$TARGET_BRANCH&title=$TITLE" \
             "$GITLAB_API/projects/$PROJECT_ID/merge_requests"
      else
        echo "Nothing to do"
      fi
  only:
    - staging
  tags:
    - shell
#merge_request_main_into_main:
#  stage: merge_request_main_into_main
#  script:
#    - >
#      if [ "$CI_COMMIT_REF_NAME" == "main" ]; then
#        # Variables
#        SOURCE_BRANCH="main"
#        TARGET_BRANCH="main"
#        TITLE="Merge main into main created by GitLab CICD"
#
#        # Create Merge Request
#        curl --request POST --header "PRIVATE-TOKEN: $CI_JOB_TOKEN" \
#             --data "source_branch=$SOURCE_BRANCH&target_branch=$TARGET_BRANCH&title=$TITLE" \
#             "$GITLAB_API/projects/$PROJECT_ID/merge_requests"
#      else
#        echo "Nothing to do"
#      fi
#  only:
#    - main
#  tags:
#    - shell

#dev_cancel_previous_action:
#  stage: dev_pre_pipeline
@@ -652,47 +652,148 @@ main_build_and_push:
deploy_ocf_main:
  stage: deploy_ocf_main
  variables:
    DOMAIN_PRE_PROD: pre-prod.int
    IMAGE_TAG_PRE_PROD: $CI_COMMIT_REF_SLUG
    DOMAIN_PRE_PROD: ocf.pre-production
    NAMESPACE_PRE_PROD: ocf-main
  needs:
    - main_build_and_push
  <<: *main_common
  environment:
    name: review/main
    url: https://$NAMESPACE_STAGING.$DOMAIN_STAGING
    url: https://$NAMESPACE_PRE_PROD.$DOMAIN_PRE_PROD
    on_stop: delete_ocf_main
    auto_stop_in: 3 day
#  rules:
#    - if: $CI_COMMIT_BRANCH == "staging"
#      when: never
#    - if: $CI_COMMIT_BRANCH == "main"
  script:
    - helm version
    - kubectl cluster-info
    - yq --version
    - cat helm/capif/Chart.yaml
    - yq e -i ".appVersion = \"$IMAGE_TAG_PRE_PROD\"" helm/capif/Chart.yaml
    - cat helm/capif/Chart.yaml
    - echo "### download dependencies###"
    - helm dependency build helm/capif
#    - echo "### updating capif###"
#    - helm uninstall -n $NAMESPACE_STAGING ocf --kubeconfig ~/cluster.kubeconfig || true
#    - helm upgrade --install -n $NAMESPACE_PRE_PROD ocf helm/capif/ \
#      --set nginx.nginx.env.capifHostname=capif.$DOMAIN_PRE_PROD \
#      --set nginx.nginx.env.registerHostname=register.$DOMAIN_PRE_PROD \
#      --set monitoring.prometheus.ingress.hosts[0].host=prometheus.$DOMAIN_PROD \
#      --set monitoring.prometheus.ingress.hosts[0].paths[0].path=/ \
#      --set monitoring.prometheus.ingress.hosts[0].paths[0].pathType=Prefix  \
#      --set monitoring.prometheus.enable="" \
#      --set monitoring.grafana.ingress.hosts[0].host="grafana.$DOMAIN_PROD" \
#      --set monitoring.grafana.ingress.hosts[0].paths[0].path="/" \
#      --set monitoring.grafana.ingress.hosts[0].paths[0].pathType="Prefix" \
#      --set backOffice.frontend.env.grafanaUrl=http://grafana.$DOMAIN_PROD \
#      --set parametersVault.env.vaultHostname=$VAULT_HOSTNAME \
#      --set parametersVault.env.vaultPort=$VAULT_PORT \
#      --set parametersVault.env.vaultAccessToken=$VAULT_ACCESS_TOKEN \
#      --wait --timeout=10m --atomic \
#      --create-namespace
    - |
      helm version
      kubectl version --output=yaml
      echo "### setting kubeconfig###"
      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")
      
      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/main/ocf-access-control-policy-api \
      --set ocf-access-control-policy.image.tag=main \
      --set ocf-access-control-policy.image.env.capifHostname=$NAMESPACE_PRE_PROD.$DOMAIN_PRE_PROD \
      --set ocf-access-control-policy.monitoring="true" \
      --set ocf-api-invocation-logs.image.repository=$CI_REGISTRY/ocf/capif/main/ocf-logging-api-invocation-api \
      --set ocf-api-invocation-logs.image.tag=main \
      --set ocf-api-invocation-logs.env.monitoring="true" \
      --set ocf-api-invocation-logs.env.capifHostname=$NAMESPACE_PRE_PROD.$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 \
      --set ocf-api-invoker-management.image.repository=$CI_REGISTRY/ocf/capif/main/ocf-api-invoker-management-api \
      --set ocf-api-invoker-management.image.tag=main \
      --set ocf-api-invoker-management.env.monitoring="true" \
      --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-provider-management.image.repository=$CI_REGISTRY/ocf/capif/main/ocf-api-provider-management-api \
      --set ocf-api-provider-management.image.tag=main \
      --set ocf-api-provider-management.env.monitoring="true" \
      --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 \
      --set ocf-events.image.repository=$CI_REGISTRY/ocf/capif/main/ocf-events-api \
      --set ocf-events.image.tag=main \
      --set ocf-events.env.monitoring="true" \
      --set ocf-routing-info.image.repository=$CI_REGISTRY/ocf/capif/main/ocf-routing-info-api \
      --set ocf-routing-info.image.tag=main \
      --set ocf-routing-info.env.monitoring="true" \
      --set ocf-security.image.repository=$CI_REGISTRY/ocf/capif/main/ocf-security-api \
      --set ocf-security.image.tag=main \
      --set ocf-security.env.monitoring="true" \
      --set ocf-security.env.capifHostname=$NAMESPACE_PRE_PROD.$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 \
      --set ocf-register.image.repository=$CI_REGISTRY/ocf/capif/main/register \
      --set ocf-register.image.tag=main \
      --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=$NAMESPACE_PRE_PROD.$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-auditing-api-logs.image.repository=$CI_REGISTRY/ocf/capif/main/ocf-auditing-api \
      --set ocf-auditing-api-logs.image.tag=main \
      --set ocf-auditing-api-logs.env.monitoring="true" \
      --set ocf-publish-service-api.image.repository=$CI_REGISTRY/ocf/capif/main/ocf-publish-service-api \
      --set ocf-publish-service-api.image.tag=main \
      --set ocf-publish-service-api.env.monitoring="true" \
      --set ocf-discover-service-api.image.repository=$CI_REGISTRY/ocf/capif/main/ocf-discover-service-api \
      --set ocf-discover-service-api.image.tag=main \
      --set ocf-discover-service-api.env.monitoring="true" \
      --set nginx.image.repository=$CI_REGISTRY/ocf/capif/main/nginx \
      --set nginx.image.tag=main \
      --set nginx.env.capifHostname=$NAMESPACE_PRE_PROD.$DOMAIN_PRE_PROD \
      --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=$NAMESPACE_PRE_PROD.$DOMAIN_PRE_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/main/helper \
      --set ocf-helper.image.tag=main \
      --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=$NAMESPACE_PRE_PROD.$DOMAIN_PRE_PROD \
      --set mock-server.enabled=true \
      --set mock-server.image.repository=$CI_REGISTRY/ocf/capif/main/mock-server \
      --set mock-server.image.tag=main \
      --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 mongo-register-express.enabled=true \
      --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.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" \
      --wait --timeout=10m --create-namespace --atomic

main_rf_testing:
  needs: ["deploy_ocf_main"]
@@ -706,8 +807,8 @@ delete_ocf_main:
  stage: delete_ocf_main
  <<: *main_common
  script:
    - echo "### deleting environment $NAMESPACE_STAGING###"
#    - helm uninstall -n $NAMESPACE_STAGING ocf --kubeconfig ~/cluster.kubeconfig
    - echo "### deleting environment $NAMESPACE_main###"
#    - helm uninstall -n $NAMESPACE_main ocf --kubeconfig ~/cluster.kubeconfig
  when: manual
  environment:
    name: review/main
+55 −26

File changed.

Preview size limit exceeded, changes collapsed.

+1 −1
Original line number Diff line number Diff line
@@ -330,7 +330,7 @@ staging_build_and_push_mr:
  stage: staging_build_and_push_mr
#  <<: *staging_common
  rules:
    - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_NAME == "staging"'
    - if: '$CI_COMMIT_REF_NAME == "staging"'
      when: always
  script:
   - export TMP_PWD=$PWD