diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 008b0cce4..000000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,352 +0,0 @@ -stages: - - lint - - test - - build - - trivy - - development - - integration - - production - -variables: - CARGO_HOME: "$CI_PROJECT_DIR/.cargo" - GIT_SUBMODULE_STRATEGY: recursive - -.lint: - stage: lint - image: rust:1.71 - tags: - - k8s - -format: - extends: .lint - before_script: - - source ci/bootstrap.sh - - rustup component add rustfmt - script: - - cargo fmt --all -- --check - -lint: - extends: .lint - variables: - KUBERNETES_CPU_REQUEST: 2 - KUBERNETES_MEMORY_REQUEST: 2Gi - before_script: - - source ci/bootstrap.sh - - rustup component add clippy - script: - - cargo clippy --all -- --allow clippy::multiple_crate_versions --deny warnings - -test: - stage: test - image: rust:1.71 - services: - - name: "docker.elastic.co/elasticsearch/elasticsearch:7.13.0" - alias: "elasticsearch" - command: ["bin/elasticsearch", "-Expack.security.enabled=false", "-Ediscovery.type=single-node"] - variables: - CARGO_BUILD_JOBS: 8 - TEST_CONTAINER: 'false' - MIMIR__ELASTICSEARCH__URL: 'http://elasticsearch:9200' - KUBERNETES_CPU_REQUEST: 6 - KUBERNETES_MEMORY_LIMIT: 10Gi - KUBERNETES_MEMORY_REQUEST: 10Gi - KUBERNETES_SERVICE_MEMORY_REQUEST: 2Gi - KUBERNETES_SERVICE_MEMORY_LIMIT: 2Gi - KUBERNETES_HELPER_MEMORY_REQUEST: 1Gi - KUBERNETES_HELPER_MEMORY_LIMIT: 1Gi - before_script: - - source ci/bootstrap.sh - script: - - cargo test --workspace - tags: - - k8s - -.bragi: - variables: - COMPONENT_NAME: "bragi" -.mimirsbrunn: - variables: - COMPONENT_NAME: "mimirsbrunn" -.tagger: - variables: - COMPONENT_NAME: "tagger" - -.build: - stage: build - image: - name: gcr.io/kaniko-project/executor:v1.11.0-debug - entrypoint: [''] - variables: - KUBERNETES_CPU_REQUEST: 2 - GIT_SUBMODULE_STRATEGY: recursive - before_script: - - source ci/bootstrap.sh - script: - - kaniko_build - --destination $DOCKER_IMAGE - --digest-file $CI_PROJECT_DIR/docker-content-digest-$COMPONENT_NAME - --dockerfile $DOCKER_FILE - --build-arg PROJECT_COMMIT_SHA=$CI_COMMIT_SHA - artifacts: - paths: - - "ci/" - - "docker-content-digest-$COMPONENT_NAME" - tags: - - k8s - -build bragi: - extends: - - .build - - .bragi - variables: - DOCKER_CONFIG: "$CI_PROJECT_DIR/bragi/.docker" - DOCKER_FILE: "docker/bragi/Dockerfile" - DOCKER_IMAGE: "$CI_REGISTRY_IMAGE/bragi:${CI_COMMIT_SHORT_SHA}" - KUBERNETES_MEMORY_REQUEST: 5Gi - KUBERNETES_MEMORY_LIMIT: 5Gi - -build tagger: - extends: - - .build - - .tagger - variables: - DOCKER_CONFIG: "$CI_PROJECT_DIR/tagger/.docker" - DOCKER_FILE: "docker/tagger/Dockerfile" - DOCKER_IMAGE: "$CI_REGISTRY_IMAGE/tagger:${CI_COMMIT_SHORT_SHA}" - KUBERNETES_MEMORY_REQUEST: 10Gi - KUBERNETES_MEMORY_LIMIT: 10Gi - -build mimirsbrunn: - extends: - - .build - - .mimirsbrunn - variables: - DOCKER_CONFIG: "$CI_PROJECT_DIR/mimirsbrunn/.docker" - DOCKER_FILE: "docker/mimirsbrunn/Dockerfile" - DOCKER_IMAGE: "$CI_REGISTRY_IMAGE/mimir:${CI_COMMIT_SHORT_SHA}" - KUBERNETES_MEMORY_LIMIT: 12Gi - KUBERNETES_MEMORY_REQUEST: 12Gi - -.trivy: - stage: trivy - image: - name: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/aquasec/trivy:0.42.1 - entrypoint: [""] - variables: - GIT_SUBMODULE_STRATEGY: recursive - before_script: - - source ci/bootstrap.sh - - export CI_IMAGE_DIGEST="$(cat docker-content-digest-$COMPONENT_NAME)" - allow_failure: true - tags: - - k8s - -scan bragi: - extends: - - .trivy - - .bragi - script: - - export DOCKER_IMAGE="${CI_REGISTRY_IMAGE}/bragi@${CI_IMAGE_DIGEST}" - - trivy_image_scan $DOCKER_IMAGE - -scan mimirsbrunn: - extends: - - .trivy - - .mimirsbrunn - script: - - export DOCKER_IMAGE="${CI_REGISTRY_IMAGE}/mimir@${CI_IMAGE_DIGEST}" - - trivy_image_scan $DOCKER_IMAGE - -.deploy: - image: registry.qwant.ninja/docker/kubectl:1.19.1 - variables: - ARGOAPP_REPO_BASEDIR: "deployments" - ARGOAPP_REPO_URL_SSH: "git@git.qwant.ninja:teams/search-apps/argo_apps.git" - ARGOCD_APP_ENVIRONMENT: "$CI_ENVIRONMENT_NAME" - ARGOCD_SERVER: "${ARGOCD_SERVER_C2}" - ARGOCD_AUTH_TOKEN: "${ARGOCD_AUTH_TOKEN_C2}" - ARGOCD_OPTS: "--insecure" - before_script: - - source ci/bootstrap.sh - when: manual - tags: - - k8s - -.deploy:mimir: - extends: .deploy - variables: - ARGOAPP_REPO_PATH: "maps/mimirsbrunn" - ARGOAPP_REPO_BRANCH: "master" - ARGOCD_APP_NAME: "mimirsbrunn-${CI_JOB_STAGE}" - IMAGE_VERSION_FILE: "overlays/${CI_JOB_STAGE}/kustomization.yaml" - resource_group: "mimir-$CI_JOB_STAGE" - script: - - sync-version-argocd - --docker-image "$CI_COMMIT_SHORT_SHA" - --image-version-object-path "(.images[] | select(.name == \"$CI_REGISTRY_IMAGE/mimir\") | .newTag)" - -.deploy:bragi: - extends: .deploy - variables: - ARGOAPP_REPO_PATH: "maps/bragi" - ARGOAPP_REPO_BRANCH: "master" - ARGOCD_APP_NAME: "bragi-${CI_JOB_STAGE}" - IMAGE_VERSION_FILE: "versions/${CI_JOB_STAGE}.yaml" - resource_group: "bragi-$CI_JOB_STAGE" - before_script: - - source ci/bootstrap.sh - script: - - sync-version-argocd - --docker-image "$CI_REGISTRY_IMAGE/bragi:$CI_COMMIT_SHORT_SHA" - --image-version-object-path ".image" - -.deploy:bragi_env_version: - extends: .deploy - variables: - ARGOAPP_REPO_PATH: "maps/idunn" - ARGOAPP_REPO_BRANCH: "master" - IMAGE_VERSION_FILE: "values/${CI_JOB_STAGE}.yaml" - resource_group: "bragi-$CI_JOB_STAGE" - before_script: - - source ci/bootstrap.sh - script: - - sync-version-argocd - --docker-image "$CI_REGISTRY_IMAGE/bragi:$CI_COMMIT_SHORT_SHA" - --image-version-object-path "(.environment[] | select(.name == \"IDUNN_BRAGI_DOCKER_IMAGE\") | .value)" - - -.deploy:tagger: - extends: .deploy - variables: - ARGOAPP_REPO_PATH: "maps/tagger" - ARGOAPP_REPO_BRANCH: "master" - ARGOCD_APP_NAME: "tagger-${CI_JOB_STAGE}" - IMAGE_VERSION_FILE: "versions/${CI_JOB_STAGE}.yaml" - resource_group: "tagger-$CI_JOB_STAGE" - before_script: - - source ci/bootstrap.sh - script: - - sync-version-argocd - --docker-image "$CI_REGISTRY_IMAGE/tagger:$CI_COMMIT_SHORT_SHA" - --image-version-object-path ".image" - - -.deploy:tagger_env_version: - extends: .deploy - variables: - ARGOAPP_REPO_PATH: "maps/idunn" - ARGOAPP_REPO_BRANCH: "master" - IMAGE_VERSION_FILE: "values/${CI_JOB_STAGE}.yaml" - resource_group: "tagger-$CI_JOB_STAGE" - before_script: - - source ci/bootstrap.sh - script: - - sync-version-argocd - --docker-image "$CI_REGISTRY_IMAGE/tagger:$CI_COMMIT_SHORT_SHA" - --image-version-object-path "(.environment[] | select(.name == \"IDUNN_TAGGER_DOCKER_IMAGE\") | .value)" - -# -# Deploy Mimir docker image -# -deploy mimir development: - stage: development - extends: - - .deploy:mimir - -deploy mimir integration: - stage: integration - extends: - - .deploy:mimir - -deploy mimir production: - stage: production - variables: - ARGOCD_SERVER: "${ARGOCD_SERVER_C4}" - ARGOCD_AUTH_TOKEN: "${ARGOCD_AUTH_TOKEN_C4}" - extends: - - .deploy:mimir - -# -# Deploy Bragi docker image -# -deploy bragi development: - stage: development - extends: - - .deploy:bragi - -deploy bragi integration: - stage: integration - extends: - - .deploy:bragi - -deploy bragi production: - stage: production - variables: - ARGOCD_SERVER: "${ARGOCD_SERVER_C4}" - ARGOCD_AUTH_TOKEN: "${ARGOCD_AUTH_TOKEN_C4}" - extends: - - .deploy:bragi - -# -# Deploy Tagger docker image -# -deploy tagger development: - stage: development - extends: - - .deploy:tagger - -deploy tagger integration: - stage: integration - extends: - - .deploy:tagger - -deploy tagger production: - stage: production - variables: - ARGOCD_SERVER: "${ARGOCD_SERVER_C4}" - ARGOCD_AUTH_TOKEN: "${ARGOCD_AUTH_TOKEN_C4}" - extends: - - .deploy:tagger - - - -deploy bragi_env_version development: - stage: development - extends: - - .deploy:bragi_env_version - - -deploy bragi_env_version integration: - stage: integration - extends: - - .deploy:bragi_env_version - - -deploy bragi_env_version production: - stage: production - variables: - ARGOCD_SERVER: "${ARGOCD_SERVER_C4}" - ARGOCD_AUTH_TOKEN: "${ARGOCD_AUTH_TOKEN_C4}" - extends: - - .deploy:bragi_env_version - - -deploy tagger_env_version development: - stage: development - extends: - - .deploy:tagger_env_version - - -deploy tagger_env_version integration: - stage: integration - extends: - - .deploy:tagger_env_version - - -deploy tagger_env_version production: - stage: production - variables: - ARGOCD_SERVER: "${ARGOCD_SERVER_C4}" - ARGOCD_AUTH_TOKEN: "${ARGOCD_AUTH_TOKEN_C4}" - extends: - - .deploy:tagger_env_version diff --git a/.gitmodules b/.gitmodules index ad7757b8a..e69de29bb 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +0,0 @@ -[submodule "ci/bootstrap"] - path = ci/bootstrap - url = ../../../continuous-integration/gitlab-runner-bootstrap.git diff --git a/ci/bootstrap b/ci/bootstrap deleted file mode 160000 index 808365396..000000000 --- a/ci/bootstrap +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 808365396b250364ee62bae92e5e435a4389a5ea diff --git a/ci/bootstrap.sh b/ci/bootstrap.sh deleted file mode 100644 index 8f258ffa2..000000000 --- a/ci/bootstrap.sh +++ /dev/null @@ -1,9 +0,0 @@ -#! /bin/bash -set -euo pipefail -type -p shopt && shopt -s expand_aliases - -source ci/bootstrap/src/k8s/bootstrap.sh - -export PATH="$PATH:$PWD/ci/bootstrap/bin" -export no_proxy="$no_proxy,elasticsearch" -export NO_PROXY="$NO_PROXY,elasticsearch" diff --git a/ci/docker-compose.build.yml b/ci/docker-compose.build.yml deleted file mode 100644 index eeab2d6f9..000000000 --- a/ci/docker-compose.build.yml +++ /dev/null @@ -1,47 +0,0 @@ -version: "3.4" - -services: - bragi: - build: - context: .. - dockerfile: docker/bragi/Dockerfile - args: - - http_proxy - - https_proxy - - no_proxy - labels: - com.qwant.ci.job.id: ${CI_JOB_ID} - com.qwant.ci.pipeline.id: ${CI_PIPELINE_ID} - com.qwant.ci.product.id: ${CI_PRODUCT_ID} - com.qwant.ci.project.id: ${CI_PROJECT_ID} - image: ${CI_REGISTRY_IMAGE}/bragi:${IMAGE_TAG} - - tagger: - build: - context: .. - dockerfile: docker/tagger/Dockerfile - args: - - http_proxy - - https_proxy - - no_proxy - labels: - com.qwant.ci.job.id: ${CI_JOB_ID} - com.qwant.ci.pipeline.id: ${CI_PIPELINE_ID} - com.qwant.ci.product.id: ${CI_PRODUCT_ID} - com.qwant.ci.project.id: ${CI_PROJECT_ID} - image: ${CI_REGISTRY_IMAGE}/tagger:${IMAGE_TAG} - - mimirsbrunn: - build: - context: .. - dockerfile: docker/mimirsbrunn/Dockerfile - args: - - http_proxy - - https_proxy - - no_proxy - labels: - com.qwant.ci.job.id: ${CI_JOB_ID} - com.qwant.ci.pipeline.id: ${CI_PIPELINE_ID} - com.qwant.ci.product.id: ${CI_PRODUCT_ID} - com.qwant.ci.project.id: ${CI_PROJECT_ID} - image: ${CI_REGISTRY_IMAGE}/mimir:${IMAGE_TAG}