actions / actions/actions-runner-controller
Fallback to the controller-wide setting if github_app_private_key is not specified
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 6.5k
- Forks
- 1.5k
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 27
Description
What would you like added?
Currently, as specified in Using ARC across organizations
, multi-tenant users can provide a secret in its namespace specifying github_app_id, github_app_installation_id and github_app_private_key. We would like github_app_private_key to default back to the controller wide private key if it's not provided in the user secret, allowing us to lock down access to private key to controller namespace only.
Why is this needed?
We have a multi-tenant cluster with ARC that users are using different installations of the same app in different namespaces. The ability to provide a custom github_app_installation_id is great for this multi-org setup but the requirement to provide github_app_private_key along with github_app_installation_id seems unnecessary. All that the user is changing is the installation, the same github_app_id and github_app_private_key will work for all of them. Requiring the user to create that in their secret means each user will also have access to such private key, we would like to centrally control that private key in the controller namespace only and provide it as an environment variable on controller startup.
Additional context
We already default back to controller wide setting for EnterpriseURL if not provided in the secret. We essentially would like the same behavior for github_app_private_key
Not sure if we can do the same for github_app_id as well, but that's less important for us.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Read controllers/actions.summerwind.net/multi_githubclient.go, especially the existing EnterpriseURL fallback referenced in the issue, and review docs/using-arc-across-organizations.md for the multi-tenant secret behavior. Implement the analogous fallback for github_app_private_key and verify that tenant secrets may omit it while still using the controller-wide key.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, go, kubernetes
- Domain
- infrastructure
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100