Support trusted provider hostnames for Pipelines as Code
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 608
- Forks
- 263
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 125
Description
Problem
Pipelines as Code PR tektoncd/pipelines-as-code#2871 introduces an administrator-owned trusted-provider-hostnames setting and allows each controller to record authenticated, publicly routable self-hosted providers in the pipelinesascode.tekton.dev/auto-trusted-provider-hostnames ConfigMap annotation.
This operator work should begin after that PAC PR is merged and the change is available in a PAC release.
The operator rebuilds PAC ConfigMap data through PAC's vendored Settings type and creates additional PAC controllers from a filtered copy of the primary manifest. Updating only the PAC images/manifests would leave two integration gaps:
- An operator version using an older PAC
Settingstype cannot round-triptrusted-provider-hostnamesthrough theOpenShiftPipelinesAsCodeorTektonConfigsettings. - Additional controllers use their own ConfigMaps but do not currently receive scoped
update/patchpermission for those ConfigMaps, so they cannot record learned hostnames.
Proposed work
- After tektoncd/pipelines-as-code#2871 merges, bump the PAC dependency and bundled release manifests to a release containing it.
- Ensure
trusted-provider-hostnamesis accepted and preserved in the primary and additional controllersettingsmaps. - Give every enabled additional controller scoped
updateandpatchaccess to its own ConfigMap. Prefer a Role and RoleBinding owned with that additional controller's resources. - Verify operator reconciliation preserves the controller-owned
pipelinesascode.tekton.dev/auto-trusted-provider-hostnamesannotation. - Document configuration through
TektonConfigandOpenShiftPipelinesAsCode, including the upgrade requirement for self-hosted providers using per-repository or incoming webhooks.
Example primary-controller configuration:
spec:
platforms:
openshift:
pipelinesAsCode:
settings:
trusted-provider-hostnames: "ghe.example.com,gitlab.example.com"
Acceptance criteria
- The PAC dependency and manifests contain tektoncd/pipelines-as-code#2871.
- Primary and additional controller settings retain
trusted-provider-hostnamesafter defaulting and reconciliation. - Each additional controller can patch only its configured ConfigMap for learned-host annotation updates.
- Operator reconciliation does not remove the learned-host annotation.
- Tests cover settings conversion, additional-controller RBAC, and annotation preservation.
- Operator documentation explains configuration and upgrade behavior.
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
Start after tektoncd/pipelines-as-code#2871 is released, then inspect the vendored Settings conversion and reconciliation paths for primary and additional controllers. Review the bundled manifests and additional-controller RBAC resources, and add coverage for settings retention, scoped ConfigMap permissions, and annotation preservation. Done means the acceptance criteria pass and TektonConfig, OpenShiftPipelinesAsCode, and upgrade behavior are documented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, kubernetes
- Domain
- devops, infrastructure
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 50/100