K3s: 兩個 YAML 教你設定 GitHub Actions Controller
在 K3s 當中,我們有 Helm Controller 可以使用,因此我們不需要手動 helm 安裝 ARC
首先,對於想要手動練習的同學這邊有幾個注意事項:
- ARC 安裝請看 GitHub Docs 最新文件的 Quickstart for Actions Runner Controller 章節,ARC 的 README 都給你 Legacy 文件。
- 官方 Quickstart 預設安裝的沒有啟用 Docker 模式,因此你無法在 GitHub Action 當中做 Docker Build,我們底下會告訴你怎麼啟用。
- Helm Controller 是支援 OCI-based registries 的,只是 HelmChart 裡面的寫法不一樣,可以參考 Allow to pull charts from OCI registry #81 這個 Issue 或者我們的範例。
- 對於想要使用 GitHub App for authentication 不想使用 PAT 的可以參考 Using a GitHub App for authentication 這個章節。
請參考以下 HelmChart YAML:
簡單幾個說明:
- 要先 Apply arc.helmchart.yaml 再 Apply arc-runner-set.helmchart.yaml
- 上面提到要支援 Docker Build 可以看到在 YAML 當中有設定 containerMode.type 為 dind 模式,可以參考說明文件的 Using Docker-in-Docker mode 章節
另外,如果不希望明文 Personal Access Token (PAT) 寫在 YAML 可以參考 Authenticating ARC with a personal access token (classic) 章節
這當中會跟你說可以先建立一個 PAT 的 secret
kubectl create secret generic pre-defined-secret \
--namespace=arc-runners \
--from-literal=github_token='YOUR-PAT'
並且在 HelmChart 當中把 githubConfigSecret.github_token: "<PAT>" 替換成 githubConfigSecret: pre-defined-secret 就可以了。
另外,如果發現預設的 GitHub 的 Image 裡面缺少了工具(例如 Make)是因為 GitHub 預設只給 minimal runner container image. 要更多工具的話請參考 Creating your own runner image 或者使用第三方的 Image 例如 quipper/actions-runner.
留言
張貼留言