helm based operator for https://github.com/actions-runner-controller/actions-runner-controller
- built with operator-sdk
- cert-manager
- on openshift, use the cert-manager operator provided by redhat (not the community one)
- olm
- openshift clusters will have this installed out of the box by default
operator-sdk init --plugins helm --domain example.com --helm-chart actions-runner-controller --helm-chart-repo https://actions-runner-controller.github.io/actions-runner-controller-
run the operator bundle with operator-sdk
operator-sdk run bundle ghcr.io/boxboat-github-practice/github-arc-operator-bundle:experimental
-
create gh api token
-
add token to sample controller manifest
-
deploy manifests
make deploy kubectl apply -f config/samples/simple-sample.yaml kubectl apply -f config/samples/runner-deployment.yaml
-
undeploy when finished
make undeploy kubectl destroy -f config/samples/simple-sample.yaml kubectl destroy -f config/samples/runner-deployment.yaml
-
uninstall operator
operator-sdk cleanup github-arc-operator
-
CRDs created by arc instances are not deleted by the operator-sdk
for i in $(k get customresourcedefinitions.apiextensions.k8s.io | grep ".*actions\.summerwind\.dev" | awk '{print $1}'); do kubectl delete customresourcedefinition $i; done- if you're testing, and not changing the version between builds, make sure to clear the cache folder or you won't pull new changes on a redeploy
rm -rf cache/
- codify operator manifest changes
- manager role
- add permissions for cert-manager issuers and certificates
- add permissions for customresourcedefinitions
- manager deployment
- increase resource limits
- manager role
- codify arc helm chart changes
- manager_role
- add permissions for apiGroup actions.summerwind.dev horizontalrunnerautoscalers
- manager_role