Skip to content

Instantly share code, notes, and snippets.

@lmcarreiro
Created August 17, 2018 22:39
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lmcarreiro/202c61170504239933fe831d382601dd to your computer and use it in GitHub Desktop.
Save lmcarreiro/202c61170504239933fe831d382601dd to your computer and use it in GitHub Desktop.
Exemplo kubernetes deploy (pelo gitlab)
deploy_dev:
stage: deploy
dependencies:
- test
environment:
name: Development
image: alpine
script:
# Environment variables
- export DOMAIN=$(echo "$CI_ENVIRONMENT_URL" | sed -e 's|^https://||;s|/.*$||')
- export NAMESPACE=$(echo "$DOMAIN" | sed -e 's|[.]|-|g')
# Install kubectl
- apk add --no-cache curl
- curl -LO $K8S_STABLE_VERSION_URL
- chmod +x ./kubectl
- mv ./kubectl /usr/local/bin/kubectl
# Setup cluster config
- mkdir ~/.kube
- echo $NP_KUBE_CONFIG |
base64 -d - |
sed -e 's|###NAMESPACE###|'"$NAMESPACE"'|g' > ~/.kube/config
# Test kubectl connection to the cluster
- kubectl cluster-info
# Create gitlab registry secret
- kubectl create secret docker-registry gitlab-registry
--docker-server=$CI_REGISTRY
--docker-username=$CI_DEPLOY_USER
--docker-password=$CI_DEPLOY_PASSWORD
--docker-email=$GITLAB_USER_EMAIL
-o yaml
--dry-run | kubectl apply -f -
# Deploy the app
- sed '
s|###NAME###|'"$CI_PROJECT_NAME"'|g;
s|###CONTAINER_IMAGE###|'"$IMAGE:$VERSION"'|;
s|###LOAD_BALANCER_IP###|'"$DEVELOPMENT_LOAD_BALANCER_IP"'|;
s|###DATABASE_CONNECTION###|'"$DEVELOPMENT_DB_CONNECTION"'|;
s|###DATABASE_NAME###|'"$DEVELOPMENT_DB_NAME"'|;
s|###FILESYSTEM_CONNECTION###|'"$DEVELOPMENT_FS_CONNECTION"'|;
s|###FILESYSTEM_LOGS###|'"$DEVELOPMENT_FS_LOGS"'|;
' k8s-deploy-dev.yml > kubernetes.yml
- kubectl apply -f kubernetes.yml
- rm kubernetes.yml
@lmcarreiro
Copy link
Author

@StiiCeva
Copy link

Thank you mate! You're a star!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment