variables: WEBSITE_SRC: ${CI_PROJECT_DIR}/website INFRA_SRC: ${CI_PROJECT_DIR}/infra TEAMSPEAK_SRC: ${CI_PROJECT_DIR}/teamspeak DEFIANT_SRC: ${CI_PROJECT_DIR}/defiant CHARTMUSEUM_SRC: ${CI_PROJECT_DIR}/chartmuseum ABITIBI_SRC: ${CI_PROJECT_DIR}/abitibi IMAGE_PREFIX: registry.gitlab.com/momothereal/momoperes.ca WEBSITE_IMAGE: ${IMAGE_PREFIX}/website DEFIANT_IMAGE: ${IMAGE_PREFIX}/defiant ABITIBI_IMAGE: ${IMAGE_PREFIX}/abitibi KUBECONFIG_PARENT: /etc/deploy KUBECONFIG: ${KUBECONFIG_PARENT}/config DEPLOY_NAMESPACE: public stages: - build - release - deploy ### WEBSITE ### website:release: stage: release image: name: gcr.io/kaniko-project/executor:debug entrypoint: [""] script: - echo "Building to ${WEBSITE_IMAGE}:${CI_COMMIT_TAG}" - echo "{\"auths\":{\"${CI_REGISTRY}\":{\"username\":\"${CI_REGISTRY_USER}\",\"password\":\"${CI_REGISTRY_PASSWORD}\"}}}" > /kaniko/.docker/config.json - /kaniko/executor --context ${WEBSITE_SRC} --dockerfile ${WEBSITE_SRC}/docker/Dockerfile --destination ${WEBSITE_IMAGE}:${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA} --destination ${WEBSITE_IMAGE}:${CI_COMMIT_REF_SLUG} only: changes: - website/**/* website:deploy: stage: deploy image: wavyfm/helm-kubectl-docker:v1.18.8-v3.4.2 script: - mkdir -p ${KUBECONFIG_PARENT} - echo ${K8S_CLUSTER_CONFIG} | base64 -d > ${KUBECONFIG} # Deploy using helm chart - cd ${WEBSITE_SRC} - helm upgrade --install --namespace ${DEPLOY_NAMESPACE} --set image.name=${WEBSITE_IMAGE},image.tag=${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA} website ./chart/website only: refs: - master changes: - website/**/* ### ABITIBI ### abitibi:release: stage: release image: name: gcr.io/kaniko-project/executor:debug entrypoint: [""] script: - echo "Building to ${ABITIBI_IMAGE}:${CI_COMMIT_TAG}" - echo "{\"auths\":{\"${CI_REGISTRY}\":{\"username\":\"${CI_REGISTRY_USER}\",\"password\":\"${CI_REGISTRY_PASSWORD}\"}}}" > /kaniko/.docker/config.json - /kaniko/executor --context ${ABITIBI_SRC} --dockerfile ${ABITIBI_SRC}/docker/Dockerfile --destination ${ABITIBI_IMAGE}:${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA} --destination ${ABITIBI_IMAGE}:${CI_COMMIT_REF_SLUG} only: changes: - abitibi/**/* abitibi:deploy: stage: deploy image: wavyfm/helm-kubectl-docker:v1.18.8-v3.4.2 script: - mkdir -p ${KUBECONFIG_PARENT} - echo ${K8S_CLUSTER_CONFIG} | base64 -d > ${KUBECONFIG} # Deploy using helm chart - cd ${ABITIBI_SRC} - helm upgrade --install --namespace ${DEPLOY_NAMESPACE} --set image.name=${ABITIBI_IMAGE},image.tag=${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA} abitibi ./chart/abitibi only: refs: - master changes: - abitibi/**/* # INFRA # infra:deploy: stage: deploy image: wavyfm/helm-kubectl-docker:v1.18.8-v3.4.2 script: - mkdir -p ${KUBECONFIG_PARENT} - echo ${K8S_CLUSTER_CONFIG} | base64 -d > ${KUBECONFIG} # Deploy nginx ingress # Note: Temporarily disabled due to issue with nginx-ingress and helm3 upgrades. # - helm init --client-only && helm repo update # - helm upgrade nginx-ingress stable/nginx-ingress --install --namespace ${DEPLOY_NAMESPACE} --set controller.publishService.enabled=true # Deploy infra manifests directly - cd ${INFRA_SRC}/ - kubectl apply --namespace ${DEPLOY_NAMESPACE} -R -f manifests/ only: refs: - master changes: - infra/**/* # TEAMSPEAK # teamspeak:deploy: stage: deploy image: wavyfm/helm-kubectl-docker:v1.18.8-v3.4.2 script: - mkdir -p ${KUBECONFIG_PARENT} - echo ${K8S_CLUSTER_CONFIG} | base64 -d > ${KUBECONFIG} # Deploy using helm chart - cd ${TEAMSPEAK_SRC}/chart - mkdir -p manifests/ - helm template teamspeak ./teamspeak/ --output-dir manifests/ -f ./teamspeak/values.yaml - kubectl apply --namespace ${DEPLOY_NAMESPACE} -R -f manifests/ only: refs: - master changes: - teamspeak/**/* # DEFIANT # #defiant:build: # stage: build # image: debian # script: # - apt-get update && apt-get install -y git # - cd ${DEFIANT_SRC}/src # - git clone https://github.com/momothereal/code-jam-2.git defiant # - cp main_config.yaml defiant/config/main_config.yaml # artifacts: # paths: # - ${DEFIANT_SRC}/src # only: # changes: # - defiant/**/* #defiant:release: # stage: release # image: # name: gcr.io/kaniko-project/executor:debug # entrypoint: [""] # script: # - echo "Building to ${DEFIANT_IMAGE}:${CI_COMMIT_TAG}" # - echo "{\"auths\":{\"${CI_REGISTRY}\":{\"username\":\"${CI_REGISTRY_USER}\",\"password\":\"${CI_REGISTRY_PASSWORD}\"}}}" > /kaniko/.docker/config.json # - /kaniko/executor --context ${DEFIANT_SRC}/src/defiant --dockerfile ${DEFIANT_SRC}/src/defiant/Dockerfile --destination ${DEFIANT_IMAGE}:${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA} --destination ${DEFIANT_IMAGE}:${CI_COMMIT_REF_SLUG} # only: # changes: # - defiant/**/* #defiant:deploy: # stage: deploy # image: wavyfm/helm-kubectl-docker:v1.18.8-v3.4.2 # script: # - mkdir -p ${KUBECONFIG_PARENT} # - echo ${K8S_CLUSTER_CONFIG} | base64 -d > ${KUBECONFIG} # # # Deploy using helm chart # - cd ${DEFIANT_SRC} # - helm init --client-only && helm repo update # - helm upgrade --install --force --namespace ${DEPLOY_NAMESPACE} --set image.name=${DEFIANT_IMAGE},image.tag=${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA} defiant ./chart/defiant # only: # refs: # - master # changes: # - defiant/**/* # CHART MUSEUM # chartmuseum:deploy: stage: deploy image: wavyfm/helm-kubectl-docker:v1.18.8-v3.4.2 script: - mkdir -p ${KUBECONFIG_PARENT} - echo ${K8S_CLUSTER_CONFIG} | base64 -d > ${KUBECONFIG} # Deploy using helm chart - cd ${CHARTMUSEUM_SRC} - helm init --client-only && helm repo update - helm upgrade --install --namespace ${DEPLOY_NAMESPACE} -f values.yaml chartmuseum stable/chartmuseum only: refs: - master changes: - chartmuseum/**/*