Skip to content

Commit

Permalink
Review on newk8s (#1082)
Browse files Browse the repository at this point in the history
  • Loading branch information
kamaldodiya authored Feb 19, 2024
1 parent 327d9cf commit 7a09805
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 165 deletions.
118 changes: 42 additions & 76 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ variables:
- docker logout $CI_REGISTRY

.publish_assets:
image: dockerhub.ebi.ac.uk/ensembl-web/deploy-tools:0.5
image: dockerhub.ebi.ac.uk/ensembl-web/deploy-tools:latest
stage: deploy
environment:
name: jobs/k8s-job
Expand Down Expand Up @@ -125,16 +125,6 @@ variables:
- docker rmi ${CONTAINER_NODE_IMAGE}
- docker logout $CI_REGISTRY

# Template to deploy to WP k8s cluster
.deploy:
stage: deploy
image: dockerhub.ebi.ac.uk/ensembl-web/deploy-tools:0.1
script:
- git clone https://gitlab.ebi.ac.uk/ensembl-web/ensembl-k8s-manifests.git
- git -C ensembl-k8s-manifests/ checkout wp-k8s
- sed -i "s#<DOCKER_IMAGE>#${CONTAINER_NODE_IMAGE}#g" ensembl-k8s-manifests/ensembl_client_node_deployment.yaml
- kubectl apply -f ensembl-k8s-manifests/ensembl_client_node_deployment.yaml

# Template for deployment to the new kubernetes cluster
# For live deployment, it does not need to deploy a static assets container
# Will need updating after the migration is completed (the name of the template, name of the ensembl-k8s-manifests branch)
Expand All @@ -151,16 +141,17 @@ variables:
# Template to deploy review-app to WP k8s cluster
.deploy-review:
stage: deploy
image: dockerhub.ebi.ac.uk/ensembl-web/deploy-tools:0.1
image: dockerhub.ebi.ac.uk/ensembl-web/deploy-tools:latest
script:
- git clone https://gitlab.ebi.ac.uk/ensembl-web/ensembl-k8s-manifests.git
- git -C ensembl-k8s-manifests/ checkout wp-k8s-review
- sed -i "s#<DEPLOYMENT_ENV>#${CI_COMMIT_REF_SLUG}#g" ensembl-k8s-manifests/ensembl_client_nginx_deployment.yaml
- sed -i "s#<DOCKER_IMAGE>#${CONTAINER_IMAGE}#g" ensembl-k8s-manifests/ensembl_client_nginx_deployment.yaml
- sed -i "s#<DEPLOYMENT_ENV>#${CI_COMMIT_REF_SLUG}#g" ensembl-k8s-manifests/ensembl_client_node_deployment.yaml
- sed -i "s#<DOCKER_IMAGE>#${CONTAINER_NODE_IMAGE}#g" ensembl-k8s-manifests/ensembl_client_node_deployment.yaml
- kubectl apply -f ensembl-k8s-manifests/ensembl_client_nginx_deployment.yaml
- kubectl apply -f ensembl-k8s-manifests/ensembl_client_node_deployment.yaml
- git -C ensembl-k8s-manifests/ checkout k8s123-migration
- cd ensembl-k8s-manifests/ensembl-client/nginx
- mv deployment_review.yaml deployment.yaml
- kustomize edit set image DOCKER_IMAGE=${CONTAINER_IMAGE}
- kubectl apply -k ./
- cd ../node
- kustomize edit set image DOCKER_IMAGE=${CONTAINER_NODE_IMAGE}
- kubectl apply -k ./

# Template for stopping review app - Do cleanup here
.stop-review:
Expand Down Expand Up @@ -189,11 +180,8 @@ Test:
- npm run check-types
- npm run test

only:
- /^nodeploy\/.*$/
except:
- dev
- master
rules:
- if: $CI_COMMIT_BRANCH =~ /^nodeploy\/.*$/

# Job to build static asset for staging and live environment
# dev branch -> Staging
Expand Down Expand Up @@ -223,11 +211,8 @@ Test_N_Build:review:
variables:
ENVIRONMENT: development
API_HOST: ""

except:
- dev
- master
- /^nodeploy\/.*$/
rules:
- if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "dev" && $CI_COMMIT_BRANCH !~ /^nodeploy\/.*$/

# Job to build node docker image for staging environment
# dev branch -> Staging
Expand Down Expand Up @@ -268,11 +253,8 @@ Nginx:review:
variables:
DEPLOYENV: dev
CONTAINER_IMAGE: ${CI_REGISTRY_IMAGE}:nginx-${CI_COMMIT_SHORT_SHA}-${CI_COMMIT_REF_SLUG}
except:
- dev
- master
- /^nodeploy\/.*$/

rules:
- if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "dev" && $CI_COMMIT_BRANCH !~ /^nodeploy\/.*$/
needs:
- Test_N_Build:review

Expand All @@ -283,11 +265,8 @@ Node:review:
variables:
DEPLOYENV: dev
CONTAINER_NODE_IMAGE: ${CI_REGISTRY_IMAGE}:node-${CI_COMMIT_SHORT_SHA}-${CI_COMMIT_REF_SLUG}
except:
- dev
- master
- /^nodeploy\/.*$/

rules:
- if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "dev" && $CI_COMMIT_BRANCH !~ /^nodeploy\/.*$/
needs:
- Test_N_Build:review

Expand Down Expand Up @@ -394,66 +373,53 @@ Pub:Internal::WP40:HL:
- Test_N_Build:internal
- Node:Internal

# Job to deploy review deployments to development environment in Hinxton
Review:HX:
extends: .deploy-review
# Job to deploy to Dev environment in the new kubernetes cluster (wp51)
# This deployment is for dev-2020.ensembl.org and same as production environment
Dev:wp51:HL:
extends: .deploy-newcluster
variables:
CONTAINER_IMAGE: ${CI_REGISTRY_IMAGE}:nginx-${CI_COMMIT_SHORT_SHA}-${CI_COMMIT_REF_SLUG}
CONTAINER_NODE_IMAGE: ${CI_REGISTRY_IMAGE}:node-${CI_COMMIT_SHORT_SHA}-${CI_COMMIT_REF_SLUG}
CONTAINER_NODE_IMAGE: ${CI_REGISTRY_IMAGE}:node-${CI_COMMIT_SHORT_SHA}-prod
environment:
name: review/$CI_COMMIT_REF_SLUG
url: http://$CI_COMMIT_REF_SLUG.review.ensembl.org
on_stop: stop_review
name: wp51-hl-development
kubernetes:
namespace: ensembl-dev
except:
- dev
- master
- /^nodeploy\/.*$/
rules:
- if: '$CI_DEPLOY_FREEZE == null && $CI_COMMIT_BRANCH == "master"'
needs:
- Test_N_Build:review
- Nginx:review
- Node:review
- Test_N_Build
- Node:Live

# Job to deploy review deployments to development environment in the new cluster in Harlow (WP40)
Review:WP40:HL:
extends: .deploy-newcluster
variables:
CONTAINER_IMAGE: ${CI_REGISTRY_IMAGE}:nginx-${CI_COMMIT_SHORT_SHA}-${CI_COMMIT_REF_SLUG}
CONTAINER_NODE_IMAGE: ${CI_REGISTRY_IMAGE}:node-${CI_COMMIT_SHORT_SHA}-${CI_COMMIT_REF_SLUG}
Pub:Dev-HL:wp51:
extends: .publish_assets-newcluster
environment:
name: review/$CI_COMMIT_REF_SLUG
url: http://$CI_COMMIT_REF_SLUG.review.ensembl.org
on_stop: stop_review
name: wp51-hl-development
kubernetes:
namespace: ensembl-dev
rules:
- if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "dev" && $CI_COMMIT_BRANCH !~ /^nodeploy\/.*$/
- if: '$CI_DEPLOY_FREEZE == null && $CI_COMMIT_BRANCH == "master"'
needs:
- Test_N_Build:review
- Nginx:review
- Node:review
- Test_N_Build
- Node:Live


# Job to deploy review deployments to development environment in the new cluster in Harlow (WP40)
Review:WP41:HX:
extends: .deploy-newcluster
Review:WP51:HL:
extends: .deploy-review
variables:
CONTAINER_IMAGE: ${CI_REGISTRY_IMAGE}:nginx-${CI_COMMIT_SHORT_SHA}-${CI_COMMIT_REF_SLUG}
CONTAINER_NODE_IMAGE: ${CI_REGISTRY_IMAGE}:node-${CI_COMMIT_SHORT_SHA}-${CI_COMMIT_REF_SLUG}
environment:
name: review/$CI_COMMIT_REF_SLUG
name: wp51-hl-development
url: http://$CI_COMMIT_REF_SLUG.review.ensembl.org
on_stop: stop_review
kubernetes:
namespace: ensembl-dev
namespace: ${CI_COMMIT_REF_SLUG}
rules:
- if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "dev" && $CI_COMMIT_BRANCH !~ /^nodeploy\/.*$/
needs:
- Test_N_Build:review
- Nginx:review
- Node:review


stop_review:
extends: .stop-review
environment:
Expand All @@ -466,10 +432,10 @@ stop_review:
- master
- /^nodeploy\/.*$/

SetupReview:HX:
extends: .setup-review
SetupReview:HL51:
extends: .setup-review-newk8s
environment:
name: wp-hx-dev-ing
name: wp51-hl-development
rules:
- if: $CI_PIPELINE_SOURCE == "push" &&
$CI_COMMIT_BEFORE_SHA == "0000000000000000000000000000000000000000" &&
Expand Down
121 changes: 32 additions & 89 deletions gitlab-ci-templates/.setup-review-template.yaml
Original file line number Diff line number Diff line change
@@ -1,94 +1,37 @@
# Template to setup review app
# Create Service, Apply Ingress rules etc
.setup-review:
.setup-review-newk8s:
stage: setup
image: dockerhub.ebi.ac.uk/ensembl-web/deploy-tools:0.1
variables:
NEW_BROWSER_SERVICE_SLUG: dev
GENOME_SEARCH_SERVICE_SLUG: dev
THOAS_SERVICE_SLUG: dev
CORE_API_SERVICE_SLUG: dev
REFGET_SERVICE_SLUG: dev
HELP_DOCS_SERVICE_SLUG: dev
TRACK_API_SERVICE_SLUG: dev
TOOLS_API_SERVICE_SLUG: dev

image: dockerhub.ebi.ac.uk/ensembl-web/deploy-tools:latest
before_script:
- git clone https://gitlab.ebi.ac.uk/ensembl-web/ensembl-k8s-manifests.git
- git -C ensembl-k8s-manifests/ checkout wp-k8s-review
- cd ensembl-k8s-manifests/
# ensembl-client
- sed -i "s#<DEPLOYMENT_ENV>#${CI_COMMIT_REF_SLUG}#g" ensembl_client_nginx_service.yaml
- sed -i "s#<DEPLOYMENT_ENV>#${CI_COMMIT_REF_SLUG}#g" ensembl_client_nginx_ingress.yaml
- sed -i "s#<SUB_DOMAIN>#${CI_COMMIT_REF_SLUG}#g" ensembl_client_nginx_ingress.yaml
- sed -i "s#<DEPLOYMENT_ENV>#${CI_COMMIT_REF_SLUG}#g" ensembl_client_node_service.yaml
- sed -i "s#<DEPLOYMENT_ENV>#${CI_COMMIT_REF_SLUG}#g" ensembl_client_node_ingress.yaml
- sed -i "s#<SUB_DOMAIN>#${CI_COMMIT_REF_SLUG}#g" ensembl_client_node_ingress.yaml
- sed -i "s#<THOAS_SERVICE_SLUG>#${THOAS_SERVICE_SLUG}#g" ensembl_client_node_cm.yaml
- sed -i "s#<CORE_API_SERVICE_SLUG>#${CORE_API_SERVICE_SLUG}#g" ensembl_client_node_cm.yaml
- sed -i "s#<GENOME_SEARCH_SERVICE_SLUG>#${GENOME_SEARCH_SERVICE_SLUG}#g" ensembl_client_node_cm.yaml
- sed -i "s#<HELP_DOCS_SERVICE_SLUG>#${HELP_DOCS_SERVICE_SLUG}#g" ensembl_client_node_cm.yaml
- sed -i "s#<DEPLOYMENT_ENV>#${CI_COMMIT_REF_SLUG}#g" ensembl_client_node_cm.yaml
- sed -i "s#<GA_KEY>#${GA_KEY}#g" ensembl_client_node_cm.yaml
# ensembl-new-genome-browser
- sed -i "s#<DEPLOYMENT_ENV>#${NEW_BROWSER_SERVICE_SLUG}#g" ensembl_new_gb_hi_service.yaml
- sed -i "s#<DEPLOYMENT_ENV>#${NEW_BROWSER_SERVICE_SLUG}#g" ensembl_new_gb_lo_service.yaml
- sed -i "s#<DEPLOYMENT_ENV>#${NEW_BROWSER_SERVICE_SLUG}#g" ensembl_new_gb_hi_ingress.yaml
- sed -i "s#<DEPLOYMENT_ENV>#${NEW_BROWSER_SERVICE_SLUG}#g" ensembl_new_gb_lo_ingress.yaml
- sed -i "s#<SUB_DOMAIN>#${CI_COMMIT_REF_SLUG}#g" ensembl_new_gb_hi_ingress.yaml
- sed -i "s#<SUB_DOMAIN>#${CI_COMMIT_REF_SLUG}#g" ensembl_new_gb_lo_ingress.yaml
# ensembl-2020-genome-search
- sed -i "s#<DEPLOYMENT_ENV>#${GENOME_SEARCH_SERVICE_SLUG}#g" ensembl_genome_search_service.yaml
- sed -i "s#<DEPLOYMENT_ENV>#${GENOME_SEARCH_SERVICE_SLUG}#g" ensembl_genome_search_ingress.yaml
- sed -i "s#<SUB_DOMAIN>#${CI_COMMIT_REF_SLUG}#g" ensembl_genome_search_ingress.yaml
# ensembl-refget-proxy
- sed -i "s#<DEPLOYMENT_ENV>#${REFGET_SERVICE_SLUG}#g" ensembl_refget_proxy_service.yaml
- sed -i "s#<DEPLOYMENT_ENV>#${REFGET_SERVICE_SLUG}#g" ensembl_refget_proxy_ingress.yaml
- sed -i "s#<SUB_DOMAIN>#${CI_COMMIT_REF_SLUG}#g" ensembl_refget_proxy_ingress.yaml
# ensembl-help-docs
- sed -i "s#<DEPLOYMENT_ENV>#${HELP_DOCS_SERVICE_SLUG}#g" ensembl_help_docs_service.yaml
- sed -i "s#<DEPLOYMENT_ENV>#${HELP_DOCS_SERVICE_SLUG}#g" ensembl_help_docs_ingress.yaml
- sed -i "s#<SUB_DOMAIN>#${CI_COMMIT_REF_SLUG}#g" ensembl_help_docs_ingress.yaml
# ensembl-track-api
- sed -i "s#<DEPLOYMENT_ENV>#${TRACK_API_SERVICE_SLUG}#g" ensembl_track_api_service.yaml
- sed -i "s#<DEPLOYMENT_ENV>#${TRACK_API_SERVICE_SLUG}#g" ensembl_track_api_ingress.yaml
- sed -i "s#<SUB_DOMAIN>#${CI_COMMIT_REF_SLUG}#g" ensembl_track_api_ingress.yaml
# ensembl-tools-api
- sed -i "s#<DEPLOYMENT_ENV>#${TOOLS_API_SERVICE_SLUG}#g" ensembl_tools_api_service.yaml
- sed -i "s#<DEPLOYMENT_ENV>#${TOOLS_API_SERVICE_SLUG}#g" ensembl_tools_api_ingress.yaml
- sed -i "s#<SUB_DOMAIN>#${CI_COMMIT_REF_SLUG}#g" ensembl_tools_api_ingress.yaml
# ensembl-search-api
- sed -i "s#<SUB_DOMAIN>#${CI_COMMIT_REF_SLUG}#g" ensembl_search_hub_ingress.yaml
# metadata api
- sed -i "s#<SUB_DOMAIN>#${CI_COMMIT_REF_SLUG}#g" metadata_api_ingress.yaml
- git clone --depth 1 --branch review-on-newk8s https://gitlab.ebi.ac.uk/ensembl-web/ensembl-k8s-manifests.git
- kubectl create namespace ${CI_COMMIT_REF_SLUG} --dry-run=client -o yaml | kubectl apply -f -

script:
# ensembl-tools-api
- kubectl apply -f ensembl_tools_api_service.yaml
- kubectl apply -f ensembl_tools_api_ingress.yaml
# ensembl-track-api
- kubectl apply -f ensembl_track_api_service.yaml
- kubectl apply -f ensembl_track_api_ingress.yaml
# ensembl-help-and-docs
- kubectl apply -f ensembl_help_docs_service.yaml
- kubectl apply -f ensembl_help_docs_ingress.yaml
# ensembl-refget-proxy
- kubectl apply -f ensembl_refget_proxy_service.yaml
- kubectl apply -f ensembl_refget_proxy_ingress.yaml
# ensembl-new-genome-browser
- kubectl apply -f ensembl_new_gb_hi_service.yaml
- kubectl apply -f ensembl_new_gb_lo_service.yaml
- kubectl apply -f ensembl_new_gb_hi_ingress.yaml
- kubectl apply -f ensembl_new_gb_lo_ingress.yaml
# ensembl-2020-genome-search
- kubectl apply -f ensembl_genome_search_service.yaml
- kubectl apply -f ensembl_genome_search_ingress.yaml
# ensembl-client
- kubectl apply -f ensembl_client_nginx_service.yaml
- kubectl apply -f ensembl_client_nginx_ingress.yaml
- kubectl apply -f ensembl_client_node_service.yaml
- kubectl apply -f ensembl_client_node_ingress.yaml
- kubectl apply -f ensembl_client_node_cm.yaml
# ensembl searchapi ingress
- kubectl apply -f ensembl_search_hub_ingress.yaml
# metadata api ingress
- kubectl apply -f metadata_api_ingress.yaml
# Setup Ingress for default backend
- cd ensembl-k8s-manifests
- sed -i "s#<HOST>#${CI_COMMIT_REF_SLUG}.review.ensembl.org#g" review-setup/ingress-host.patch.yaml
- cp review-setup/*.yaml ./
- kustomize edit set namesuffix -- -${CI_COMMIT_REF_SLUG}
- kustomize build ./ | kubectl apply -f -

# Deploy nginx & node
- echo "NGINX & NODE"
- mv kustomization-ensembl-client.yaml kustomization.yaml
- kustomize edit set namespace ${CI_COMMIT_REF_SLUG}
- kustomize build ./ | kubectl apply -f -

# Setup Ingress for Genome Browser
- echo "GENOME-BROWSER HI"
- cp genome-browser/review/hi/*.yaml ./
- kustomize edit set namesuffix -- -${CI_COMMIT_REF_SLUG}
- kustomize build ./ | kubectl apply -f -

- echo "GENOME-BROWSER LO"
- cp genome-browser/review/lo/*.yaml ./
- kustomize edit set namesuffix -- -${CI_COMMIT_REF_SLUG}
- kustomize build ./ | kubectl apply -f -

after_script:
- cd ../../
- rm -rf ensembl-k8s-manifests

0 comments on commit 7a09805

Please sign in to comment.