└── .github └── workflows ├── test_microk8s.yaml └── test_strict_microk8s.yaml /.github/workflows/test_microk8s.yaml: -------------------------------------------------------------------------------- 1 | name: microk8s test non-strict 2 | 3 | on: 4 | workflow_dispatch: 5 | 6 | jobs: 7 | self-host: 8 | name: self-hosted large 9 | runs-on: [self-hosted, X64, edge, jammy] 10 | strategy: 11 | fail-fast: false 12 | matrix: 13 | index: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 14 | steps: 15 | - name: Set up microk8s 16 | timeout-minutes: 5 17 | run: | 18 | sudo apt-get update 19 | sudo apt-get install retry -y 20 | sudo snap install microk8s --channel='1.31/stable' --classic 21 | sudo adduser "$USER" 'microk8s' 22 | - name: (IS hosted) Configure microk8s Docker Hub mirror 23 | timeout-minutes: 5 24 | run: | 25 | sudo tee /var/snap/microk8s/current/args/certs.d/docker.io/hosts.toml << EOF 26 | server = "$DOCKERHUB_MIRROR" 27 | [host."${DOCKERHUB_MIRROR#'https://'}"] 28 | capabilities = ["pull", "resolve"] 29 | EOF 30 | sudo microk8s stop 31 | sudo microk8s start 32 | - name: Set up microk8s 33 | id: microk8s-setup 34 | timeout-minutes: 15 35 | run: | 36 | # `newgrp` does not work in GitHub Actions; use `sg` instead 37 | sg 'microk8s' -c "microk8s status --wait-ready" 38 | sg 'microk8s' -c "retry --times 3 --delay 5 -- sudo microk8s enable dns" 39 | sg 'microk8s' -c "microk8s status --wait-ready" 40 | sg 'microk8s' -c "microk8s.kubectl rollout status --namespace kube-system --watch --timeout=5m deployments/coredns" 41 | sg 'microk8s' -c "retry --times 3 --delay 5 -- sudo microk8s enable hostpath-storage" 42 | sg 'microk8s' -c "microk8s.kubectl rollout status --namespace kube-system --watch --timeout=5m deployments/hostpath-provisioner" 43 | - name: Test coredns 44 | run: nslookup api.charmhub.io 10.152.183.10 45 | -------------------------------------------------------------------------------- /.github/workflows/test_strict_microk8s.yaml: -------------------------------------------------------------------------------- 1 | name: microk8s test strict 2 | 3 | on: 4 | workflow_dispatch: 5 | 6 | jobs: 7 | self-host: 8 | name: self-hosted large 9 | runs-on: [self-hosted, X64, edge, jammy] 10 | strategy: 11 | fail-fast: false 12 | matrix: 13 | index: [0, 1, 2, 3, 4, 5, 6, 7] 14 | steps: 15 | - name: Set up microk8s 16 | timeout-minutes: 5 17 | run: | 18 | sudo apt-get update 19 | sudo apt-get install retry -y 20 | sudo snap install microk8s --channel='1.31-strict/stable' 21 | sudo microk8s status --wait-ready 22 | sudo adduser "$USER" 'snap_microk8s' 23 | - name: (IS hosted) Configure microk8s Docker Hub mirror 24 | timeout-minutes: 5 25 | run: | 26 | sudo tee /var/snap/microk8s/current/args/certs.d/docker.io/hosts.toml << EOF 27 | server = "$DOCKERHUB_MIRROR" 28 | [host."${DOCKERHUB_MIRROR#'https://'}"] 29 | capabilities = ["pull", "resolve"] 30 | EOF 31 | sudo microk8s stop 32 | sudo microk8s start 33 | - name: Set up microk8s 34 | id: microk8s-setup 35 | timeout-minutes: 15 36 | run: | 37 | # `newgrp` does not work in GitHub Actions; use `sg` instead 38 | sg 'snap_microk8s' -c "microk8s status --wait-ready" 39 | sg 'snap_microk8s' -c "retry --times 3 --delay 5 -- sudo microk8s enable dns" 40 | sg 'snap_microk8s' -c "microk8s status --wait-ready" 41 | sg 'snap_microk8s' -c "microk8s.kubectl rollout status --namespace kube-system --watch --timeout=5m deployments/coredns" 42 | sg 'snap_microk8s' -c "retry --times 3 --delay 5 -- sudo microk8s enable hostpath-storage" 43 | sg 'snap_microk8s' -c "microk8s.kubectl rollout status --namespace kube-system --watch --timeout=5m deployments/hostpath-provisioner" 44 | mkdir ~/.kube/ 45 | # Used by lightkube and kubernetes (Python package) 46 | sg 'snap_microk8s' -c "microk8s config > ~/.kube/config" 47 | - name: Test coredns 48 | run: nslookup api.charmhub.io 10.152.183.10 49 | - name: Setup tmate session 50 | if: failure() 51 | uses: canonical/action-tmate@main 52 | --------------------------------------------------------------------------------