|
4 | 4 | # branches: |
5 | 5 | # - main |
6 | 6 | workflow_dispatch: |
7 | | - inputs: |
8 | | - run_terraform: |
9 | | - description: 'Run Terraform job' |
10 | | - required: false |
11 | | - default: 'true' |
12 | | - run_ansible: |
13 | | - description: 'Run Ansible job' |
14 | | - required: false |
15 | | - default: 'true' |
16 | | - run_teleport: |
17 | | - description: 'Run Teleport job' |
18 | | - required: false |
19 | | - default: 'true' |
20 | | - |
21 | 7 | jobs: |
22 | 8 | terraform: |
23 | | - if: ${{ github.event.inputs.run_terraform == 'true' }} |
24 | 9 | runs-on: ubuntu-latest |
25 | 10 | env: |
26 | 11 | TF_TOKEN_app_terraform_io: ${{ secrets.TF_TOKEN_APP_TERRAFORM_IO }} |
@@ -115,84 +100,10 @@ jobs: |
115 | 100 |
|
116 | 101 |
|
117 | 102 | ansible: |
118 | | - if: ${{ github.event.inputs.run_ansible == 'true' }} |
119 | | - name: Ansible Kubernetes Deployment |
120 | | - runs-on: ubuntu-latest |
121 | | - needs: terraform |
122 | | - env: |
123 | | - TF_TOKEN_app_terraform_io: ${{ secrets.TF_TOKEN_APP_TERRAFORM_IO }} |
124 | | - ARM_CLIENT_ID: ${{ secrets.ARM_CLIENT_ID }} |
125 | | - ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }} |
126 | | - ARM_SUBSCRIPTION_ID: ${{ secrets.ARM_SUBSCRIPTION_ID }} |
127 | | - ARM_TENANT_ID: ${{ secrets.ARM_TENANT_ID }} |
128 | | - defaults: |
129 | | - run: |
130 | | - working-directory: . |
131 | | - |
132 | | - steps: |
133 | | - - name: Checkout repo |
134 | | - uses: actions/checkout@v2 |
135 | | - |
136 | | - |
137 | | - - uses: hashicorp/setup-terraform@v3 |
138 | | - with: |
139 | | - terraform_version: latest |
140 | | - |
141 | | - - run: terraform init -reconfigure |
142 | | - working-directory: ./terraform |
143 | | - |
144 | | - |
145 | | - - name: Generate ansible inventory |
146 | | - run: bash ./scripts/generate_ansible_inv.sh |
147 | | - |
148 | | - - name: Run Ansible Inventory |
149 | | - run: bash ./scripts/install_k3s.sh |
150 | | - |
151 | | - |
152 | | - - name: Send Slack alert |
153 | | - run: | |
154 | | - curl -X POST -H 'Content-type: application/json' --data '{"text":"Kubernetes has been installed and configured on the cluster"}' ${{ secrets.SLACK_WEBHOOK }} |
155 | | -
|
| 103 | + needs: terraform |
| 104 | + uses: ./.github/workflows/ansible.yml |
156 | 105 |
|
157 | 106 | teleport: |
158 | | - if: ${{ github.event.inputs.run_teleport == 'true' }} |
159 | | - name: Install and setup Teleport with github |
160 | | - runs-on: ubuntu-latest |
161 | | - needs: ansible |
162 | | - env: |
163 | | - TF_TOKEN_app_terraform_io: ${{ secrets.TF_TOKEN_APP_TERRAFORM_IO }} |
164 | | - ARM_CLIENT_ID: ${{ secrets.ARM_CLIENT_ID }} |
165 | | - ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }} |
166 | | - ARM_SUBSCRIPTION_ID: ${{ secrets.ARM_SUBSCRIPTION_ID }} |
167 | | - ARM_TENANT_ID: ${{ secrets.ARM_TENANT_ID }} |
168 | | - EA_GITHUB_CLIENT_ID: ${{ secrets.EA_GITHUB_CLIENT_ID }} |
169 | | - EA_GITHUB_CLIENT_SECRET: ${{ secrets.EA_GITHUB_CLIENT_SECRET }} |
170 | | - ANSIBLE_VAULT_PASSWORD: ${{ secrets.ANSIBLE_VAULT_PASSWORD }} |
171 | | - |
172 | | - defaults: |
173 | | - run: |
174 | | - working-directory: . |
175 | | - |
176 | | - steps: |
177 | | - - name: Checkout repo |
178 | | - uses: actions/checkout@v2 |
179 | | - |
180 | | - |
181 | | - - uses: hashicorp/setup-terraform@v3 |
182 | | - with: |
183 | | - terraform_version: latest |
184 | | - |
185 | | - - run: terraform init -reconfigure |
186 | | - working-directory: ./terraform |
187 | | - |
188 | | - |
189 | | - - name: Generate ansible inventory |
190 | | - run: bash ./scripts/generate_ansible_inv.sh |
191 | | - |
192 | | - - name: Run Ansible Inventory |
193 | | - run: bash ./scripts/setup_teleport.sh |
194 | | - |
195 | | - - name: Send Slack alert |
196 | | - run: | |
197 | | - curl -X POST -H 'Content-type: application/json' --data '{"text":"Teleport has been installed and configured on the master VM https://teleport.exploravis.mywire.org"}' ${{ secrets.SLACK_WEBHOOK }} |
| 107 | + needs: ansible |
| 108 | + uses: ./.github/workflows/teleport.yml |
198 | 109 |
|
0 commit comments