Last active
February 20, 2020 20:15
-
-
Save behroozam/7d1631975f28233a2d47fb5f25d2c383 to your computer and use it in GitHub Desktop.
delete everything in openshift except opened merge requests on gitlab ( due resource limitation )
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
stages: | |
- test | |
- build | |
- deploy | |
variables: | |
OKD_REGISTRY: 'yourprivateregistry' | |
OKD_PROJECT: ${CI_PROJECT_NAME} | |
cleanup-okd: | |
stage: test | |
image: openshift/origin-cli | |
script: | |
- .okd/cleanup.sh | |
allow_failure: true | |
##################### test deployment on merge requests ##################### | |
cleanup-merge-okd: | |
stage: test | |
image: openshift/origin-cli | |
script: | |
- ./okd/cleanup.sh | |
allow_failure: true | |
only: | |
- merge_requests | |
merge-validation: | |
stage: test | |
image: node:12.14 | |
script: npm run mergeCheck | |
only: | |
- merge_requests | |
build-testing: | |
stage: build | |
image: docker:git | |
variables: | |
OKD_REGISTRY_IMAGE: "$OKD_REGISTRY/$OKD_PROJECT/$CI_PROJECT_NAME" | |
script: | | |
docker login -u gitlab-ci -p ${OKD_PWA_TESTING_TOKEN} ${OKD_REGISTRY} | |
docker build \ | |
--build-arg NPM_REPO_PASSWORD=${NPM_REPO_PASSWORD} \ | |
--build-arg NPM_REPO_USER=${NPM_REPO_USER} \ | |
-t ${OKD_REGISTRY_IMAGE}:${CI_COMMIT_REF_SLUG} \ | |
-f Dockerfile . | |
docker push ${OKD_REGISTRY_IMAGE}:${CI_COMMIT_REF_SLUG} | |
only: | |
- merge_requests | |
deploy-testing: | |
image: openshift/origin-cli | |
stage: deploy | |
before_script: | |
- oc version | |
- oc login https://okd.private.teh-1.snappcloud.io --token=${OKD_PWA_TESTING_TOKEN} | |
- oc project ${OKD_PROJECT} | |
- oc create configmap ${CI_COMMIT_REF_SLUG}-${CI_PROJECT_NAME}-env --from-env-file=.env.default.config --dry-run -o yaml | oc apply -f - | |
- oc process -f .okd/okd.yml --param ROUTE_HOST=${CI_ENVIRONMENT_URL} --param PROJECT_NAME=${CI_PROJECT_NAME} --param APP_NAME=${CI_COMMIT_REF_SLUG}-${CI_PROJECT_NAME} --param IMAGE_TAG=${CI_COMMIT_REF_SLUG} | oc apply -f - | |
- 'echo -e " ############# \033[0;31mThe Project Deployed On Following Url\033[0m ############# "' | |
- 'echo -e " ############# \033[0;32m$CI_ENVIRONMENT_URL\033[0m ############# "' | |
script: | |
- oc rollout latest dc/${CI_COMMIT_REF_SLUG}-${CI_PROJECT_NAME} | |
environment: | |
name: Testing | |
url: ${CI_COMMIT_REF_SLUG}-${CI_PROJECT_NAME}-${CI_PROJECT_NAMESPACE}.apps.public.teh-1.snappcloud.io | |
only: | |
- merge_requests |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
exclude=/tmp/exclude.txt | |
echo "get branches" | |
curl --header "PRIVATE-TOKEN: ${GITLAB_TOKEN}" --silent https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/merge_requests?state=opened | python -mjson.tool | grep -w source_branch | tr '[:upper:]' '[:lower:]' | awk -F'"' '{print $4}' > ${exclude} | |
echo "login to okd" | |
oc login https://okd-url --token=${OKD_PWA_TESTING_TOKEN} | |
oc project ${CI_PROJECT_NAME} | |
echo "delete old tags" | |
oc get ImageStream ${CI_PROJECT_NAME} -o yaml | grep tag | grep -v develop | grep -v -f ${exclude} | awk -v project=${CI_PROJECT_NAME} 'NR>1{print project":"$2}' | xargs -L1 oc tag -d | |
echo "delete old deployments" | |
oc get dc | grep -v develop | grep -v -f ${exclude} |awk 'NR>1{print $1}' | xargs -L1 oc delete dc | |
echo "delete old configmaps" | |
oc get cm | grep -v develop | grep -v -f ${exclude} | awk 'NR>1{print$1}' | xargs -L1 oc delete cm |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment