Cannot Configure imagePullSecrets for tekton-operator-proxy-webhook
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 608
- Forks
- 263
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 125
Description
Expected Behavior
When using private container registries, users should be able to configure imagePullSecrets for the tekton-operator-proxy-webhook deployment through TektonConfig to allow pulling the webhook image from private registries.
Actual Behavior
There is no mechanism in TektonConfig to configure imagePullSecrets for the tekton-operator-proxy-webhook deployment. The deployment fails to pull images from private registries with ImagePullBackOff errors.
The following TektonConfig configuration does not work:
apiVersion: operator.tekton.dev/v1alpha1
kind: TektonConfig
metadata:
name: config
spec:
targetNamespace: tekton-pipelines
profile: all
pipeline:
options:
deployments:
tekton-operator-proxy-webhook: # This deployment name is not recognized
spec:
template:
spec:
imagePullSecrets:
- name: private-registry
Steps to Reproduce the Problem
- Set up a private container registry requiring authentication
- Push the tekton-operator-proxy-webhook image to the private registry
- Install Tekton Operator configured to use images from the private registry
- Create a TektonConfig with proxy webhook enabled (default behavior)
- Try to configure imagePullSecrets for tekton-operator-proxy-webhook in TektonConfig
- Observe that the configuration is ignored and the webhook deployment fails with ImagePullBackOff
Root Cause Analysis
The tekton-operator-proxy-webhook deployment is created by the proxy reconciler (pkg/reconciler/proxy/proxy.go) but:
- Not exposed in TektonConfig options: The deployment name
tekton-operator-proxy-webhookis not available in thepipeline.options.deploymentsconfiguration - No imagePullSecrets support: The proxy reconciler does not read or apply imagePullSecrets from TektonConfig
- Hardcoded deployment spec: The deployment is created with a fixed specification without considering private registry requirements
Impact
This issue affects users who:
- Use private container registries
- Need proxy functionality for Tekton workloads (corporate environments)
- Cannot disable the proxy webhook as it's required for their environment
Proposed Solution
Option 1: Add to TektonConfig Options
Extend TektonConfig to support proxy webhook configuration:
spec:
pipeline:
options:
deployments:
tekton-operator-proxy-webhook:
spec:
template:
spec:
imagePullSecrets:
- name: private-registry
Option 2: Global imagePullSecrets Configuration
Add a global imagePullSecrets configuration that applies to all operator-managed deployments:
spec:
options:
imagePullSecrets:
- name: private-registry
Option 3: Proxy-specific Configuration
Add proxy-specific configuration section:
spec:
proxy:
webhook:
imagePullSecrets:
- name: private-registry
Additional Info
-
Kubernetes version:
Output of
kubectl version:Client Version: v1.28.0 Server Version: v1.28.0 -
Tekton Pipeline version:
Output of
tkn versionorkubectl get pods -n tekton-pipelines -l app=tekton-pipelines-controller -o=jsonpath='{.items[0].metadata.labels.version}'v0.53.0 -
Tekton Operator version:
v0.68.0
Workaround
Currently, the only workaround is to:
- Modify the operator deployment directly (not recommended, gets overwritten)
- Use a service account with imagePullSecrets in the operator namespace
- Configure global registry authentication at the node level
Files Involved
pkg/reconciler/proxy/proxy.go- Creates the proxy webhook deploymentpkg/reconciler/proxy/controller.go- Proxy reconciler controllerpkg/apis/operator/v1alpha1/*_types.go- TektonConfig API definitions
Severity
Medium - Blocks deployment in environments requiring private registries with proxy functionality.
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 by reading pkg/reconciler/proxy/proxy.go to see how the tekton-operator-proxy-webhook Deployment is created, then inspect pkg/reconciler/proxy/controller.go and the TektonConfig definitions under pkg/apis/operator/v1alpha1/*_types.go. Determine which configuration design should expose imagePullSecrets and verify that the webhook Deployment receives the configured secrets without breaking existing proxy behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, kubernetes
- Domain
- infrastructure
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100