-
Notifications
You must be signed in to change notification settings - Fork 3
122 lines (111 loc) · 5.37 KB
/
dev-cluster-deployment.yaml
File metadata and controls
122 lines (111 loc) · 5.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#FOR DEV CLUSTER
name: helm setup and deployment
on:
workflow_dispatch:
inputs:
version:
description: 'Version to deploy?'
required: true
cluster:
description: 'cluster to deploy to? (eks-dev,skinny)'
required: true
multinode:
description: 'deploying to multiple nodes? (true,false)'
required: true
tls:
description: 'deploying tls? (true,false)'
required: true
scale-to-zero:
description: 'scaling to zero? (true,false)'
required: false
namespace:
description: 'what namespace to deploy to? (ex: graphistry-prod, graphistry-staging)'
required: true
grafana:
description: 'would you like to launch grafana? (true,false)'
required: true
#argo:
# description: 'would you like to install argo? (true,false)'
# required: false
#deploy-with-argo:
# description: 'would you like to deploy the cluster with argoCD? (true,false)'
# required: false
jobs:
check-dev-true:
runs-on: ubuntu-latest
outputs:
DEV_TRUE: ${{ steps.dev-true.outputs.defined }}
steps:
- id: dev-true
if: "${{ env.DEV_TRUE == 'TRUE' }}"
run: echo "::set-output name=defined::true"
env:
DEV_TRUE: ${{secrets.DEV_TRUE}}
helm-setup-and-run:
env:
DOCKER_BUILDKIT: 1
if: needs.check-dev-true.outputs.DEV_TRUE == 'TRUE'
runs-on: ubuntu-latest
needs: [check-dev-true]
steps:
- uses: actions/checkout@v2
- name: envvars
#TODO PR_NUMBER: wat - https://github.com/actions/checkout/issues/58
run: |
## echo "SERVICE_PRINCIPAL_NAME=${{ secrets.SERVICE_PRINCIPAL_NAME }}" >> $GITHUB_ENV
## echo "CLIENT_SECRET=${{ secrets.CLIENT_SECRET }}" >> $GITHUB_ENV
## echo "TENANT_ID=${{ secrets.TENANT_ID }}" >> $GITHUB_ENV
## echo "ACR_NAME=${{ secrets.ACR_NAME }}" >> $GITHUB_ENV
## echo "AZSUBSCRIPTION=${{ secrets.AZSUBSCRIPTION }}" >> $GITHUB_ENV
## echo "CONTAINER_REGISTRY_NAME=${{ secrets.CONTAINER_REGISTRY_NAME }}" >> $GITHUB_ENV
echo "MULTINODE=${{ github.event.inputs.multinode }}" >> $GITHUB_ENV
echo "TLS=${{ github.event.inputs.tls }}" >> $GITHUB_ENV
echo "APP_TAG=${{ github.event.inputs.version }}" >> $GITHUB_ENV
##echo "GRAPHISTRY_KEY=${{ secrets.GRAPHISTRY_KEY }}" >> $GITHUB_ENV
echo "AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_ID }}" >> $GITHUB_ENV
echo "AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_ACCESS_KEY }}" >> $GITHUB_ENV
echo "AWS_ROLE_ARN=${{ secrets.AWS_ROLE_ARN }}" >> $GITHUB_ENV
echo "CONTAINER_REGISTRY_NAME=${{ secrets.CONTAINER_REGISTRY_NAME }}" >> $GITHUB_ENV
echo "DOCKER_USER_NAME=${{ secrets.DOCKER_USER_NAME }}" >> $GITHUB_ENV
echo "DOCKER_PASSWORD=${{ secrets.DOCKER_PASSWORD }}" >> $GITHUB_ENV
echo "DOCKER_USER_NAME_PROD=${{ secrets.DOCKER_USER_NAME_PROD }}" >> $GITHUB_ENV
echo "DOCKER_PASSWORD_PROD=${{ secrets.DOCKER_PASSWORD_PROD }}" >> $GITHUB_ENV
echo "DEV_CLUSTER_ROLE=${{ secrets.DEV_CLUSTER_ROLE }}" >> $GITHUB_ENV
echo "K8S_CLUSTER_ROLE=${{ secrets.K8S_CLUSTER_ROLE }}" >> $GITHUB_ENV
echo "SOURCE_PROFILE=${{ secrets.SOURCE_PROFILE }}" >> $GITHUB_ENV
echo "CLUSTER_NAME=${{ github.event.inputs.cluster }}" >> $GITHUB_ENV
echo "NAMESPACE=${{ github.event.inputs.namespace }}" >> $GITHUB_ENV
echo "GRAFANA=${{ github.event.inputs.grafana }}" >> $GITHUB_ENV
## docker compose build
- name: Build the cluster dockerfile
run: docker-compose -f dev-compose/docker-compose.yml build
# needs to only run once
- name: create aws credentials
run: docker-compose -f dev-compose/docker-compose.yml up aws-setup
# needs to only run once
- name: create cluster secrets
run: docker-compose -f dev-compose/docker-compose.yml up make-cluster-secrets
# needs to only run once
- name: setup the cluster
if: "${{ !contains(github.event.inputs.scale-to-zero , 'true') }}"
run: docker-compose -f dev-compose/docker-compose.yml up cluster-setup
# needs to only run once
# - name: setup argo
# if: "${{ contains(github.event.inputs.argo , 'true') }}"
# run: docker-compose -f dev-compose/docker-compose.yml up deploy-argo
# deploy to skinny dev cluster
- name: deploy the dev cluster
if: "${{ env.CLUSTER_NAME == 'skinny' && !contains(github.event.inputs.scale-to-zero , 'true') }}"
run: docker-compose -f dev-compose/docker-compose.yml up helm-docker-dev
# deploy to eks2 cluster
- name: deploy the eks-dev cluster
if: "${{ env.CLUSTER_NAME == 'eks-dev' && !contains(github.event.inputs.scale-to-zero , 'true') }}"
run: docker-compose -f dev-compose/docker-compose.yml up helm-docker
# launch grafana
- name: deploy the eks-dev cluster
if: "${{ !contains(github.event.inputs.scale-to-zero , 'true') && contains(github.event.inputs.grafana , 'true') }}"
run: docker-compose -f dev-compose/docker-compose.yml up launch-grafana
# scale to zero ##NEEDS WORK
- name: deletes the cluster deployment.
if: "${{ github.event.inputs.scale-to-zero == 'true' }}"
run: docker-compose -f dev-compose/docker-compose.yml up scale-to-zero