Migrate PCO FBC to per-version component pattern#519
Conversation
Configuration Diff19 document(s) impacted: + 2 added
- 12 removed
! 5 modifiedDiff@@ spec.resources @@
# projctl.konflux.dev/v1beta1/ProjectDevelopmentStreamTemplate/rhtas-tenant/pco-fbc-template
! - four list entries removed:
- - apiVersion: appstudio.redhat.com/v1alpha1
- kind: Component
- metadata:
- name: {{.application}}{{.nameSuffix}}
- annotations:
- build.appstudio.openshift.io/pipeline: "{\"name\":\"fbc-builder\",\"bundle\":\"latest\"}"
- build.appstudio.openshift.io/status: "{\"pac\":{\"state\":\"enabled\",\"merge-url\":\"https://github.com/securesign/fbc/pull/97\",\"configuration-time\":\"Thu,27 Mar 2025 12:35:34 UTC\"},\"message\":\"done\"}"
- mintmaker.appstudio.redhat.com/disabled: {{.mintmakerDisabled}}
- spec:
- source:
- git:
- url: "https://github.com/securesign/fbc"
- context: v{{.ocpVersion}}/{{.operator}}
- dockerfileUrl: catalog.Dockerfile
- revision: {{.branch}}
- application: {{.application}}{{.nameSuffix}}
- componentName: {{.application}}{{.nameSuffix}}
- - apiVersion: appstudio.redhat.com/v1beta2
- kind: IntegrationTestScenario
- metadata:
- name: {{.application}}{{.nameSuffix}}-e2e
- labels:
- test.appstudio.openshift.io/optional: "false"
- spec:
- application: {{.application}}{{.nameSuffix}}
- contexts:
- - name: component_{{.application}}{{.nameSuffix}}
- description: "execute the integration test when component {{.application}}{{.nameSuffix}} updates"
- params:
- - name: OCP_VERSION
- value: {{.ocpVersion}}
- - name: POLICY_CONTROLLER_OPERATOR_GIT_REVISION
- value: {{.policyControllerOperatorGitRevision}}
- - name: POLICY_CONTROLLER_OPERATOR_INSTALL_CHANNEL
- value: {{.installChannel}}
- - name: POLICY_CONTROLLER_OPERATOR_DEPLOYMENT_NAME
- value: {{.policyControllerOperatorDeploymentName}}
- resolverRef:
- params:
- - name: url
- value: "https://github.com/securesign/pipelines.git"
- - name: revision
- value: main
- - name: pathInRepo
- value: pipelines/integration-test/policy-controller-fbc-e2e.yaml
- resolver: git
- resourceKind: pipelinerun
- - apiVersion: appstudio.redhat.com/v1beta2
- kind: IntegrationTestScenario
- metadata:
- name: {{.application}}{{.nameSuffix}}-upgrade
- labels:
- test.appstudio.openshift.io/optional: "false"
- spec:
- application: {{.application}}{{.nameSuffix}}
- contexts:
- - name: component_{{.application}}{{.nameSuffix}}
- description: "execute the upgrade integration test when component {{.application}}{{.nameSuffix}} updates"
- params:
- - name: OCP_VERSION
- value: {{.ocpVersion}}
- - name: POLICY_CONTROLLER_OPERATOR_GIT_REVISION
- value: {{.policyControllerOperatorGitRevision}}
- - name: UPGRADE_FROM_CHANNEL
- value: tech-preview
- - name: UPGRADE_TO_CHANNEL
- value: {{.installChannel}}
- resolverRef:
- params:
- - name: url
- value: "https://github.com/securesign/pipelines.git"
- - name: revision
- value: main
- - name: pathInRepo
- value: pipelines/integration-test/pco-operator-upgrade.yaml
- resolver: git
- resourceKind: pipelinerun
- - apiVersion: appstudio.redhat.com/v1alpha1
- kind: ImageRepository
- metadata:
- name: {{.application}}{{.nameSuffix}}
- annotations:
- image-controller.appstudio.redhat.com/update-component-image: "true"
- labels:
- appstudio.redhat.com/application: {{.application}}{{.nameSuffix}}
- appstudio.redhat.com/component: {{.application}}{{.nameSuffix}}
- spec:
- image:
- name: rhtas-tenant/{{.application}}
- visibility: public
- notifications:
- - config:
- url: "https://bombino.api.redhat.com/v1/sbom/quay/push"
- event: repo_push
- method: webhook
- title: SBOM-event-to-Bombino
! + 29 list entries added:
+ - apiVersion: appstudio.redhat.com/v1beta2
+ kind: IntegrationTestScenario
+ metadata:
+ name: {{.application}}{{.nameSuffix}}-branch-sync-check
+ labels:
+ test.appstudio.openshift.io/optional: "false"
+ spec:
+ application: {{.application}}{{.nameSuffix}}
+ contexts:
+ - name: component
+ description: "execute the integration test in all cases - this would be the default state"
+ params:
+ - name: TARGET_BRANCH
+ value: {{.branch}}
+ resolverRef:
+ params:
+ - name: url
+ value: "https://github.com/securesign/pipelines.git"
+ - name: revision
+ value: main
+ - name: pathInRepo
+ value: pipelines/branch-sync-check.yaml
+ resolver: git
+ resourceKind: pipeline
+ - apiVersion: appstudio.redhat.com/v1alpha1
+ kind: Component
+ metadata:
+ name: {{.application}}{{.nameSuffix}}-v4-16
+ annotations:
+ build.appstudio.openshift.io/pipeline: "{\"name\":\"fbc-builder\",\"bundle\":\"latest\"}"
+ build.appstudio.openshift.io/status: "{\"pac\":{\"state\":\"enabled\",\"merge-url\":\"https://github.com/securesign/fbc/pull/97\",\"configuration-time\":\"Thu,27 Mar 2025 12:35:34 UTC\"},\"message\":\"done\"}"
+ mintmaker.appstudio.redhat.com/disabled: {{.mintmakerDisabled}}
+ spec:
+ source:
+ git:
+ url: "https://github.com/securesign/fbc"
+ context: v4.16/{{.operator}}
+ dockerfileUrl: catalog.Dockerfile
+ revision: {{.branch}}
+ application: {{.application}}{{.nameSuffix}}
+ componentName: {{.application}}{{.nameSuffix}}-v4-16
+ - apiVersion: appstudio.redhat.com/v1beta2
+ kind: IntegrationTestScenario
+ metadata:
+ name: {{.application}}{{.nameSuffix}}-v4-16-e2e
+ labels:
+ test.appstudio.openshift.io/optional: "false"
+ spec:
+ application: {{.application}}{{.nameSuffix}}
+ contexts:
+ - name: component_{{.application}}{{.nameSuffix}}-v4-16
+ description: "execute the integration test when component {{.application}}{{.nameSuffix}}-v4-16 updates"
+ params:
+ - name: OCP_VERSION
+ value: 4.16
+ - name: POLICY_CONTROLLER_OPERATOR_GIT_REVISION
+ value: {{.policyControllerOperatorGitRevision}}
+ - name: POLICY_CONTROLLER_OPERATOR_INSTALL_CHANNEL
+ value: {{.installChannel}}
+ - name: POLICY_CONTROLLER_OPERATOR_DEPLOYMENT_NAME
+ value: {{.policyControllerOperatorDeploymentName}}
+ resolverRef:
+ params:
+ - name: url
+ value: "https://github.com/securesign/pipelines.git"
+ - name: revision
+ value: main
+ - name: pathInRepo
+ value: pipelines/integration-test/policy-controller-fbc-e2e.yaml
+ resolver: git
+ resourceKind: pipelinerun
+ - apiVersion: appstudio.redhat.com/v1beta2
+ kind: IntegrationTestScenario
+ metadata:
+ name: {{.application}}{{.nameSuffix}}-v4-16-upgrade
+ labels:
+ test.appstudio.openshift.io/optional: "false"
+ spec:
+ application: {{.application}}{{.nameSuffix}}
+ contexts:
+ - name: component_{{.application}}{{.nameSuffix}}-v4-16
+ description: "execute the upgrade integration test when component {{.application}}{{.nameSuffix}}-v4-16 updates"
+ params:
+ - name: OCP_VERSION
+ value: 4.16
+ - name: POLICY_CONTROLLER_OPERATOR_GIT_REVISION
+ value: {{.policyControllerOperatorGitRevision}}
+ - name: UPGRADE_FROM_CHANNEL
+ value: tech-preview
+ - name: UPGRADE_TO_CHANNEL
+ value: {{.installChannel}}
+ resolverRef:
+ params:
+ - name: url
+ value: "https://github.com/securesign/pipelines.git"
+ - name: revision
+ value: main
+ - name: pathInRepo
+ value: pipelines/integration-test/pco-operator-upgrade.yaml
+ resolver: git
+ resourceKind: pipelinerun
+ - apiVersion: appstudio.redhat.com/v1alpha1
+ kind: ImageRepository
+ metadata:
+ name: {{.application}}{{.nameSuffix}}-v4-16
+ annotations:
+ image-controller.appstudio.redhat.com/update-component-image: "true"
+ labels:
+ appstudio.redhat.com/application: {{.application}}{{.nameSuffix}}
+ appstudio.redhat.com/component: {{.application}}{{.nameSuffix}}-v4-16
+ spec:
+ image:
+ name: rhtas-tenant/{{.application}}-v4-16
+ visibility: public
+ notifications:
+ - config:
+ url: "https://bombino.api.redhat.com/v1/sbom/quay/push"
+ event: repo_push
+ method: webhook
+ title: SBOM-event-to-Bombino
+ - apiVersion: appstudio.redhat.com/v1alpha1
+ kind: Component
+ metadata:
+ name: {{.application}}{{.nameSuffix}}-v4-17
+ annotations:
+ build.appstudio.openshift.io/pipeline: "{\"name\":\"fbc-builder\",\"bundle\":\"latest\"}"
+ build.appstudio.openshift.io/status: "{\"pac\":{\"state\":\"enabled\",\"merge-url\":\"https://github.com/securesign/fbc/pull/97\",\"configuration-time\":\"Thu,27 Mar 2025 12:35:34 UTC\"},\"message\":\"done\"}"
+ mintmaker.appstudio.redhat.com/disabled: {{.mintmakerDisabled}}
+ spec:
+ source:
+ git:
+ url: "https://github.com/securesign/fbc"
+ context: v4.17/{{.operator}}
+ dockerfileUrl: catalog.Dockerfile
+ revision: {{.branch}}
+ application: {{.application}}{{.nameSuffix}}
+ componentName: {{.application}}{{.nameSuffix}}-v4-17
+ - apiVersion: appstudio.redhat.com/v1beta2
+ kind: IntegrationTestScenario
+ metadata:
+ name: {{.application}}{{.nameSuffix}}-v4-17-e2e
+ labels:
+ test.appstudio.openshift.io/optional: "false"
+ spec:
+ application: {{.application}}{{.nameSuffix}}
+ contexts:
+ - name: component_{{.application}}{{.nameSuffix}}-v4-17
+ description: "execute the integration test when component {{.application}}{{.nameSuffix}}-v4-17 updates"
+ params:
+ - name: OCP_VERSION
+ value: 4.17
+ - name: POLICY_CONTROLLER_OPERATOR_GIT_REVISION
+ value: {{.policyControllerOperatorGitRevision}}
+ - name: POLICY_CONTROLLER_OPERATOR_INSTALL_CHANNEL
+ value: {{.installChannel}}
+ - name: POLICY_CONTROLLER_OPERATOR_DEPLOYMENT_NAME
+ value: {{.policyControllerOperatorDeploymentName}}
+ resolverRef:
+ params:
+ - name: url
+ value: "https://github.com/securesign/pipelines.git"
+ - name: revision
+ value: main
+ - name: pathInRepo
+ value: pipelines/integration-test/policy-controller-fbc-e2e.yaml
+ resolver: git
+ resourceKind: pipelinerun
+ - apiVersion: appstudio.redhat.com/v1beta2
+ kind: IntegrationTestScenario
+ metadata:
+ name: {{.application}}{{.nameSuffix}}-v4-17-upgrade
+ labels:
+ test.appstudio.openshift.io/optional: "false"
+ spec:
+ application: {{.application}}{{.nameSuffix}}
+ contexts:
+ - name: component_{{.application}}{{.nameSuffix}}-v4-17
+ description: "execute the upgrade integration test when component {{.application}}{{.nameSuffix}}-v4-17 updates"
+ params:
+ - name: OCP_VERSION
+ value: 4.17
+ - name: POLICY_CONTROLLER_OPERATOR_GIT_REVISION
+ value: {{.policyControllerOperatorGitRevision}}
+ - name: UPGRADE_FROM_CHANNEL
+ value: tech-preview
+ - name: UPGRADE_TO_CHANNEL
+ value: {{.installChannel}}
+ resolverRef:
+ params:
+ - name: url
+ value: "https://github.com/securesign/pipelines.git"
+ - name: revision
+ value: main
+ - name: pathInRepo
+ value: pipelines/integration-test/pco-operator-upgrade.yaml
+ resolver: git
+ resourceKind: pipelinerun
+ - apiVersion: appstudio.redhat.com/v1alpha1
+ kind: ImageRepository
+ metadata:
+ name: {{.application}}{{.nameSuffix}}-v4-17
+ annotations:
+ image-controller.appstudio.redhat.com/update-component-image: "true"
+ labels:
+ appstudio.redhat.com/application: {{.application}}{{.nameSuffix}}
+ appstudio.redhat.com/component: {{.application}}{{.nameSuffix}}-v4-17
+ spec:
+ image:
+ name: rhtas-tenant/{{.application}}-v4-17
+ visibility: public
+ notifications:
+ - config:
+ url: "https://bombino.api.redhat.com/v1/sbom/quay/push"
+ event: repo_push
+ method: webhook
+ title: SBOM-event-to-Bombino
+ - apiVersion: appstudio.redhat.com/v1alpha1
+ kind: Component
+ metadata:
+ name: {{.application}}{{.nameSuffix}}-v4-18
+ annotations:
+ build.appstudio.openshift.io/pipeline: "{\"name\":\"fbc-builder\",\"bundle\":\"latest\"}"
+ build.appstudio.openshift.io/status: "{\"pac\":{\"state\":\"enabled\",\"merge-url\":\"https://github.com/securesign/fbc/pull/97\",\"configuration-time\":\"Thu,27 Mar 2025 12:35:34 UTC\"},\"message\":\"done\"}"
+ mintmaker.appstudio.redhat.com/disabled: {{.mintmakerDisabled}}
+ spec:
+ source:
+ git:
+ url: "https://github.com/securesign/fbc"
+ context: v4.18/{{.operator}}
+ dockerfileUrl: catalog.Dockerfile
+ revision: {{.branch}}
+ application: {{.application}}{{.nameSuffix}}
+ componentName: {{.application}}{{.nameSuffix}}-v4-18
+ - apiVersion: appstudio.redhat.com/v1beta2
+ kind: IntegrationTestScenario
+ metadata:
+ name: {{.application}}{{.nameSuffix}}-v4-18-e2e
+ labels:
+ test.appstudio.openshift.io/optional: "false"
+ spec:
+ application: {{.application}}{{.nameSuffix}}
+ contexts:
+ - name: component_{{.application}}{{.nameSuffix}}-v4-18
+ description: "execute the integration test when component {{.application}}{{.nameSuffix}}-v4-18 updates"
+ params:
+ - name: OCP_VERSION
+ value: 4.18
+ - name: POLICY_CONTROLLER_OPERATOR_GIT_REVISION
+ value: {{.policyControllerOperatorGitRevision}}
+ - name: POLICY_CONTROLLER_OPERATOR_INSTALL_CHANNEL
+ value: {{.installChannel}}
+ - name: POLICY_CONTROLLER_OPERATOR_DEPLOYMENT_NAME
+ value: {{.policyControllerOperatorDeploymentName}}
+ resolverRef:
+ params:
+ - name: url
+ value: "https://github.com/securesign/pipelines.git"
+ - name: revision
+ value: main
+ - name: pathInRepo
+ value: pipelines/integration-test/policy-controller-fbc-e2e.yaml
+ resolver: git
+ resourceKind: pipelinerun
+ - apiVersion: appstudio.redhat.com/v1beta2
+ kind: IntegrationTestScenario
+ metadata:
+ name: {{.application}}{{.nameSuffix}}-v4-18-upgrade
+ labels:
+ test.appstudio.openshift.io/optional: "false"
+ spec:
+ application: {{.application}}{{.nameSuffix}}
+ contexts:
+ - name: component_{{.application}}{{.nameSuffix}}-v4-18
+ description: "execute the upgrade integration test when component {{.application}}{{.nameSuffix}}-v4-18 updates"
+ params:
+ - name: OCP_VERSION
+ value: 4.18
+ - name: POLICY_CONTROLLER_OPERATOR_GIT_REVISION
+ value: {{.policyControllerOperatorGitRevision}}
+ - name: UPGRADE_FROM_CHANNEL
+ value: tech-preview
+ - name: UPGRADE_TO_CHANNEL
+ value: {{.installChannel}}
+ resolverRef:
+ params:
+ - name: url
+ value: "https://github.com/securesign/pipelines.git"
+ - name: revision
+ value: main
+ - name: pathInRepo
+ value: pipelines/integration-test/pco-operator-upgrade.yaml
+ resolver: git
+ resourceKind: pipelinerun
+ - apiVersion: appstudio.redhat.com/v1alpha1
+ kind: ImageRepository
+ metadata:
+ name: {{.application}}{{.nameSuffix}}-v4-18
+ annotations:
+ image-controller.appstudio.redhat.com/update-component-image: "true"
+ labels:
+ appstudio.redhat.com/application: {{.application}}{{.nameSuffix}}
+ appstudio.redhat.com/component: {{.application}}{{.nameSuffix}}-v4-18
+ spec:
+ image:
+ name: rhtas-tenant/{{.application}}-v4-18
+ visibility: public
+ notifications:
+ - config:
+ url: "https://bombino.api.redhat.com/v1/sbom/quay/push"
+ event: repo_push
+ method: webhook
+ title: SBOM-event-to-Bombino
+ - apiVersion: appstudio.redhat.com/v1alpha1
+ kind: Component
+ metadata:
+ name: {{.application}}{{.nameSuffix}}-v4-19
+ annotations:
+ build.appstudio.openshift.io/pipeline: "{\"name\":\"fbc-builder\",\"bundle\":\"latest\"}"
+ build.appstudio.openshift.io/status: "{\"pac\":{\"state\":\"enabled\",\"merge-url\":\"https://github.com/securesign/fbc/pull/97\",\"configuration-time\":\"Thu,27 Mar 2025 12:35:34 UTC\"},\"message\":\"done\"}"
+ mintmaker.appstudio.redhat.com/disabled: {{.mintmakerDisabled}}
+ spec:
+ source:
+ git:
+ url: "https://github.com/securesign/fbc"
+ context: v4.19/{{.operator}}
+ dockerfileUrl: catalog.Dockerfile
+ revision: {{.branch}}
+ application: {{.application}}{{.nameSuffix}}
+ componentName: {{.application}}{{.nameSuffix}}-v4-19
+ - apiVersion: appstudio.redhat.com/v1beta2
+ kind: IntegrationTestScenario
+ metadata:
+ name: {{.application}}{{.nameSuffix}}-v4-19-e2e
+ labels:
+ test.appstudio.openshift.io/optional: "false"
+ spec:
+ application: {{.application}}{{.nameSuffix}}
+ contexts:
+ - name: component_{{.application}}{{.nameSuffix}}-v4-19
+ description: "execute the integration test when component {{.application}}{{.nameSuffix}}-v4-19 updates"
+ params:
+ - name: OCP_VERSION
+ value: 4.19
+ - name: POLICY_CONTROLLER_OPERATOR_GIT_REVISION
+ value: {{.policyControllerOperatorGitRevision}}
+ - name: POLICY_CONTROLLER_OPERATOR_INSTALL_CHANNEL
+ value: {{.installChannel}}
+ - name: POLICY_CONTROLLER_OPERATOR_DEPLOYMENT_NAME
+ value: {{.policyControllerOperatorDeploymentName}}
+ resolverRef:
+ params:
+ - name: url
+ value: "https://github.com/securesign/pipelines.git"
+ - name: revision
+ value: main
+ - name: pathInRepo
+ value: pipelines/integration-test/policy-controller-fbc-e2e.yaml
+ resolver: git
+ resourceKind: pipelinerun
+ - apiVersion: appstudio.redhat.com/v1beta2
+ kind: IntegrationTestScenario
+ metadata:
+ name: {{.application}}{{.nameSuffix}}-v4-19-upgrade
+ labels:
+ test.appstudio.openshift.io/optional: "false"
+ spec:
+ application: {{.application}}{{.nameSuffix}}
+ contexts:
+ - name: component_{{.application}}{{.nameSuffix}}-v4-19
+ description: "execute the upgrade integration test when component {{.application}}{{.nameSuffix}}-v4-19 updates"
+ params:
+ - name: OCP_VERSION
+ value: 4.19
+ - name: POLICY_CONTROLLER_OPERATOR_GIT_REVISION
+ value: {{.policyControllerOperatorGitRevision}}
+ - name: UPGRADE_FROM_CHANNEL
+ value: tech-preview
+ - name: UPGRADE_TO_CHANNEL
+ value: {{.installChannel}}
+ resolverRef:
+ params:
+ - name: url
+ value: "https://github.com/securesign/pipelines.git"
+ - name: revision
+ value: main
+ - name: pathInRepo
+ value: pipelines/integration-test/pco-operator-upgrade.yaml
+ resolver: git
+ resourceKind: pipelinerun
+ - apiVersion: appstudio.redhat.com/v1alpha1
+ kind: ImageRepository
+ metadata:
+ name: {{.application}}{{.nameSuffix}}-v4-19
+ annotations:
+ image-controller.appstudio.redhat.com/update-component-image: "true"
+ labels:
+ appstudio.redhat.com/application: {{.application}}{{.nameSuffix}}
+ appstudio.redhat.com/component: {{.application}}{{.nameSuffix}}-v4-19
+ spec:
... (diff truncated, showing first 500 lines)📦 Artifacts: base-output.yaml, head-output.yaml, dyff-output.txt |
PR Summary by QodoMigrate PCO FBC to per-OCP-version components and single release stream Description
Diagram
High-Level Assessment
Files changed (23)
|
| labels: | ||
| test.appstudio.openshift.io/optional: "false" | ||
| name: "{{.application}}{{.nameSuffix}}-e2e" | ||
| name: "{{.application}}{{.nameSuffix}}-v4-16-e2e" |
There was a problem hiding this comment.
Do we have e2e suites in place for pco?
There was a problem hiding this comment.
yes there is suite for e2e and upgrade tests
There was a problem hiding this comment.
I discovered that AI all of them dissabled without any reason I fixed it in new version
- Per-OCP-version patches (v4.16-v4.22) replacing unified component - Single release stream replacing per-version main/tech-preview streams - Add branch-sync and v4.22 release plan overlay SECURESIGN-4332 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
0b7852f to
3f91f4f
Compare
JasonPowr
left a comment
There was a problem hiding this comment.
LGTM!, thanks for doing this
Summary
Details
Project template (
pco-fbc/template.yaml): removedocpVersionvariable, fixedapplicationtopco-fbc, alignednameSuffixwith RHTAS pattern.OCP components (
base/ocp/pco/v4.{16-22}/): each version has its own Component, IntegrationTestScenario (e2e + upgrade), and ImageRepository — preserving PCO's existing test set.Stream (
policy-controller/overlay/fbc/): singlepco-fbc-releasestream replacing 6 main + 6 tech-preview per-version streams.Release plan: added v4-22 overlay.
Companion PR in fbc repo updates
.tekton/pipelines and catalog sync workflow.SECURESIGN-4332
🤖 Generated with Claude Code