switch to workflows #10
This file contains 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
name: kubernetes infrastructure and cluster | |
on: | |
push: | |
branches: [ master ] | |
env: | |
SOPS_AGE_KEY: ${{ secrets.SOPS_AGE_KEY }} | |
jobs: | |
hetzner-k3s: | |
if: "!contains(github.event.head_commit.message, 'skip')" | |
name: kubernetes | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: install and upgrade k3s on hetzner cloud | |
working-directory: hetzner-k3s | |
run: ./deploy.sh | |
- name: cleanup | |
if: ${{ always() }} | |
run: ./cleanup.sh | |
kube-system: | |
if: "!contains(github.event.head_commit.message, 'skip')" | |
name: kube-system | |
needs: [ hetzner-k3s ] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: prepare kube-system namespace | |
working-directory: kube-system | |
run: ./deploy.sh | |
- name: cleanup | |
if: ${{ always() }} | |
run: ./cleanup.sh | |
hcloud-csi: | |
if: "!contains(github.event.head_commit.message, 'skip')" | |
name: hcloud-csi | |
needs: [ kube-system ] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: install hetzner csi driver | |
working-directory: hcloud-csi | |
run: ./deploy.sh | |
- name: cleanup | |
if: ${{ always() }} | |
run: ./cleanup.sh | |
ingress-nginx: | |
if: "!contains(github.event.head_commit.message, 'skip')" | |
name: ingress-nginx | |
needs: [ kube-system ] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: deploy kubernetes ingress controller | |
working-directory: ingress-nginx | |
run: ./deploy.sh | |
- name: cleanup | |
if: ${{ always() }} | |
run: ./cleanup.sh | |
cert-manager: | |
if: "!contains(github.event.head_commit.message, 'skip')" | |
name: cert-manager | |
needs: [ ingress-nginx ] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: deploy cert-manager for let's encrypt | |
working-directory: cert-manager | |
run: ./deploy.sh | |
- name: cleanup | |
if: ${{ always() }} | |
run: ./cleanup.sh | |
oauth2-proxy: | |
if: "!contains(github.event.head_commit.message, 'skip')" | |
name: oauth2-proxy | |
needs: [ ingress-nginx ] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: deploy oauth2-proxy | |
working-directory: oauth2-proxy | |
run: ./deploy.sh | |
- name: cleanup | |
if: ${{ always() }} | |
run: ./cleanup.sh | |
kubernetes-dashboard: | |
if: "!contains(github.event.head_commit.message, 'skip')" | |
name: kubernetes-dashboard | |
needs: [ oauth2-proxy, cert-manager ] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: deploy kubernetes dashboard | |
working-directory: kubernetes-dashboard | |
run: ./deploy.sh | |
- name: cleanup | |
if: ${{ always() }} | |
run: ./cleanup.sh | |
kube-state-metrics: | |
if: "!contains(github.event.head_commit.message, 'skip')" | |
name: kube-state-metrics | |
needs: [ kube-system ] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: deploy kube-state-metrics | |
working-directory: monitoring/kube-state-metrics | |
run: ./deploy.sh | |
- name: cleanup | |
if: ${{ always() }} | |
run: ./cleanup.sh | |
prometheus: | |
if: "!contains(github.event.head_commit.message, 'skip')" | |
name: prometheus | |
needs: [ oauth2-proxy, cert-manager, kube-state-metrics, hcloud-csi ] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: deploy prometheus | |
working-directory: monitoring/prometheus | |
run: ./deploy.sh | |
- name: cleanup | |
if: ${{ always() }} | |
run: ./cleanup.sh | |
prometheus-msteams: | |
if: "!contains(github.event.head_commit.message, 'skip')" | |
name: prometheus-msteams | |
needs: [ oauth2-proxy, cert-manager, kube-state-metrics ] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: deploy prometheus-msteams proxy | |
working-directory: monitoring/prometheus-msteams | |
run: ./deploy.sh | |
- name: cleanup | |
if: ${{ always() }} | |
run: ./cleanup.sh | |
loki: | |
if: "!contains(github.event.head_commit.message, 'skip')" | |
name: loki | |
needs: [ oauth2-proxy, cert-manager, hcloud-csi ] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: deploy loki | |
working-directory: monitoring/loki | |
run: ./deploy.sh | |
- name: cleanup | |
if: ${{ always() }} | |
run: ./cleanup.sh | |
grafana: | |
if: "!contains(github.event.head_commit.message, 'skip')" | |
name: grafana | |
needs: [ prometheus, loki, hcloud-csi ] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: deploy grafana | |
working-directory: monitoring/grafana | |
run: ./deploy.sh | |
- name: cleanup | |
if: ${{ always() }} | |
run: ./cleanup.sh | |
postgres: | |
if: "!contains(github.event.head_commit.message, 'skip')" | |
name: postgres | |
needs: [ kube-system, hcloud-csi ] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: deploy postgres database | |
working-directory: postgres | |
run: ./deploy.sh | |
- name: cleanup | |
if: ${{ always() }} | |
run: ./cleanup.sh | |
testing: | |
if: "!contains(github.event.head_commit.message, 'skip')" | |
name: k8s e2e testing | |
needs: [ postgres, grafana, kubernetes-dashboard ] | |
runs-on: ubuntu-latest | |
steps: | |
- name: checkout k8s-testing | |
uses: actions/checkout@v3 | |
with: | |
repository: JamesClonk/k8s-testing | |
ref: master | |
- name: setup ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: '2.7' | |
bundler-cache: true | |
- name: setup chrome | |
uses: ./.github/actions/setup-chrome | |
- uses: actions/checkout@v3 | |
with: | |
path: repo | |
- name: setup kubeconfig | |
working-directory: repo | |
run: ./setup.sh | |
- name: run k8s-testing specs | |
run: | | |
export KUBECONFIG=${HOME}/.kube/k8s-infrastructure | |
make test | |
- name: cleanup | |
if: ${{ always() }} | |
working-directory: repo | |
run: | | |
rm -f ${HOME}/.kube/k8s-infrastructure || true | |
./cleanup.sh |