Skip to content

docs(install): document that default namespace is unsupported for pipelines on OpenShift (#3427)#3440

Open
mvanhorn wants to merge 1 commit into
tektoncd:mainfrom
mvanhorn:docs/3427-openshift-default-namespace
Open

docs(install): document that default namespace is unsupported for pipelines on OpenShift (#3427)#3440
mvanhorn wants to merge 1 commit into
tektoncd:mainfrom
mvanhorn:docs/3427-openshift-default-namespace

Conversation

@mvanhorn
Copy link
Copy Markdown

Closes #3427.

Adds a "Platform notes" section to docs/install.md explaining that the default namespace on OpenShift is unsupported for running pipelines, and pointing installers to dedicated namespaces. The operator silently creates the pipeline ServiceAccount and RBAC in default, but PipelineRuns then fail with permissionDenied because OpenShift permanently disables PSA label synchronization on default and PSA enforces the restricted profile.

This matches the OpenShift documentation guidance ("Do not run workloads in or share access to default projects") and the report in the linked downstream Jira (SRVKP-12017).

Change Type

  • Documentation

…elines on OpenShift (tektoncd#3427)

OpenShift permanently disables PSA label synchronization on the
default namespace; the operator-installed pipeline ServiceAccount
and RBAC still get created there, but PipelineRuns fail with
permissionDenied because PSA enforces the restricted profile and
the SCC-to-PSA sync never runs. User-created namespaces are not
affected (cluster policy controller syncs SCC privileges into PSA
labels there).

Add a platform-notes section to docs/install.md spelling this out
so installers don't reach for default and then hit cryptic
permission failures.

Issue tektoncd#3427 carries the full incident detail; the OpenShift docs
already say 'Do not run workloads in or share access to default
projects'.

Signed-off-by: Matt Van Horn <mvanhorn@gmail.com>
@tekton-robot tekton-robot added the do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. label May 19, 2026
@linux-foundation-easycla
Copy link
Copy Markdown

linux-foundation-easycla Bot commented May 19, 2026

CLA Signed
The committers listed above are authorized under a signed CLA.

  • ✅ login: mvanhorn / name: Matt Van Horn (ed62264)

@tekton-robot
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
To complete the pull request process, please assign puneetpunamiya after the PR has been reviewed.
You can assign the PR to them by writing /assign @puneetpunamiya in a comment when ready.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@tekton-robot tekton-robot added the size/S Denotes a PR that changes 10-29 lines, ignoring generated files. label May 19, 2026
@anithapriyanatarajan
Copy link
Copy Markdown
Contributor

/ok-to-test

@anithapriyanatarajan
Copy link
Copy Markdown
Contributor

/release-note-none

@tekton-robot tekton-robot added release-note-none Denotes a PR that doesnt merit a release note. and removed do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. labels May 20, 2026
Copy link
Copy Markdown

@mathur07 mathur07 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor concern with placement - the new section appears at the very end of the install doc, after custom registry configuration. Users might install, try to run pipelines by default, and only discover this limitation after reading the whole doc. Worth considering moving it higher, maybe right after the basic installation steps, so it's visible before users start experimenting.

Not a blocker, just means some folks might miss it until they hit the error.

@mathur07
Copy link
Copy Markdown

Nevermind the doc seems to be not that big either. :)

Comment thread docs/install.md

On OpenShift, the `default` namespace is classified as a "highly privileged" system namespace. Pod Security Admission (PSA) label synchronization is permanently disabled there by the platform, so even though the operator correctly creates the `pipeline` ServiceAccount and RBAC bindings in `default`, PipelineRuns submitted to that namespace fail with `permissionDenied` errors: PSA enforces the `restricted` profile and the SCC-to-PSA label sync never runs.

User-created namespaces are not affected because the Cluster Policy Controller automatically syncs SCC privileges into PSA labels. The OpenShift documentation has the same guidance ([Do not run workloads in or share access to default projects](https://docs.openshift.com/container-platform/latest/welcome/index.html#about-namespaces)).
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The hyperlink to docs is not redirecting the namespace page. Please check or add link to the blog - https://www.redhat.com/en/blog/openshift-runtime-security-best-practices

@anithapriyanatarajan
Copy link
Copy Markdown
Contributor

@mvanhorn Thank you for the PR. Minor NIT to verify the doc link.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release-note-none Denotes a PR that doesnt merit a release note. size/S Denotes a PR that changes 10-29 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Document that the default namespace is not supported for running pipelines on OpenShift

4 participants