Skip to content
This repository has been archived by the owner on May 13, 2024. It is now read-only.

FEQ-878 / add docker and k8s setup #259

Merged
Show file tree
Hide file tree
Changes from 14 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions .github/actions/deploy_to_kubernetes/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: k8s_deploy
description: Deploy to Kubernetes
inputs:
K8S_VERSION:
description: Kubernetes version
required: true
type: string
K8S_NAMESPACE:
description: Kubernetes namespace
required: false
type: string
default: 'deriv-com-api-staging'
CA_CRT:
description: Kubernetes CA certificate
required: true
type: string
steps:
- k8s/install-kubectl
- run:
name: Deploying to k8s cluster for service ${{ inputs.K8S_NAMESPACE }} 🚀
command: |
export NAMESPACE=${{ inputs.K8S_NAMESPACE }}
git clone https://github.com/binary-com/devops-ci-scripts
cd devops-ci-scripts/k8s-build_tools
echo ${{ inputs.CA_CRT }} | base64 --decode > ca.crt
export CA="ca.crt"
./release.sh deriv-com-api ${{ inputs.K8S_VERSION }}
41 changes: 41 additions & 0 deletions .github/actions/publish_to_docker/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: docker_build_push
description: Build and push Docker image to Docker Hub
inputs:
DOCKER_LATEST_IMAGE_TAG:
description: Docker image tag
required: false
default: 'latest-staging'
type: string
DOCKER_IMAGE_TAG:
description: Docker image tag
required: true
type: string
DOCKERHUB_ORGANISATION:
description: Docker Hub organisation
required: true
type: string
DOCKERHUB_USERNAME:
description: Docker Hub username
required: true
type: string
DOCKERHUB_PASSWORD:
description: Docker Hub password
required: true
type: string
steps:
- setup_remote_docker
- run:
name: Building docker image 🐳
command: |
docker build -t ${{ inputs.DOCKERHUB_ORGANISATION }}/deriv-com-api:${{ inputs.DOCKER_IMAGE_TAG }} -t ${{ inputs.DOCKERHUB_ORGANISATION }}/deriv-com-api:${{ inputs.DOCKER_LATEST_IMAGE_TAG }} .
- name: Verify nginx image
run: |
set -e
docker run --rm ${{ inputs.DOCKERHUB_ORGANISATION }}/deriv-com-api:${{ inputs.DOCKER_LATEST_IMAGE_TAG }} nginx -t
echo "docker image validated successfully"
- run:
name: Pushing Image to docker hub 🐳
command: |
echo ${{ inputs.DOCKERHUB_PASSWORD }} | docker login -u $${{ inputs.DOCKERHUB_USERNAME }} --password-stdin
docker push ${{ inputs.DOCKERHUB_ORGANISATION }}/deriv-com-api:${{ inputs.DOCKER_IMAGE_TAG }}
docker push ${{ inputs.DOCKERHUB_ORGANISATION }}/deriv-com-api:${{ inputs.DOCKER_LATEST_IMAGE_TAG }}
14 changes: 14 additions & 0 deletions .github/workflows/release_production.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,20 @@ jobs:
with:
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
- name: Publish to Docker
uses: ./.github/actions/publish_to_docker
with:
DOCKER_LATEST_IMAGE_TAG: 'latest'
DOCKER_IMAGE_TAG: ${{ secrets.SHA1 }}
DOCKERHUB_ORGANISATION: ${{ secrets.DOCKERHUB_ORGANISATION }}
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Deploy to Kubernetes
uses: ./.github/actions/deploy_to_kubernetes
with:
K8S_VERSION: ${{ secrets.SHA1 }}
ali-hosseini-deriv marked this conversation as resolved.
Show resolved Hide resolved
K8S_NAMESPACE: 'deriv-com-api-production'
CA_CRT: ${{ secrets.CA_CRT }}
send_slack_notification:
name: Send Slack Notification
environment: Production
Expand Down
14 changes: 14 additions & 0 deletions .github/workflows/release_staging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,17 @@ jobs:
with:
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
- name: Publish to Docker
uses: ./.github/actions/publish_to_docker
with:
DOCKER_LATEST_IMAGE_TAG: 'latest-staging'
DOCKER_IMAGE_TAG: ${{ secrets.SHA1 }}
DOCKERHUB_ORGANISATION: ${{ secrets.DOCKERHUB_ORGANISATION }}
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Deploy to Kubernetes
uses: ./.github/actions/deploy_to_kubernetes
with:
K8S_VERSION: ${{ secrets.SHA1 }}
ali-hosseini-deriv marked this conversation as resolved.
Show resolved Hide resolved
K8S_NAMESPACE: 'deriv-com-api-staging'
CA_CRT: ${{ secrets.CA_CRT }}