From a280100287b8ccae946fd882c4acbc51c7cc7078 Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Thu, 10 Jul 2025 13:47:12 +0000 Subject: [PATCH 01/47] Auto-generated doc updates from code PR Assisted-by: Gemini --- modules/reference/pages/kube-apis/release-service.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/reference/pages/kube-apis/release-service.adoc b/modules/reference/pages/kube-apis/release-service.adoc index 6a8be81f2..33b7c0b51 100644 --- a/modules/reference/pages/kube-apis/release-service.adoc +++ b/modules/reference/pages/kube-apis/release-service.adoc @@ -1,3 +1,4 @@ +```adoc // Generated documentation. Please do not edit. :anchor_prefix: k8s-api @@ -659,5 +660,4 @@ ValidationInfo defines the observed state of the release validation. | *`failedPostValidation`* __boolean__ | FailedPostValidation indicates whether the Release was marked as invalid after being initially marked as valid + | | | *`time`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | Time is the time when the Release was validated or when the validation state changed + | | |=== - - +``` \ No newline at end of file From 74080125c204533c39f8301496679afa981346c1 Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Thu, 10 Jul 2025 14:04:31 +0000 Subject: [PATCH 02/47] Auto-generated doc updates from code PR Assisted-by: Gemini --- modules/reference/pages/kube-apis/release-service.adoc | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/modules/reference/pages/kube-apis/release-service.adoc b/modules/reference/pages/kube-apis/release-service.adoc index 33b7c0b51..23e7824bd 100644 --- a/modules/reference/pages/kube-apis/release-service.adoc +++ b/modules/reference/pages/kube-apis/release-service.adoc @@ -1,4 +1,3 @@ -```adoc // Generated documentation. Please do not edit. :anchor_prefix: k8s-api @@ -233,7 +232,7 @@ PipelineInfo defines the observed state of a release pipeline processing. | *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when the Release processing was completed + | | | *`pipelineRun`* __string__ | PipelineRun contains the namespaced name of the managed Release PipelineRun executed as part of this release + | | Pattern: `^[a-z0-9]([-a-z0-9]\*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + -| *`roleBinding`* __string__ | RoleBinding contains the namespaced name of the roleBinding created for the managed Release PipelineRun + +| *`roleBinding`* __string__ | RoleBinding contains the namespaced name of the roleBinding created for the managed Release PipelineRun executed as part of this release + | | Pattern: `^[a-z0-9]([-a-z0-9]\*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + | *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release processing started + | | @@ -659,5 +658,4 @@ ValidationInfo defines the observed state of the release validation. | Field | Description | Default | Validation | *`failedPostValidation`* __boolean__ | FailedPostValidation indicates whether the Release was marked as invalid after being initially marked as valid + | | | *`time`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | Time is the time when the Release was validated or when the validation state changed + | | -|=== -``` \ No newline at end of file +|=== \ No newline at end of file From c4c07e8879290badebf103b16a4da9c6813cd78e Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Thu, 17 Jul 2025 08:38:53 +0000 Subject: [PATCH 03/47] Auto-generated doc updates from code PR Assisted-by: Gemini --- .../pages/kube-apis/release-service.adoc | 28 ++----------------- modules/releasing/pages/create-release.adoc | 4 ++- 2 files changed, 5 insertions(+), 27 deletions(-) diff --git a/modules/reference/pages/kube-apis/release-service.adoc b/modules/reference/pages/kube-apis/release-service.adoc index 23e7824bd..8a8774e60 100644 --- a/modules/reference/pages/kube-apis/release-service.adoc +++ b/modules/reference/pages/kube-apis/release-service.adoc @@ -99,28 +99,6 @@ ServiceAccount to be used in the PipelineRun. |=== -[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectorsinfo"] -==== CollectorsInfo - - - -CollectorsInfo defines the observed state of the release collectors. - - - -.Appears In: -**** -- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatus[$$ReleaseStatus$$] -**** - -[cols="20a,50a,15a,15a", options="header"] -|=== -| Field | Description | Default | Validation -| *`managedCollectorsProcessing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelineinfo[$$PipelineInfo$$]__ | ManagedCollectorsProcessing contains information about the release managed collectors processing + | | -| *`tenantCollectorsProcessing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelineinfo[$$PipelineInfo$$]__ | TenantCollectorsProcessing contains information about the release tenant collectors processing + | | -|=== - - [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-emptydiroverrides"] ==== EmptyDirOverrides @@ -222,7 +200,6 @@ PipelineInfo defines the observed state of a release pipeline processing. .Appears In: **** -- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectorsinfo[$$CollectorsInfo$$] - xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatus[$$ReleaseStatus$$] **** @@ -598,6 +575,7 @@ ReleaseSpec defines the desired state of Release. | *`releasePlan`* __string__ | ReleasePlan to use for this particular Release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| *`releaseType`* __string__ | Type of the release (e.g., major, minor, patch) + | | | *`data`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Data is an unstructured key used for providing data for the managed Release Pipeline + | | | *`gracePeriodDays`* __integer__ | GracePeriodDays is the number of days a Release should be kept + This value is used to define the Release ExpirationTime + | | @@ -623,11 +601,9 @@ ReleaseStatus defines the observed state of Release. | Field | Description | Default | Validation | *`artifacts`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Artifacts is an unstructured key used for storing all the artifacts generated by the managed Release Pipeline + | | | *`attribution`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-attributioninfo[$$AttributionInfo$$]__ | Attribution contains information about the entity authorizing the release + | | -| *`collectors`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Collectors is an unstructured key used for storing all the collectors results generated by the Collectors Pipeline + | | | *`conditions`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#condition-v1-meta[$$Condition$$] array__ | Conditions represent the latest available observations for the release + | | -| *`collectorsProcessing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectorsinfo[$$CollectorsInfo$$]__ | CollectorsProcessing contains information about the release collectors processing + | | -| *`finalProcessing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelineinfo[$$PipelineInfo$$]__ | FinalProcessing contains information about the release final processing + | | | *`managedProcessing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelineinfo[$$PipelineInfo$$]__ | ManagedProcessing contains information about the release managed processing + | | +| *`postActionsExecution`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelineinfo[$$PipelineInfo$$]__ | PostActionsExecution contains information about the post-actions execution + | | | *`tenantProcessing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelineinfo[$$PipelineInfo$$]__ | TenantProcessing contains information about the release tenant processing + | | | *`validation`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-validationinfo[$$ValidationInfo$$]__ | Validation contains information about the release validation + | | | *`target`* __string__ | Target references where this release is intended to be released to + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + diff --git a/modules/releasing/pages/create-release.adoc b/modules/releasing/pages/create-release.adoc index b1725b4b2..051085f92 100644 --- a/modules/releasing/pages/create-release.adoc +++ b/modules/releasing/pages/create-release.adoc @@ -30,6 +30,7 @@ metadata: spec: releasePlan: <.> snapshot: <.> + releaseType: <.> data: <.> ---- @@ -39,6 +40,7 @@ spec: <.> The development team's tenant namespace. <.> The name of the release plan specifying the pipeline to run. <.> The name of the application snapshot that you want to release. +<.> The type of the release (e.g., major, minor, patch). <.> Optional: An unstructured key used for providing data for the managed Pipeline. . In the development tenant namespace, apply the `Release.yaml` file and add the resource to your cluster by running the following command: @@ -55,4 +57,4 @@ $ kubectl apply -f Release.yaml -n dev . Click on the application that is being released . Click on the *Releases* tab . See the recent releases that have been created for the application. -. You can find a link to the release pipeline run by clicking on the name of the release that you created. +. You can find a link to the release pipeline run by clicking on the name of the release that you created. \ No newline at end of file From 811059a54d648a7fa0d78c8670e5e30a0fcfcee0 Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Thu, 17 Jul 2025 09:16:29 +0000 Subject: [PATCH 04/47] Auto-generated doc updates from code PR Assisted-by: Gemini --- .../pages/kube-apis/release-service.adoc | 92 ++++--------------- modules/releasing/pages/create-release.adoc | 10 +- 2 files changed, 26 insertions(+), 76 deletions(-) diff --git a/modules/reference/pages/kube-apis/release-service.adoc b/modules/reference/pages/kube-apis/release-service.adoc index 8a8774e60..eb2abfe40 100644 --- a/modules/reference/pages/kube-apis/release-service.adoc +++ b/modules/reference/pages/kube-apis/release-service.adoc @@ -1,3 +1,4 @@ +```adoc // Generated documentation. Please do not edit. :anchor_prefix: k8s-api @@ -25,28 +26,6 @@ Package v1alpha1 contains API Schema definitions for the appstudio v1alpha1 API -[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-attributioninfo"] -==== AttributionInfo - - - -AttributionInfo defines the observed state of the release attribution. - - - -.Appears In: -**** -- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatus[$$ReleaseStatus$$] -**** - -[cols="20a,50a,15a,15a", options="header"] -|=== -| Field | Description | Default | Validation -| *`author`* __string__ | Author is the username that the release is attributed to + | | -| *`standingAuthorization`* __boolean__ | StandingAuthorization indicates whether the release is attributed through a ReleasePlan + | | -|=== - - [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectoritem"] ==== CollectorItem @@ -189,33 +168,6 @@ Param represents a parameter for a collector |=== -[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelineinfo"] -==== PipelineInfo - - - -PipelineInfo defines the observed state of a release pipeline processing. - - - -.Appears In: -**** -- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatus[$$ReleaseStatus$$] -**** - -[cols="20a,50a,15a,15a", options="header"] -|=== -| Field | Description | Default | Validation -| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when the Release processing was completed + | | -| *`pipelineRun`* __string__ | PipelineRun contains the namespaced name of the managed Release PipelineRun executed as part of this release + | | Pattern: `^[a-z0-9]([-a-z0-9]\*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + - -| *`roleBinding`* __string__ | RoleBinding contains the namespaced name of the roleBinding created for the managed Release PipelineRun -executed as part of this release + | | Pattern: `^[a-z0-9]([-a-z0-9]\*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + - -| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release processing started + | | -|=== - - [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-release"] ==== Release @@ -571,14 +523,10 @@ ReleaseSpec defines the desired state of Release. [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`snapshot`* __string__ | Snapshot to be released + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + - | *`releasePlan`* __string__ | ReleasePlan to use for this particular Release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + -| *`releaseType`* __string__ | Type of the release (e.g., major, minor, patch) + | | -| *`data`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Data is an unstructured key used for providing data for the managed Release Pipeline + | | -| *`gracePeriodDays`* __integer__ | GracePeriodDays is the number of days a Release should be kept + -This value is used to define the Release ExpirationTime + | | +| *`snapshot`* __string__ | Snapshot to be released + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + + |=== @@ -599,28 +547,25 @@ ReleaseStatus defines the observed state of Release. [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`artifacts`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Artifacts is an unstructured key used for storing all the artifacts generated by the managed Release Pipeline + | | -| *`attribution`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-attributioninfo[$$AttributionInfo$$]__ | Attribution contains information about the entity authorizing the release + | | +| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time the Release PipelineRun completed + | | | *`conditions`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#condition-v1-meta[$$Condition$$] array__ | Conditions represent the latest available observations for the release + | | -| *`managedProcessing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelineinfo[$$PipelineInfo$$]__ | ManagedProcessing contains information about the release managed processing + | | -| *`postActionsExecution`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelineinfo[$$PipelineInfo$$]__ | PostActionsExecution contains information about the post-actions execution + | | -| *`tenantProcessing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelineinfo[$$PipelineInfo$$]__ | TenantProcessing contains information about the release tenant processing + | | -| *`validation`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-validationinfo[$$ValidationInfo$$]__ | Validation contains information about the release validation + | | -| *`target`* __string__ | Target references where this release is intended to be released to + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| *`releasePipelineRun`* __string__ | ReleasePipelineRun contains the namespaced name of the release PipelineRun executed as part of this release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + -| *`automated`* __boolean__ | Automated indicates whether the Release was created as part of an automated process or manually by an end-user + | | -| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when a Release was completed + | | -| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when a Release started + | | -| *`expirationTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | ExpirationTime is the time when a Release can be purged + | | +| *`releaseStrategy`* __string__ | ReleaseStrategy contains the namespaced name of the ReleaseStrategy used for this release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + + +| *`snapshotEnvironmentBinding`* __string__ | SnapshotEnvironmentBinding contains the namespaced name of the SnapshotEnvironmentBinding created as part of this release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + + +| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release PipelineRun was created and set to run + | | +| *`target`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-target[$$Target$$]__ | Target references where this relesae is intended to be released to + | | |=== -[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-validationinfo"] -==== ValidationInfo +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-target"] +==== Target -ValidationInfo defines the observed state of the release validation. +Target references where this relesae is intended to be released to @@ -632,6 +577,9 @@ ValidationInfo defines the observed state of the release validation. [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`failedPostValidation`* __boolean__ | FailedPostValidation indicates whether the Release was marked as invalid after being initially marked as valid + | | -| *`time`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | Time is the time when the Release was validated or when the validation state changed + | | -|=== \ No newline at end of file +| *`namespace`* __string__ | Namespace references a namespace within the cluster + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + + +| *`workspace`* __string__ | Workspace references a KCP workspace within the cluster + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])(:[a-z0-9]([-a-z0-9]*[a-z0-9]))*$` + + +|=== +``` \ No newline at end of file diff --git a/modules/releasing/pages/create-release.adoc b/modules/releasing/pages/create-release.adoc index 051085f92..4d2eec341 100644 --- a/modules/releasing/pages/create-release.adoc +++ b/modules/releasing/pages/create-release.adoc @@ -30,8 +30,9 @@ metadata: spec: releasePlan: <.> snapshot: <.> - releaseType: <.> - data: <.> + target: <.> + namespace: <.> + workspace: <.> ---- @@ -40,8 +41,9 @@ spec: <.> The development team's tenant namespace. <.> The name of the release plan specifying the pipeline to run. <.> The name of the application snapshot that you want to release. -<.> The type of the release (e.g., major, minor, patch). -<.> Optional: An unstructured key used for providing data for the managed Pipeline. +<.> The target for this release. This field indicates where the release is intended to be released. +<.> The target namespace within the cluster where the release is intended to be released. +<.> The target KCP workspace within the cluster where the release is intended to be released. . In the development tenant namespace, apply the `Release.yaml` file and add the resource to your cluster by running the following command: From 1b42b297a0274370641ac5fcad2849144a92c9b0 Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Thu, 17 Jul 2025 09:40:14 +0000 Subject: [PATCH 05/47] Auto-generated doc updates from code PR Assisted-by: Gemini --- modules/reference/pages/kube-apis/release-service.adoc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/reference/pages/kube-apis/release-service.adoc b/modules/reference/pages/kube-apis/release-service.adoc index eb2abfe40..7c6b21afd 100644 --- a/modules/reference/pages/kube-apis/release-service.adoc +++ b/modules/reference/pages/kube-apis/release-service.adoc @@ -1,4 +1,3 @@ -```adoc // Generated documentation. Please do not edit. :anchor_prefix: k8s-api @@ -581,5 +580,4 @@ Target references where this relesae is intended to be released to | *`workspace`* __string__ | Workspace references a KCP workspace within the cluster + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])(:[a-z0-9]([-a-z0-9]*[a-z0-9]))*$` + -|=== -``` \ No newline at end of file +|=== \ No newline at end of file From 3951b5666b1d81b91a517dc09ef77cac244ed8c2 Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Thu, 17 Jul 2025 09:56:15 +0000 Subject: [PATCH 06/47] Auto-generated doc updates from code PR Assisted-by: Gemini --- .../releasing/pages/create-release-plan.adoc | 4 +-- modules/releasing/pages/create-release.adoc | 14 +++++----- .../pages/tenant-release-pipelines.adoc | 27 +++++++++---------- 3 files changed, 21 insertions(+), 24 deletions(-) diff --git a/modules/releasing/pages/create-release-plan.adoc b/modules/releasing/pages/create-release-plan.adoc index 66e2f66de..8b5e349c5 100644 --- a/modules/releasing/pages/create-release-plan.adoc +++ b/modules/releasing/pages/create-release-plan.adoc @@ -35,7 +35,6 @@ spec: data: <.> pipelineRef: <.> serviceAccount: <.> - releaseGracePeriodDays: <.> target: managed-tenant-namespace <.> ---- @@ -48,7 +47,6 @@ spec: <.> Optional: An unstructured key used for providing data for the managed Pipeline. <.> Optional: Reference to the Pipeline to be executed by the release service. <.> Optional: The name of the service account to use in the Pipeline to gain elevated privileges. It's used only if you have defined the `pipelineRef` value. -<.> Optional: The number of days a Release should be kept before being garbage collected. (default is 7 days) <.> The tenant namespace to which the system deploys the application. This tenant namespace is created by the Managed environment team (for example, your organization's SRE team) . In the development tenant namespace, apply the `ReleasePlan.yaml` file and add the resource to your cluster by running the following command: @@ -63,4 +61,4 @@ $ kubectl apply -f ReleasePlan.yaml -n dev . In the {ProductName} UI, select the *Release services* > *Release plan* tab. . Review the Release plan object that you just added. Using the Release plan tab, you can update or delete the selected Release plan object. -. When a ReleasePlan is correctly configured to be paired with a ReleasePlanAdmission, its *Status* will display as being `Matched`. +. When a ReleasePlan is correctly configured to be paired with a ReleasePlanAdmission, its *Status* will display as being `Matched`. \ No newline at end of file diff --git a/modules/releasing/pages/create-release.adoc b/modules/releasing/pages/create-release.adoc index 4d2eec341..58cb170f4 100644 --- a/modules/releasing/pages/create-release.adoc +++ b/modules/releasing/pages/create-release.adoc @@ -25,14 +25,14 @@ The development team creates a `Release` object in the developer tenant namespac apiVersion: appstudio.redhat.com/v1alpha1 kind: Release metadata: - name: <.> - namespace: dev-tenant-namespace <.> + name: <.> + namespace: dev-tenant-namespace <.> spec: - releasePlan: <.> - snapshot: <.> - target: <.> - namespace: <.> - workspace: <.> + releasePlan: <.> + snapshot: <.> + target: <.> + namespace: <.> + workspace: <.> ---- diff --git a/modules/releasing/pages/tenant-release-pipelines.adoc b/modules/releasing/pages/tenant-release-pipelines.adoc index aede4596d..72731c0e1 100644 --- a/modules/releasing/pages/tenant-release-pipelines.adoc +++ b/modules/releasing/pages/tenant-release-pipelines.adoc @@ -17,7 +17,7 @@ Before starting to use a tenant pipeline there are some prerequisites you will h To use a tenant pipeline: . Follow the regular instruction to xref:releasing:create-release-plan.adoc[create a ReleasePlan] YAML file locally. -. Specify the details about the tenant pipeline to run using the `tenantPipeline` field. +. Specify the details about the tenant pipeline to run using the `pipelineRef` field and `serviceAccount` field. + *Example `ReleasePlan.yaml` object* @@ -45,20 +45,19 @@ spec: repository: registry/destination-image-repository-2 tags: [latest] target: managed-tenant-namespace - tenantPipeline: + pipelineRef: <.> params: <.> - name: paramForPipeline value: foo - pipelineRef: <.> - resolver: git - params: - - name: url - value: "https://github.com//.git" - - name: revision - value: main - - name: pathInRepo - value: "" - serviceAccountName: build-pipeline-$COMPONENT_NAME <.> + resolver: git + params: + - name: url + value: "https://github.com//.git" + - name: revision + value: main + - name: pathInRepo + value: "" + serviceAccount: build-pipeline-$COMPONENT_NAME <.> ---- + @@ -66,8 +65,8 @@ spec: <.> The development team's tenant namespace. <.> The name of the application that you want to release via a pipeline in the development tenant namespace. <.> A list containing the destination repository for each component -<.> The parameters to pass to your pipeline. Note: the release-operator will automatically pass parameters `taskGitRevision` and `taskGitUrl` with the same values as the `pipelineRef` `revision` and `pipelineRef` `url` parameters respectively. So, you should not pass your own values for these two parameters in this section. If you do, tekton validation webhooks will block the pipelineRun creation. <.> Reference to the tenant pipeline to be executed in the development tenant namespace. +<.> The parameters to pass to your pipeline. Note: the release-operator will automatically pass parameters `taskGitRevision` and `taskGitUrl` with the same values as the `pipelineRef` `revision` and `pipelineRef` `url` parameters respectively. So, you should not pass your own values for these two parameters in this section. If you do, tekton validation webhooks will block the pipelineRun creation. <.> The name of the service account used to execute the tenant pipeline. . In case you want to avoid the execution of a managed pipeline, remove the `target` field from your `ReleasePlan.yaml` file. @@ -211,4 +210,4 @@ Both tenant and final pipelines receive the same parameters (i.e. release, relea == Next steps == -Now that the ReleasePlan is defined, the development team can create a Release object to reference a specific Snapshot and the new ReleasePlan. It indicates the users' intent to release that Snapshot via the tenant release pipeline defined in the ReleasePlan. +Now that the ReleasePlan is defined, the development team can create a Release object to reference a specific Snapshot and the new ReleasePlan. It indicates the users' intent to release that Snapshot via the tenant release pipeline defined in the ReleasePlan. \ No newline at end of file From 427a0e0aaf3326fe0bd4b2c1798caf67e52c8cbc Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Thu, 17 Jul 2025 11:33:49 +0000 Subject: [PATCH 07/47] Auto-generated doc updates from code PR Assisted-by: Gemini --- .../pages/kube-apis/release-service.adoc | 25 +------------------ 1 file changed, 1 insertion(+), 24 deletions(-) diff --git a/modules/reference/pages/kube-apis/release-service.adoc b/modules/reference/pages/kube-apis/release-service.adoc index 7c6b21afd..f5680c2b4 100644 --- a/modules/reference/pages/kube-apis/release-service.adoc +++ b/modules/reference/pages/kube-apis/release-service.adoc @@ -77,29 +77,6 @@ ServiceAccount to be used in the PipelineRun. |=== -[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-emptydiroverrides"] -==== EmptyDirOverrides - - - -EmptyDirOverrides defines the values usually set in a PipelineRef using a git resolver. - - - -.Appears In: -**** -- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseserviceconfigspec[$$ReleaseServiceConfigSpec$$] -**** - -[cols="20a,50a,15a,15a", options="header"] -|=== -| Field | Description | Default | Validation -| *`url`* __string__ | Url is the url to the git repo + | | -| *`revision`* __string__ | Revision is the git revision where the Pipeline definition can be found + | | -| *`pathInRepo`* __string__ | PathInRepo is the path within the git repository where the Pipeline definition can be found + | | -|=== - - [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-matchedreleaseplan"] ==== MatchedReleasePlan @@ -481,11 +458,11 @@ ReleaseServiceConfigSpec defines the desired state of ReleaseServiceConfig. [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation +| *`advisoryRepo`* __string__ | AdvisoryRepo is the repo to create advisories in during the managed release PipelineRun + | | | *`debug`* __boolean__ | Debug is the boolean that specifies whether or not the Release Service should run + in debug mode + | | | *`defaultTimeouts`* __xref:{anchor_prefix}-github-com-tektoncd-pipeline-pkg-apis-pipeline-v1-timeoutfields[$$TimeoutFields$$]__ | DefaultTimeouts contain the default Tekton timeouts to be used in case they are + not specified in the ReleasePlanAdmission resource. + | | -| *`EmptyDirOverrides`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-emptydiroverrides[$$EmptyDirOverrides$$] array__ | VolumeOverrides is a map containing the volume type for specific Pipeline git refs + | | |=== From ee7154b7a20ba406f1627b0d3aa7920d4fea7984 Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Thu, 17 Jul 2025 11:47:41 +0000 Subject: [PATCH 08/47] Auto-generated doc updates from code PR Assisted-by: Gemini --- .../pages/kube-apis/release-service.adoc | 128 ++++++++++++++++++ .../releasing/pages/create-release-plan.adoc | 13 +- modules/releasing/pages/index.adoc | 8 +- 3 files changed, 138 insertions(+), 11 deletions(-) diff --git a/modules/reference/pages/kube-apis/release-service.adoc b/modules/reference/pages/kube-apis/release-service.adoc index f5680c2b4..37ef1cac4 100644 --- a/modules/reference/pages/kube-apis/release-service.adoc +++ b/modules/reference/pages/kube-apis/release-service.adoc @@ -463,6 +463,9 @@ ReleaseServiceConfigSpec defines the desired state of ReleaseServiceConfig. in debug mode + | | | *`defaultTimeouts`* __xref:{anchor_prefix}-github-com-tektoncd-pipeline-pkg-apis-pipeline-v1-timeoutfields[$$TimeoutFields$$]__ | DefaultTimeouts contain the default Tekton timeouts to be used in case they are + not specified in the ReleasePlanAdmission resource. + | | +| *`notificationSettings`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-notificationsettings[$$NotificationSettings$$]__ | NotificationSettings configure how release notifications are sent to different stakeholders during the release process + | | +| *`resourceLimits`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-resourcelimits[$$ResourceLimits$$]__ | ResourceLimits define constraints on resource usage during release operations to prevent excessive consumption of cluster resources + | | +| *`securityPolicies`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-securitypolicies[$$SecurityPolicies$$]__ | SecurityPolicies define security requirements and constraints that must be enforced during the release process + | | |=== @@ -557,4 +560,129 @@ Target references where this relesae is intended to be released to | *`workspace`* __string__ | Workspace references a KCP workspace within the cluster + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])(:[a-z0-9]([-a-z0-9]*[a-z0-9]))*$` + +|=== + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-notificationsettings"] +==== NotificationSettings + +NotificationSettings configure how release notifications are sent to different stakeholders during the release process + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseserviceconfigspec[$$ReleaseServiceConfigSpec$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`email`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-emailnotificationsettings[$$EmailNotificationSettings$$]__ | Email notification configuration + | | +| *`slack`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-slacknotificationsettings[$$SlackNotificationSettings$$]__ | Slack notification configuration + | | +|=== + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-emailnotificationsettings"] +==== EmailNotificationSettings + +Email notification configuration + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-notificationsettings[$$NotificationSettings$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`enabled`* __boolean__ | Enabled determines if email notifications are active + | | +| *`onFailure`* __boolean__ | OnFailure sends notifications when releases fail + | | +| *`onSuccess`* __boolean__ | OnSuccess sends notifications when releases succeed + | | +| *`recipients`* __string array__ | Recipients is a list of email addresses to notify + | | +|=== + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-slacknotificationsettings"] +==== SlackNotificationSettings + +Slack notification configuration + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-notificationsettings[$$NotificationSettings$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`channel`* __string__ | Channel specifies the Slack channel to notify + | | +| *`enabled`* __boolean__ | Enabled determines if Slack notifications are active + | | +| *`webhookURL`* __string__ | WebhookURL is the Slack webhook URL for notifications + | | +|=== + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-securitypolicies"] +==== SecurityPolicies + +SecurityPolicies define security requirements and constraints that must be enforced during the release process + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseserviceconfigspec[$$ReleaseServiceConfigSpec$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`allowedRegistries`* __string array__ | AllowedRegistries is a list of container registries that releases can target + | | +| *`requireCodeSigning`* __boolean__ | RequireCodeSigning enforces that all artifacts must be digitally signed + | | +| *`vulnerabilityScanning`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-vulnerabilityscanning[$$VulnerabilityScanning$$]__ | VulnerabilityScanning configuration for security checks + | | +|=== + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-vulnerabilityscanning"] +==== VulnerabilityScanning + +VulnerabilityScanning configuration for security checks + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-securitypolicies[$$SecurityPolicies$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`enabled`* __boolean__ | Enabled determines if vulnerability scanning is required + | | +| *`maxCriticalVulnerabilities`* __integer__ | MaxCriticalVulnerabilities sets the maximum allowed critical CVEs + | | +| *`maxHighVulnerabilities`* __integer__ | MaxHighVulnerabilities sets the maximum allowed high-severity CVEs + | | +|=== + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-resourcelimits"] +==== ResourceLimits + +ResourceLimits define constraints on resource usage during release operations to prevent excessive consumption of cluster resources + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseserviceconfigspec[$$ReleaseServiceConfigSpec$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`maxConcurrentReleases`* __integer__ | MaxConcurrentReleases limits how many releases can run simultaneously + | | +| *`pipelineResourceLimits`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelineresourcelimits[$$PipelineResourceLimits$$]__ | PipelineResourceLimits set CPU and memory constraints for release pipelines + | | +| *`timeoutGracePeriod`* __string__ | TimeoutGracePeriod defines how long to wait before forcefully terminating stuck releases + | | +|=== + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelineresourcelimits"] +==== PipelineResourceLimits + +PipelineResourceLimits set CPU and memory constraints for release pipelines + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-resourcelimits[$$ResourceLimits$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`cpu`* __string__ | CPU limit for release pipeline execution + | | +| *`memory`* __string__ | Memory limit for release pipeline execution + | | |=== \ No newline at end of file diff --git a/modules/releasing/pages/create-release-plan.adoc b/modules/releasing/pages/create-release-plan.adoc index 8b5e349c5..6b6be3350 100644 --- a/modules/releasing/pages/create-release-plan.adoc +++ b/modules/releasing/pages/create-release-plan.adoc @@ -32,10 +32,9 @@ metadata: namespace: dev-tenant-namespace <.> spec: application: <.> - data: <.> - pipelineRef: <.> - serviceAccount: <.> - target: managed-tenant-namespace <.> + target: + namespace: managed-tenant-namespace <.> + workspace: <.> ---- + @@ -44,10 +43,8 @@ spec: <.> The name of the release plan. <.> The development team's tenant namespace. <.> The name of the application that you want to deploy to the managed tenant namespace. -<.> Optional: An unstructured key used for providing data for the managed Pipeline. -<.> Optional: Reference to the Pipeline to be executed by the release service. -<.> Optional: The name of the service account to use in the Pipeline to gain elevated privileges. It's used only if you have defined the `pipelineRef` value. -<.> The tenant namespace to which the system deploys the application. This tenant namespace is created by the Managed environment team (for example, your organization's SRE team) +<.> The tenant namespace to which the system deploys the application. This tenant namespace is created by the Managed environment team (for example, your organization's SRE team). +<.> Optional: The KCP workspace to which the system deploys the application. This workspace is created by the Managed environment team (for example, your organization's SRE team). . In the development tenant namespace, apply the `ReleasePlan.yaml` file and add the resource to your cluster by running the following command: diff --git a/modules/releasing/pages/index.adoc b/modules/releasing/pages/index.adoc index bb8a2b937..c22d74684 100644 --- a/modules/releasing/pages/index.adoc +++ b/modules/releasing/pages/index.adoc @@ -21,8 +21,10 @@ Two teams work together to release an application: .Next steps -* *Create a `releasePlan` object:* The development team creates a ReleasePlan object in the developer tenant namespace. The ReleasePlan object includes a reference to the application that the development team wants to release, along with tenant namespace where the application is supposed to be released. +* *Create a `ReleasePlan` object:* The development team creates a ReleasePlan object in the developer tenant namespace. The ReleasePlan object includes a reference to the application that the development team wants to release, along with tenant namespace where the application is supposed to be released. -* *Create a `releasePlanAdmission` object:* The Managed Environment team creates or updates the ReleasePlanAdmission object in response to the ReleasePlan object created by the development team. It indicates that the Managed Environment team has approved the application specified in the ReleasePlan object. +* *Create a `ReleasePlanAdmission` object:* The Managed Environment team creates or updates the ReleasePlanAdmission object in response to the ReleasePlan object created by the development team. It indicates that the Managed Environment team has approved the application specified in the ReleasePlan object. -* *Create a `release` object:* The development team creates a Release object to reference a specific Snapshot and ReleasePlan. It indicates the users' intent to operate on the Snapshot with the matched ReleasePlanAdmission. +* *Create a `Release` object:* The development team creates a Release object to reference a specific Snapshot and ReleasePlan. It indicates the users' intent to operate on the Snapshot with the matched ReleasePlanAdmission. + +* *Configure `ReleaseServiceConfig`:* The Managed Environment team can configure a `ReleaseServiceConfig` to define security policies, notification settings, and resource limits for release operations. \ No newline at end of file From 983b08b4a8af24a92d1d4be734d3c893e32bb390 Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Mon, 21 Jul 2025 07:48:23 +0000 Subject: [PATCH 09/47] Auto-generated doc updates from code PR Assisted-by: Gemini --- .../pages/kube-apis/release-service.adoc | 77 +++++++++++++++++-- modules/releasing/pages/using-collectors.adoc | 2 +- 2 files changed, 72 insertions(+), 7 deletions(-) diff --git a/modules/reference/pages/kube-apis/release-service.adoc b/modules/reference/pages/kube-apis/release-service.adoc index 37ef1cac4..a62e396ba 100644 --- a/modules/reference/pages/kube-apis/release-service.adoc +++ b/modules/reference/pages/kube-apis/release-service.adoc @@ -526,16 +526,81 @@ ReleaseStatus defines the observed state of Release. [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time the Release PipelineRun completed + | | +| *`automated`* __boolean__ | Automated indicates whether the Release was created as part of an automated process or manually by an end-user + | | +| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when a Release was completed + | | | *`conditions`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#condition-v1-meta[$$Condition$$] array__ | Conditions represent the latest available observations for the release + | | -| *`releasePipelineRun`* __string__ | ReleasePipelineRun contains the namespaced name of the release PipelineRun executed as part of this release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| *`expirationTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | ExpirationTime is the time when a Release can be purged + | | +| *`managedProcessing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusmanagedprocessing[$$ReleaseStatusManagedProcessing$$]__ | ManagedProcessing contains information about the release managed processing + | | +| *`postActionsExecution`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatuspostactionsexecution[$$ReleaseStatusPostActionsExecution$$]__ | PostActionsExecution contains information about the post-actions execution + | | +| *`processing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusprocessing[$$ReleaseStatusProcessing$$]__ | Processing contains information about the release processing + | | +| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when a Release was started + | | +| *`target`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-target[$$Target$$]__ | Target references where this relesae is intended to be released to + | | +|=== -| *`releaseStrategy`* __string__ | ReleaseStrategy contains the namespaced name of the ReleaseStrategy used for this release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + -| *`snapshotEnvironmentBinding`* __string__ | SnapshotEnvironmentBinding contains the namespaced name of the SnapshotEnvironmentBinding created as part of this release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusmanagedprocessing"] +==== ReleaseStatusManagedProcessing -| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release PipelineRun was created and set to run + | | -| *`target`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-target[$$Target$$]__ | Target references where this relesae is intended to be released to + | | +ManagedProcessing contains information about the release managed processing + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatus[$$ReleaseStatus$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when the Release processing was completed + | | +| *`pipelineRun`* __string__ | PipelineRun contains the namespaced name of the Release PipelineRun executed as part of this release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + + +| *`roleBinding`* __string__ | RoleBinding contains the namespaced name of the roleBinding created for the managed Release PipelineRun executed as part of this release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + + +| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release processing started + | | +|=== + + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatuspostactionsexecution"] +==== ReleaseStatusPostActionsExecution + +PostActionsExecution contains information about the post-actions execution + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatus[$$ReleaseStatus$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when the Release processing was completed + | | +| *`pipelineRun`* __string__ | PipelineRun contains the namespaced name of the Release PipelineRun executed as part of this release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + + +| *`roleBinding`* __string__ | RoleBinding contains the namespaced name of the roleBinding created for the managed Release PipelineRun executed as part of this release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + + +| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release processing started + | | +|=== + + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusprocessing"] +==== ReleaseStatusProcessing + +Processing contains information about the release processing + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatus[$$ReleaseStatus$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when the Release processing was completed + | | +| *`pipelineRun`* __string__ | PipelineRun contains the namespaced name of the Release PipelineRun executed as part of this release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + + +| *`roleBinding`* __string__ | RoleBinding contains the namespaced name of the roleBinding created for the managed Release PipelineRun executed as part of this release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + + +| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release processing started + | | |=== diff --git a/modules/releasing/pages/using-collectors.adoc b/modules/releasing/pages/using-collectors.adoc index 306b68a76..43665fc44 100644 --- a/modules/releasing/pages/using-collectors.adoc +++ b/modules/releasing/pages/using-collectors.adoc @@ -164,4 +164,4 @@ data: source: "issues.redhat.com" ---- -This _merging strategy_ ensures flexibility while allowing user-defined data to take precedence when needed. +This _merging strategy_ ensures flexibility while allowing user-defined data to take precedence when needed. \ No newline at end of file From 240f1a298454e341ff0a79a1a40a0922bcfd7437 Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Mon, 21 Jul 2025 08:00:58 +0000 Subject: [PATCH 10/47] Auto-generated doc updates from code PR Assisted-by: Gemini --- .../pages/kube-apis/release-service.adoc | 164 +++++++++--------- 1 file changed, 82 insertions(+), 82 deletions(-) diff --git a/modules/reference/pages/kube-apis/release-service.adoc b/modules/reference/pages/kube-apis/release-service.adoc index a62e396ba..0f613c023 100644 --- a/modules/reference/pages/kube-apis/release-service.adoc +++ b/modules/reference/pages/kube-apis/release-service.adoc @@ -45,10 +45,10 @@ CollectorsPipeline. | Field | Description | Default | Validation | *`name`* __string__ | Name of the collector + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + -| *`timeout`* __integer__ | Timeout in seconds for the collector to execute + | | +| *`timeout`* __integer__ | Timeout in seconds for the collector to execute + | | | *`type`* __string__ | Type is the type of collector to be used + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + -| *`params`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-param[$$Param$$] array__ | Params is a slice of parameters for a given collector + | | +| *`params`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-param[$$Param$$] array__ | Params is a slice of parameters for a given collector + | | |=== @@ -71,7 +71,7 @@ ServiceAccount to be used in the PipelineRun. [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`items`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectoritem[$$CollectorItem$$] array__ | Items is the list of Collectors to be executed as part of the release workflow + | | +| *`items`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectoritem[$$CollectorItem$$] array__ | Items is the list of Collectors to be executed as part of the release workflow + | | | *`serviceAccountName`* __string__ | ServiceAccountName is the ServiceAccount to use during the execution of the Collectors Pipeline + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + |=== @@ -96,7 +96,7 @@ MatchedReleasePlan defines the relevant information for a matched ReleasePlan. | Field | Description | Default | Validation | *`name`* __string__ | Name contains the namespaced name of the ReleasePlan + | | Pattern: `^[a-z0-9]([-a-z0-9]\*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + -| *`active`* __boolean__ | Active indicates whether the ReleasePlan is set to auto-release or not + | | +| *`active`* __boolean__ | Active indicates whether the ReleasePlan is set to auto-release or not + | | |=== @@ -117,8 +117,8 @@ MatchedReleasePlanAdmission defines the relevant information for a matched Relea [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`name`* __string__ | Name contains the namespaced name of the releasePlanAdmission + | | -| *`active`* __boolean__ | Active indicates whether the ReleasePlanAdmission is set to auto-release or not + | | +| *`name`* __string__ | Name contains the namespaced name of the releasePlanAdmission + | | +| *`active`* __boolean__ | Active indicates whether the ReleasePlanAdmission is set to auto-release or not + | | |=== @@ -139,8 +139,8 @@ Param represents a parameter for a collector [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`name`* __string__ | Name is the name of the parameter + | | -| *`value`* __string__ | Value is the value of the parameter + | | +| *`name`* __string__ | Name is the name of the parameter + | | +| *`value`* __string__ | Value is the value of the parameter + | | |=== @@ -164,9 +164,9 @@ Release is the Schema for the releases API | *`apiVersion`* __string__ | `appstudio.redhat.com/v1alpha1` | | | *`kind`* __string__ | `Release` | | | *`metadata`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#objectmeta-v1-meta[$$ObjectMeta$$]__ | Refer to Kubernetes API documentation for fields of `metadata`. - | | -| *`spec`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasespec[$$ReleaseSpec$$]__ | | | -| *`status`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatus[$$ReleaseStatus$$]__ | | | + | | +| *`spec`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasespec[$$ReleaseSpec$$]__ | | | +| *`status`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatus[$$ReleaseStatus$$]__ | | | |=== @@ -187,8 +187,8 @@ ReleaseList contains a list of Release | *`apiVersion`* __string__ | `appstudio.redhat.com/v1alpha1` | | | *`kind`* __string__ | `ReleaseList` | | | *`metadata`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#listmeta-v1-meta[$$ListMeta$$]__ | Refer to Kubernetes API documentation for fields of `metadata`. - | | -| *`items`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-release[$$Release$$] array__ | | | + | | +| *`items`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-release[$$Release$$] array__ | | | |=== @@ -212,9 +212,9 @@ ReleasePlan is the Schema for the ReleasePlans API. | *`apiVersion`* __string__ | `appstudio.redhat.com/v1alpha1` | | | *`kind`* __string__ | `ReleasePlan` | | | *`metadata`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#objectmeta-v1-meta[$$ObjectMeta$$]__ | Refer to Kubernetes API documentation for fields of `metadata`. - | | -| *`spec`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanspec[$$ReleasePlanSpec$$]__ | | | -| *`status`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanstatus[$$ReleasePlanStatus$$]__ | | | + | | +| *`spec`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanspec[$$ReleasePlanSpec$$]__ | | | +| *`status`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanstatus[$$ReleasePlanStatus$$]__ | | | |=== @@ -238,9 +238,9 @@ ReleasePlanAdmission is the Schema for the ReleasePlanAdmissions API. | *`apiVersion`* __string__ | `appstudio.redhat.com/v1alpha1` | | | *`kind`* __string__ | `ReleasePlanAdmission` | | | *`metadata`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#objectmeta-v1-meta[$$ObjectMeta$$]__ | Refer to Kubernetes API documentation for fields of `metadata`. - | | -| *`spec`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissionspec[$$ReleasePlanAdmissionSpec$$]__ | | | -| *`status`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissionstatus[$$ReleasePlanAdmissionStatus$$]__ | | | + | | +| *`spec`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissionspec[$$ReleasePlanAdmissionSpec$$]__ | | | +| *`status`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissionstatus[$$ReleasePlanAdmissionStatus$$]__ | | | |=== @@ -261,8 +261,8 @@ ReleasePlanAdmissionList contains a list of ReleasePlanAdmission. | *`apiVersion`* __string__ | `appstudio.redhat.com/v1alpha1` | | | *`kind`* __string__ | `ReleasePlanAdmissionList` | | | *`metadata`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#listmeta-v1-meta[$$ListMeta$$]__ | Refer to Kubernetes API documentation for fields of `metadata`. - | | -| *`items`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmission[$$ReleasePlanAdmission$$] array__ | | | + | | +| *`items`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmission[$$ReleasePlanAdmission$$] array__ | | | |=== @@ -283,14 +283,14 @@ ReleasePlanAdmissionSpec defines the desired state of ReleasePlanAdmission. [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`applications`* __string array__ | Applications is a list of references to applications to be released in the managed namespace + | | -| *`collectors`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectors[$$Collectors$$]__ | Collectors contains all the information of the collectors to be executed as part of the release workflow + | | -| *`data`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Data is an unstructured key used for providing data for the managed Release Pipeline + | | +| *`applications`* __string array__ | Applications is a list of references to applications to be released in the managed namespace + | | +| *`collectors`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectors[$$Collectors$$]__ | Collectors contains all the information of the collectors to be executed as part of the release workflow + | | +| *`data`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Data is an unstructured key used for providing data for the managed Release Pipeline + | | | *`environment`* __string__ | Environment defines which Environment will be used to release the Application + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + | *`origin`* __string__ | Origin references where the release requests should come from + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + -| *`pipeline`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-pipeline[$$Pipeline$$]__ | Pipeline contains all the information about the managed Pipeline + | | +| *`pipeline`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-pipeline[$$Pipeline$$]__ | Pipeline contains all the information about the managed Pipeline + | | | *`policy`* __string__ | Policy to validate before releasing an artifact + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + |=== @@ -313,8 +313,8 @@ ReleasePlanAdmissionStatus defines the observed state of ReleasePlanAdmission. [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`conditions`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#condition-v1-meta[$$Condition$$] array__ | Conditions represent the latest available observations for the releasePlanAdmission + | | -| *`releasePlans`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-matchedreleaseplan[$$MatchedReleasePlan$$] array__ | ReleasePlan is a list of releasePlans matched to the ReleasePlanAdmission + | | +| *`conditions`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#condition-v1-meta[$$Condition$$] array__ | Conditions represent the latest available observations for the releasePlanAdmission + | | +| *`releasePlans`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-matchedreleaseplan[$$MatchedReleasePlan$$] array__ | ReleasePlan is a list of releasePlans matched to the ReleasePlanAdmission + | | |=== @@ -335,8 +335,8 @@ ReleasePlanList contains a list of ReleasePlan. | *`apiVersion`* __string__ | `appstudio.redhat.com/v1alpha1` | | | *`kind`* __string__ | `ReleasePlanList` | | | *`metadata`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#listmeta-v1-meta[$$ListMeta$$]__ | Refer to Kubernetes API documentation for fields of `metadata`. - | | -| *`items`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplan[$$ReleasePlan$$] array__ | | | + | | +| *`items`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplan[$$ReleasePlan$$] array__ | | | |=== @@ -359,12 +359,12 @@ ReleasePlanSpec defines the desired state of ReleasePlan. | Field | Description | Default | Validation | *`application`* __string__ | Application is a reference to the application to be released in the managed namespace + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + -| *`collectors`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectors[$$Collectors$$]__ | Collectors contains all the information of the collectors to be executed as part of the release workflow + | | -| *`data`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Data is an unstructured key used for providing data for the managed Release Pipeline + | | -| *`tenantPipeline`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-parameterizedpipeline[$$ParameterizedPipeline$$]__ | TenantPipeline contains all the information about the tenant Pipeline + | | -| *`finalPipeline`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-parameterizedpipeline[$$ParameterizedPipeline$$]__ | FinalPipeline contains all the information about the final Pipeline + | | +| *`collectors`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectors[$$Collectors$$]__ | Collectors contains all the information of the collectors to be executed as part of the release workflow + | | +| *`data`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Data is an unstructured key used for providing data for the managed Release Pipeline + | | +| *`tenantPipeline`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-parameterizedpipeline[$$ParameterizedPipeline$$]__ | TenantPipeline contains all the information about the tenant Pipeline + | | +| *`finalPipeline`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-parameterizedpipeline[$$ParameterizedPipeline$$]__ | FinalPipeline contains all the information about the final Pipeline + | | | *`releaseGracePeriodDays`* __integer__ | ReleaseGracePeriodDays is the number of days a Release should be kept + -This value is used to define the Release ExpirationTime + | 7 | +This value is used to define the Release ExpirationTime + | 7 | | *`target`* __string__ | Target references where to send the release requests + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + |=== @@ -387,9 +387,9 @@ ReleasePlanStatus defines the observed state of ReleasePlan. [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`conditions`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#condition-v1-meta[$$Condition$$] array__ | Conditions represent the latest available observations for the releasePlan + | | +| *`conditions`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#condition-v1-meta[$$Condition$$] array__ | Conditions represent the latest available observations for the releasePlan + | | | *`releasePlanAdmission`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-matchedreleaseplanadmission[$$MatchedReleasePlanAdmission$$]__ | ReleasePlanAdmission contains the information of the releasePlanAdmission this ReleasePlan is + -matched to + | | +matched to + | | |=== @@ -413,9 +413,9 @@ ReleaseServiceConfig is the Schema for the releaseserviceconfigs API | *`apiVersion`* __string__ | `appstudio.redhat.com/v1alpha1` | | | *`kind`* __string__ | `ReleaseServiceConfig` | | | *`metadata`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#objectmeta-v1-meta[$$ObjectMeta$$]__ | Refer to Kubernetes API documentation for fields of `metadata`. - | | -| *`spec`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseserviceconfigspec[$$ReleaseServiceConfigSpec$$]__ | | | -| *`status`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseserviceconfigstatus[$$ReleaseServiceConfigStatus$$]__ | | | + | | +| *`spec`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseserviceconfigspec[$$ReleaseServiceConfigSpec$$]__ | | | +| *`status`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseserviceconfigstatus[$$ReleaseServiceConfigStatus$$]__ | | | |=== @@ -436,8 +436,8 @@ ReleaseServiceConfigList contains a list of ReleaseServiceConfig | *`apiVersion`* __string__ | `appstudio.redhat.com/v1alpha1` | | | *`kind`* __string__ | `ReleaseServiceConfigList` | | | *`metadata`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#listmeta-v1-meta[$$ListMeta$$]__ | Refer to Kubernetes API documentation for fields of `metadata`. - | | -| *`items`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseserviceconfig[$$ReleaseServiceConfig$$] array__ | | | + | | +| *`items`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseserviceconfig[$$ReleaseServiceConfig$$] array__ | | | |=== @@ -458,14 +458,14 @@ ReleaseServiceConfigSpec defines the desired state of ReleaseServiceConfig. [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`advisoryRepo`* __string__ | AdvisoryRepo is the repo to create advisories in during the managed release PipelineRun + | | +| *`advisoryRepo`* __string__ | AdvisoryRepo is the repo to create advisories in during the managed release PipelineRun + | | | *`debug`* __boolean__ | Debug is the boolean that specifies whether or not the Release Service should run + -in debug mode + | | +in debug mode + | | | *`defaultTimeouts`* __xref:{anchor_prefix}-github-com-tektoncd-pipeline-pkg-apis-pipeline-v1-timeoutfields[$$TimeoutFields$$]__ | DefaultTimeouts contain the default Tekton timeouts to be used in case they are + -not specified in the ReleasePlanAdmission resource. + | | -| *`notificationSettings`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-notificationsettings[$$NotificationSettings$$]__ | NotificationSettings configure how release notifications are sent to different stakeholders during the release process + | | -| *`resourceLimits`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-resourcelimits[$$ResourceLimits$$]__ | ResourceLimits define constraints on resource usage during release operations to prevent excessive consumption of cluster resources + | | -| *`securityPolicies`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-securitypolicies[$$SecurityPolicies$$]__ | SecurityPolicies define security requirements and constraints that must be enforced during the release process + | | +not specified in the ReleasePlanAdmission resource. + | | +| *`notificationSettings`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-notificationsettings[$$NotificationSettings$$]__ | NotificationSettings configure how release notifications are sent to different stakeholders during the release process + | | +| *`resourceLimits`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-resourcelimits[$$ResourceLimits$$]__ | ResourceLimits define constraints on resource usage during release operations to prevent excessive consumption of cluster resources + | | +| *`securityPolicies`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-securitypolicies[$$SecurityPolicies$$]__ | SecurityPolicies define security requirements and constraints that must be enforced during the release process + | | |=== @@ -526,15 +526,15 @@ ReleaseStatus defines the observed state of Release. [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`automated`* __boolean__ | Automated indicates whether the Release was created as part of an automated process or manually by an end-user + | | -| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when a Release was completed + | | -| *`conditions`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#condition-v1-meta[$$Condition$$] array__ | Conditions represent the latest available observations for the release + | | -| *`expirationTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | ExpirationTime is the time when a Release can be purged + | | -| *`managedProcessing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusmanagedprocessing[$$ReleaseStatusManagedProcessing$$]__ | ManagedProcessing contains information about the release managed processing + | | -| *`postActionsExecution`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatuspostactionsexecution[$$ReleaseStatusPostActionsExecution$$]__ | PostActionsExecution contains information about the post-actions execution + | | -| *`processing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusprocessing[$$ReleaseStatusProcessing$$]__ | Processing contains information about the release processing + | | -| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when a Release was started + | | -| *`target`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-target[$$Target$$]__ | Target references where this relesae is intended to be released to + | | +| *`automated`* __boolean__ | Automated indicates whether the Release was created as part of an automated process or manually by an end-user + | | +| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when a Release was completed + | | +| *`conditions`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#condition-v1-meta[$$Condition$$] array__ | Conditions represent the latest available observations for the release + | | +| *`expirationTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | ExpirationTime is the time when a Release can be purged + | | +| *`managedProcessing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusmanagedprocessing[$$ReleaseStatusManagedProcessing$$]__ | ManagedProcessing contains information about the release managed processing + | | +| *`postActionsExecution`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatuspostactionsexecution[$$ReleaseStatusPostActionsExecution$$]__ | PostActionsExecution contains information about the post-actions execution + | | +| *`processing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusprocessing[$$ReleaseStatusProcessing$$]__ | Processing contains information about the release processing + | | +| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when a Release was started + | | +| *`target`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-target[$$Target$$]__ | Target references where this relesae is intended to be released to + | | |=== @@ -551,12 +551,12 @@ ManagedProcessing contains information about the release managed processing [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when the Release processing was completed + | | +| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when the Release processing was completed + | | | *`pipelineRun`* __string__ | PipelineRun contains the namespaced name of the Release PipelineRun executed as part of this release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + | *`roleBinding`* __string__ | RoleBinding contains the namespaced name of the roleBinding created for the managed Release PipelineRun executed as part of this release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + -| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release processing started + | | +| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release processing started + | | |=== @@ -573,12 +573,12 @@ PostActionsExecution contains information about the post-actions execution [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when the Release processing was completed + | | +| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when the Release processing was completed + | | | *`pipelineRun`* __string__ | PipelineRun contains the namespaced name of the Release PipelineRun executed as part of this release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + | *`roleBinding`* __string__ | RoleBinding contains the namespaced name of the roleBinding created for the managed Release PipelineRun executed as part of this release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + -| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release processing started + | | +| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release processing started + | | |=== @@ -595,12 +595,12 @@ Processing contains information about the release processing [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when the Release processing was completed + | | +| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when the Release processing was completed + | | | *`pipelineRun`* __string__ | PipelineRun contains the namespaced name of the Release PipelineRun executed as part of this release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + | *`roleBinding`* __string__ | RoleBinding contains the namespaced name of the roleBinding created for the managed Release PipelineRun executed as part of this release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + -| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release processing started + | | +| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release processing started + | | |=== @@ -640,8 +640,8 @@ NotificationSettings configure how release notifications are sent to different s [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`email`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-emailnotificationsettings[$$EmailNotificationSettings$$]__ | Email notification configuration + | | -| *`slack`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-slacknotificationsettings[$$SlackNotificationSettings$$]__ | Slack notification configuration + | | +| *`email`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-emailnotificationsettings[$$EmailNotificationSettings$$]__ | Email notification configuration + | | +| *`slack`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-slacknotificationsettings[$$SlackNotificationSettings$$]__ | Slack notification configuration + | | |=== [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-emailnotificationsettings"] @@ -657,10 +657,10 @@ Email notification configuration [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`enabled`* __boolean__ | Enabled determines if email notifications are active + | | -| *`onFailure`* __boolean__ | OnFailure sends notifications when releases fail + | | -| *`onSuccess`* __boolean__ | OnSuccess sends notifications when releases succeed + | | -| *`recipients`* __string array__ | Recipients is a list of email addresses to notify + | | +| *`enabled`* __boolean__ | Enabled determines if email notifications are active + | | +| *`onFailure`* __boolean__ | OnFailure sends notifications when releases fail + | | +| *`onSuccess`* __boolean__ | OnSuccess sends notifications when releases succeed + | | +| *`recipients`* __string array__ | Recipients is a list of email addresses to notify + | | |=== [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-slacknotificationsettings"] @@ -676,9 +676,9 @@ Slack notification configuration [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`channel`* __string__ | Channel specifies the Slack channel to notify + | | -| *`enabled`* __boolean__ | Enabled determines if Slack notifications are active + | | -| *`webhookURL`* __string__ | WebhookURL is the Slack webhook URL for notifications + | | +| *`channel`* __string__ | Channel specifies the Slack channel to notify + | | +| *`enabled`* __boolean__ | Enabled determines if Slack notifications are active + | | +| *`webhookURL`* __string__ | WebhookURL is the Slack webhook URL for notifications + | | |=== [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-securitypolicies"] @@ -694,9 +694,9 @@ SecurityPolicies define security requirements and constraints that must be enfor [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`allowedRegistries`* __string array__ | AllowedRegistries is a list of container registries that releases can target + | | -| *`requireCodeSigning`* __boolean__ | RequireCodeSigning enforces that all artifacts must be digitally signed + | | -| *`vulnerabilityScanning`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-vulnerabilityscanning[$$VulnerabilityScanning$$]__ | VulnerabilityScanning configuration for security checks + | | +| *`allowedRegistries`* __string array__ | AllowedRegistries is a list of container registries that releases can target + | | +| *`requireCodeSigning`* __boolean__ | RequireCodeSigning enforces that all artifacts must be digitally signed + | | +| *`vulnerabilityScanning`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-vulnerabilityscanning[$$VulnerabilityScanning$$]__ | VulnerabilityScanning configuration for security checks + | | |=== [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-vulnerabilityscanning"] @@ -712,9 +712,9 @@ VulnerabilityScanning configuration for security checks [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`enabled`* __boolean__ | Enabled determines if vulnerability scanning is required + | | -| *`maxCriticalVulnerabilities`* __integer__ | MaxCriticalVulnerabilities sets the maximum allowed critical CVEs + | | -| *`maxHighVulnerabilities`* __integer__ | MaxHighVulnerabilities sets the maximum allowed high-severity CVEs + | | +| *`enabled`* __boolean__ | Enabled determines if vulnerability scanning is required + | | +| *`maxCriticalVulnerabilities`* __integer__ | MaxCriticalVulnerabilities sets the maximum allowed critical CVEs + | | +| *`maxHighVulnerabilities`* __integer__ | MaxHighVulnerabilities sets the maximum allowed high-severity CVEs + | | |=== [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-resourcelimits"] @@ -730,9 +730,9 @@ ResourceLimits define constraints on resource usage during release operations to [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`maxConcurrentReleases`* __integer__ | MaxConcurrentReleases limits how many releases can run simultaneously + | | -| *`pipelineResourceLimits`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelineresourcelimits[$$PipelineResourceLimits$$]__ | PipelineResourceLimits set CPU and memory constraints for release pipelines + | | -| *`timeoutGracePeriod`* __string__ | TimeoutGracePeriod defines how long to wait before forcefully terminating stuck releases + | | +| *`maxConcurrentReleases`* __integer__ | MaxConcurrentReleases limits how many releases can run simultaneously + | | +| *`pipelineResourceLimits`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelineresourcelimits[$$PipelineResourceLimits$$]__ | PipelineResourceLimits set CPU and memory constraints for release pipelines + | | +| *`timeoutGracePeriod`* __string__ | TimeoutGracePeriod defines how long to wait before forcefully terminating stuck releases + | | |=== [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelineresourcelimits"] @@ -748,6 +748,6 @@ PipelineResourceLimits set CPU and memory constraints for release pipelines [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`cpu`* __string__ | CPU limit for release pipeline execution + | | -| *`memory`* __string__ | Memory limit for release pipeline execution + | | +| *`cpu`* __string__ | CPU limit for release pipeline execution + | | +| *`memory`* __string__ | Memory limit for release pipeline execution + | | |=== \ No newline at end of file From 985c2f51c943d28ff213167f608c2d97f0dec6a3 Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Mon, 21 Jul 2025 08:10:45 +0000 Subject: [PATCH 11/47] Auto-generated doc updates from code PR Assisted-by: Gemini --- modules/reference/pages/kube-apis/release-service.adoc | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/reference/pages/kube-apis/release-service.adoc b/modules/reference/pages/kube-apis/release-service.adoc index 0f613c023..abc866bec 100644 --- a/modules/reference/pages/kube-apis/release-service.adoc +++ b/modules/reference/pages/kube-apis/release-service.adoc @@ -535,6 +535,7 @@ ReleaseStatus defines the observed state of Release. | *`processing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusprocessing[$$ReleaseStatusProcessing$$]__ | Processing contains information about the release processing + | | | *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when a Release was started + | | | *`target`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-target[$$Target$$]__ | Target references where this relesae is intended to be released to + | | +| *`collectorsResults`* __object__ | CollectorsResults holds the collectors results generated by the Collectors Pipeline + | | |=== From ed58ae758e70f8cfd0a4f6e6591cba2669ff0b2d Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Wed, 23 Jul 2025 14:41:46 +0000 Subject: [PATCH 12/47] Auto-generated doc updates from code PR Assisted-by: Gemini --- .../pages/kube-apis/release-service.adoc | 116 ++++++------------ modules/releasing/nav.adoc | 4 +- .../pages/adjusting-timeouts-resources.adoc | 63 ++++------ .../pages/create-release-plan-admission.adoc | 11 +- modules/releasing/pages/create-release.adoc | 11 ++ 5 files changed, 79 insertions(+), 126 deletions(-) diff --git a/modules/reference/pages/kube-apis/release-service.adoc b/modules/reference/pages/kube-apis/release-service.adoc index abc866bec..d0c4958f8 100644 --- a/modules/reference/pages/kube-apis/release-service.adoc +++ b/modules/reference/pages/kube-apis/release-service.adoc @@ -25,58 +25,6 @@ Package v1alpha1 contains API Schema definitions for the appstudio v1alpha1 API -[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectoritem"] -==== CollectorItem - - - -CollectorItem represents all the information about an specific collector which will be executed in the -CollectorsPipeline. - - - -.Appears In: -**** -- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectors[$$Collectors$$] -**** - -[cols="20a,50a,15a,15a", options="header"] -|=== -| Field | Description | Default | Validation -| *`name`* __string__ | Name of the collector + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + - -| *`timeout`* __integer__ | Timeout in seconds for the collector to execute + | | -| *`type`* __string__ | Type is the type of collector to be used + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + - -| *`params`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-param[$$Param$$] array__ | Params is a slice of parameters for a given collector + | | -|=== - - -[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectors"] -==== Collectors - - - -Collectors holds the list of collectors to be executed as part of the release workflow along with the -ServiceAccount to be used in the PipelineRun. - - - -.Appears In: -**** -- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissionspec[$$ReleasePlanAdmissionSpec$$] -- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanspec[$$ReleasePlanSpec$$] -**** - -[cols="20a,50a,15a,15a", options="header"] -|=== -| Field | Description | Default | Validation -| *`items`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectoritem[$$CollectorItem$$] array__ | Items is the list of Collectors to be executed as part of the release workflow + | | -| *`serviceAccountName`* __string__ | ServiceAccountName is the ServiceAccount to use during the execution of the Collectors Pipeline + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + - -|=== - - [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-matchedreleaseplan"] ==== MatchedReleasePlan @@ -122,28 +70,6 @@ MatchedReleasePlanAdmission defines the relevant information for a matched Relea |=== -[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-param"] -==== Param - - - -Param represents a parameter for a collector - - - -.Appears In: -**** -- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectoritem[$$CollectorItem$$] -**** - -[cols="20a,50a,15a,15a", options="header"] -|=== -| Field | Description | Default | Validation -| *`name`* __string__ | Name is the name of the parameter + | | -| *`value`* __string__ | Value is the value of the parameter + | | -|=== - - [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-release"] ==== Release @@ -284,15 +210,15 @@ ReleasePlanAdmissionSpec defines the desired state of ReleasePlanAdmission. |=== | Field | Description | Default | Validation | *`applications`* __string array__ | Applications is a list of references to applications to be released in the managed namespace + | | -| *`collectors`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectors[$$Collectors$$]__ | Collectors contains all the information of the collectors to be executed as part of the release workflow + | | -| *`data`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Data is an unstructured key used for providing data for the managed Release Pipeline + | | +| *`data`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Data is an unstructured key used for providing data for the release Pipeline + | | | *`environment`* __string__ | Environment defines which Environment will be used to release the Application + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + | *`origin`* __string__ | Origin references where the release requests should come from + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + -| *`pipeline`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-pipeline[$$Pipeline$$]__ | Pipeline contains all the information about the managed Pipeline + | | +| *`pipelineRef`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-pipelineref[$$PipelineRef$$]__ | PipelineRef is a reference to the Pipeline to be executed by the release PipelineRun + | | | *`policy`* __string__ | Policy to validate before releasing an artifact + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| *`serviceAccount`* __string__ | ServiceAccount is the name of the service account to use in the release PipelineRun to gain elevated privileges + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + |=== @@ -359,7 +285,6 @@ ReleasePlanSpec defines the desired state of ReleasePlan. | Field | Description | Default | Validation | *`application`* __string__ | Application is a reference to the application to be released in the managed namespace + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + -| *`collectors`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectors[$$Collectors$$]__ | Collectors contains all the information of the collectors to be executed as part of the release workflow + | | | *`data`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Data is an unstructured key used for providing data for the managed Release Pipeline + | | | *`tenantPipeline`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-parameterizedpipeline[$$ParameterizedPipeline$$]__ | TenantPipeline contains all the information about the tenant Pipeline + | | | *`finalPipeline`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-parameterizedpipeline[$$ParameterizedPipeline$$]__ | FinalPipeline contains all the information about the final Pipeline + | | @@ -751,4 +676,39 @@ PipelineResourceLimits set CPU and memory constraints for release pipelines | Field | Description | Default | Validation | *`cpu`* __string__ | CPU limit for release pipeline execution + | | | *`memory`* __string__ | Memory limit for release pipeline execution + | | +|=== + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-pipelineref"] +==== PipelineRef + +PipelineRef is the reference to the Pipeline + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissionspec[$$ReleasePlanAdmissionSpec$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`params`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-param[$$Param$$] array__ | Params is a slice of parameters for a given resolver + | | +| *`resolver`* __string__ | Resolver is the name of a Tekton resolver to be used (e.g. git) + | | +| *`timeout`* __string__ | Timeout is value to use to override the tekton default Pipelinerun timeout + | "0" | +|=== + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-param"] +==== Param + +Param defines the parameters for a given resolver in PipelineRef + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-pipelineref[$$PipelineRef$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`name`* __string__ | Name is the name of the parameter + | | +| *`value`* __string__ | Value is the value of the parameter + | | |=== \ No newline at end of file diff --git a/modules/releasing/nav.adoc b/modules/releasing/nav.adoc index 3f8f27bcd..6d35ea73e 100644 --- a/modules/releasing/nav.adoc +++ b/modules/releasing/nav.adoc @@ -4,4 +4,6 @@ *** xref:create-release.adoc[Creating a release] *** xref:tenant-release-pipelines.adoc[Tenant Release Pipelines] *** xref:adjusting-timeouts-resources.adoc[Adjusting timeouts and resources] -*** xref:using-collectors.adoc[Using collectors] +*** xref:notification-configuration.adoc[Configuring release notifications] +*** xref:security-policy-enforcement.adoc[Enforcing security policies] +*** xref:resource-limitations.adoc[Setting resource limitations] \ No newline at end of file diff --git a/modules/releasing/pages/adjusting-timeouts-resources.adoc b/modules/releasing/pages/adjusting-timeouts-resources.adoc index e6d716e7d..9093f23f0 100644 --- a/modules/releasing/pages/adjusting-timeouts-resources.adoc +++ b/modules/releasing/pages/adjusting-timeouts-resources.adoc @@ -6,31 +6,23 @@ To overcome this, there are two strategies {ProductName} users can follow. == Adjust timeouts -Whenever a pipeline is defined through the tenantPipeline/finalPipeline fields in the ReleasePlan or the pipeline field in the ReleasePlanAdmission, users can specify a `timeouts` field in the following way: +Whenever a pipeline is defined through the tenantPipeline/finalPipeline fields in the ReleasePlan or the pipelineRef field in the ReleasePlanAdmission, users can specify a `timeout` field in the following way: [source,yaml] ---- -pipeline: - pipelineRef: - resolver: git - params: - - name: url - value: ".git" - - name: revision - value: main - - name: pathInRepo - value: "" - timeouts: - pipeline: "2h0m0s" <.> - tasks: "1h0m0s" <.> - finally: "1h0m0s" <.> +pipelineRef: + resolver: git + params: + - name: url + value: ".git" + - name: revision + value: main + - name: pathInRepo + value: "" + timeout: "2h0m0s" <.> ---- <.> specifies the timeout for the entire PipelineRun. Defaults to the global configurable default timeout of 60 minutes. -<.> specifies the timeout for the cumulative time taken by non-finally Tasks specified in the Pipeline. -<.> timeout for the cumulative time taken by finally Tasks. - -IMPORTANT: Tekton enforces a restriction on the pipeline timeout—it must be greater than or equal to the sum of the timeouts for tasks and finally. == Adjust resources @@ -52,28 +44,17 @@ spec: - demo-app data: origin: - pipeline: - pipelineRef: - resolver: git - params: - - name: url - value: ".git" - - name: revision - value: main - - name: pathInRepo - value: "" - serviceAccountName: release-service-account - taskRunSpecs: - - pipelineTaskName: verify-enterprise-contract <.> - computeResources: <.> - limits: - cpu: "600m" - memory: "540Mi" - requests: - cpu: "250m" - memory: "256Mi" + pipelineRef: + resolver: git + params: + - name: url + value: ".git" + - name: revision + value: main + - name: pathInRepo + value: "" + serviceAccount: release-service-account <.> policy: ---- -<.> Name of the Task we want to modify. -<.> Compute resources we want to assign to the task. +<.> Name of the Task we want to modify. \ No newline at end of file diff --git a/modules/releasing/pages/create-release-plan-admission.adoc b/modules/releasing/pages/create-release-plan-admission.adoc index a658db381..608090e70 100644 --- a/modules/releasing/pages/create-release-plan-admission.adoc +++ b/modules/releasing/pages/create-release-plan-admission.adoc @@ -2,7 +2,7 @@ A ReleasePlanAdmission (RPA) CR exists within a managed tenant namespace. It defines the specific pipeline to run and a given xref:compliance:index.adoc[Conforma] Policy which needs to pass for the Snapshot before that pipeline can proceed. -When an application is ready for release, the Development team contacts the owners of the managed tenant namespace (for example, their organization's SRE team) and requests access to the managed tenant namespace. A RPA object is then created in the managed tenant namespace to specify the configuration. +When an application is ready for release, the Development team contacts the owners of the managed tenant namespace (for example, their organization's SRE team) and requests access to the managed tenant namespace. A RPA object is then created in the managed tenant namespace to specify the configuration. == Creating a `ReleasePlanAdmission` object @@ -38,7 +38,6 @@ spec: pipelineRef: <.> policy: <.> serviceAccount: <.> - ---- + @@ -46,15 +45,15 @@ spec: <.> The name of the release plan admission. <.> The Managed environment team's tenant namespace. <.> A list of applications that you want to enable to be deployed in the managed tenant namespace. -<.> Optional: An unstructured key used for providing data for the managed Pipeline. +<.> Optional: An unstructured key used for providing data for the release Pipeline. <.> Optional: The environment from which the application updates are allowed to be received in the Managed tenant namespace. This environment is created by the Development team. <.> The development team tenant namespace where the application is defined. <.> Reference to the Pipeline to be executed by the release service. <.> The enterprise contract policy against which the system validates an application before releasing it to production. -<.> Optional: The name of the service account to use in the Pipeline to gain elevated privileges. It's used only if you have defined the `pipelineRef` value. +<.> Optional: The name of the service account to use in the release PipelineRun to gain elevated privileges. It's used only if you have defined the `pipelineRef` value. + -NOTE: The ReleasePlanAdmission.yaml represents the reciprocal link to the ReleasePlan.yaml objects created by the development team. +NOTE: The ReleasePlanAdmission.yaml represents the reciprocal link to the ReleasePlan.yaml objects created by the development team. . In the Managed tenant namespace, apply the `ReleasePlanAdmission.yaml` file and add the resource to your cluster by running the following command: @@ -68,4 +67,4 @@ kubectl apply -f ReleasePlanAdmission.yaml -n managed . In the {ProductName} UI, select the *Release services* > *Release plan admission* tab. . Review the RPA object that you just added. Using the Release plan admission tab, you can update or delete the selected Release plan admission object. -. When a ReleasePlanAdmission is correctly configured to be paired with a ReleasePlan, its *Status* will display as being `Matched`. +. When a ReleasePlanAdmission is correctly configured to be paired with a ReleasePlan, its *Status* will display as being `Matched`. \ No newline at end of file diff --git a/modules/releasing/pages/create-release.adoc b/modules/releasing/pages/create-release.adoc index 58cb170f4..dd01862e7 100644 --- a/modules/releasing/pages/create-release.adoc +++ b/modules/releasing/pages/create-release.adoc @@ -6,6 +6,8 @@ A Release CR is created to submit a specific Application Snapshot to be processe The development team creates a `Release` object in the developer tenant namespace. The `Release` object includes a reference to the application snapshot that the development team wants to release, along with release plan that will be used to release the application. +. The `Release` object can also contain additional data or specify a custom timeout for the release pipeline. + .*Prerequisites* * You have an existing Development tenant namespace. @@ -33,6 +35,12 @@ spec: target: <.> namespace: <.> workspace: <.> + data: {} <.> + pipelineRef: <.> + params: [] + resolver: "" + timeout: "0" + serviceAccount: "" ---- @@ -44,6 +52,9 @@ spec: <.> The target for this release. This field indicates where the release is intended to be released. <.> The target namespace within the cluster where the release is intended to be released. <.> The target KCP workspace within the cluster where the release is intended to be released. +<.> Data is an unstructured key used for providing data for the release Pipeline. +<.> PipelineRef is a reference to the Pipeline to be executed by the release PipelineRun. +<.> ServiceAccount is the name of the service account to use in the release PipelineRun to gain elevated privileges. . In the development tenant namespace, apply the `Release.yaml` file and add the resource to your cluster by running the following command: From 1439498af62c062cbb37516850b2c55c9c1e3feb Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Tue, 29 Jul 2025 13:07:17 +0000 Subject: [PATCH 13/47] Auto-generated doc updates from code PR Assisted-by: Gemini --- .../pages/adjusting-timeouts-resources.adoc | 4 ++-- .../pages/create-release-plan-admission.adoc | 22 +++++++++---------- .../releasing/pages/create-release-plan.adoc | 18 +++++++++------ 3 files changed, 24 insertions(+), 20 deletions(-) diff --git a/modules/releasing/pages/adjusting-timeouts-resources.adoc b/modules/releasing/pages/adjusting-timeouts-resources.adoc index 9093f23f0..b0eb0b06c 100644 --- a/modules/releasing/pages/adjusting-timeouts-resources.adoc +++ b/modules/releasing/pages/adjusting-timeouts-resources.adoc @@ -6,7 +6,7 @@ To overcome this, there are two strategies {ProductName} users can follow. == Adjust timeouts -Whenever a pipeline is defined through the tenantPipeline/finalPipeline fields in the ReleasePlan or the pipelineRef field in the ReleasePlanAdmission, users can specify a `timeout` field in the following way: +Whenever a pipeline is defined through the xref:release-service-reference.adoc#releaseplan_spec[pipelineRef field in the ReleasePlan] or the xref:release-service-reference.adoc#releaseplanadmission_spec[pipelineRef field in the ReleasePlanAdmission], users can specify a `timeout` field in the following way: [source,yaml] ---- @@ -22,7 +22,7 @@ pipelineRef: timeout: "2h0m0s" <.> ---- -<.> specifies the timeout for the entire PipelineRun. Defaults to the global configurable default timeout of 60 minutes. +<.> Specifies the timeout for the entire PipelineRun. Defaults to the global configurable default timeout of 60 minutes. == Adjust resources diff --git a/modules/releasing/pages/create-release-plan-admission.adoc b/modules/releasing/pages/create-release-plan-admission.adoc index 608090e70..06da2c67d 100644 --- a/modules/releasing/pages/create-release-plan-admission.adoc +++ b/modules/releasing/pages/create-release-plan-admission.adoc @@ -25,19 +25,19 @@ When an application is ready for release, the Development team contacts the owne apiVersion: appstudio.redhat.com/v1alpha1 kind: ReleasePlanAdmission metadata: - labels: - release.appstudio.openshift.io/auto-release: 'true' <.> - name: sre-production <.> - namespace: managed-tenant-namespace <.> + labels: + release.appstudio.openshift.io/auto-release: 'true' <.> + name: sre-production <.> + namespace: managed-tenant-namespace <.> spec: - applications: + applications: - demo-app <.> - data: <.> - environment: <.> - origin: <.> - pipelineRef: <.> - policy: <.> - serviceAccount: <.> + data: <.> + environment: <.> + origin: <.> + pipelineRef: <.> + policy: <.> + serviceAccount: <.> ---- + diff --git a/modules/releasing/pages/create-release-plan.adoc b/modules/releasing/pages/create-release-plan.adoc index 6b6be3350..0938efdac 100644 --- a/modules/releasing/pages/create-release-plan.adoc +++ b/modules/releasing/pages/create-release-plan.adoc @@ -6,19 +6,16 @@ A ReleasePlan (RP) CR is created for a specific Application. It defines the the The development team creates a `ReleasePlan` object in the developer tenant namespace. The `ReleasePlan` object includes a reference to the application that the development team wants to release, along with tenant namespace where the application is supposed to be released. -.*Prerequisites* - +.Prerequisites * You have an existing Development tenant namespace. * You have completed the steps listed in the xref:ROOT:getting-started.adoc#getting-started-with-the-cli[Getting started in the CLI] page. -.*Procedures* +.Procedures . Create a `ReleasePlan.yaml` object locally. + -*Example `ReleasePlan.yaml` object* - -+ +.Example `ReleasePlan.yaml` object [source,yaml] ---- apiVersion: appstudio.redhat.com/v1alpha1 @@ -32,6 +29,13 @@ metadata: namespace: dev-tenant-namespace <.> spec: application: <.> + pipelineRef: + params: + - name: release-pipeline-param + value: 'value' + resolver: 'git' + timeout: "2h" + serviceAccount: release-service-account target: namespace: managed-tenant-namespace <.> workspace: <.> @@ -54,7 +58,7 @@ spec: $ kubectl apply -f ReleasePlan.yaml -n dev ---- -.*Verification* +.Verification . In the {ProductName} UI, select the *Release services* > *Release plan* tab. . Review the Release plan object that you just added. Using the Release plan tab, you can update or delete the selected Release plan object. From accfedd2cd88f38f741ee2cc7bfe10f1465fd94b Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Tue, 29 Jul 2025 13:41:34 +0000 Subject: [PATCH 14/47] Auto-generated doc updates from code PR Assisted-by: Gemini --- .../pages/create-release-plan-admission.adoc | 9 +++++-- .../pages/tenant-release-pipelines.adoc | 24 ++++++++++--------- modules/releasing/pages/using-collectors.adoc | 4 +--- 3 files changed, 21 insertions(+), 16 deletions(-) diff --git a/modules/releasing/pages/create-release-plan-admission.adoc b/modules/releasing/pages/create-release-plan-admission.adoc index 06da2c67d..7b87d0daa 100644 --- a/modules/releasing/pages/create-release-plan-admission.adoc +++ b/modules/releasing/pages/create-release-plan-admission.adoc @@ -35,7 +35,10 @@ spec: data: <.> environment: <.> origin: <.> - pipelineRef: <.> + pipelineRef: + params: <.> + resolver: <.> + timeout: <.> policy: <.> serviceAccount: <.> ---- @@ -48,7 +51,9 @@ spec: <.> Optional: An unstructured key used for providing data for the release Pipeline. <.> Optional: The environment from which the application updates are allowed to be received in the Managed tenant namespace. This environment is created by the Development team. <.> The development team tenant namespace where the application is defined. -<.> Reference to the Pipeline to be executed by the release service. +<.> Parameters for the referenced pipeline. +<.> Name of a Tekton resolver to be used (for example, `git`). +<.> Optional: Timeout value to override the Tekton default PipelineRun timeout. Defaults to 0, which means no timeout. <.> The enterprise contract policy against which the system validates an application before releasing it to production. <.> Optional: The name of the service account to use in the release PipelineRun to gain elevated privileges. It's used only if you have defined the `pipelineRef` value. diff --git a/modules/releasing/pages/tenant-release-pipelines.adoc b/modules/releasing/pages/tenant-release-pipelines.adoc index 72731c0e1..770cdcd54 100644 --- a/modules/releasing/pages/tenant-release-pipelines.adoc +++ b/modules/releasing/pages/tenant-release-pipelines.adoc @@ -192,18 +192,20 @@ kind: ReleasePlan spec: ... finalPipeline: - pipelineRef: <.> - resolver: git - params: - - name: url - value: "https://github.com//.git" - - name: revision - value: main - - name: pathInRepo - value: "" - serviceAccountName: build-pipeline-$COMPONENT_NAME <.> + params: + - name: paramForPipeline + value: foo + resolver: git + params: + - name: url + value: "https://github.com//.git" + - name: revision + value: main + - name: pathInRepo + value: "" + serviceAccount: build-pipeline-$COMPONENT_NAME <.> ---- -<.> Reference to the tenant pipeline to be executed in the development tenant namespace. +<.> The parameters to pass to your pipeline. Note: the release-operator will automatically pass parameters `taskGitRevision` and `taskGitUrl` with the same values as the `pipelineRef` `revision` and `pipelineRef` `url` parameters respectively. So, you should not pass your own values for these two parameters in this section. If you do, tekton validation webhooks will block the pipelineRun creation. <.> The name of the service account used to execute the tenant pipeline. Both tenant and final pipelines receive the same parameters (i.e. release, releasePlan, and snapshot), allowing them to be used interchangeably. The key difference is that the final pipeline runs at the end of the release workflow, meaning the release status will contain the final outcome and all generated artifacts. diff --git a/modules/releasing/pages/using-collectors.adoc b/modules/releasing/pages/using-collectors.adoc index 43665fc44..f56c8a0e8 100644 --- a/modules/releasing/pages/using-collectors.adoc +++ b/modules/releasing/pages/using-collectors.adoc @@ -32,7 +32,7 @@ metadata: spec: application: <.> collectors: - serviceAccountName: <.> + serviceAccountName: collector-service items: <.> - name: project-issues params: @@ -46,14 +46,12 @@ spec: type: jira <.> secrets: <.> - jira-collectors-secret - serviceAccountName: collector-service data: <.> target: managed-tenant-namespace ---- <.> Optional: Control if Releases should be created automatically for this ReleasePlan when tests pass. Defaults to true. <.> The development team's tenant namespace. The collector pipeline will be executed in this namespace. <.> The name of the application that you want to release via a pipeline in the development tenant namespace. -<.> The ServiceAccount that the pipeline will use. <.> List of parameters to be passed to the collector. <.> The collector type as seen in the official collectors repository. <.> Secrets to be provided to the collectors. From 88a3ecb4a74b1d8da4626952cb66a14b53b20d04 Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Tue, 5 Aug 2025 11:13:13 +0000 Subject: [PATCH 15/47] Auto-generated doc updates from code PR Assisted-by: Gemini --- .../releasing/pages/adjusting-timeouts-resources.adoc | 5 +++-- modules/releasing/pages/create-release-plan.adoc | 3 ++- modules/releasing/pages/tenant-release-pipelines.adoc | 9 --------- 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/modules/releasing/pages/adjusting-timeouts-resources.adoc b/modules/releasing/pages/adjusting-timeouts-resources.adoc index b0eb0b06c..f266165e5 100644 --- a/modules/releasing/pages/adjusting-timeouts-resources.adoc +++ b/modules/releasing/pages/adjusting-timeouts-resources.adoc @@ -45,7 +45,6 @@ spec: data: origin: pipelineRef: - resolver: git params: - name: url value: ".git" @@ -53,8 +52,10 @@ spec: value: main - name: pathInRepo value: "" - serviceAccount: release-service-account <.> + resolver: git + timeout: "2h0m0s" policy: + serviceAccount: release-service-account <.> ---- <.> Name of the Task we want to modify. \ No newline at end of file diff --git a/modules/releasing/pages/create-release-plan.adoc b/modules/releasing/pages/create-release-plan.adoc index 0938efdac..4f0fc8cb5 100644 --- a/modules/releasing/pages/create-release-plan.adoc +++ b/modules/releasing/pages/create-release-plan.adoc @@ -35,7 +35,7 @@ spec: value: 'value' resolver: 'git' timeout: "2h" - serviceAccount: release-service-account + serviceAccount: release-service-account <.> target: namespace: managed-tenant-namespace <.> workspace: <.> @@ -47,6 +47,7 @@ spec: <.> The name of the release plan. <.> The development team's tenant namespace. <.> The name of the application that you want to deploy to the managed tenant namespace. +<.> Optional: The service account to use when executing the Release pipeline. <.> The tenant namespace to which the system deploys the application. This tenant namespace is created by the Managed environment team (for example, your organization's SRE team). <.> Optional: The KCP workspace to which the system deploys the application. This workspace is created by the Managed environment team (for example, your organization's SRE team). diff --git a/modules/releasing/pages/tenant-release-pipelines.adoc b/modules/releasing/pages/tenant-release-pipelines.adoc index 770cdcd54..bcbe457d0 100644 --- a/modules/releasing/pages/tenant-release-pipelines.adoc +++ b/modules/releasing/pages/tenant-release-pipelines.adoc @@ -22,7 +22,6 @@ To use a tenant pipeline: + *Example `ReleasePlan.yaml` object* -+ [source,yaml] ---- apiVersion: appstudio.redhat.com/v1alpha1 @@ -41,9 +40,6 @@ spec: - name: demo-component-1 repository: registry/destination-image-repository-1 tags: [latest] - - name: demo-component-2 - repository: registry/destination-image-repository-2 - tags: [latest] target: managed-tenant-namespace pipelineRef: <.> params: <.> @@ -60,7 +56,6 @@ spec: serviceAccount: build-pipeline-$COMPONENT_NAME <.> ---- -+ <.> Optional: Control if Releases should be created automatically for this ReleasePlan when tests pass. Defaults to true. <.> The development team's tenant namespace. <.> The name of the application that you want to release via a pipeline in the development tenant namespace. @@ -72,7 +67,6 @@ spec: . In case you want to avoid the execution of a managed pipeline, remove the `target` field from your `ReleasePlan.yaml` file. . In the Development tenant namespace, apply the `ReleasePlan.yaml` file and add the resource to your cluster by running the following command: -+ [source,shell] ---- kubectl apply -f ReleasePlan.yaml -n dev @@ -84,7 +78,6 @@ kubectl apply -f ReleasePlan.yaml -n dev + *Example `rbac.yaml` object* -+ [source,yaml] ---- apiVersion: rbac.authorization.k8s.io/v1 @@ -119,7 +112,6 @@ subjects: namespace: dev-tenant-namespace <.> ---- -+ <.> The name of the Role. <.> The development team's tenant namespace. <.> The name of the RoleBinding. @@ -130,7 +122,6 @@ subjects: . In the Development tenant namespace, apply the `rbac.yaml` file and add the resources to your cluster by running the following command: -+ [source,shell] ---- kubectl apply -f rbac.yaml -n dev-tenant-namespace From cb66c330d72f26c5bdd76d96314c2be812fc01f1 Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Tue, 5 Aug 2025 12:14:19 +0000 Subject: [PATCH 16/47] Auto-generated doc updates from code PR Assisted-by: Gemini --- modules/releasing/pages/create-release.adoc | 10 ---------- modules/releasing/pages/index.adoc | 2 +- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/modules/releasing/pages/create-release.adoc b/modules/releasing/pages/create-release.adoc index dd01862e7..ac1bc3e8a 100644 --- a/modules/releasing/pages/create-release.adoc +++ b/modules/releasing/pages/create-release.adoc @@ -35,15 +35,8 @@ spec: target: <.> namespace: <.> workspace: <.> - data: {} <.> - pipelineRef: <.> - params: [] - resolver: "" - timeout: "0" - serviceAccount: "" ---- - + <.> The name of the release. <.> The development team's tenant namespace. @@ -52,9 +45,6 @@ spec: <.> The target for this release. This field indicates where the release is intended to be released. <.> The target namespace within the cluster where the release is intended to be released. <.> The target KCP workspace within the cluster where the release is intended to be released. -<.> Data is an unstructured key used for providing data for the release Pipeline. -<.> PipelineRef is a reference to the Pipeline to be executed by the release PipelineRun. -<.> ServiceAccount is the name of the service account to use in the release PipelineRun to gain elevated privileges. . In the development tenant namespace, apply the `Release.yaml` file and add the resource to your cluster by running the following command: diff --git a/modules/releasing/pages/index.adoc b/modules/releasing/pages/index.adoc index c22d74684..2d7fd464b 100644 --- a/modules/releasing/pages/index.adoc +++ b/modules/releasing/pages/index.adoc @@ -27,4 +27,4 @@ Two teams work together to release an application: * *Create a `Release` object:* The development team creates a Release object to reference a specific Snapshot and ReleasePlan. It indicates the users' intent to operate on the Snapshot with the matched ReleasePlanAdmission. -* *Configure `ReleaseServiceConfig`:* The Managed Environment team can configure a `ReleaseServiceConfig` to define security policies, notification settings, and resource limits for release operations. \ No newline at end of file +* *Configure `ReleaseServiceConfig`:* The Managed Environment team can configure a `ReleaseServiceConfig` to define security policies, advisory repository, notification settings, and resource limits for release operations. \ No newline at end of file From 356bab02bb028634fcb08cd44635bb6df53bfd98 Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Thu, 7 Aug 2025 13:23:13 +0000 Subject: [PATCH 17/47] Auto-generated doc updates from code PR Assisted-by: Gemini --- .../pages/kube-apis/release-service.adoc | 329 ++++++++++++------ modules/releasing/pages/create-release.adoc | 6 - 2 files changed, 232 insertions(+), 103 deletions(-) diff --git a/modules/reference/pages/kube-apis/release-service.adoc b/modules/reference/pages/kube-apis/release-service.adoc index d0c4958f8..92bf0c4c2 100644 --- a/modules/reference/pages/kube-apis/release-service.adoc +++ b/modules/reference/pages/kube-apis/release-service.adoc @@ -42,9 +42,11 @@ MatchedReleasePlan defines the relevant information for a matched ReleasePlan. [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`name`* __string__ | Name contains the namespaced name of the ReleasePlan + | | Pattern: `^[a-z0-9]([-a-z0-9]\*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| *`name`* __string__ | Name contains the namespaced name of the ReleasePlan + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + -| *`active`* __boolean__ | Active indicates whether the ReleasePlan is set to auto-release or not + | | +| *`active`* __boolean__ | Active indicates whether the ReleasePlan is set to auto-release or not + +| | |=== @@ -65,8 +67,11 @@ MatchedReleasePlanAdmission defines the relevant information for a matched Relea [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`name`* __string__ | Name contains the namespaced name of the releasePlanAdmission + | | -| *`active`* __boolean__ | Active indicates whether the ReleasePlanAdmission is set to auto-release or not + | | +| *`name`* __string__ | Name contains the namespaced name of the releasePlanAdmission + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + + +| *`active`* __boolean__ | Active indicates whether the ReleasePlanAdmission is set to auto-release or not + +| | |=== @@ -90,7 +95,7 @@ Release is the Schema for the releases API | *`apiVersion`* __string__ | `appstudio.redhat.com/v1alpha1` | | | *`kind`* __string__ | `Release` | | | *`metadata`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#objectmeta-v1-meta[$$ObjectMeta$$]__ | Refer to Kubernetes API documentation for fields of `metadata`. - | | +| | | *`spec`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasespec[$$ReleaseSpec$$]__ | | | | *`status`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatus[$$ReleaseStatus$$]__ | | | |=== @@ -113,7 +118,7 @@ ReleaseList contains a list of Release | *`apiVersion`* __string__ | `appstudio.redhat.com/v1alpha1` | | | *`kind`* __string__ | `ReleaseList` | | | *`metadata`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#listmeta-v1-meta[$$ListMeta$$]__ | Refer to Kubernetes API documentation for fields of `metadata`. - | | +| | | *`items`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-release[$$Release$$] array__ | | | |=== @@ -138,7 +143,7 @@ ReleasePlan is the Schema for the ReleasePlans API. | *`apiVersion`* __string__ | `appstudio.redhat.com/v1alpha1` | | | *`kind`* __string__ | `ReleasePlan` | | | *`metadata`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#objectmeta-v1-meta[$$ObjectMeta$$]__ | Refer to Kubernetes API documentation for fields of `metadata`. - | | +| | | *`spec`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanspec[$$ReleasePlanSpec$$]__ | | | | *`status`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanstatus[$$ReleasePlanStatus$$]__ | | | |=== @@ -164,7 +169,7 @@ ReleasePlanAdmission is the Schema for the ReleasePlanAdmissions API. | *`apiVersion`* __string__ | `appstudio.redhat.com/v1alpha1` | | | *`kind`* __string__ | `ReleasePlanAdmission` | | | *`metadata`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#objectmeta-v1-meta[$$ObjectMeta$$]__ | Refer to Kubernetes API documentation for fields of `metadata`. - | | +| | | *`spec`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissionspec[$$ReleasePlanAdmissionSpec$$]__ | | | | *`status`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissionstatus[$$ReleasePlanAdmissionStatus$$]__ | | | |=== @@ -187,7 +192,7 @@ ReleasePlanAdmissionList contains a list of ReleasePlanAdmission. | *`apiVersion`* __string__ | `appstudio.redhat.com/v1alpha1` | | | *`kind`* __string__ | `ReleasePlanAdmissionList` | | | *`metadata`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#listmeta-v1-meta[$$ListMeta$$]__ | Refer to Kubernetes API documentation for fields of `metadata`. - | | +| | | *`items`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmission[$$ReleasePlanAdmission$$] array__ | | | |=== @@ -209,16 +214,23 @@ ReleasePlanAdmissionSpec defines the desired state of ReleasePlanAdmission. [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`applications`* __string array__ | Applications is a list of references to applications to be released in the managed namespace + | | -| *`data`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Data is an unstructured key used for providing data for the release Pipeline + | | -| *`environment`* __string__ | Environment defines which Environment will be used to release the Application + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| *`applications`* __string array__ | Applications is a list of references to applications to be released in the managed namespace + +| | +| *`data`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Data is an unstructured key used for providing data for the release Pipeline + +| | +| *`environment`* __string__ | Environment defines which Environment will be used to release the Application + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + -| *`origin`* __string__ | Origin references where the release requests should come from + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| *`origin`* __string__ | Origin references where the release requests should come from + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + -| *`pipelineRef`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-pipelineref[$$PipelineRef$$]__ | PipelineRef is a reference to the Pipeline to be executed by the release PipelineRun + | | -| *`policy`* __string__ | Policy to validate before releasing an artifact + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| *`pipelineRef`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-pipelineref[$$PipelineRef$$]__ | PipelineRef is a reference to the Pipeline to be executed by the release PipelineRun + +| | +| *`policy`* __string__ | Policy to validate before releasing an artifact + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + -| *`serviceAccount`* __string__ | ServiceAccount is the name of the service account to use in the release PipelineRun to gain elevated privileges + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| *`serviceAccount`* __string__ | ServiceAccount is the name of the service account to use in the release PipelineRun to gain elevated privileges + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + |=== @@ -239,8 +251,10 @@ ReleasePlanAdmissionStatus defines the observed state of ReleasePlanAdmission. [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`conditions`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#condition-v1-meta[$$Condition$$] array__ | Conditions represent the latest available observations for the releasePlanAdmission + | | -| *`releasePlans`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-matchedreleaseplan[$$MatchedReleasePlan$$] array__ | ReleasePlan is a list of releasePlans matched to the ReleasePlanAdmission + | | +| *`conditions`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#condition-v1-meta[$$Condition$$] array__ | Conditions represent the latest available observations for the releasePlanAdmission + +| | +| *`releasePlans`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-matchedreleaseplan[$$MatchedReleasePlan$$] array__ | ReleasePlan is a list of releasePlans matched to the ReleasePlanAdmission + +| | |=== @@ -261,7 +275,7 @@ ReleasePlanList contains a list of ReleasePlan. | *`apiVersion`* __string__ | `appstudio.redhat.com/v1alpha1` | | | *`kind`* __string__ | `ReleasePlanList` | | | *`metadata`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#listmeta-v1-meta[$$ListMeta$$]__ | Refer to Kubernetes API documentation for fields of `metadata`. - | | +| | | *`items`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplan[$$ReleasePlan$$] array__ | | | |=== @@ -283,15 +297,18 @@ ReleasePlanSpec defines the desired state of ReleasePlan. [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`application`* __string__ | Application is a reference to the application to be released in the managed namespace + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| *`application`* __string__ | Application is a reference to the application to be released in the managed namespace + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + -| *`data`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Data is an unstructured key used for providing data for the managed Release Pipeline + | | -| *`tenantPipeline`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-parameterizedpipeline[$$ParameterizedPipeline$$]__ | TenantPipeline contains all the information about the tenant Pipeline + | | -| *`finalPipeline`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-parameterizedpipeline[$$ParameterizedPipeline$$]__ | FinalPipeline contains all the information about the final Pipeline + | | -| *`releaseGracePeriodDays`* __integer__ | ReleaseGracePeriodDays is the number of days a Release should be kept + -This value is used to define the Release ExpirationTime + | 7 | -| *`target`* __string__ | Target references where to send the release requests + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| *`data`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Data is an unstructured key used for providing data for the release Pipeline + +| | +| *`pipelineRef`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-pipelineref[$$PipelineRef$$]__ | PipelineRef is an optional reference to a Pipeline that would be executed before the release Pipeline + +| | +| *`serviceAccount`* __string__ | ServiceAccount is the name of the service account to use in the Pipeline to gain elevated privileges + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| *`target`* __string__ | Target references where to send the release requests + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + |=== @@ -312,9 +329,11 @@ ReleasePlanStatus defines the observed state of ReleasePlan. [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`conditions`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#condition-v1-meta[$$Condition$$] array__ | Conditions represent the latest available observations for the releasePlan + | | +| *`conditions`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#condition-v1-meta[$$Condition$$] array__ | Conditions represent the latest available observations for the releasePlan + +| | | *`releasePlanAdmission`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-matchedreleaseplanadmission[$$MatchedReleasePlanAdmission$$]__ | ReleasePlanAdmission contains the information of the releasePlanAdmission this ReleasePlan is + -matched to + | | +matched to + +| | |=== @@ -338,7 +357,7 @@ ReleaseServiceConfig is the Schema for the releaseserviceconfigs API | *`apiVersion`* __string__ | `appstudio.redhat.com/v1alpha1` | | | *`kind`* __string__ | `ReleaseServiceConfig` | | | *`metadata`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#objectmeta-v1-meta[$$ObjectMeta$$]__ | Refer to Kubernetes API documentation for fields of `metadata`. - | | +| | | *`spec`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseserviceconfigspec[$$ReleaseServiceConfigSpec$$]__ | | | | *`status`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseserviceconfigstatus[$$ReleaseServiceConfigStatus$$]__ | | | |=== @@ -361,7 +380,7 @@ ReleaseServiceConfigList contains a list of ReleaseServiceConfig | *`apiVersion`* __string__ | `appstudio.redhat.com/v1alpha1` | | | *`kind`* __string__ | `ReleaseServiceConfigList` | | | *`metadata`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#listmeta-v1-meta[$$ListMeta$$]__ | Refer to Kubernetes API documentation for fields of `metadata`. - | | +| | | *`items`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseserviceconfig[$$ReleaseServiceConfig$$] array__ | | | |=== @@ -383,14 +402,20 @@ ReleaseServiceConfigSpec defines the desired state of ReleaseServiceConfig. [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`advisoryRepo`* __string__ | AdvisoryRepo is the repo to create advisories in during the managed release PipelineRun + | | +| *`advisoryRepo`* __string__ | AdvisoryRepo is the repo to create advisories in during the managed release PipelineRun + +| | | *`debug`* __boolean__ | Debug is the boolean that specifies whether or not the Release Service should run + -in debug mode + | | +in debug mode + +| | | *`defaultTimeouts`* __xref:{anchor_prefix}-github-com-tektoncd-pipeline-pkg-apis-pipeline-v1-timeoutfields[$$TimeoutFields$$]__ | DefaultTimeouts contain the default Tekton timeouts to be used in case they are + -not specified in the ReleasePlanAdmission resource. + | | -| *`notificationSettings`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-notificationsettings[$$NotificationSettings$$]__ | NotificationSettings configure how release notifications are sent to different stakeholders during the release process + | | -| *`resourceLimits`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-resourcelimits[$$ResourceLimits$$]__ | ResourceLimits define constraints on resource usage during release operations to prevent excessive consumption of cluster resources + | | -| *`securityPolicies`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-securitypolicies[$$SecurityPolicies$$]__ | SecurityPolicies define security requirements and constraints that must be enforced during the release process + | | +not specified in the ReleasePlanAdmission resource. + +| | +| *`notificationSettings`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-notificationsettings[$$NotificationSettings$$]__ | NotificationSettings configure how release notifications are sent to different stakeholders during the release process + +| | +| *`resourceLimits`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-resourcelimits[$$ResourceLimits$$]__ | ResourceLimits define constraints on resource usage during release operations to prevent excessive consumption of cluster resources + +| | +| *`securityPolicies`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-securitypolicies[$$SecurityPolicies$$]__ | SecurityPolicies define security requirements and constraints that must be enforced during the release process + +| | |=== @@ -427,9 +452,11 @@ ReleaseSpec defines the desired state of Release. [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`releasePlan`* __string__ | ReleasePlan to use for this particular Release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| *`releasePlan`* __string__ | ReleasePlan to use for this particular Release + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + -| *`snapshot`* __string__ | Snapshot to be released + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| *`snapshot`* __string__ | Snapshot to be released + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + |=== @@ -451,23 +478,39 @@ ReleaseStatus defines the observed state of Release. [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`automated`* __boolean__ | Automated indicates whether the Release was created as part of an automated process or manually by an end-user + | | -| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when a Release was completed + | | -| *`conditions`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#condition-v1-meta[$$Condition$$] array__ | Conditions represent the latest available observations for the release + | | -| *`expirationTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | ExpirationTime is the time when a Release can be purged + | | -| *`managedProcessing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusmanagedprocessing[$$ReleaseStatusManagedProcessing$$]__ | ManagedProcessing contains information about the release managed processing + | | -| *`postActionsExecution`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatuspostactionsexecution[$$ReleaseStatusPostActionsExecution$$]__ | PostActionsExecution contains information about the post-actions execution + | | -| *`processing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusprocessing[$$ReleaseStatusProcessing$$]__ | Processing contains information about the release processing + | | -| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when a Release was started + | | -| *`target`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-target[$$Target$$]__ | Target references where this relesae is intended to be released to + | | -| *`collectorsResults`* __object__ | CollectorsResults holds the collectors results generated by the Collectors Pipeline + | | -|=== - - -[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusmanagedprocessing"] -==== ReleaseStatusManagedProcessing - -ManagedProcessing contains information about the release managed processing +| *`automated`* __boolean__ | Automated indicates whether the Release was created as part of an automated process or manually by an end-user + +| | +| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when a Release was completed + +| | +| *`conditions`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#condition-v1-meta[$$Condition$$] array__ | Conditions represent the latest available observations for the release + +| | +| *`deployment`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusdeployment[$$ReleaseStatusDeployment$$]__ | Deployment contains information about the deployment + +| | +| *`postActionsExecution`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatuspostactionsexecution[$$ReleaseStatusPostActionsExecution$$]__ | PostActionsExecution contains information about the post-actions execution + +| | +| *`processing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusprocessing[$$ReleaseStatusProcessing$$]__ | Processing contains information about the release processing + +| | +| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when a Release was started + +| | +| *`target`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-target[$$Target$$]__ | Target references where this relesae is intended to be released to + +| | +| *`attribution`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-attribution[$$Attribution$$]__ | Attribution contains information about the entity authorizing the release + +| | +| *`audit`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-audit[$$Audit$$]__ | Audit contains information about the Release audit + +| | +| *`collectorsResults`* __object__ | CollectorsResults holds the collectors results generated by the Collectors Pipeline + +| | +| *`expirationTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | ExpirationTime is the time when a Release can be purged + +| | +| *`validation`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusvalidation[$$ReleaseStatusValidation$$]__ | Validation contains information about the release validation + +| | +|=== + + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusdeployment"] +==== ReleaseStatusDeployment + +Deployment contains information about the deployment .Appears In: **** @@ -477,12 +520,15 @@ ManagedProcessing contains information about the release managed processing [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when the Release processing was completed + | | -| *`pipelineRun`* __string__ | PipelineRun contains the namespaced name of the Release PipelineRun executed as part of this release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + - -| *`roleBinding`* __string__ | RoleBinding contains the namespaced name of the roleBinding created for the managed Release PipelineRun executed as part of this release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when the Release deployment was completed + +| | +| *`environment`* __string__ | Environment is the environment where the Release will be deployed to + +| | +| *`snapshotEnvironmentBinding`* __string__ | SnapshotEnvironmentBinding contains the namespaced name of the SnapshotEnvironmentBinding created as part of this release + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + -| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release processing started + | | +| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release deployment started + +| | |=== @@ -499,12 +545,10 @@ PostActionsExecution contains information about the post-actions execution [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when the Release processing was completed + | | -| *`pipelineRun`* __string__ | PipelineRun contains the namespaced name of the Release PipelineRun executed as part of this release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + - -| *`roleBinding`* __string__ | RoleBinding contains the namespaced name of the roleBinding created for the managed Release PipelineRun executed as part of this release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + - -| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release processing started + | | +| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when the Release post-actions execution was completed + +| | +| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release post-actions execution started + +| | |=== @@ -521,12 +565,16 @@ Processing contains information about the release processing [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when the Release processing was completed + | | -| *`pipelineRun`* __string__ | PipelineRun contains the namespaced name of the Release PipelineRun executed as part of this release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when the Release processing was completed + +| | +| *`pipelineRun`* __string__ | PipelineRun contains the namespaced name of the release PipelineRun executed as part of this release + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + -| *`roleBinding`* __string__ | RoleBinding contains the namespaced name of the roleBinding created for the managed Release PipelineRun executed as part of this release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| *`roleBinding`* __string__ | RoleBinding contains the namespaced name of the roleBinding created for the Release PipelineRun executed as part of this release + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + -| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release processing started + | | +| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release processing started + +| | |=== @@ -547,9 +595,11 @@ Target references where this relesae is intended to be released to [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`namespace`* __string__ | Namespace references a namespace within the cluster + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| *`namespace`* __string__ | Namespace references a namespace within the cluster + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + -| *`workspace`* __string__ | Workspace references a KCP workspace within the cluster + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])(:[a-z0-9]([-a-z0-9]*[a-z0-9]))*$` + +| *`workspace`* __string__ | Workspace references a KCP workspace within the cluster + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])(:[a-z0-9]([-a-z0-9]*[a-z0-9]))*$` + |=== @@ -566,8 +616,10 @@ NotificationSettings configure how release notifications are sent to different s [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`email`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-emailnotificationsettings[$$EmailNotificationSettings$$]__ | Email notification configuration + | | -| *`slack`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-slacknotificationsettings[$$SlackNotificationSettings$$]__ | Slack notification configuration + | | +| *`email`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-emailnotificationsettings[$$EmailNotificationSettings$$]__ | Email notification configuration + +| | +| *`slack`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-slacknotificationsettings[$$SlackNotificationSettings$$]__ | Slack notification configuration + +| | |=== [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-emailnotificationsettings"] @@ -583,10 +635,14 @@ Email notification configuration [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`enabled`* __boolean__ | Enabled determines if email notifications are active + | | -| *`onFailure`* __boolean__ | OnFailure sends notifications when releases fail + | | -| *`onSuccess`* __boolean__ | OnSuccess sends notifications when releases succeed + | | -| *`recipients`* __string array__ | Recipients is a list of email addresses to notify + | | +| *`enabled`* __boolean__ | Enabled determines if email notifications are active + +| | +| *`onFailure`* __boolean__ | OnFailure sends notifications when releases fail + +| | +| *`onSuccess`* __boolean__ | OnSuccess sends notifications when releases succeed + +| | +| *`recipients`* __string array__ | Recipients is a list of email addresses to notify + +| | |=== [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-slacknotificationsettings"] @@ -602,9 +658,12 @@ Slack notification configuration [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`channel`* __string__ | Channel specifies the Slack channel to notify + | | -| *`enabled`* __boolean__ | Enabled determines if Slack notifications are active + | | -| *`webhookURL`* __string__ | WebhookURL is the Slack webhook URL for notifications + | | +| *`channel`* __string__ | Channel specifies the Slack channel to notify + +| | +| *`enabled`* __boolean__ | Enabled determines if Slack notifications are active + +| | +| *`webhookURL`* __string__ | WebhookURL is the Slack webhook URL for notifications + +| | |=== [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-securitypolicies"] @@ -620,9 +679,12 @@ SecurityPolicies define security requirements and constraints that must be enfor [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`allowedRegistries`* __string array__ | AllowedRegistries is a list of container registries that releases can target + | | -| *`requireCodeSigning`* __boolean__ | RequireCodeSigning enforces that all artifacts must be digitally signed + | | -| *`vulnerabilityScanning`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-vulnerabilityscanning[$$VulnerabilityScanning$$]__ | VulnerabilityScanning configuration for security checks + | | +| *`allowedRegistries`* __string array__ | AllowedRegistries is a list of container registries that releases can target + +| | +| *`requireCodeSigning`* __boolean__ | RequireCodeSigning enforces that all artifacts must be digitally signed + +| | +| *`vulnerabilityScanning`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-vulnerabilityscanning[$$VulnerabilityScanning$$]__ | VulnerabilityScanning configuration for security checks + +| | |=== [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-vulnerabilityscanning"] @@ -638,9 +700,12 @@ VulnerabilityScanning configuration for security checks [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`enabled`* __boolean__ | Enabled determines if vulnerability scanning is required + | | -| *`maxCriticalVulnerabilities`* __integer__ | MaxCriticalVulnerabilities sets the maximum allowed critical CVEs + | | -| *`maxHighVulnerabilities`* __integer__ | MaxHighVulnerabilities sets the maximum allowed high-severity CVEs + | | +| *`enabled`* __boolean__ | Enabled determines if vulnerability scanning is required + +| | +| *`maxCriticalVulnerabilities`* __integer__ | MaxCriticalVulnerabilities sets the maximum allowed critical CVEs + +| | +| *`maxHighVulnerabilities`* __integer__ | MaxHighVulnerabilities sets the maximum allowed high-severity CVEs + +| | |=== [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-resourcelimits"] @@ -656,9 +721,12 @@ ResourceLimits define constraints on resource usage during release operations to [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`maxConcurrentReleases`* __integer__ | MaxConcurrentReleases limits how many releases can run simultaneously + | | -| *`pipelineResourceLimits`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelineresourcelimits[$$PipelineResourceLimits$$]__ | PipelineResourceLimits set CPU and memory constraints for release pipelines + | | -| *`timeoutGracePeriod`* __string__ | TimeoutGracePeriod defines how long to wait before forcefully terminating stuck releases + | | +| *`maxConcurrentReleases`* __integer__ | MaxConcurrentReleases limits how many releases can run simultaneously + +| | +| *`pipelineResourceLimits`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelineresourcelimits[$$PipelineResourceLimits$$]__ | PipelineResourceLimits set CPU and memory constraints for release pipelines + +| | +| *`timeoutGracePeriod`* __string__ | TimeoutGracePeriod defines how long to wait before forcefully terminating stuck releases + +| | |=== [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelineresourcelimits"] @@ -674,8 +742,70 @@ PipelineResourceLimits set CPU and memory constraints for release pipelines [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`cpu`* __string__ | CPU limit for release pipeline execution + | | -| *`memory`* __string__ | Memory limit for release pipeline execution + | | +| *`cpu`* __string__ | CPU limit for release pipeline execution + +| | +| *`memory`* __string__ | Memory limit for release pipeline execution + +| | +|=== + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-attribution"] +==== Attribution + +Attribution contains information about the entity authorizing the release + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatus[$$ReleaseStatus$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`author`* __string__ | Author of the release (e.g. user ID or automated system) + +| | +| *`organization`* __string__ | Organization initiating the release (e.g. a team or department) + +| | +|=== + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-audit"] +==== Audit + +Audit contains information about the Release audit + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatus[$$ReleaseStatus$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`reviewUrl`* __string__ | ReviewUrl points to the review link in a system (e.g. Jira, GitHub, Gitlab) + +| | +| *`signatories`* __string array__ | Signatories are the entities that have reviewed and signed off on the Release + +| | +|=== + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusvalidation"] +==== ReleaseStatusValidation + +Validation contains information about the release validation + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatus[$$ReleaseStatus$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when the Release validation was completed + +| | +| *`pipelineRun`* __string__ | PipelineRun contains the namespaced name of the Release validation PipelineRun executed as part of this release + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + + +| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release validation started + +| | |=== [id="{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-pipelineref"] @@ -691,9 +821,12 @@ PipelineRef is the reference to the Pipeline [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`params`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-param[$$Param$$] array__ | Params is a slice of parameters for a given resolver + | | -| *`resolver`* __string__ | Resolver is the name of a Tekton resolver to be used (e.g. git) + | | -| *`timeout`* __string__ | Timeout is value to use to override the tekton default Pipelinerun timeout + | "0" | +| *`params`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-param[$$Param$$] array__ | Params is a slice of parameters for a given resolver + +| | +| *`resolver`* __string__ | Resolver is the name of a Tekton resolver to be used (e.g. git) + +| | +| *`timeout`* __string__ | Timeout is value to use to override the tekton default Pipelinerun timeout + +| "0" | |=== [id="{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-param"] @@ -709,6 +842,8 @@ Param defines the parameters for a given resolver in PipelineRef [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`name`* __string__ | Name is the name of the parameter + | | -| *`value`* __string__ | Value is the value of the parameter + | | +| *`name`* __string__ | Name is the name of the parameter + +| | +| *`value`* __string__ | Value is the value of the parameter + +| | |=== \ No newline at end of file diff --git a/modules/releasing/pages/create-release.adoc b/modules/releasing/pages/create-release.adoc index ac1bc3e8a..d601038e3 100644 --- a/modules/releasing/pages/create-release.adoc +++ b/modules/releasing/pages/create-release.adoc @@ -32,9 +32,6 @@ metadata: spec: releasePlan: <.> snapshot: <.> - target: <.> - namespace: <.> - workspace: <.> ---- + @@ -42,9 +39,6 @@ spec: <.> The development team's tenant namespace. <.> The name of the release plan specifying the pipeline to run. <.> The name of the application snapshot that you want to release. -<.> The target for this release. This field indicates where the release is intended to be released. -<.> The target namespace within the cluster where the release is intended to be released. -<.> The target KCP workspace within the cluster where the release is intended to be released. . In the development tenant namespace, apply the `Release.yaml` file and add the resource to your cluster by running the following command: From 7660c8e03906e8ead84270da0316e908234ae777 Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Mon, 11 Aug 2025 11:20:12 +0000 Subject: [PATCH 18/47] Auto-generated doc updates from code PR Assisted-by: Gemini --- modules/reference/pages/kube-apis/release-service.adoc | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/reference/pages/kube-apis/release-service.adoc b/modules/reference/pages/kube-apis/release-service.adoc index 92bf0c4c2..ad90aedef 100644 --- a/modules/reference/pages/kube-apis/release-service.adoc +++ b/modules/reference/pages/kube-apis/release-service.adoc @@ -816,6 +816,7 @@ PipelineRef is the reference to the Pipeline .Appears In: **** - xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissionspec[$$ReleasePlanAdmissionSpec$$] +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanspec[$$ReleasePlanSpec$$] **** [cols="20a,50a,15a,15a", options="header"] From f04b789ee3c4b38c785a7446ccc2e19a96945ca6 Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Mon, 18 Aug 2025 08:57:55 +0000 Subject: [PATCH 19/47] Auto-generated doc updates from code PR Assisted-by: Gemini --- .../pages/kube-apis/release-service.adoc | 5 ++- .../pages/adjusting-timeouts-resources.adoc | 1 - .../pages/create-release-plan-admission.adoc | 7 ++++ .../pages/tenant-release-pipelines.adoc | 2 +- modules/releasing/pages/using-collectors.adoc | 32 ++++++++----------- 5 files changed, 24 insertions(+), 23 deletions(-) diff --git a/modules/reference/pages/kube-apis/release-service.adoc b/modules/reference/pages/kube-apis/release-service.adoc index ad90aedef..8455cb63d 100644 --- a/modules/reference/pages/kube-apis/release-service.adoc +++ b/modules/reference/pages/kube-apis/release-service.adoc @@ -128,7 +128,7 @@ ReleaseList contains a list of Release -ReleasePlan is the Schema for the ReleasePlans API. +ReleasePlan is the Schema for the ReleasePlans API. This resource defines release configurations for applications. @@ -331,8 +331,7 @@ ReleasePlanStatus defines the observed state of ReleasePlan. | Field | Description | Default | Validation | *`conditions`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#condition-v1-meta[$$Condition$$] array__ | Conditions represent the latest available observations for the releasePlan + | | -| *`releasePlanAdmission`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-matchedreleaseplanadmission[$$MatchedReleasePlanAdmission$$]__ | ReleasePlanAdmission contains the information of the releasePlanAdmission this ReleasePlan is + -matched to + +| *`releasePlanAdmission`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-matchedreleaseplanadmission[$$MatchedReleasePlanAdmission$$]__ | ReleasePlanAdmission contains the information of the releasePlanAdmission this ReleasePlan is matched to + | | |=== diff --git a/modules/releasing/pages/adjusting-timeouts-resources.adoc b/modules/releasing/pages/adjusting-timeouts-resources.adoc index f266165e5..b2aa4f3a0 100644 --- a/modules/releasing/pages/adjusting-timeouts-resources.adoc +++ b/modules/releasing/pages/adjusting-timeouts-resources.adoc @@ -42,7 +42,6 @@ metadata: spec: applications: - demo-app - data: origin: pipelineRef: params: diff --git a/modules/releasing/pages/create-release-plan-admission.adoc b/modules/releasing/pages/create-release-plan-admission.adoc index 7b87d0daa..c5befb3ae 100644 --- a/modules/releasing/pages/create-release-plan-admission.adoc +++ b/modules/releasing/pages/create-release-plan-admission.adoc @@ -25,6 +25,7 @@ When an application is ready for release, the Development team contacts the owne apiVersion: appstudio.redhat.com/v1alpha1 kind: ReleasePlanAdmission metadata: + creationTimestamp: null labels: release.appstudio.openshift.io/auto-release: 'true' <.> name: sre-production <.> @@ -41,6 +42,12 @@ spec: timeout: <.> policy: <.> serviceAccount: <.> +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] ---- + diff --git a/modules/releasing/pages/tenant-release-pipelines.adoc b/modules/releasing/pages/tenant-release-pipelines.adoc index bcbe457d0..df657fc13 100644 --- a/modules/releasing/pages/tenant-release-pipelines.adoc +++ b/modules/releasing/pages/tenant-release-pipelines.adoc @@ -3,7 +3,7 @@ The usual release process in {ProductName} involves two different teams: a *Development team* and a *Managed environment team* as described in xref:releasing:index.adoc[Releasing an application]. The development team is usually the one who develops and support the application while the managed team will control the process and the secrets. Although this is a powerful workflow, in some cases it might feel very limiting. For example, sometimes the Development team wants to release their software to some destination that is directly under their control, using their own secrets, without depending on a Managed environment team. Another example would be performing actions before running the managed pipeline such as cleaning up old images or notifying about an ongoing release. The way {ProductName} supports these scenarios is by using something we call a *tenant release pipeline*. It's a release pipeline that runs in the tenant namespace of the Development team, rather than in that of the Managed environment team. -The gist here is that this workflow doesn't require a managed pipeline. You can omit the `target` and just specify the `tenant pipeline` you want to run. But, if both tenant and managed pipelines are provided, the tenant pipeline needs to succeed before continuing with the release of the application. +The gist here is that this workflow doesn't require a managed pipeline. You can omit the `target` and just specify the `pipelineRef` you want to run. But, if both tenant and managed pipelines are provided, the tenant pipeline needs to succeed before continuing with the release of the application. == Using a tenant pipeline == diff --git a/modules/releasing/pages/using-collectors.adoc b/modules/releasing/pages/using-collectors.adoc index f56c8a0e8..f4657037b 100644 --- a/modules/releasing/pages/using-collectors.adoc +++ b/modules/releasing/pages/using-collectors.adoc @@ -31,31 +31,27 @@ metadata: namespace: dev-tenant-namespace <.> spec: application: <.> - collectors: - serviceAccountName: collector-service - items: <.> - - name: project-issues - params: - - name: url - value: https://issues.redhat.com - - name: query - value: 'project = "My Project" AND summary ~ "test issue"' - - name: secretName - value: "jira-collectors-secret" - timeout: 60 - type: jira <.> - secrets: <.> - - jira-collectors-secret data: <.> + pipelineRef: + params: + - name: url + value: https://issues.redhat.com + - name: query + value: 'project = "My Project" AND summary ~ "test issue"' + - name: secretName + value: "jira-collectors-secret" + resolver: jira <.> + timeout: "60s" <.> + serviceAccount: collector-service <.> target: managed-tenant-namespace ---- <.> Optional: Control if Releases should be created automatically for this ReleasePlan when tests pass. Defaults to true. <.> The development team's tenant namespace. The collector pipeline will be executed in this namespace. <.> The name of the application that you want to release via a pipeline in the development tenant namespace. -<.> List of parameters to be passed to the collector. -<.> The collector type as seen in the official collectors repository. -<.> Secrets to be provided to the collectors. <.> Optional: An unstructured key used for providing data for the managed Pipeline. +<.> The collector type as seen in the official collectors repository. +<.> Optional: Timeout for the pipeline. Defaults to 0 (no timeout). +<.> ServiceAccount to use in the Pipeline to gain elevated privileges. == Retrieving collectors data From 672a90b21dc59150c05a13a38973c0948ded628c Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Mon, 18 Aug 2025 09:22:51 +0000 Subject: [PATCH 20/47] Auto-generated doc updates from code PR Assisted-by: Gemini --- .../pages/create-release-plan-admission.adoc | 2 -- .../releasing/pages/create-release-plan.adoc | 10 ++++------ modules/releasing/pages/using-collectors.adoc | 20 ++++--------------- 3 files changed, 8 insertions(+), 24 deletions(-) diff --git a/modules/releasing/pages/create-release-plan-admission.adoc b/modules/releasing/pages/create-release-plan-admission.adoc index c5befb3ae..32d8b202b 100644 --- a/modules/releasing/pages/create-release-plan-admission.adoc +++ b/modules/releasing/pages/create-release-plan-admission.adoc @@ -33,7 +33,6 @@ metadata: spec: applications: - demo-app <.> - data: <.> environment: <.> origin: <.> pipelineRef: @@ -55,7 +54,6 @@ status: <.> The name of the release plan admission. <.> The Managed environment team's tenant namespace. <.> A list of applications that you want to enable to be deployed in the managed tenant namespace. -<.> Optional: An unstructured key used for providing data for the release Pipeline. <.> Optional: The environment from which the application updates are allowed to be received in the Managed tenant namespace. This environment is created by the Development team. <.> The development team tenant namespace where the application is defined. <.> Parameters for the referenced pipeline. diff --git a/modules/releasing/pages/create-release-plan.adoc b/modules/releasing/pages/create-release-plan.adoc index 4f0fc8cb5..075123e8f 100644 --- a/modules/releasing/pages/create-release-plan.adoc +++ b/modules/releasing/pages/create-release-plan.adoc @@ -29,12 +29,8 @@ metadata: namespace: dev-tenant-namespace <.> spec: application: <.> - pipelineRef: - params: - - name: release-pipeline-param - value: 'value' - resolver: 'git' - timeout: "2h" + displayName: 'SRE Production Release' <.> + releaseStrategy: immediate <.> serviceAccount: release-service-account <.> target: namespace: managed-tenant-namespace <.> @@ -47,6 +43,8 @@ spec: <.> The name of the release plan. <.> The development team's tenant namespace. <.> The name of the application that you want to deploy to the managed tenant namespace. +<.> The display name of the ReleasePlan. +<.> The release strategy to use for this ReleasePlan. Valid values are `rolling`, `blue-green`, `canary`, or `immediate`. <.> Optional: The service account to use when executing the Release pipeline. <.> The tenant namespace to which the system deploys the application. This tenant namespace is created by the Managed environment team (for example, your organization's SRE team). <.> Optional: The KCP workspace to which the system deploys the application. This workspace is created by the Managed environment team (for example, your organization's SRE team). diff --git a/modules/releasing/pages/using-collectors.adoc b/modules/releasing/pages/using-collectors.adoc index f4657037b..ea43c6d60 100644 --- a/modules/releasing/pages/using-collectors.adoc +++ b/modules/releasing/pages/using-collectors.adoc @@ -31,27 +31,15 @@ metadata: namespace: dev-tenant-namespace <.> spec: application: <.> - data: <.> - pipelineRef: - params: - - name: url - value: https://issues.redhat.com - - name: query - value: 'project = "My Project" AND summary ~ "test issue"' - - name: secretName - value: "jira-collectors-secret" - resolver: jira <.> - timeout: "60s" <.> - serviceAccount: collector-service <.> + displayName: "My Release Plan" <.> + releaseStrategy: rolling <.> target: managed-tenant-namespace ---- <.> Optional: Control if Releases should be created automatically for this ReleasePlan when tests pass. Defaults to true. <.> The development team's tenant namespace. The collector pipeline will be executed in this namespace. <.> The name of the application that you want to release via a pipeline in the development tenant namespace. -<.> Optional: An unstructured key used for providing data for the managed Pipeline. -<.> The collector type as seen in the official collectors repository. -<.> Optional: Timeout for the pipeline. Defaults to 0 (no timeout). -<.> ServiceAccount to use in the Pipeline to gain elevated privileges. +<.> The user-friendly name of the ReleasePlan. +<.> The release strategy to be applied, e.g., `rolling`, `blue-green`, `canary`, or `immediate`. == Retrieving collectors data From d410f8c06395a802bd4e98433105753e837449ca Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Mon, 18 Aug 2025 09:35:29 +0000 Subject: [PATCH 21/47] Auto-generated doc updates from code PR Assisted-by: Gemini --- modules/releasing/pages/create-release-plan.adoc | 11 ++++------- modules/releasing/pages/create-release.adoc | 6 ++++++ modules/releasing/pages/using-collectors.adoc | 11 +++++++++++ 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/modules/releasing/pages/create-release-plan.adoc b/modules/releasing/pages/create-release-plan.adoc index 075123e8f..9468d5edf 100644 --- a/modules/releasing/pages/create-release-plan.adoc +++ b/modules/releasing/pages/create-release-plan.adoc @@ -14,7 +14,6 @@ The development team creates a `ReleasePlan` object in the developer tenant name . Create a `ReleasePlan.yaml` object locally. -+ .Example `ReleasePlan.yaml` object [source,yaml] ---- @@ -29,29 +28,27 @@ metadata: namespace: dev-tenant-namespace <.> spec: application: <.> - displayName: 'SRE Production Release' <.> - releaseStrategy: immediate <.> + data: {} <.> + pipelineRef: {} <.> serviceAccount: release-service-account <.> target: namespace: managed-tenant-namespace <.> workspace: <.> ---- -+ <.> Optional: Control if Releases should be created automatically for this ReleasePlan when tests pass. Defaults to true. <.> Optional: The name of the RPA to use if more than one RPA references the specified application. <.> The name of the release plan. <.> The development team's tenant namespace. <.> The name of the application that you want to deploy to the managed tenant namespace. -<.> The display name of the ReleasePlan. -<.> The release strategy to use for this ReleasePlan. Valid values are `rolling`, `blue-green`, `canary`, or `immediate`. +<.> Optional: Unstructured key used for providing data for the release Pipeline. +<.> Optional: Information about a Pipeline to be executed before the release Pipeline. <.> Optional: The service account to use when executing the Release pipeline. <.> The tenant namespace to which the system deploys the application. This tenant namespace is created by the Managed environment team (for example, your organization's SRE team). <.> Optional: The KCP workspace to which the system deploys the application. This workspace is created by the Managed environment team (for example, your organization's SRE team). . In the development tenant namespace, apply the `ReleasePlan.yaml` file and add the resource to your cluster by running the following command: -+ [source,shell] ---- $ kubectl apply -f ReleasePlan.yaml -n dev diff --git a/modules/releasing/pages/create-release.adoc b/modules/releasing/pages/create-release.adoc index d601038e3..bc97ba226 100644 --- a/modules/releasing/pages/create-release.adoc +++ b/modules/releasing/pages/create-release.adoc @@ -32,6 +32,9 @@ metadata: spec: releasePlan: <.> snapshot: <.> + environment: <.> + gracePeriodSeconds: <.> + rollbackEnabled: <.> ---- + @@ -39,6 +42,9 @@ spec: <.> The development team's tenant namespace. <.> The name of the release plan specifying the pipeline to run. <.> The name of the application snapshot that you want to release. +<.> The target deployment environment (e.g., `development`, `staging`, `production`, `testing`). +<.> The grace period in seconds for release shutdown operations. +<.> Set to `true` to enable automatic rollback for this release, `false` otherwise. . In the development tenant namespace, apply the `Release.yaml` file and add the resource to your cluster by running the following command: diff --git a/modules/releasing/pages/using-collectors.adoc b/modules/releasing/pages/using-collectors.adoc index ea43c6d60..2bc558056 100644 --- a/modules/releasing/pages/using-collectors.adoc +++ b/modules/releasing/pages/using-collectors.adoc @@ -32,6 +32,16 @@ metadata: spec: application: <.> displayName: "My Release Plan" <.> + pipelineRef: <.> + params: + - name: SCRIPT_FILENAME + value: collect-jira-issues + - name: JIRA_SERVER + value: https://issues.redhat.com + - name: JIRA_QUERY + value: project = CPAAS AND labels = release AND fixVersion in ("2.0.0", "2.1.0") + resolver: git + timeout: 30s releaseStrategy: rolling <.> target: managed-tenant-namespace ---- @@ -39,6 +49,7 @@ spec: <.> The development team's tenant namespace. The collector pipeline will be executed in this namespace. <.> The name of the application that you want to release via a pipeline in the development tenant namespace. <.> The user-friendly name of the ReleasePlan. +<.> The pipelineRef field replaces the previous collectors field and points to the pipeline to be executed to collect data. <.> The release strategy to be applied, e.g., `rolling`, `blue-green`, `canary`, or `immediate`. == Retrieving collectors data From 39a2f7c6c72c4e1537e32faca54d82aed73c6fbf Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Mon, 18 Aug 2025 10:59:24 +0000 Subject: [PATCH 22/47] Auto-generated doc updates from code PR Assisted-by: Gemini --- .../reference/pages/kube-apis/release-service.adoc | 11 +++++++++-- .../pages/create-release-plan-admission.adoc | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/modules/reference/pages/kube-apis/release-service.adoc b/modules/reference/pages/kube-apis/release-service.adoc index 8455cb63d..c26c5acc0 100644 --- a/modules/reference/pages/kube-apis/release-service.adoc +++ b/modules/reference/pages/kube-apis/release-service.adoc @@ -80,7 +80,7 @@ MatchedReleasePlanAdmission defines the relevant information for a matched Relea -Release is the Schema for the releases API +Release is the Schema for the releases API. This resource manages application releases across different environments with rollback capabilities. @@ -451,12 +451,17 @@ ReleaseSpec defines the desired state of Release. [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation +| *`environment`* __string__ | Environment specifies the target deployment environment (e.g., development, staging, production) + +| | +| *`gracePeriodSeconds`* __integer__ | GracePeriodSeconds defines the grace period for release shutdown operations + +| `0` | | *`releasePlan`* __string__ | ReleasePlan to use for this particular Release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| *`rollbackEnabled`* __boolean__ | RollbackEnabled indicates whether automatic rollback is enabled for this release + +| | | *`snapshot`* __string__ | Snapshot to be released + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + - |=== @@ -485,6 +490,8 @@ ReleaseStatus defines the observed state of Release. | | | *`deployment`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusdeployment[$$ReleaseStatusDeployment$$]__ | Deployment contains information about the deployment + | | +| *`phase`* __string__ | Phase represents the current phase of the Release lifecycle (e.g., Preparing, InProgress, Completed, Failed, RolledBack) + +| | | *`postActionsExecution`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatuspostactionsexecution[$$ReleaseStatusPostActionsExecution$$]__ | PostActionsExecution contains information about the post-actions execution + | | | *`processing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusprocessing[$$ReleaseStatusProcessing$$]__ | Processing contains information about the release processing + diff --git a/modules/releasing/pages/create-release-plan-admission.adoc b/modules/releasing/pages/create-release-plan-admission.adoc index 32d8b202b..0a5be734e 100644 --- a/modules/releasing/pages/create-release-plan-admission.adoc +++ b/modules/releasing/pages/create-release-plan-admission.adoc @@ -58,7 +58,7 @@ status: <.> The development team tenant namespace where the application is defined. <.> Parameters for the referenced pipeline. <.> Name of a Tekton resolver to be used (for example, `git`). -<.> Optional: Timeout value to override the Tekton default PipelineRun timeout. Defaults to 0, which means no timeout. +<.> Optional: Timeout value to override the Tekton default PipelineRun timeout. Defaults to "0", which means no timeout. <.> The enterprise contract policy against which the system validates an application before releasing it to production. <.> Optional: The name of the service account to use in the release PipelineRun to gain elevated privileges. It's used only if you have defined the `pipelineRef` value. From e3b6d3daeb52113c1fa97d4c9533525a3ec997c0 Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Mon, 18 Aug 2025 11:08:05 +0000 Subject: [PATCH 23/47] Auto-generated doc updates from code PR Assisted-by: Gemini --- .../pages/kube-apis/release-service.adoc | 26 ++++++++++++------- .../pages/create-release-plan-admission.adoc | 8 ++++++ .../releasing/pages/create-release-plan.adoc | 4 +-- 3 files changed, 27 insertions(+), 11 deletions(-) diff --git a/modules/reference/pages/kube-apis/release-service.adoc b/modules/reference/pages/kube-apis/release-service.adoc index c26c5acc0..3c187dc71 100644 --- a/modules/reference/pages/kube-apis/release-service.adoc +++ b/modules/reference/pages/kube-apis/release-service.adoc @@ -154,7 +154,7 @@ ReleasePlan is the Schema for the ReleasePlans API. This resource defines releas -ReleasePlanAdmission is the Schema for the ReleasePlanAdmissions API. +ReleasePlanAdmission is the Schema for the ReleasePlanAdmissions API. This resource controls approval workflows and automated release processes for applications. @@ -216,11 +216,17 @@ ReleasePlanAdmissionSpec defines the desired state of ReleasePlanAdmission. | Field | Description | Default | Validation | *`applications`* __string array__ | Applications is a list of references to applications to be released in the managed namespace + | | +| *`approvalMode`* __string__ | ApprovalMode defines the approval process for releases (manual, automatic, or policy-based) + +| | +| *`autoRelease`* __boolean__ | AutoRelease enables automatic release creation when conditions are met + +| | | *`data`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Data is an unstructured key used for providing data for the release Pipeline + | | | *`environment`* __string__ | Environment defines which Environment will be used to release the Application + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| *`notificationConfig`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-notificationconfig[$$NotificationConfig$$]__ | NotificationConfig defines notification settings for release events + +| | | *`origin`* __string__ | Origin references where the release requests should come from + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + @@ -253,6 +259,8 @@ ReleasePlanAdmissionStatus defines the observed state of ReleasePlanAdmission. | Field | Description | Default | Validation | *`conditions`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#condition-v1-meta[$$Condition$$] array__ | Conditions represent the latest available observations for the releasePlanAdmission + | | +| *`phase`* __string__ | Phase represents the current phase of the ReleasePlanAdmission (e.g., Active, Pending, Disabled, Error) + +| | | *`releasePlans`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-matchedreleaseplan[$$MatchedReleasePlan$$] array__ | ReleasePlan is a list of releasePlans matched to the ReleasePlanAdmission + | | |=== @@ -482,14 +490,22 @@ ReleaseStatus defines the observed state of Release. [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation +| *`attribution`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-attribution[$$Attribution$$]__ | Attribution contains information about the entity authorizing the release + +| | +| *`audit`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-audit[$$Audit$$]__ | Audit contains information about the Release audit + +| | | *`automated`* __boolean__ | Automated indicates whether the Release was created as part of an automated process or manually by an end-user + | | +| *`collectorsResults`* __object__ | CollectorsResults holds the collectors results generated by the Collectors Pipeline + +| | | *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when a Release was completed + | | | *`conditions`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#condition-v1-meta[$$Condition$$] array__ | Conditions represent the latest available observations for the release + | | | *`deployment`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusdeployment[$$ReleaseStatusDeployment$$]__ | Deployment contains information about the deployment + | | +| *`expirationTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | ExpirationTime is the time when a Release can be purged + +| | | *`phase`* __string__ | Phase represents the current phase of the Release lifecycle (e.g., Preparing, InProgress, Completed, Failed, RolledBack) + | | | *`postActionsExecution`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatuspostactionsexecution[$$ReleaseStatusPostActionsExecution$$]__ | PostActionsExecution contains information about the post-actions execution + @@ -500,14 +516,6 @@ ReleaseStatus defines the observed state of Release. | | | *`target`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-target[$$Target$$]__ | Target references where this relesae is intended to be released to + | | -| *`attribution`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-attribution[$$Attribution$$]__ | Attribution contains information about the entity authorizing the release + -| | -| *`audit`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-audit[$$Audit$$]__ | Audit contains information about the Release audit + -| | -| *`collectorsResults`* __object__ | CollectorsResults holds the collectors results generated by the Collectors Pipeline + -| | -| *`expirationTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | ExpirationTime is the time when a Release can be purged + -| | | *`validation`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusvalidation[$$ReleaseStatusValidation$$]__ | Validation contains information about the release validation + | | |=== diff --git a/modules/releasing/pages/create-release-plan-admission.adoc b/modules/releasing/pages/create-release-plan-admission.adoc index 0a5be734e..360f0fe6d 100644 --- a/modules/releasing/pages/create-release-plan-admission.adoc +++ b/modules/releasing/pages/create-release-plan-admission.adoc @@ -33,7 +33,11 @@ metadata: spec: applications: - demo-app <.> + approvalMode: <.> + autoRelease: <.> + data: {} <.> environment: <.> + notificationConfig: <.> origin: <.> pipelineRef: params: <.> @@ -54,7 +58,11 @@ status: <.> The name of the release plan admission. <.> The Managed environment team's tenant namespace. <.> A list of applications that you want to enable to be deployed in the managed tenant namespace. +<.> Defines the approval process for releases. Possible values are `manual`, `automatic`, or `policy-based`. +<.> Optional: When set to `true`, enables automatic release creation when conditions are met. +<.> Optional: Unstructured key for providing data for the release Pipeline. <.> Optional: The environment from which the application updates are allowed to be received in the Managed tenant namespace. This environment is created by the Development team. +<.> Optional: Defines notification settings for release events. It has subfields: `channels` (list of notification channels like `slack`, `email`) and `events` (list of events like `release-started`, `release-completed`, `release-failed`, `approval-required`). <.> The development team tenant namespace where the application is defined. <.> Parameters for the referenced pipeline. <.> Name of a Tekton resolver to be used (for example, `git`). diff --git a/modules/releasing/pages/create-release-plan.adoc b/modules/releasing/pages/create-release-plan.adoc index 9468d5edf..44e59bf13 100644 --- a/modules/releasing/pages/create-release-plan.adoc +++ b/modules/releasing/pages/create-release-plan.adoc @@ -45,7 +45,7 @@ spec: <.> Optional: Information about a Pipeline to be executed before the release Pipeline. <.> Optional: The service account to use when executing the Release pipeline. <.> The tenant namespace to which the system deploys the application. This tenant namespace is created by the Managed environment team (for example, your organization's SRE team). -<.> Optional: The KCP workspace to which the system deploys the application. This workspace is created by the Managed environment team (for example, your organization's SRE team). +<.> Optional: The KCP workspace to which the system deplys the application. This workspace is created by the Managed environment team (for example, your organization's SRE team). . In the development tenant namespace, apply the `ReleasePlan.yaml` file and add the resource to your cluster by running the following command: @@ -58,4 +58,4 @@ $ kubectl apply -f ReleasePlan.yaml -n dev . In the {ProductName} UI, select the *Release services* > *Release plan* tab. . Review the Release plan object that you just added. Using the Release plan tab, you can update or delete the selected Release plan object. -. When a ReleasePlan is correctly configured to be paired with a ReleasePlanAdmission, its *Status* will display as being `Matched`. \ No newline at end of file +. When a ReleasePlan is correctly configured to be paired with a ReleasePlanAdmission, its Status will display as being `Matched`. \ No newline at end of file From d1700d9b563e9b8efff73cf7c0edc0fea206e31a Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Mon, 18 Aug 2025 11:18:19 +0000 Subject: [PATCH 24/47] Auto-generated doc updates from code PR Source commits from release-service: - 2b7137e: Merge 1b92f277cf3a869fd77cca2548a9ec9ffcf1d8b3 into 79c9f0a32b4ec3091cff27ff4ed672261c5355e1 - 1b92f27: update the commits in docs repo to include reference to the commits from the code repo - a8e58b8: update - 79a0fcf: add reference to commits - 1425c7c: update - 9fcabb9: small update - 79c9f0a: Add [update-docs] filtering to documentation workflow - c9353d1: update - 129bd7c: update - ab504b5: updates - e6d5f18: updates - 3090524: updates - e75cb2a: updates - 6fad4eb: updates - d8e13cb: updates - 4da4c37: updates - 71ae213: updates - f290335: updates - 7610d2c: updates - dc715d5: updates - ee5bfa0: updates - fb41b7b: updates - 57e48a1: updates - 5555944: updates - 2056b38: test the piepline - ab99882: test the piepline - 11cf6a9: test: revert appstudio.redhat.com_releases.yaml to 9d2ba52 for pipeline test\n\nAssisted-by: Cursor - f0d2a5e: updates, assisted by Cursor - 86e6aa0: updates, assisted by Cursor - d0b4a0c: updates, assisted by Cursor - 486be2f: updates, assisted by Cursor - 8334f38: updates - 503c4d9: updates - 0161f7d: updates - 0ddd843: updates - a22d5ac: updates - 1ed3db7: updates - 5c651b4: updates - c00464f: updates - ff0535c: updates - 9b616a7: updates - e8322c1: remove all workflow except the suggest_docs.yml - 5af2ad5: fix: use ubuntu latest for workflow runner to ensure python 3.10 availability\n\nAssisted-by: Cursor - f2101b8: fix: use ubuntu latest for workflow runner to ensure python 3.10 availability\n\nAssisted-by: Cursor - 57c55cf: fix: use ubuntu-22.04 for workflow runner to ensure python 3.10 availability\n\nAssisted-by: Cursor - 511746a: test: revert appstudio.redhat.com_releases.yaml to ab9d374 for workflow test - db3950b: updates - 4e03759: Add Gemini-based AI doc suggestion pipeline Latest: 2b7137e - Merge 1b92f277cf3a869fd77cca2548a9ec9ffcf1d8b3 into 79c9f0a32b4ec3091cff27ff4ed672261c5355e1 Assisted-by: Gemini --- .../releasing/pages/create-release-plan-admission.adoc | 2 +- modules/releasing/pages/index.adoc | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/releasing/pages/create-release-plan-admission.adoc b/modules/releasing/pages/create-release-plan-admission.adoc index 360f0fe6d..bfade1110 100644 --- a/modules/releasing/pages/create-release-plan-admission.adoc +++ b/modules/releasing/pages/create-release-plan-admission.adoc @@ -85,4 +85,4 @@ kubectl apply -f ReleasePlanAdmission.yaml -n managed . In the {ProductName} UI, select the *Release services* > *Release plan admission* tab. . Review the RPA object that you just added. Using the Release plan admission tab, you can update or delete the selected Release plan admission object. -. When a ReleasePlanAdmission is correctly configured to be paired with a ReleasePlan, its *Status* will display as being `Matched`. \ No newline at end of file +. When a ReleasePlanAdmission is correctly configured to be paired with a ReleasePlan, its *Status* will display as being `Active`. \ No newline at end of file diff --git a/modules/releasing/pages/index.adoc b/modules/releasing/pages/index.adoc index 2d7fd464b..7e9fe33a4 100644 --- a/modules/releasing/pages/index.adoc +++ b/modules/releasing/pages/index.adoc @@ -21,10 +21,10 @@ Two teams work together to release an application: .Next steps -* *Create a `ReleasePlan` object:* The development team creates a ReleasePlan object in the developer tenant namespace. The ReleasePlan object includes a reference to the application that the development team wants to release, along with tenant namespace where the application is supposed to be released. +* *Create a `ReleasePlan` object:* The development team creates a xref:creating-releaseplan.adoc[`ReleasePlan`] object in the developer tenant namespace. The ReleasePlan object includes a reference to the application that the development team wants to release, along with tenant namespace where the application is supposed to be released. -* *Create a `ReleasePlanAdmission` object:* The Managed Environment team creates or updates the ReleasePlanAdmission object in response to the ReleasePlan object created by the development team. It indicates that the Managed Environment team has approved the application specified in the ReleasePlan object. +* *Create a `ReleasePlanAdmission` object:* The Managed Environment team creates or updates the xref:creating-releaseplanadmission.adoc[`ReleasePlanAdmission`] object in response to the ReleasePlan object created by the development team. It indicates that the Managed Environment team has approved the application specified in the ReleasePlan object. -* *Create a `Release` object:* The development team creates a Release object to reference a specific Snapshot and ReleasePlan. It indicates the users' intent to operate on the Snapshot with the matched ReleasePlanAdmission. +* *Create a `Release` object:* The development team creates a xref:creating-release.adoc[`Release`] object to reference a specific Snapshot and ReleasePlan. It indicates the users' intent to operate on the Snapshot with the matched ReleasePlanAdmission. -* *Configure `ReleaseServiceConfig`:* The Managed Environment team can configure a `ReleaseServiceConfig` to define security policies, advisory repository, notification settings, and resource limits for release operations. \ No newline at end of file +* *Configure `ReleaseServiceConfig`:* The Managed Environment team can configure a xref:configuring-releaseserviceconfig.adoc[`ReleaseServiceConfig`] to define security policies, advisory repository, notification settings, and resource limits for release operations. \ No newline at end of file From ab3dffa7018f3fcfb7776961f118066eec95ba96 Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Mon, 18 Aug 2025 11:23:45 +0000 Subject: [PATCH 25/47] Auto-generated doc updates from code PR Source commits from release-service: - b54addf: Merge 6ab494a1c528f94dff7198ede176cfb073b0010e into 79c9f0a32b4ec3091cff27ff4ed672261c5355e1 - 6ab494a: update - 1b92f27: update the commits in docs repo to include reference to the commits from the code repo - a8e58b8: update - 79a0fcf: add reference to commits - 1425c7c: update - 9fcabb9: small update - 79c9f0a: Add [update-docs] filtering to documentation workflow - c9353d1: update - 129bd7c: update - ab504b5: updates - e6d5f18: updates - 3090524: updates - e75cb2a: updates - 6fad4eb: updates - d8e13cb: updates - 4da4c37: updates - 71ae213: updates - f290335: updates - 7610d2c: updates - dc715d5: updates - ee5bfa0: updates - fb41b7b: updates - 57e48a1: updates - 5555944: updates - 2056b38: test the piepline - ab99882: test the piepline - 11cf6a9: test: revert appstudio.redhat.com_releases.yaml to 9d2ba52 for pipeline test\n\nAssisted-by: Cursor - f0d2a5e: updates, assisted by Cursor - 86e6aa0: updates, assisted by Cursor - d0b4a0c: updates, assisted by Cursor - 486be2f: updates, assisted by Cursor - 8334f38: updates - 503c4d9: updates - 0161f7d: updates - 0ddd843: updates - a22d5ac: updates - 1ed3db7: updates - 5c651b4: updates - c00464f: updates - ff0535c: updates - 9b616a7: updates - e8322c1: remove all workflow except the suggest_docs.yml - 5af2ad5: fix: use ubuntu latest for workflow runner to ensure python 3.10 availability\n\nAssisted-by: Cursor - f2101b8: fix: use ubuntu latest for workflow runner to ensure python 3.10 availability\n\nAssisted-by: Cursor - 57c55cf: fix: use ubuntu-22.04 for workflow runner to ensure python 3.10 availability\n\nAssisted-by: Cursor - 511746a: test: revert appstudio.redhat.com_releases.yaml to ab9d374 for workflow test - db3950b: updates - 4e03759: Add Gemini-based AI doc suggestion pipeline Latest: b54addf - Merge 6ab494a1c528f94dff7198ede176cfb073b0010e into 79c9f0a32b4ec3091cff27ff4ed672261c5355e1 Assisted-by: Gemini --- modules/reference/pages/kube-apis/release-service.adoc | 8 +++++--- modules/releasing/pages/create-release.adoc | 6 +++--- modules/releasing/pages/index.adoc | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/modules/reference/pages/kube-apis/release-service.adoc b/modules/reference/pages/kube-apis/release-service.adoc index 3c187dc71..a049f4c13 100644 --- a/modules/reference/pages/kube-apis/release-service.adoc +++ b/modules/reference/pages/kube-apis/release-service.adoc @@ -259,7 +259,7 @@ ReleasePlanAdmissionStatus defines the observed state of ReleasePlanAdmission. | Field | Description | Default | Validation | *`conditions`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#condition-v1-meta[$$Condition$$] array__ | Conditions represent the latest available observations for the releasePlanAdmission + | | -| *`phase`* __string__ | Phase represents the current phase of the ReleasePlanAdmission (e.g., Active, Pending, Disabled, Error) + +| *`phase`* __string__ | Phase represents the current phase of the ReleasePlanAdmission (e.g., Active, Pending, Disabled, Error, Validating) + | | | *`releasePlans`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-matchedreleaseplan[$$MatchedReleasePlan$$] array__ | ReleasePlan is a list of releasePlans matched to the ReleasePlanAdmission + | | @@ -349,7 +349,7 @@ ReleasePlanStatus defines the observed state of ReleasePlan. -ReleaseServiceConfig is the Schema for the releaseserviceconfigs API +ReleaseServiceConfig is the Schema for the releaseserviceconfigs API. This resource manages global configuration settings for the release service. @@ -417,6 +417,8 @@ in debug mode + | *`defaultTimeouts`* __xref:{anchor_prefix}-github-com-tektoncd-pipeline-pkg-apis-pipeline-v1-timeoutfields[$$TimeoutFields$$]__ | DefaultTimeouts contain the default Tekton timeouts to be used in case they are + not specified in the ReleasePlanAdmission resource. + | | +| *`logLevel`* __string__ | LogLevel defines the logging verbosity level for the release service + +| | | *`notificationSettings`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-notificationsettings[$$NotificationSettings$$]__ | NotificationSettings configure how release notifications are sent to different stakeholders during the release process + | | | *`resourceLimits`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-resourcelimits[$$ResourceLimits$$]__ | ResourceLimits define constraints on resource usage during release operations to prevent excessive consumption of cluster resources + @@ -506,7 +508,7 @@ ReleaseStatus defines the observed state of Release. | | | *`expirationTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | ExpirationTime is the time when a Release can be purged + | | -| *`phase`* __string__ | Phase represents the current phase of the Release lifecycle (e.g., Preparing, InProgress, Completed, Failed, RolledBack) + +| *`phase`* __string__ | Phase represents the current phase of the Release lifecycle (e.g., Preparing, InProgress, Completed, Failed, RolledBack, Cancelled) + | | | *`postActionsExecution`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatuspostactionsexecution[$$ReleaseStatusPostActionsExecution$$]__ | PostActionsExecution contains information about the post-actions execution + | | diff --git a/modules/releasing/pages/create-release.adoc b/modules/releasing/pages/create-release.adoc index bc97ba226..cbcfa87c5 100644 --- a/modules/releasing/pages/create-release.adoc +++ b/modules/releasing/pages/create-release.adoc @@ -8,13 +8,13 @@ The development team creates a `Release` object in the developer tenant namespac . The `Release` object can also contain additional data or specify a custom timeout for the release pipeline. -.*Prerequisites* +*Prerequisites* * You have an existing Development tenant namespace. * You have completed the steps listed in the xref:ROOT:getting-started.adoc#getting-started-with-the-cli[Getting started in the CLI] page. * You have completed the steps for creating a ReleasePlanAdmission and a matching ReleasePlan. -.*Procedures* +*Procedures* . Create a `Release.yaml` object locally. @@ -54,7 +54,7 @@ spec: $ kubectl apply -f Release.yaml -n dev ---- -.*Verification* +*Verification* . In the {ProductName} UI, select the *Applications* tab . Click on the application that is being released diff --git a/modules/releasing/pages/index.adoc b/modules/releasing/pages/index.adoc index 7e9fe33a4..92c49331f 100644 --- a/modules/releasing/pages/index.adoc +++ b/modules/releasing/pages/index.adoc @@ -13,7 +13,7 @@ Two teams work together to release an application: .Procedure -. When an application is ready for release, the Development team contacts the Managed Environment team (for example, their organization's SRE team) requesting access to the managed environment for the first production release. +. When an application is ready for release, the Development team contacts the Managed Environment team (for example, their organization's SRE team) requesting access to the managed environment for the first production release. . The development and managed environment teams will work together to create a ReleasePlanAdmission (RPA) in the managed environment to specify the release pipeline to run containing the appropriate tasks to release the application. From 80d273a04d07a9227603f86f27f68c8a8d5e7666 Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Mon, 18 Aug 2025 11:40:22 +0000 Subject: [PATCH 26/47] Auto-generated doc updates from code PR Source commit: 242740a from release-service Message: Merge c97589ad9cd84dc2165c2d699c089559fedd0893 into 79c9f0a32b4ec3091cff27ff4ed672261c5355e1 Link: https://github.com/csoceanu/release-service/commit/242740a64a985eb8641c9034900ad3b4ee3e2414 Assisted-by: Gemini --- .../pages/kube-apis/release-service.adoc | 4 +- modules/releasing/pages/using-collectors.adoc | 44 +++++++++---------- 2 files changed, 23 insertions(+), 25 deletions(-) diff --git a/modules/reference/pages/kube-apis/release-service.adoc b/modules/reference/pages/kube-apis/release-service.adoc index a049f4c13..9f4ba056e 100644 --- a/modules/reference/pages/kube-apis/release-service.adoc +++ b/modules/reference/pages/kube-apis/release-service.adoc @@ -423,6 +423,8 @@ not specified in the ReleasePlanAdmission resource. + | | | *`resourceLimits`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-resourcelimits[$$ResourceLimits$$]__ | ResourceLimits define constraints on resource usage during release operations to prevent excessive consumption of cluster resources + | | +| *`retryAttempts`* __integer__ | RetryAttempts specifies the maximum number of retry attempts for failed pipeline runs + +| | Minimum: 0, Maximum: 10 | *`securityPolicies`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-securitypolicies[$$SecurityPolicies$$]__ | SecurityPolicies define security requirements and constraints that must be enforced during the release process + | | |=== @@ -464,7 +466,7 @@ ReleaseSpec defines the desired state of Release. | *`environment`* __string__ | Environment specifies the target deployment environment (e.g., development, staging, production) + | | | *`gracePeriodSeconds`* __integer__ | GracePeriodSeconds defines the grace period for release shutdown operations + -| `0` | +| `0` | Minimum: 0 | *`releasePlan`* __string__ | ReleasePlan to use for this particular Release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + diff --git a/modules/releasing/pages/using-collectors.adoc b/modules/releasing/pages/using-collectors.adoc index 2bc558056..7ea191b0b 100644 --- a/modules/releasing/pages/using-collectors.adoc +++ b/modules/releasing/pages/using-collectors.adoc @@ -1,23 +1,19 @@ -= Collectors += Release Pipelines The release process with {ProductName} is well-structured, and the documentation provides clear examples of how to supply data to the `Release`, `ReleasePlan`, or `ReleasePlanAdmission` resources for use within the release workflow. -Despite this, a limitation remains that prevents full workflow automation. In scenarios where a data field in one of the release resources needs to be populated with dynamic information retrieved from an external service _before_ initiating the release, relying on manual steps or custom scripts introduces inefficiency and potential for error. +To address a previous limitation where data fields needed to be populated with dynamic information, {ProductName} now supports release pipelines. Release pipelines are responsible for running the tasks required to validate, collect, and release information. These pipelines are integrated into the release workflow and run at the very beginning, immediately after the validation step. As a result, the collected data becomes available to both the _tenant_ and _managed_ pipelines. -To address this limitation, {ProductName} includes a feature called *collectors*. +== Using release pipelines in a {ProductName} release -A _collector_ is essentially a Python script executed as part of the _tenant_ and _managed collectors pipelines_. It generates information that is embedded into the `Release` status. These pipelines are integrated into the release workflow and run at the very beginning, immediately after the validation step. As a result, the collected data becomes available to both the _tenant_ and _managed_ pipelines. +To use a release pipeline, the first step is to select one from the available options in https://github.com/konflux-ci/release-service-catalog/tree/main/pipelines[the official repository]. The structure of this repository may evolve over time, but the https://github.com/konflux-ci/release-service-catalog/blob/main/pipelines/README.md[README.md] file provides useful details about the available pipelines and the data they produce. The key piece of information needed is the pipeline's name, which will be referenced in one of the release resources. -== Using a collector in a {ProductName} release +Release pipelines can be defined in the following resources: -To use a collector, the first step is to select one from the available options in https://github.com/konflux-ci/release-service-collectors[the official repository]. The structure of this repository may evolve over time, but the https://github.com/konflux-ci/release-service-collectors/blob/main/README.md[README.md] file provides useful details about the available collectors and the data they produce. The key piece of information needed is the collector's name, which will be referenced in one of the release resources. +* *ReleasePlan:* Pipelines defined here are executed by the _tenant pipeline_, which runs in the tenant namespace. +* *ReleasePlanAdmission:* Pipelines defined here are executed by the _managed pipeline_, which runs in the managed namespace. -Collectors can be defined in the following resources: - -* *ReleasePlan:* Collectors defined here are executed by the _tenant collectors pipeline_, which runs in the tenant namespace. -* *ReleasePlanAdmission:* Collectors defined here are executed by the _managed collectors pipeline_, which runs in the managed namespace. - -For example, to run the `jira` collector—which retrieves a list of Jira issues when provided with a server and a query—the following configuration should be added to the _ReleasePlan_: +For example, to run the `release` pipeline—which retrieves a list of Jira issues when provided with a server and a query—the following configuration should be added to the _ReleasePlan_: [source,yaml] ---- @@ -52,9 +48,9 @@ spec: <.> The pipelineRef field replaces the previous collectors field and points to the pipeline to be executed to collect data. <.> The release strategy to be applied, e.g., `rolling`, `blue-green`, `canary`, or `immediate`. -== Retrieving collectors data +== Retrieving Release Pipeline data -After the collectors pipelines complete execution, the output from each collector is added to the `Release` resource under the `status.collectors` field. Below is an example showing the result of a collector defined in the previously mentioned _ReleasePlan_: +After the release pipelines complete execution, the output from each pipeline is added to the `Release` resource under the `status.release` field. Below is an example showing the result of a pipeline defined in the previously mentioned _ReleasePlan_: [source,yaml] ---- @@ -62,7 +58,7 @@ apiVersion: appstudio.redhat.com/v1alpha1 kind: Release ... status: - collectors: + release: tenant: - project-issues: releaseNotes: @@ -71,9 +67,9 @@ status: source: "issues.redhat.com" ---- -In this case, the `project-issues` collector generated a list of issues, which is included under `status.collectors.tenant`. Since this collector was defined in the `ReleasePlan`, its output is categorized under the `tenant` section. Collectors defined in a `ReleasePlanAdmission` will have their results stored under the `managed` key instead. +In this case, the `project-issues` pipeline generated a list of issues, which is included under `status.release.tenant`. Since this pipeline was defined in the `ReleasePlan`, its output is categorized under the `tenant` section. Pipelines defined in a `ReleasePlanAdmission` will have their results stored under the `managed` key instead. -The following example shows a `Release` status containing results from multiple collectors, both _tenant_ and _managed_: +The following example shows a `Release` status containing results from multiple pipelines, both _tenant_ and _managed_: [source,yaml] ---- @@ -81,7 +77,7 @@ apiVersion: appstudio.redhat.com/v1alpha1 kind: Release ... status: - collectors: + release: managed: - foo: releaseNotes: @@ -99,18 +95,18 @@ status: source: "issues.redhat.com" ---- -## Collectors in the managed pipeline +## Release data in the managed pipeline -Releases can reference _managed pipelines_, which—as described in other sections—rely on the `data` field to retrieve user-provided information. To ensure that data generated by _collectors_ is also considered, the contents of `status.collectors` are merged with the data fields from the `Release`, `ReleasePlan`, and `ReleasePlanAdmission` resources. +Releases can reference _managed pipelines_, which—as described in other sections—rely on the `data` field to retrieve user-provided information. To ensure that data generated by _pipelines_ is also considered, the contents of `status.release` are merged with the data fields from the `Release`, `ReleasePlan`, and `ReleasePlanAdmission` resources. -The order of precedence follows the same hierarchy previously described, with `status.collectors` having the *lowest priority*. This means that if both the collector output and any data field define the same key, the value from the `data` field will take precedence. +The order of precedence follows the same hierarchy previously described, with `status.release` having the *lowest priority*. This means that if both the pipeline output and any data field define the same key, the value from the `data` field will take precedence. -For example, if a collector like `jira` produces the following output: +For example, if a pipeline like `jira` produces the following output: [source,yaml] ---- status: - collectors: + release: tenant: - project-issues: releaseNotes: @@ -134,7 +130,7 @@ data: fixed: [] ---- -Then the empty `issues.fixed` array from the `data` field will override the collector’s output. +Then the empty `issues.fixed` array from the `data` field will override the pipeline’s output. In contrast, if the `data` field contains unrelated content: From ed5b7c3c1300fc396685e25c4b187ac6c1b6c146 Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Mon, 18 Aug 2025 11:55:48 +0000 Subject: [PATCH 27/47] Auto-generated doc updates from code PR Source commit: 85a9885 from release-service Message: Merge 0c1a74eadbec248667b78a704f5a5277ed35f9e7 into 79c9f0a32b4ec3091cff27ff4ed672261c5355e1 Link: https://github.com/csoceanu/release-service/commit/85a98854804e47e1b210057b01201f00c871f957 Assisted-by: Gemini --- modules/reference/pages/kube-apis/release-service.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/reference/pages/kube-apis/release-service.adoc b/modules/reference/pages/kube-apis/release-service.adoc index 9f4ba056e..b0778fd6b 100644 --- a/modules/reference/pages/kube-apis/release-service.adoc +++ b/modules/reference/pages/kube-apis/release-service.adoc @@ -424,7 +424,7 @@ not specified in the ReleasePlanAdmission resource. + | *`resourceLimits`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-resourcelimits[$$ResourceLimits$$]__ | ResourceLimits define constraints on resource usage during release operations to prevent excessive consumption of cluster resources + | | | *`retryAttempts`* __integer__ | RetryAttempts specifies the maximum number of retry attempts for failed pipeline runs + -| | Minimum: 0, Maximum: 10 +| `0` | Minimum: 0, Maximum: 10 | *`securityPolicies`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-securitypolicies[$$SecurityPolicies$$]__ | SecurityPolicies define security requirements and constraints that must be enforced during the release process + | | |=== From f3e7d11f39e5349c5386993c93970564ae3824ae Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Mon, 18 Aug 2025 13:11:08 +0000 Subject: [PATCH 28/47] Auto-generated doc updates from code PR Source commit: 4c02f70 from release-service Link: https://github.com/csoceanu/release-service/commit/4c02f7019835e9694b75ba873149b110b29a185b Assisted-by: Gemini --- modules/releasing/nav.adoc | 4 +++- modules/releasing/pages/adjusting-timeouts-resources.adoc | 1 + modules/releasing/pages/index.adoc | 2 +- modules/releasing/pages/tenant-release-pipelines.adoc | 2 +- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/modules/releasing/nav.adoc b/modules/releasing/nav.adoc index 6d35ea73e..6b7b29555 100644 --- a/modules/releasing/nav.adoc +++ b/modules/releasing/nav.adoc @@ -6,4 +6,6 @@ *** xref:adjusting-timeouts-resources.adoc[Adjusting timeouts and resources] *** xref:notification-configuration.adoc[Configuring release notifications] *** xref:security-policy-enforcement.adoc[Enforcing security policies] -*** xref:resource-limitations.adoc[Setting resource limitations] \ No newline at end of file +*** xref:resource-limitations.adoc[Setting resource limitations] +*** xref:release-rollback.adoc[Rolling back a release] +*** xref:automatic-releases.adoc[Enabling automatic releases] \ No newline at end of file diff --git a/modules/releasing/pages/adjusting-timeouts-resources.adoc b/modules/releasing/pages/adjusting-timeouts-resources.adoc index b2aa4f3a0..1b3414313 100644 --- a/modules/releasing/pages/adjusting-timeouts-resources.adoc +++ b/modules/releasing/pages/adjusting-timeouts-resources.adoc @@ -42,6 +42,7 @@ metadata: spec: applications: - demo-app + approvalMode: manual origin: pipelineRef: params: diff --git a/modules/releasing/pages/index.adoc b/modules/releasing/pages/index.adoc index 92c49331f..1d51503b5 100644 --- a/modules/releasing/pages/index.adoc +++ b/modules/releasing/pages/index.adoc @@ -27,4 +27,4 @@ Two teams work together to release an application: * *Create a `Release` object:* The development team creates a xref:creating-release.adoc[`Release`] object to reference a specific Snapshot and ReleasePlan. It indicates the users' intent to operate on the Snapshot with the matched ReleasePlanAdmission. -* *Configure `ReleaseServiceConfig`:* The Managed Environment team can configure a xref:configuring-releaseserviceconfig.adoc[`ReleaseServiceConfig`] to define security policies, advisory repository, notification settings, and resource limits for release operations. \ No newline at end of file +* *Configure `ReleaseServiceConfig`:* The Managed Environment team can configure a xref:configuring-releaseserviceconfig.adoc[`ReleaseServiceConfig`] to define logging, retry attempts, and default timeouts for release operations. \ No newline at end of file diff --git a/modules/releasing/pages/tenant-release-pipelines.adoc b/modules/releasing/pages/tenant-release-pipelines.adoc index df657fc13..9e7bfaeda 100644 --- a/modules/releasing/pages/tenant-release-pipelines.adoc +++ b/modules/releasing/pages/tenant-release-pipelines.adoc @@ -171,7 +171,7 @@ Another type of tenant pipeline runs at the end of the release workflow. This is You can use this pipeline, for example, to send Slack notifications once your images have been pushed or to generate a changelog summarizing the new changes. -To enable it, modify the ReleasePlan by adding the `finalPipeline` field. +To enable it, modify the ReleasePlan by adding the `pipelineRef` field in `finalPipeline`. *Example of final pipeline declaration* From 0bf907b52b58546240a0db0095a95a875fb48849 Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Tue, 19 Aug 2025 11:39:34 +0000 Subject: [PATCH 29/47] Auto-generated doc updates from code PR Source commit: f0f2eca from release-service Link: https://github.com/csoceanu/release-service/commit/f0f2eca26d0c22f353d0b89d75825f7673a65c72 Assisted-by: Gemini --- modules/building/pages/creating-secrets.adoc | 12 ++++++------ .../releasing/pages/tenant-release-pipelines.adoc | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/building/pages/creating-secrets.adoc b/modules/building/pages/creating-secrets.adoc index a966c2e97..a413348ca 100644 --- a/modules/building/pages/creating-secrets.adoc +++ b/modules/building/pages/creating-secrets.adoc @@ -45,8 +45,8 @@ Some container builds may use parent images from registries that require authent . Obtain the username and password login credentials for the container registry. * For access to `registry.redhat.io`, you can create a registry service account at https://access.redhat.com/terms-based-registry/accounts. -. In the correct {ProductName} tenant namespace, go to **Secrets**. -. Click **Add secret**. +. In the correct {ProductName} tenant namespace, go to **Secrets**. +. Click **Add secret**. . For **Secret type**, select **Image pull secret**. . For **Authentication type**, select **Image registry credentials**. . For **Registry server address** enter the image registry (for example `registry.redhat.io`). @@ -77,11 +77,11 @@ Here is the YAML representation of the secret (for reference): ---- apiVersion: v1 data: -.dockerconfigjson: + .dockerconfigjson: kind: Secret metadata: -name: my-quay-secret -namespace: + name: my-quay-secret + namespace: type: kubernetes.io/dockerconfigjson ---- @@ -226,4 +226,4 @@ include::partial${context}-secrets-external-vault.adoc[] * For more information about GitLab access tokens, see link:https://docs.gitlab.com/ee/user/project/settings/project_access_tokens.html[Project access tokens]. -* To configure push secrets for your Build and Release pipelines, see link:https://github.com/konflux-ci/konflux-ci?tab=readme-ov-file#configuring-a-push-secret-for-the-build-pipeline[Configuring push secrets] in the Konflux GitHub repository. +* To configure push secrets for your Build and Release pipelines, see link:https://github.com/konflux-ci/konflux-ci?tab=readme-ov-file#configuring-a-push-secret-for-the-build-pipeline[Configuring push secrets] in the Konflux GitHub repository. \ No newline at end of file diff --git a/modules/releasing/pages/tenant-release-pipelines.adoc b/modules/releasing/pages/tenant-release-pipelines.adoc index 9e7bfaeda..8429eed4c 100644 --- a/modules/releasing/pages/tenant-release-pipelines.adoc +++ b/modules/releasing/pages/tenant-release-pipelines.adoc @@ -165,7 +165,7 @@ spec: If you write a good reusable release pipeline, please submit it to our link:https://github.com/konflux-ci/release-service-catalog[catalog] so others can use it. -== Final pipeline +== Final pipeline == Another type of tenant pipeline runs at the end of the release workflow. This is known as the final pipeline, and it allows you to execute a pipeline after the tenant or managed pipeline has completed. From 21644652d38ea2eaf92ccb0e991aba9eb12f6d0e Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Tue, 19 Aug 2025 11:59:01 +0000 Subject: [PATCH 30/47] Auto-generated doc updates from code PR Source commit: ba30f19 from release-service Link: https://github.com/csoceanu/release-service/commit/ba30f19f38601023a542fa45fad0f94f7278147e Assisted-by: Gemini --- .../pages/kube-apis/release-service.adoc | 223 +++++++++--------- modules/releasing/pages/create-release.adoc | 12 +- modules/releasing/pages/using-collectors.adoc | 2 +- 3 files changed, 120 insertions(+), 117 deletions(-) diff --git a/modules/reference/pages/kube-apis/release-service.adoc b/modules/reference/pages/kube-apis/release-service.adoc index b0778fd6b..492de25d9 100644 --- a/modules/reference/pages/kube-apis/release-service.adoc +++ b/modules/reference/pages/kube-apis/release-service.adoc @@ -1,86 +1,9 @@ -// Generated documentation. Please do not edit. -:anchor_prefix: k8s-api - -[id="reference"] -== Release API Reference - -.Packages -- xref:{anchor_prefix}-appstudio-redhat-com-v1alpha1[$$appstudio.redhat.com/v1alpha1$$] - - -[id="{anchor_prefix}-appstudio-redhat-com-v1alpha1"] -=== appstudio.redhat.com/v1alpha1 - -Package v1alpha1 contains API Schema definitions for the appstudio v1alpha1 API group - -.Resource Types -- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-release[$$Release$$] -- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaselist[$$ReleaseList$$] -- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplan[$$ReleasePlan$$] -- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmission[$$ReleasePlanAdmission$$] -- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissionlist[$$ReleasePlanAdmissionList$$] -- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanlist[$$ReleasePlanList$$] -- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseserviceconfig[$$ReleaseServiceConfig$$] -- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseserviceconfiglist[$$ReleaseServiceConfigList$$] - - - -[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-matchedreleaseplan"] -==== MatchedReleasePlan - - - -MatchedReleasePlan defines the relevant information for a matched ReleasePlan. - - - -.Appears In: -**** -- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissionstatus[$$ReleasePlanAdmissionStatus$$] -**** - -[cols="20a,50a,15a,15a", options="header"] -|=== -| Field | Description | Default | Validation -| *`name`* __string__ | Name contains the namespaced name of the ReleasePlan + -| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + - -| *`active`* __boolean__ | Active indicates whether the ReleasePlan is set to auto-release or not + -| | -|=== - - -[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-matchedreleaseplanadmission"] -==== MatchedReleasePlanAdmission - - - -MatchedReleasePlanAdmission defines the relevant information for a matched ReleasePlanAdmission. - - - -.Appears In: -**** -- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanstatus[$$ReleasePlanStatus$$] -**** - -[cols="20a,50a,15a,15a", options="header"] -|=== -| Field | Description | Default | Validation -| *`name`* __string__ | Name contains the namespaced name of the releasePlanAdmission + -| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + - -| *`active`* __boolean__ | Active indicates whether the ReleasePlanAdmission is set to auto-release or not + -| | -|=== - - [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-release"] ==== Release -Release is the Schema for the releases API. This resource manages application releases across different environments with rollback capabilities. +Release is the Schema for the releases API. @@ -305,7 +228,7 @@ ReleasePlanSpec defines the desired state of ReleasePlan. [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`application`* __string__ | Application is a reference to the application to be released in the managed namespace + +| *`application`* __string__ | Application is a reference to the application component to be released in the managed namespace + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + | *`data`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Data is an unstructured key used for providing data for the release Pipeline + @@ -463,15 +386,14 @@ ReleaseSpec defines the desired state of Release. [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`environment`* __string__ | Environment specifies the target deployment environment (e.g., development, staging, production) + +| *`data`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Data is an unstructured key used for providing data for the managed Release Pipeline + +| | +| *`gracePeriodDays`* __integer__ | GracePeriodDays is the number of days a Release should be kept after completion + +This value is used to define the Release ExpirationTime for cleanup purposes + | | -| *`gracePeriodSeconds`* __integer__ | GracePeriodSeconds defines the grace period for release shutdown operations + -| `0` | Minimum: 0 | *`releasePlan`* __string__ | ReleasePlan to use for this particular Release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + -| *`rollbackEnabled`* __boolean__ | RollbackEnabled indicates whether automatic rollback is enabled for this release + -| | | *`snapshot`* __string__ | Snapshot to be released + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + |=== @@ -494,41 +416,43 @@ ReleaseStatus defines the observed state of Release. [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation +| *`artifacts`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Artifacts is an unstructured key used for storing all the artifacts generated by the managed Release Pipeline + +| | | *`attribution`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-attribution[$$Attribution$$]__ | Attribution contains information about the entity authorizing the release + | | | *`audit`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-audit[$$Audit$$]__ | Audit contains information about the Release audit + | | -| *`automated`* __boolean__ | Automated indicates whether the Release was created as part of an automated process or manually by an end-user + +| *`automated`* __boolean__ | Automated indicates whether the Release was created as part of an automated workflow process or manually by an end-user + +| | +| *`collectors`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Collectors is an unstructured key used for storing all the collectors results generated by the Collectors Pipeline + | | -| *`collectorsResults`* __object__ | CollectorsResults holds the collectors results generated by the Collectors Pipeline + +| *`collectorsProcessing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatuscollectorsprocessing[$$ReleaseStatusCollectorsProcessing$$]__ | CollectorsProcessing contains information about the release collectors processing + | | | *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when a Release was completed + | | | *`conditions`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#condition-v1-meta[$$Condition$$] array__ | Conditions represent the latest available observations for the release + | | -| *`deployment`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusdeployment[$$ReleaseStatusDeployment$$]__ | Deployment contains information about the deployment + -| | | *`expirationTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | ExpirationTime is the time when a Release can be purged + | | -| *`phase`* __string__ | Phase represents the current phase of the Release lifecycle (e.g., Preparing, InProgress, Completed, Failed, RolledBack, Cancelled) + +| *`finalProcessing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusfinalprocessing[$$ReleaseStatusFinalProcessing$$]__ | FinalProcessing contains information about the release final processing + | | -| *`postActionsExecution`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatuspostactionsexecution[$$ReleaseStatusPostActionsExecution$$]__ | PostActionsExecution contains information about the post-actions execution + -| | -| *`processing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusprocessing[$$ReleaseStatusProcessing$$]__ | Processing contains information about the release processing + +| *`managedProcessing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusmanagedprocessing[$$ReleaseStatusManagedProcessing$$]__ | ManagedProcessing contains information about the release managed processing + | | | *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when a Release was started + | | | *`target`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-target[$$Target$$]__ | Target references where this relesae is intended to be released to + | | +| *`tenantProcessing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatustenantprocessing[$$ReleaseStatusTenantProcessing$$]__ | TenantProcessing contains information about the release tenant processing + +| | | *`validation`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusvalidation[$$ReleaseStatusValidation$$]__ | Validation contains information about the release validation + | | |=== -[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusdeployment"] -==== ReleaseStatusDeployment +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatuscollectorsprocessing"] +==== ReleaseStatusCollectorsProcessing -Deployment contains information about the deployment +CollectorsProcessing contains information about the release collectors processing .Appears In: **** @@ -538,22 +462,71 @@ Deployment contains information about the deployment [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when the Release deployment was completed + +| *`managedCollectorsProcessing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectorsprocessingstatus[$$CollectorsProcessingStatus$$]__ | ManagedCollectorsProcessing contains information about the release managed collectors processing + | | -| *`environment`* __string__ | Environment is the environment where the Release will be deployed to + +| *`tenantCollectorsProcessing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectorsprocessingstatus[$$CollectorsProcessingStatus$$]__ | TenantCollectorsProcessing contains information about the release tenant collectors processing + +| | +|=== + + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectorsprocessingstatus"] +==== CollectorsProcessingStatus + +CollectorsProcessingStatus defines the observed status of the Release processing + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatuscollectorsprocessing[$$ReleaseStatusCollectorsProcessing$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when the Release processing was completed + | | -| *`snapshotEnvironmentBinding`* __string__ | SnapshotEnvironmentBinding contains the namespaced name of the SnapshotEnvironmentBinding created as part of this release + +| *`pipelineRun`* __string__ | PipelineRun contains the namespaced name of the managed Release PipelineRun executed as part of this release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + -| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release deployment started + +| *`roleBindings`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaserolebindings[$$ReleaseRoleBindings$$]__ | RoleBindings defines the roleBindings for accessing resources during the Release + +PipelineRun executed as part of this release. + +| | +| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release processing started + | | |=== -[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatuspostactionsexecution"] -==== ReleaseStatusPostActionsExecution +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaserolebindings"] +==== ReleaseRoleBindings -PostActionsExecution contains information about the post-actions execution +RoleBindings defines the roleBindings for accessing resources during the Release +PipelineRun executed as part of this release. + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectorsprocessingstatus[$$CollectorsProcessingStatus$$] +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusfinalprocessing[$$ReleaseStatusFinalProcessing$$] +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusmanagedprocessing[$$ReleaseStatusManagedProcessing$$] +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatustenantprocessing[$$ReleaseStatusTenantProcessing$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`managedRoleBinding`* __string__ | ManagedRoleBinding contains the namespaced name of the roleBinding created for accessing resources within the managed namespace. + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + + +| *`secretRoleBinding`* __string__ | SecretRoleBinding contains the namespaced name of the roleBinding created for accessing secrets within the namespace. + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + + +| *`tenantRoleBinding`* __string__ | TenantRoleBinding contains the namespaced name of the roleBinding created for accessing resources within the tenant namespace. + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +|=== + + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusfinalprocessing"] +==== ReleaseStatusFinalProcessing + +FinalProcessing contains information about the release final processing .Appears In: **** @@ -563,17 +536,23 @@ PostActionsExecution contains information about the post-actions execution [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when the Release post-actions execution was completed + +| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when the Release processing was completed + | | -| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release post-actions execution started + +| *`pipelineRun`* __string__ | PipelineRun contains the namespaced name of the managed Release PipelineRun executed as part of this release + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + + +| *`roleBindings`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaserolebindings[$$ReleaseRoleBindings$$]__ | RoleBindings defines the roleBindings for accessing resources during the Release + +PipelineRun executed as part of this release. + +| | +| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release processing started + | | |=== -[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusprocessing"] -==== ReleaseStatusProcessing +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusmanagedprocessing"] +==== ReleaseStatusManagedProcessing -Processing contains information about the release processing +ManagedProcessing contains information about the release managed processing .Appears In: **** @@ -585,12 +564,38 @@ Processing contains information about the release processing | Field | Description | Default | Validation | *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when the Release processing was completed + | | -| *`pipelineRun`* __string__ | PipelineRun contains the namespaced name of the release PipelineRun executed as part of this release + +| *`pipelineRun`* __string__ | PipelineRun contains the namespaced name of the managed Release PipelineRun executed as part of this release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + -| *`roleBinding`* __string__ | RoleBinding contains the namespaced name of the roleBinding created for the Release PipelineRun executed as part of this release + +| *`roleBindings`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaserolebindings[$$ReleaseRoleBindings$$]__ | RoleBindings defines the roleBindings for accessing resources during the Release + +PipelineRun executed as part of this release. + +| | +| *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release processing started + +| | +|=== + + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatustenantprocessing"] +==== ReleaseStatusTenantProcessing + +TenantProcessing contains information about the release tenant processing + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatus[$$ReleaseStatus$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when the Release processing was completed + +| | +| *`pipelineRun`* __string__ | PipelineRun contains the namespaced name of the managed Release PipelineRun executed as part of this release + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| *`roleBindings`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaserolebindings[$$ReleaseRoleBindings$$]__ | RoleBindings defines the roleBindings for accessing resources during the Release + +PipelineRun executed as part of this release. + +| | | *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release processing started + | | |=== diff --git a/modules/releasing/pages/create-release.adoc b/modules/releasing/pages/create-release.adoc index cbcfa87c5..38396a4e9 100644 --- a/modules/releasing/pages/create-release.adoc +++ b/modules/releasing/pages/create-release.adoc @@ -4,7 +4,7 @@ A Release CR is created to submit a specific Application Snapshot to be processe == Creating a `Release` object -The development team creates a `Release` object in the developer tenant namespace. The `Release` object includes a reference to the application snapshot that the development team wants to release, along with release plan that will be used to release the application. +The development team creates a `Release` object in the developer tenant namespace. The `Release` object includes a reference to the application component snapshot that the development team wants to release, along with release plan that will be used to release the application. . The `Release` object can also contain additional data or specify a custom timeout for the release pipeline. @@ -32,9 +32,8 @@ metadata: spec: releasePlan: <.> snapshot: <.> - environment: <.> - gracePeriodSeconds: <.> - rollbackEnabled: <.> + data: <.> + gracePeriodDays: <.> ---- + @@ -42,9 +41,8 @@ spec: <.> The development team's tenant namespace. <.> The name of the release plan specifying the pipeline to run. <.> The name of the application snapshot that you want to release. -<.> The target deployment environment (e.g., `development`, `staging`, `production`, `testing`). -<.> The grace period in seconds for release shutdown operations. -<.> Set to `true` to enable automatic rollback for this release, `false` otherwise. +<.> An unstructured key used for providing data for the managed Release Pipeline. +<.> The number of days a Release should be kept after completion. This value is used to define the Release ExpirationTime for cleanup purposes. . In the development tenant namespace, apply the `Release.yaml` file and add the resource to your cluster by running the following command: diff --git a/modules/releasing/pages/using-collectors.adoc b/modules/releasing/pages/using-collectors.adoc index 7ea191b0b..8bdcf942b 100644 --- a/modules/releasing/pages/using-collectors.adoc +++ b/modules/releasing/pages/using-collectors.adoc @@ -43,7 +43,7 @@ spec: ---- <.> Optional: Control if Releases should be created automatically for this ReleasePlan when tests pass. Defaults to true. <.> The development team's tenant namespace. The collector pipeline will be executed in this namespace. -<.> The name of the application that you want to release via a pipeline in the development tenant namespace. +<.> The name of the application *component* that you want to release via a pipeline in the development tenant namespace. <.> The user-friendly name of the ReleasePlan. <.> The pipelineRef field replaces the previous collectors field and points to the pipeline to be executed to collect data. <.> The release strategy to be applied, e.g., `rolling`, `blue-green`, `canary`, or `immediate`. From 964345f6fd221c0dd7c9114cb37b15453d2fef04 Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Tue, 19 Aug 2025 12:22:28 +0000 Subject: [PATCH 31/47] Auto-generated doc updates from code PR Source commit: cd7b80a from release-service Link: https://github.com/csoceanu/release-service/commit/cd7b80ab714e72b2841f34aabebaae98d72f87fc Assisted-by: Gemini --- modules/releasing/pages/index.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/releasing/pages/index.adoc b/modules/releasing/pages/index.adoc index 1d51503b5..3510e4285 100644 --- a/modules/releasing/pages/index.adoc +++ b/modules/releasing/pages/index.adoc @@ -21,10 +21,10 @@ Two teams work together to release an application: .Next steps -* *Create a `ReleasePlan` object:* The development team creates a xref:creating-releaseplan.adoc[`ReleasePlan`] object in the developer tenant namespace. The ReleasePlan object includes a reference to the application that the development team wants to release, along with tenant namespace where the application is supposed to be released. +* *Create a `ReleasePlan` object:* The development team creates a xref:creating-releaseplan.adoc[`ReleasePlan`] object in the developer tenant namespace. The ReleasePlan object includes a reference to the application component that the development team wants to release, along with tenant namespace where the application is supposed to be released. * *Create a `ReleasePlanAdmission` object:* The Managed Environment team creates or updates the xref:creating-releaseplanadmission.adoc[`ReleasePlanAdmission`] object in response to the ReleasePlan object created by the development team. It indicates that the Managed Environment team has approved the application specified in the ReleasePlan object. -* *Create a `Release` object:* The development team creates a xref:creating-release.adoc[`Release`] object to reference a specific Snapshot and ReleasePlan. It indicates the users' intent to operate on the Snapshot with the matched ReleasePlanAdmission. +* *Create a `Release` object:* The development team creates a xref:creating-release.adoc[`Release`] object to reference a specific Snapshot and ReleasePlan. It indicates the users' intent to operate on the Snapshot with the matched ReleasePlanAdmission. The `Release` object also has a short name `rel`. * *Configure `ReleaseServiceConfig`:* The Managed Environment team can configure a xref:configuring-releaseserviceconfig.adoc[`ReleaseServiceConfig`] to define logging, retry attempts, and default timeouts for release operations. \ No newline at end of file From 7ee4fbf2aef90f05fc39a82e1eaa119835132c90 Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Tue, 19 Aug 2025 12:31:42 +0000 Subject: [PATCH 32/47] Auto-generated doc updates from code PR Source commit: 96f9e21 from release-service Link: https://github.com/csoceanu/release-service/commit/96f9e2126daab1e1499757476add1f4274e6d0d2 Assisted-by: Gemini --- .../pages/kube-apis/release-service.adoc | 77 ------------------- modules/releasing/pages/create-release.adoc | 2 +- 2 files changed, 1 insertion(+), 78 deletions(-) diff --git a/modules/reference/pages/kube-apis/release-service.adoc b/modules/reference/pages/kube-apis/release-service.adoc index 492de25d9..5e91234c3 100644 --- a/modules/reference/pages/kube-apis/release-service.adoc +++ b/modules/reference/pages/kube-apis/release-service.adoc @@ -1,12 +1,8 @@ [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-release"] ==== Release - - Release is the Schema for the releases API. - - .Appears In: **** - xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaselist[$$ReleaseList$$] @@ -27,14 +23,8 @@ Release is the Schema for the releases API. [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaselist"] ==== ReleaseList - - ReleaseList contains a list of Release - - - - [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation @@ -49,12 +39,8 @@ ReleaseList contains a list of Release [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplan"] ==== ReleasePlan - - ReleasePlan is the Schema for the ReleasePlans API. This resource defines release configurations for applications. - - .Appears In: **** - xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanlist[$$ReleasePlanList$$] @@ -75,12 +61,8 @@ ReleasePlan is the Schema for the ReleasePlans API. This resource defines releas [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmission"] ==== ReleasePlanAdmission - - ReleasePlanAdmission is the Schema for the ReleasePlanAdmissions API. This resource controls approval workflows and automated release processes for applications. - - .Appears In: **** - xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissionlist[$$ReleasePlanAdmissionList$$] @@ -101,14 +83,8 @@ ReleasePlanAdmission is the Schema for the ReleasePlanAdmissions API. This resou [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissionlist"] ==== ReleasePlanAdmissionList - - ReleasePlanAdmissionList contains a list of ReleasePlanAdmission. - - - - [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation @@ -123,12 +99,8 @@ ReleasePlanAdmissionList contains a list of ReleasePlanAdmission. [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissionspec"] ==== ReleasePlanAdmissionSpec - - ReleasePlanAdmissionSpec defines the desired state of ReleasePlanAdmission. - - .Appears In: **** - xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmission[$$ReleasePlanAdmission$$] @@ -166,12 +138,8 @@ ReleasePlanAdmissionSpec defines the desired state of ReleasePlanAdmission. [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissionstatus"] ==== ReleasePlanAdmissionStatus - - ReleasePlanAdmissionStatus defines the observed state of ReleasePlanAdmission. - - .Appears In: **** - xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmission[$$ReleasePlanAdmission$$] @@ -192,14 +160,8 @@ ReleasePlanAdmissionStatus defines the observed state of ReleasePlanAdmission. [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanlist"] ==== ReleasePlanList - - ReleasePlanList contains a list of ReleasePlan. - - - - [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation @@ -214,12 +176,8 @@ ReleasePlanList contains a list of ReleasePlan. [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanspec"] ==== ReleasePlanSpec - - ReleasePlanSpec defines the desired state of ReleasePlan. - - .Appears In: **** - xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplan[$$ReleasePlan$$] @@ -246,12 +204,8 @@ ReleasePlanSpec defines the desired state of ReleasePlan. [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanstatus"] ==== ReleasePlanStatus - - ReleasePlanStatus defines the observed state of ReleasePlan. - - .Appears In: **** - xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplan[$$ReleasePlan$$] @@ -270,12 +224,8 @@ ReleasePlanStatus defines the observed state of ReleasePlan. [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseserviceconfig"] ==== ReleaseServiceConfig - - ReleaseServiceConfig is the Schema for the releaseserviceconfigs API. This resource manages global configuration settings for the release service. - - .Appears In: **** - xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseserviceconfiglist[$$ReleaseServiceConfigList$$] @@ -296,14 +246,8 @@ ReleaseServiceConfig is the Schema for the releaseserviceconfigs API. This resou [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseserviceconfiglist"] ==== ReleaseServiceConfigList - - ReleaseServiceConfigList contains a list of ReleaseServiceConfig - - - - [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation @@ -318,12 +262,8 @@ ReleaseServiceConfigList contains a list of ReleaseServiceConfig [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseserviceconfigspec"] ==== ReleaseServiceConfigSpec - - ReleaseServiceConfigSpec defines the desired state of ReleaseServiceConfig. - - .Appears In: **** - xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseserviceconfig[$$ReleaseServiceConfig$$] @@ -356,28 +296,19 @@ not specified in the ReleasePlanAdmission resource. + [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseserviceconfigstatus"] ==== ReleaseServiceConfigStatus - - ReleaseServiceConfigStatus defines the observed state of ReleaseServiceConfig. - - .Appears In: **** - xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseserviceconfig[$$ReleaseServiceConfig$$] **** - [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasespec"] ==== ReleaseSpec - - ReleaseSpec defines the desired state of Release. - - .Appears In: **** - xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-release[$$Release$$] @@ -402,12 +333,8 @@ This value is used to define the Release ExpirationTime for cleanup purposes + [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatus"] ==== ReleaseStatus - - ReleaseStatus defines the observed state of Release. - - .Appears In: **** - xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-release[$$Release$$] @@ -604,12 +531,8 @@ PipelineRun executed as part of this release. + [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-target"] ==== Target - - Target references where this relesae is intended to be released to - - .Appears In: **** - xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatus[$$ReleaseStatus$$] diff --git a/modules/releasing/pages/create-release.adoc b/modules/releasing/pages/create-release.adoc index 38396a4e9..a7a847028 100644 --- a/modules/releasing/pages/create-release.adoc +++ b/modules/releasing/pages/create-release.adoc @@ -55,7 +55,7 @@ $ kubectl apply -f Release.yaml -n dev *Verification* . In the {ProductName} UI, select the *Applications* tab -. Click on the application that is being released +. Click on the application component that is being released . Click on the *Releases* tab . See the recent releases that have been created for the application. . You can find a link to the release pipeline run by clicking on the name of the release that you created. \ No newline at end of file From 8d75b6ab84472987e4049178b572de2fae2d8158 Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Tue, 19 Aug 2025 13:29:19 +0000 Subject: [PATCH 33/47] Auto-generated doc updates from code PR Source PR: #11 from release-service PR Link: https://github.com/csoceanu/release-service/pull/11 Latest commit: 947f72e Assisted-by: Gemini --- modules/releasing/pages/create-release-plan.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/releasing/pages/create-release-plan.adoc b/modules/releasing/pages/create-release-plan.adoc index 44e59bf13..b96dc034d 100644 --- a/modules/releasing/pages/create-release-plan.adoc +++ b/modules/releasing/pages/create-release-plan.adoc @@ -4,7 +4,7 @@ A ReleasePlan (RP) CR is created for a specific Application. It defines the the == Creating a `ReleasePlan` object -The development team creates a `ReleasePlan` object in the developer tenant namespace. The `ReleasePlan` object includes a reference to the application that the development team wants to release, along with tenant namespace where the application is supposed to be released. +The development team creates a `ReleasePlan` object in the developer tenant namespace. The `ReleasePlan` object includes a reference to the application component that the development team wants to release, along with tenant namespace where the application is supposed to be released. .Prerequisites * You have an existing Development tenant namespace. @@ -40,7 +40,7 @@ spec: <.> Optional: The name of the RPA to use if more than one RPA references the specified application. <.> The name of the release plan. <.> The development team's tenant namespace. -<.> The name of the application that you want to deploy to the managed tenant namespace. +<.> The name of the application component that you want to deploy to the managed tenant namespace. <.> Optional: Unstructured key used for providing data for the release Pipeline. <.> Optional: Information about a Pipeline to be executed before the release Pipeline. <.> Optional: The service account to use when executing the Release pipeline. From 51d45a48156b8bb8a570aad6ac11c2ebaf0fcb39 Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Tue, 19 Aug 2025 13:41:25 +0000 Subject: [PATCH 34/47] Auto-generated doc updates from code changes PR Link: https://github.com/csoceanu/release-service/pull/11 Latest commit: 57c7fd3 Assisted-by: Gemini --- .../pages/kube-apis/release-service.adoc | 2 +- .../pages/tenant-release-pipelines.adoc | 21 ++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/modules/reference/pages/kube-apis/release-service.adoc b/modules/reference/pages/kube-apis/release-service.adoc index 5e91234c3..ed9aac9cb 100644 --- a/modules/reference/pages/kube-apis/release-service.adoc +++ b/modules/reference/pages/kube-apis/release-service.adoc @@ -127,7 +127,7 @@ ReleasePlanAdmissionSpec defines the desired state of ReleasePlanAdmission. | *`pipelineRef`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-pipelineref[$$PipelineRef$$]__ | PipelineRef is a reference to the Pipeline to be executed by the release PipelineRun + | | -| *`policy`* __string__ | Policy to validate before releasing an artifact + +| *`policy`* __string__ | Policy to validate before releasing an.artifact + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + | *`serviceAccount`* __string__ | ServiceAccount is the name of the service account to use in the release PipelineRun to gain elevated privileges + diff --git a/modules/releasing/pages/tenant-release-pipelines.adoc b/modules/releasing/pages/tenant-release-pipelines.adoc index 8429eed4c..11273b47f 100644 --- a/modules/releasing/pages/tenant-release-pipelines.adoc +++ b/modules/releasing/pages/tenant-release-pipelines.adoc @@ -171,7 +171,7 @@ Another type of tenant pipeline runs at the end of the release workflow. This is You can use this pipeline, for example, to send Slack notifications once your images have been pushed or to generate a changelog summarizing the new changes. -To enable it, modify the ReleasePlan by adding the `pipelineRef` field in `finalPipeline`. +To enable it, modify the ReleasePlan by adding the `finalPipeline` field. *Example of final pipeline declaration* @@ -201,6 +201,25 @@ spec: Both tenant and final pipelines receive the same parameters (i.e. release, releasePlan, and snapshot), allowing them to be used interchangeably. The key difference is that the final pipeline runs at the end of the release workflow, meaning the release status will contain the final outcome and all generated artifacts. +== Release object `spec` fields == + +The Release object's `spec` fields have been updated to reflect the new `data` field and `gracePeriodDays` field, while removing `environment`, `rollbackEnabled`, and `phase`. + +. The `data` field is an unstructured key used for providing data for the managed Release Pipeline. +. The `gracePeriodDays` field is the number of days a Release should be kept after completion. This value is used to define the Release ExpirationTime for cleanup purposes. + +== Release object `status` fields == + +The Release object's `status` fields have been updated with `artifacts`, `collectors`, `collectorsProcessing`, `expirationTime`, `finalProcessing`, `managedProcessing`, and `tenantProcessing` fields, while removing `deployment`, `postActionsExecution`, and `processing`. + +. The `artifacts` field is an unstructured key used for storing all the artifacts generated by the managed Release Pipeline. +. The `collectors` field is an unstructured key used for storing all the collectors results generated by the Collectors Pipeline. +. The `collectorsProcessing` field contains information about the release collectors processing. +. The `expirationTime` field is the time when a Release can be purged. +. The `finalProcessing` field contains information about the release final processing. +. The `managedProcessing` field contains information about the release managed processing. +. The `tenantProcessing` field contains information about the release tenant processing. + == Next steps == Now that the ReleasePlan is defined, the development team can create a Release object to reference a specific Snapshot and the new ReleasePlan. It indicates the users' intent to release that Snapshot via the tenant release pipeline defined in the ReleasePlan. \ No newline at end of file From 08fecbb590c69d6f96e92c6e8880984b3257619b Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Tue, 19 Aug 2025 14:07:56 +0000 Subject: [PATCH 35/47] Auto-generated doc updates from code changes PR Link: https://github.com/csoceanu/release-service/pull/11 Latest commit: e365a2e Assisted-by: Gemini --- modules/reference/pages/kube-apis/release-service.adoc | 2 +- modules/releasing/pages/create-release-plan.adoc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/reference/pages/kube-apis/release-service.adoc b/modules/reference/pages/kube-apis/release-service.adoc index ed9aac9cb..0f95c934f 100644 --- a/modules/reference/pages/kube-apis/release-service.adoc +++ b/modules/reference/pages/kube-apis/release-service.adoc @@ -193,7 +193,7 @@ ReleasePlanSpec defines the desired state of ReleasePlan. | | | *`pipelineRef`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-pipelineref[$$PipelineRef$$]__ | PipelineRef is an optional reference to a Pipeline that would be executed before the release Pipeline + | | -| *`serviceAccount`* __string__ | ServiceAccount is the name of the service account to use in the Pipeline to gain elevated privileges + +| *`serviceAccount`* __string__ | ServiceAccount is the name of the service account to use in the current Pipeline to gain elevated privileges + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + | *`target`* __string__ | Target references where to send the release requests + diff --git a/modules/releasing/pages/create-release-plan.adoc b/modules/releasing/pages/create-release-plan.adoc index b96dc034d..f060df480 100644 --- a/modules/releasing/pages/create-release-plan.adoc +++ b/modules/releasing/pages/create-release-plan.adoc @@ -43,7 +43,7 @@ spec: <.> The name of the application component that you want to deploy to the managed tenant namespace. <.> Optional: Unstructured key used for providing data for the release Pipeline. <.> Optional: Information about a Pipeline to be executed before the release Pipeline. -<.> Optional: The service account to use when executing the Release pipeline. +<.> Optional: The service account to use in the current Pipeline to gain elevated privileges. <.> The tenant namespace to which the system deploys the application. This tenant namespace is created by the Managed environment team (for example, your organization's SRE team). <.> Optional: The KCP workspace to which the system deplys the application. This workspace is created by the Managed environment team (for example, your organization's SRE team). From 4f58d5b77e4fe9389bfd8b3f45bac737baf8fd4d Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Tue, 26 Aug 2025 08:54:39 +0000 Subject: [PATCH 36/47] Auto-generated doc updates from code changes PR Link: https://github.com/csoceanu/release-service/pull/11 Latest commit: 37e72f2 Assisted-by: Gemini --- .../pages/gitops-for-manual-releases.adoc | 4 +- .../pages/kube-apis/release-service.adoc | 170 ++++++++++++++++-- .../pages/adjusting-timeouts-resources.adoc | 52 ++++-- .../pages/create-release-plan-admission.adoc | 47 +++-- .../releasing/pages/create-release-plan.adoc | 2 +- 5 files changed, 231 insertions(+), 44 deletions(-) diff --git a/modules/patterns/pages/gitops-for-manual-releases.adoc b/modules/patterns/pages/gitops-for-manual-releases.adoc index 732b0a1d3..5c67bece4 100644 --- a/modules/patterns/pages/gitops-for-manual-releases.adoc +++ b/modules/patterns/pages/gitops-for-manual-releases.adoc @@ -87,7 +87,7 @@ Let's say you're preparing for an upcoming 1.3.0 release. ---- ❯ yq -i '.metadata.name = "your-project-1-3-0-rc01"' releases/1.3.0/snapshot.yaml # Confirm the name is as you expect -❯ yq .metadata.name releases/1.3.0/snapshot.yaml +❯ yq .metadata.name releases/1.3.0/snapshot.yaml your-project-1-3-0-rc01 ---- @@ -120,4 +120,4 @@ NOTE: Discuss this with your team. The decision depends on your process outside [source] ---- ❯ watch 'kubectl get releases your-project-1-3-0 -o yaml | yq .status'` ----- +---- \ No newline at end of file diff --git a/modules/reference/pages/kube-apis/release-service.adoc b/modules/reference/pages/kube-apis/release-service.adoc index 0f95c934f..385761d2f 100644 --- a/modules/reference/pages/kube-apis/release-service.adoc +++ b/modules/reference/pages/kube-apis/release-service.adoc @@ -61,7 +61,7 @@ ReleasePlan is the Schema for the ReleasePlans API. This resource defines releas [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmission"] ==== ReleasePlanAdmission -ReleasePlanAdmission is the Schema for the ReleasePlanAdmissions API. This resource controls approval workflows and automated release processes for applications. +ReleasePlanAdmission is the Schema for the ReleasePlanAdmissions API. .Appears In: **** @@ -111,27 +111,20 @@ ReleasePlanAdmissionSpec defines the desired state of ReleasePlanAdmission. | Field | Description | Default | Validation | *`applications`* __string array__ | Applications is a list of references to applications to be released in the managed namespace + | | -| *`approvalMode`* __string__ | ApprovalMode defines the approval process for releases (manual, automatic, or policy-based) + +| *`collectors`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissioncollectors[$$ReleasePlanAdmissionCollectors$$]__ | Collectors contains all the information of the collectors to be executed as part of the release workflow + | | -| *`autoRelease`* __boolean__ | AutoRelease enables automatic release creation when conditions are met + -| | -| *`data`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Data is an unstructured key used for providing data for the release Pipeline + +| *`data`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Data is an unstructured key used for providing data for the managed Release Pipeline + | | | *`environment`* __string__ | Environment defines which Environment will be used to release the Application + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + -| *`notificationConfig`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-notificationconfig[$$NotificationConfig$$]__ | NotificationConfig defines notification settings for release events + -| | | *`origin`* __string__ | Origin references where the release requests should come from + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + -| *`pipelineRef`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-pipelineref[$$PipelineRef$$]__ | PipelineRef is a reference to the Pipeline to be executed by the release PipelineRun + +| *`pipeline`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissionpipeline[$$ReleasePlanAdmissionPipeline$$]__ | Pipeline contains all the information about the managed Pipeline + | | | *`policy`* __string__ | Policy to validate before releasing an.artifact + | | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + - -| *`serviceAccount`* __string__ | ServiceAccount is the name of the service account to use in the release PipelineRun to gain elevated privileges + -| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + |=== @@ -150,13 +143,163 @@ ReleasePlanAdmissionStatus defines the observed state of ReleasePlanAdmission. | Field | Description | Default | Validation | *`conditions`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#condition-v1-meta[$$Condition$$] array__ | Conditions represent the latest available observations for the releasePlanAdmission + | | -| *`phase`* __string__ | Phase represents the current phase of the ReleasePlanAdmission (e.g., Active, Pending, Disabled, Error, Validating) + -| | | *`releasePlans`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-matchedreleaseplan[$$MatchedReleasePlan$$] array__ | ReleasePlan is a list of releasePlans matched to the ReleasePlanAdmission + | | |=== +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissioncollectors"] +==== ReleasePlanAdmissionCollectors + +Collectors contains all the information of the collectors to be executed as part of the release workflow + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissionspec[$$ReleasePlanAdmissionSpec$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`items`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectoritem[$$CollectorItem$$] array__ | Items is the list of Collectors to be executed as part of the release workflow + +| | +| *`serviceAccountName`* __string__ | ServiceAccountName is the ServiceAccount to use during the execution of the Collectors Pipeline + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +|=== + + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectoritem"] +==== CollectorItem + +CollectorItem represents all the information about an specific collector which will be executed in the +CollectorsPipeline. + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissioncollectors[$$ReleasePlanAdmissionCollectors$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`name`* __string__ | Name of the collector + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + + +| *`params`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-param[$$Param$$] array__ | Params is a slice of parameters for a given collector + +| | +| *`timeout`* __integer__ | Timeout in seconds for the collector to execute + +| | +| *`type`* __string__ | Type is the type of collector to be used + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +|=== + + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-param"] +==== Param + +Param represents a parameter for a collector + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectoritem[$$CollectorItem$$] +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-pipelineref[$$PipelineRef$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`name`* __string__ | Name is the name of the parameter + +| | +| *`value`* __string__ | Value is the value of the parameter + +| | +|=== + + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissionpipeline"] +==== ReleasePlanAdmissionPipeline + +Pipeline contains all the information about the managed Pipeline + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissionspec[$$ReleasePlanAdmissionSpec$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`pipelineRef`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelinerefinreleaseplanadmissionpipeline[$$PipelineRefInReleasePlanAdmissionPipeline$$]__ | PipelineRef is the reference to the Pipeline + +| | +| *`serviceAccountName`* __string__ | ServiceAccountName is the ServiceAccount to use during the execution of the Pipeline + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + + +| *`timeouts`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-timeouts[$$Timeouts$$]__ | Timeouts defines the different Timeouts to use in the PipelineRun execution + +| | +|=== + + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelinerefinreleaseplanadmissionpipeline"] +==== PipelineRefInReleasePlanAdmissionPipeline + +PipelineRef is the reference to the Pipeline + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissionpipeline[$$ReleasePlanAdmissionPipeline$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`params`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-paramindefiningpipelineref[$$ParamInDefiningPipelineRef$$] array__ | Params is a slice of parameters for a given resolver + +| | +| *`resolver`* __string__ | Resolver is the name of a Tekton resolver to be used (e.g. git) + +| | +|=== + + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-paramindefiningpipelineref"] +==== ParamInDefiningPipelineRef + +Param defines the parameters for a given resolver in PipelineRef + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelinerefinreleaseplanadmissionpipeline[$$PipelineRefInReleasePlanAdmissionPipeline$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`name`* __string__ | Name is the name of the parameter + +| | +| *`value`* __string__ | Value is the value of the parameter + +| | +|=== + + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-timeouts"] +==== Timeouts + +Timeouts defines the different Timeouts to use in the PipelineRun execution + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissionpipeline[$$ReleasePlanAdmissionPipeline$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`finally`* __string__ | Finally sets the maximum allowed duration of this pipeline's finally + +| | +| *`pipeline`* __string__ | Pipeline sets the maximum allowed duration for execution of the entire pipeline. The sum of individual timeouts for tasks and finally must not exceed this value. + +| | +| *`tasks`* __string__ | Tasks sets the maximum allowed duration of this pipeline's tasks + +| | +|=== + + [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanlist"] ==== ReleasePlanList @@ -761,7 +904,6 @@ PipelineRef is the reference to the Pipeline .Appears In: **** -- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissionspec[$$ReleasePlanAdmissionSpec$$] - xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanspec[$$ReleasePlanSpec$$] **** diff --git a/modules/releasing/pages/adjusting-timeouts-resources.adoc b/modules/releasing/pages/adjusting-timeouts-resources.adoc index 1b3414313..456de32dc 100644 --- a/modules/releasing/pages/adjusting-timeouts-resources.adoc +++ b/modules/releasing/pages/adjusting-timeouts-resources.adoc @@ -24,6 +24,31 @@ pipelineRef: <.> Specifies the timeout for the entire PipelineRun. Defaults to the global configurable default timeout of 60 minutes. +With the new API, the `timeout` field in `ReleasePlanAdmission` has been moved and expanded into `pipeline.timeouts` to allow for more granular control over task and finally timeouts. + +[source,yaml] +---- +spec: + pipeline: + pipelineRef: + params: + - name: url + value: ".git" + - name: revision + value: main + - name: pathInRepo + value: "" + resolver: git + serviceAccountName: release-service-account + timeouts: + finally: "15m0s" <.> + pipeline: "2h0m0s" <.> + tasks: "1h30m0s" <.> +---- +<.> Specifies the maximum allowed duration for the `finally` section of the pipeline. +<.> Specifies the maximum allowed duration for the execution of the entire pipeline. The sum of individual timeouts for tasks and finally must not exceed this value. +<.> Specifies the maximum allowed duration for the pipeline's tasks. + == Adjust resources As can be seen in the section above, there's no way to specify timeouts for individual tasks. However, another field can be used to increase the resources an specific task can use during its execution. @@ -42,20 +67,21 @@ metadata: spec: applications: - demo-app - approvalMode: manual origin: - pipelineRef: - params: - - name: url - value: ".git" - - name: revision - value: main - - name: pathInRepo - value: "" - resolver: git - timeout: "2h0m0s" + pipeline: + pipelineRef: + params: + - name: url + value: ".git" + - name: revision + value: main + - name: pathInRepo + value: "" + resolver: git + serviceAccountName: release-service-account <.> + timeouts: + pipeline: "2h0m0s" policy: - serviceAccount: release-service-account <.> ---- -<.> Name of the Task we want to modify. \ No newline at end of file +<.> Name of the service account to use in the Release PipelineRun to gain elevated privileges. This field has been moved from the top-level `spec` to `spec.pipeline`. \ No newline at end of file diff --git a/modules/releasing/pages/create-release-plan-admission.adoc b/modules/releasing/pages/create-release-plan-admission.adoc index bfade1110..c83c4c4c1 100644 --- a/modules/releasing/pages/create-release-plan-admission.adoc +++ b/modules/releasing/pages/create-release-plan-admission.adoc @@ -33,18 +33,27 @@ metadata: spec: applications: - demo-app <.> - approvalMode: <.> - autoRelease: <.> + collectors: <.> + items: <.> + - name: <.> + params: <.> + - name: <.> + value: <.> + type: <.> + serviceAccountName: <.> data: {} <.> environment: <.> - notificationConfig: <.> origin: <.> - pipelineRef: - params: <.> - resolver: <.> - timeout: <.> + pipeline: <.> + pipelineRef: <.> + params: <.> + resolver: <.> + serviceAccountName: <.> + timeouts: <.> + finally: <.> + pipeline: <.> + tasks: <.> policy: <.> - serviceAccount: <.> status: acceptedNames: kind: "" @@ -58,17 +67,27 @@ status: <.> The name of the release plan admission. <.> The Managed environment team's tenant namespace. <.> A list of applications that you want to enable to be deployed in the managed tenant namespace. -<.> Defines the approval process for releases. Possible values are `manual`, `automatic`, or `policy-based`. -<.> Optional: When set to `true`, enables automatic release creation when conditions are met. -<.> Optional: Unstructured key for providing data for the release Pipeline. +<.> Contains all the information of the collectors to be executed as part of the release workflow. +<.> The list of collectors to be executed as part of the release workflow. +<.> The name of the collector. +<.> A slice of parameters for a given collector. +<.> The name of the parameter. +<.> The value of the parameter. +<.> The type of collector to be used. +<.> The service account to use during the execution of the Collectors Pipeline. +<.> Optional: Unstructured key for providing data for the managed Release Pipeline. <.> Optional: The environment from which the application updates are allowed to be received in the Managed tenant namespace. This environment is created by the Development team. -<.> Optional: Defines notification settings for release events. It has subfields: `channels` (list of notification channels like `slack`, `email`) and `events` (list of events like `release-started`, `release-completed`, `release-failed`, `approval-required`). <.> The development team tenant namespace where the application is defined. +<.> Contains all the information about the managed Pipeline. +<.> The reference to the Pipeline. <.> Parameters for the referenced pipeline. <.> Name of a Tekton resolver to be used (for example, `git`). -<.> Optional: Timeout value to override the Tekton default PipelineRun timeout. Defaults to "0", which means no timeout. +<.> The service account to use during the execution of the Pipeline. +<.> Defines the different timeouts to use in the PipelineRun execution. +<.> Sets the maximum allowed duration of this pipeline's `finally` tasks. +<.> Sets the maximum allowed duration for execution of the entire pipeline. The sum of individual timeouts for tasks and finally must not exceed this value. +<.> Sets the maximum allowed duration of this pipeline's tasks. <.> The enterprise contract policy against which the system validates an application before releasing it to production. -<.> Optional: The name of the service account to use in the release PipelineRun to gain elevated privileges. It's used only if you have defined the `pipelineRef` value. + NOTE: The ReleasePlanAdmission.yaml represents the reciprocal link to the ReleasePlan.yaml objects created by the development team. diff --git a/modules/releasing/pages/create-release-plan.adoc b/modules/releasing/pages/create-release-plan.adoc index f060df480..7768141de 100644 --- a/modules/releasing/pages/create-release-plan.adoc +++ b/modules/releasing/pages/create-release-plan.adoc @@ -41,7 +41,7 @@ spec: <.> The name of the release plan. <.> The development team's tenant namespace. <.> The name of the application component that you want to deploy to the managed tenant namespace. -<.> Optional: Unstructured key used for providing data for the release Pipeline. +<.> Optional: Unstructured key used for providing data for the managed Release Pipeline. <.> Optional: Information about a Pipeline to be executed before the release Pipeline. <.> Optional: The service account to use in the current Pipeline to gain elevated privileges. <.> The tenant namespace to which the system deploys the application. This tenant namespace is created by the Managed environment team (for example, your organization's SRE team). From 0aa2aec78f7b779b6e1a5700b10094faa5cda5af Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Tue, 26 Aug 2025 09:07:08 +0000 Subject: [PATCH 37/47] Auto-generated doc updates from code changes PR Link: https://github.com/csoceanu/release-service/pull/11 Latest commit: 6124804 Assisted-by: Gemini --- .../pages/kube-apis/release-service.adoc | 24 +++---------------- 1 file changed, 3 insertions(+), 21 deletions(-) diff --git a/modules/reference/pages/kube-apis/release-service.adoc b/modules/reference/pages/kube-apis/release-service.adoc index 385761d2f..db5b8c973 100644 --- a/modules/reference/pages/kube-apis/release-service.adoc +++ b/modules/reference/pages/kube-apis/release-service.adoc @@ -203,6 +203,7 @@ Param represents a parameter for a collector **** - xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectoritem[$$CollectorItem$$] - xref:{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-pipelineref[$$PipelineRef$$] +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-paramindefiningpipelineref[$$ParamInDefiningPipelineRef$$] **** [cols="20a,50a,15a,15a", options="header"] @@ -251,7 +252,7 @@ PipelineRef is the reference to the Pipeline [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`params`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-paramindefiningpipelineref[$$ParamInDefiningPipelineRef$$] array__ | Params is a slice of parameters for a given resolver + +| *`params`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-param[$$Param$$] array__ | Params is a slice of parameters for a given resolver + | | | *`resolver`* __string__ | Resolver is the name of a Tekton resolver to be used (e.g. git) + | | @@ -910,29 +911,10 @@ PipelineRef is the reference to the Pipeline [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`params`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-param[$$Param$$] array__ | Params is a slice of parameters for a given resolver + +| *`params`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-param[$$Param$$] array__ | Params is a slice of parameters for a given resolver + | | | *`resolver`* __string__ | Resolver is the name of a Tekton resolver to be used (e.g. git) + | | | *`timeout`* __string__ | Timeout is value to use to override the tekton default Pipelinerun timeout + | "0" | -|=== - -[id="{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-param"] -==== Param - -Param defines the parameters for a given resolver in PipelineRef - -.Appears In: -**** -- xref:{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-pipelineref[$$PipelineRef$$] -**** - -[cols="20a,50a,15a,15a", options="header"] -|=== -| Field | Description | Default | Validation -| *`name`* __string__ | Name is the name of the parameter + -| | -| *`value`* __string__ | Value is the value of the parameter + -| | |=== \ No newline at end of file From c02809d9f6183eac1a786f0ec278fd5115c2f46a Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Tue, 26 Aug 2025 09:19:34 +0000 Subject: [PATCH 38/47] Auto-generated doc updates from code changes PR Link: https://github.com/csoceanu/release-service/pull/11 Latest commit: 191d502 Assisted-by: Gemini --- .../maintaining-references-before-release.adoc | 2 +- .../pages/kube-apis/release-service.adoc | 11 ++++++++++- .../pages/create-release-plan-admission.adoc | 5 +---- modules/releasing/pages/create-release.adoc | 4 +++- modules/releasing/pages/index.adoc | 4 ++-- .../pages/tenant-release-pipelines.adoc | 7 +++---- modules/releasing/pages/using-collectors.adoc | 18 +++++++++++++++--- 7 files changed, 35 insertions(+), 16 deletions(-) diff --git a/modules/patterns/pages/maintaining-references-before-release.adoc b/modules/patterns/pages/maintaining-references-before-release.adoc index 09e8ac19f..30c75455f 100644 --- a/modules/patterns/pages/maintaining-references-before-release.adoc +++ b/modules/patterns/pages/maintaining-references-before-release.adoc @@ -44,4 +44,4 @@ NOTE: Once this change is merged, the nudged component will contain invalid refe .*Verification* . Commit a change to a nudging component, triggering a push event. -. After the build is completed, a pull request should be opened against your nudged component's git repository. +. After the build is completed, a pull request should be opened against your nudged component's git repository. \ No newline at end of file diff --git a/modules/reference/pages/kube-apis/release-service.adoc b/modules/reference/pages/kube-apis/release-service.adoc index 3e7318c97..83b088e8f 100644 --- a/modules/reference/pages/kube-apis/release-service.adoc +++ b/modules/reference/pages/kube-apis/release-service.adoc @@ -182,6 +182,15 @@ CollectorsPipeline. [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation +| *`name`* __string__ | Name of the collector + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + + +| *`params`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-param[$$Param$$] array__ | Params is a slice of parameters for a given collector + +| | +| *`timeout`* __integer__ | Timeout in seconds for the collector to execute + +| | +| *`type`* __string__ | Type is the type of collector to be used + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + |=== @@ -243,7 +252,7 @@ PipelineRef is the reference to the Pipeline [cols="20a,50a,15a,15a", options="header"] |=== | Field | Description | Default | Validation -| *`params`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-param[$$Param$$] array__ | Params is a slice of parameters for a given resolver + +| *`params`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-paramindefiningpipelineref[$$ParamInDefiningPipelineRef$$] array__ | Params is a slice of parameters for a given resolver + | | | *`resolver`* __string__ | Resolver is the name of a Tekton resolver to be used (e.g. git) + | | diff --git a/modules/releasing/pages/create-release-plan-admission.adoc b/modules/releasing/pages/create-release-plan-admission.adoc index a0e622799..7e9950911 100644 --- a/modules/releasing/pages/create-release-plan-admission.adoc +++ b/modules/releasing/pages/create-release-plan-admission.adoc @@ -58,9 +58,6 @@ status: ---- + -<.> Optional: Control whether or not this ReleasePlanAdmission is entirely disabled. If set to true, attempted releases will fail with a validation error. Defaults to false. -<.> The name of the release plan admission. -<.> The Managed environment team's tenant namespace. <.> A list of applications that you want to enable to be deployed in the managed tenant namespace. <.> Contains all the information of the collectors to be executed as part of the release workflow. <.> The list of collectors to be executed as part of the release workflow. @@ -71,7 +68,7 @@ status: <.> The type of collector to be used. <.> The service account to use during the execution of the Collectors Pipeline. <.> Optional: Unstructured key for providing data for the managed Release Pipeline. -<.> Optional: The environment from which the application updates are allowed to be received in the Managed tenant namespace. This environment is created by the Development team. +<.> The environment from which the application updates are allowed to be received in the Managed tenant namespace. This environment is created by the Development team. <.> The development team tenant namespace where the application is defined. <.> Contains all the information about the managed Pipeline. <.> The reference to the Pipeline. diff --git a/modules/releasing/pages/create-release.adoc b/modules/releasing/pages/create-release.adoc index b098e545d..a2b364266 100644 --- a/modules/releasing/pages/create-release.adoc +++ b/modules/releasing/pages/create-release.adoc @@ -27,6 +27,8 @@ include::releasing:partial$example-manual-release.adoc[] + [source,shell] ---- +$ kubectl create -f Release.yaml +---- . Remove the following fields from the `Release.yaml` object: .. `metadata` fields: @@ -53,4 +55,4 @@ $ kubectl create -f Release.yaml *Verification* -. In the {ProductName} UI, select the *Applications* tab +. In the {ProductName} UI, select the *Applications* tab \ No newline at end of file diff --git a/modules/releasing/pages/index.adoc b/modules/releasing/pages/index.adoc index 3510e4285..f7fb1a826 100644 --- a/modules/releasing/pages/index.adoc +++ b/modules/releasing/pages/index.adoc @@ -23,8 +23,8 @@ Two teams work together to release an application: * *Create a `ReleasePlan` object:* The development team creates a xref:creating-releaseplan.adoc[`ReleasePlan`] object in the developer tenant namespace. The ReleasePlan object includes a reference to the application component that the development team wants to release, along with tenant namespace where the application is supposed to be released. -* *Create a `ReleasePlanAdmission` object:* The Managed Environment team creates or updates the xref:creating-releaseplanadmission.adoc[`ReleasePlanAdmission`] object in response to the ReleasePlan object created by the development team. It indicates that the Managed Environment team has approved the application specified in the ReleasePlan object. +* *Create a `ReleasePlanAdmission` object:* The Managed Environment team creates or updates the xref:creating-releaseplanadmission.adoc[`ReleasePlanAdmission`] object in response to the ReleasePlan object created by the development team. It indicates that the Managed Environment team has approved the application specified in the ReleasePlan object. The `ReleasePlanAdmission` object now supports defining a `collectors` section to specify data collection during the release workflow, including parameters and timeouts for each collector. -* *Create a `Release` object:* The development team creates a xref:creating-release.adoc[`Release`] object to reference a specific Snapshot and ReleasePlan. It indicates the users' intent to operate on the Snapshot with the matched ReleasePlanAdmission. The `Release` object also has a short name `rel`. +* *Create a `Release` object:* The development team creates a xref:creating-release.adoc[`Release`] object to reference a specific Snapshot and ReleasePlan. It indicates the users' intent to operate on the Snapshot with the matched ReleasePlanAdmission. The `Release` object also has a short name `rel`. It now includes support for a `gracePeriodDays` field to define the release expiration time, and its status includes `artifacts` for generated artifacts and `managedProcessing` and `tenantProcessing` for detailed pipeline execution information. * *Configure `ReleaseServiceConfig`:* The Managed Environment team can configure a xref:configuring-releaseserviceconfig.adoc[`ReleaseServiceConfig`] to define logging, retry attempts, and default timeouts for release operations. \ No newline at end of file diff --git a/modules/releasing/pages/tenant-release-pipelines.adoc b/modules/releasing/pages/tenant-release-pipelines.adoc index d08d4e91d..0fd551886 100644 --- a/modules/releasing/pages/tenant-release-pipelines.adoc +++ b/modules/releasing/pages/tenant-release-pipelines.adoc @@ -210,14 +210,13 @@ The Release object's `spec` fields have been updated to reflect the new `data` f == Release object `status` fields == -The Release object's `status` fields have been updated with `artifacts`, `collectors`, `collectorsProcessing`, `expirationTime`, `finalProcessing`, `managedProcessing`, and `tenantProcessing` fields, while removing `deployment`, `postActionsExecution`, and `processing`. +The Release object's `status` fields have been updated with `artifacts`, `expirationTime`, `managedProcessing`, `postActionsExecution`, `processing`, and `tenantProcessing` fields, while removing `deployment`. Note that `collectors` and `collectorsProcessing` were removed, and `finalProcessing` renamed to `postActionsExecution`. The `processing` field refers to the *tenant* pipeline processing. . The `artifacts` field is an unstructured key used for storing all the artifacts generated by the managed Release Pipeline. -. The `collectors` field is an unstructured key used for storing all the collectors results generated by the Collectors Pipeline. -. The `collectorsProcessing` field contains information about the release collectors processing. . The `expirationTime` field is the time when a Release can be purged. -. The `finalProcessing` field contains information about the release final processing. . The `managedProcessing` field contains information about the release managed processing. +. The `postActionsExecution` field contains information about the post-actions execution. This field was previously `finalProcessing`. +. The `processing` field contains information about the tenant release processing. . The `tenantProcessing` field contains information about the release tenant processing. == Next steps == diff --git a/modules/releasing/pages/using-collectors.adoc b/modules/releasing/pages/using-collectors.adoc index 25e21292f..193f26ee2 100644 --- a/modules/releasing/pages/using-collectors.adoc +++ b/modules/releasing/pages/using-collectors.adoc @@ -18,7 +18,7 @@ For example, to run the `release` pipeline—which retrieves a list of Jira issu [source,yaml] ---- apiVersion: appstudio.redhat.com/v1alpha1 -kind: ReleasePlan +kind: ReleasePlanAdmission metadata: labels: release.appstudio.openshift.io/auto-release: 'true' <.> @@ -26,8 +26,20 @@ metadata: name: collectors-rp namespace: dev-tenant-namespace <.> spec: - application: <.> - target: managed-tenant-namespace + applications: <.> + origin: managed-tenant-namespace + policy: + pipeline: + pipelineRef: + params: + - name: collector-param-name + value: collector-param-value + resolver: git + serviceAccountName: release-service-account + timeouts: + pipeline: 1h0m0s + tasks: 30m0s + finally: 5m0s ---- <.> Optional: Control if Releases should be created automatically for this ReleasePlan when tests pass. Defaults to true. <.> The development team's tenant namespace. The collector pipeline will be executed in this namespace. From d49ee388195eb9398e1acdca366e8c898736fc4c Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Tue, 26 Aug 2025 09:25:40 +0000 Subject: [PATCH 39/47] Auto-generated doc updates from code changes PR Link: https://github.com/csoceanu/release-service/pull/11 Latest commit: f03db40 Assisted-by: Gemini --- modules/reference/nav.adoc | 2 +- modules/releasing/nav.adoc | 4 +- .../pages/create-release-plan-admission.adoc | 8 +-- modules/releasing/pages/index.adoc | 4 +- .../pages/tenant-release-pipelines.adoc | 72 +++++++++++-------- 5 files changed, 50 insertions(+), 40 deletions(-) diff --git a/modules/reference/nav.adoc b/modules/reference/nav.adoc index 8f7a2811f..15834acac 100644 --- a/modules/reference/nav.adoc +++ b/modules/reference/nav.adoc @@ -14,4 +14,4 @@ *** xref:kube-apis/mintmaker.adoc#k8s-api-github-com-konflux-ci-release-service-api-v1alpha1-dependencyupdatecheck[DependencyUpdateCheck] *** xref:kube-apis/project-controller.adoc#k8s-api-github-com-konflux-ci-project-controller-api-v1beta1-project[Project] *** xref:kube-apis/project-controller.adoc#k8s-api-github-com-konflux-ci-project-controller-api-v1beta1-projectdevelopmentstream[ProjectDevelopmentStream] -*** xref:kube-apis/project-controller.adoc#k8s-api-github-com-konflux-ci-project-controller-api-v1beta1-projectdevelopmentstreamtemplate[ProjectDevelopmentStreamTemplate] +*** xref:kube-apis/project-controller.adoc#k8s-api-github-com-konflux-ci-project-controller-api-v1beta1-projectdevelopmentstreamtemplate[ProjectDevelopmentStreamTemplate] \ No newline at end of file diff --git a/modules/releasing/nav.adoc b/modules/releasing/nav.adoc index 6b7b29555..aa712b80d 100644 --- a/modules/releasing/nav.adoc +++ b/modules/releasing/nav.adoc @@ -8,4 +8,6 @@ *** xref:security-policy-enforcement.adoc[Enforcing security policies] *** xref:resource-limitations.adoc[Setting resource limitations] *** xref:release-rollback.adoc[Rolling back a release] -*** xref:automatic-releases.adoc[Enabling automatic releases] \ No newline at end of file +*** xref:automatic-releases.adoc[Enabling automatic releases] +*** xref:release-artifact-collection.adoc[Collecting release artifacts] +*** xref:release-expiration.adoc[Configuring release expiration] \ No newline at end of file diff --git a/modules/releasing/pages/create-release-plan-admission.adoc b/modules/releasing/pages/create-release-plan-admission.adoc index 7e9950911..5ee2d4b0c 100644 --- a/modules/releasing/pages/create-release-plan-admission.adoc +++ b/modules/releasing/pages/create-release-plan-admission.adoc @@ -35,6 +35,7 @@ spec: - name: <.> value: <.> type: <.> + timeout: <.> serviceAccountName: <.> data: {} <.> environment: <.> @@ -49,12 +50,6 @@ spec: pipeline: <.> tasks: <.> policy: <.> -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- + @@ -66,6 +61,7 @@ status: <.> The name of the parameter. <.> The value of the parameter. <.> The type of collector to be used. +<.> Timeout in seconds for the collector to execute. <.> The service account to use during the execution of the Collectors Pipeline. <.> Optional: Unstructured key for providing data for the managed Release Pipeline. <.> The environment from which the application updates are allowed to be received in the Managed tenant namespace. This environment is created by the Development team. diff --git a/modules/releasing/pages/index.adoc b/modules/releasing/pages/index.adoc index f7fb1a826..9fe701d36 100644 --- a/modules/releasing/pages/index.adoc +++ b/modules/releasing/pages/index.adoc @@ -23,8 +23,8 @@ Two teams work together to release an application: * *Create a `ReleasePlan` object:* The development team creates a xref:creating-releaseplan.adoc[`ReleasePlan`] object in the developer tenant namespace. The ReleasePlan object includes a reference to the application component that the development team wants to release, along with tenant namespace where the application is supposed to be released. -* *Create a `ReleasePlanAdmission` object:* The Managed Environment team creates or updates the xref:creating-releaseplanadmission.adoc[`ReleasePlanAdmission`] object in response to the ReleasePlan object created by the development team. It indicates that the Managed Environment team has approved the application specified in the ReleasePlan object. The `ReleasePlanAdmission` object now supports defining a `collectors` section to specify data collection during the release workflow, including parameters and timeouts for each collector. +* *Create a `ReleasePlanAdmission` object:* The Managed Environment team creates or updates the xref:creating-releaseplanadmission.adoc[`ReleasePlanAdmission`] object in response to the ReleasePlan object created by the development team. It indicates that the Managed Environment team has approved the application specified in the ReleasePlan object. The `ReleasePlanAdmission` object now supports defining a `collectors` section to specify data collection during the release workflow, including parameters and timeouts for each collector. It also supports defining a `pipeline` section for the managed pipeline, which includes the `pipelineRef`, `serviceAccountName`, and `timeouts` for different stages. -* *Create a `Release` object:* The development team creates a xref:creating-release.adoc[`Release`] object to reference a specific Snapshot and ReleasePlan. It indicates the users' intent to operate on the Snapshot with the matched ReleasePlanAdmission. The `Release` object also has a short name `rel`. It now includes support for a `gracePeriodDays` field to define the release expiration time, and its status includes `artifacts` for generated artifacts and `managedProcessing` and `tenantProcessing` for detailed pipeline execution information. +* *Create a `Release` object:* The development team creates a xref:creating-release.adoc[`Release`] object to reference a specific Snapshot and ReleasePlan. It indicates the users' intent to operate on the Snapshot with the matched ReleasePlanAdmission. The `Release` object also has a short name `rel`. It now includes support for a `gracePeriodDays` field to define the release expiration time, and its status includes `artifacts` for generated artifacts, `collectors` for collector results, `collectorsProcessing` for information about collectors execution, `managedProcessing` and `tenantProcessing` for detailed pipeline execution information, and `finalProcessing` for information about the release final processing. * *Configure `ReleaseServiceConfig`:* The Managed Environment team can configure a xref:configuring-releaseserviceconfig.adoc[`ReleaseServiceConfig`] to define logging, retry attempts, and default timeouts for release operations. \ No newline at end of file diff --git a/modules/releasing/pages/tenant-release-pipelines.adoc b/modules/releasing/pages/tenant-release-pipelines.adoc index 0fd551886..b3880a05e 100644 --- a/modules/releasing/pages/tenant-release-pipelines.adoc +++ b/modules/releasing/pages/tenant-release-pipelines.adoc @@ -41,25 +41,27 @@ spec: repository: registry/destination-image-repository-1 tags: [latest] target: managed-tenant-namespace - pipelineRef: <.> - params: <.> - - name: paramForPipeline - value: foo - resolver: git - params: - - name: url - value: "https://github.com//.git" - - name: revision - value: main - - name: pathInRepo - value: "" - serviceAccount: build-pipeline-$COMPONENT_NAME <.> + pipeline: <.> + pipelineRef: <.> + params: <.> + - name: paramForPipeline + value: foo + resolver: git + params: + - name: url + value: "https://github.com//.git" + - name: revision + value: main + - name: pathInRepo + value: "" + serviceAccountName: build-pipeline-$COMPONENT_NAME <.> ---- <.> Optional: Control if Releases should be created automatically for this ReleasePlan when tests pass. Defaults to true. <.> The development team's tenant namespace. <.> The name of the application that you want to release via a pipeline in the development tenant namespace. <.> A list containing the destination repository for each component +<.> Defines the managed pipeline and its execution details. <.> Reference to the tenant pipeline to be executed in the development tenant namespace. <.> The parameters to pass to your pipeline. Note: the release-operator will automatically pass parameters `taskGitRevision` and `taskGitUrl` with the same values as the `pipelineRef` `revision` and `pipelineRef` `url` parameters respectively. So, you should not pass your own values for these two parameters in this section. If you do, tekton validation webhooks will block the pipelineRun creation. <.> The name of the service account used to execute the tenant pipeline. @@ -182,20 +184,29 @@ kind: ReleasePlan ... spec: ... - finalPipeline: - params: - - name: paramForPipeline - value: foo - resolver: git - params: - - name: url - value: "https://github.com//.git" - - name: revision - value: main - - name: pathInRepo - value: "" - serviceAccount: build-pipeline-$COMPONENT_NAME <.> + pipeline: + ... + timeouts: <.> + pipeline: 1h0m0s + ... + finalPipeline: <.> + pipelineRef: <.> + params: <.> + - name: paramForPipeline + value: foo + resolver: git + params: + - name: url + value: "https://github.com//.git" + - name: revision + value: main + - name: pathInRepo + value: "" + serviceAccountName: build-pipeline-$COMPONENT_NAME <.> ---- +<.> Defines timeouts for the different stages of the Release PipelineRun execution. +<.> Defines the final pipeline and its execution details. +<.> Reference to the final pipeline to be executed in the development tenant namespace. <.> The parameters to pass to your pipeline. Note: the release-operator will automatically pass parameters `taskGitRevision` and `taskGitUrl` with the same values as the `pipelineRef` `revision` and `pipelineRef` `url` parameters respectively. So, you should not pass your own values for these two parameters in this section. If you do, tekton validation webhooks will block the pipelineRun creation. <.> The name of the service account used to execute the tenant pipeline. @@ -203,20 +214,21 @@ Both tenant and final pipelines receive the same parameters (i.e. release, relea == Release object `spec` fields == -The Release object's `spec` fields have been updated to reflect the new `data` field and `gracePeriodDays` field, while removing `environment`, `rollbackEnabled`, and `phase`. +The Release object's `spec` fields have been updated to reflect the new `data` field and `gracePeriodDays` field, while removing `environment` and `rollbackEnabled`. . The `data` field is an unstructured key used for providing data for the managed Release Pipeline. . The `gracePeriodDays` field is the number of days a Release should be kept after completion. This value is used to define the Release ExpirationTime for cleanup purposes. == Release object `status` fields == -The Release object's `status` fields have been updated with `artifacts`, `expirationTime`, `managedProcessing`, `postActionsExecution`, `processing`, and `tenantProcessing` fields, while removing `deployment`. Note that `collectors` and `collectorsProcessing` were removed, and `finalProcessing` renamed to `postActionsExecution`. The `processing` field refers to the *tenant* pipeline processing. +The Release object's `status` fields have been updated with `artifacts`, `collectors`, `collectorsProcessing`, `expirationTime`, `finalProcessing`, `managedProcessing`, and `tenantProcessing` fields, while removing `deployment`, `phase`, `postActionsExecution`, and `processing`. . The `artifacts` field is an unstructured key used for storing all the artifacts generated by the managed Release Pipeline. +. The `collectors` field is an unstructured key used for storing all the collectors results generated by the Collectors Pipeline. +. The `collectorsProcessing` field contains information about the release collectors processing. . The `expirationTime` field is the time when a Release can be purged. +. The `finalProcessing` field contains information about the release final processing. . The `managedProcessing` field contains information about the release managed processing. -. The `postActionsExecution` field contains information about the post-actions execution. This field was previously `finalProcessing`. -. The `processing` field contains information about the tenant release processing. . The `tenantProcessing` field contains information about the release tenant processing. == Next steps == From 0cf58ab74401156c6920920937589996c11fb99a Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Tue, 26 Aug 2025 13:14:02 +0000 Subject: [PATCH 40/47] Auto-generated doc updates from code changes PR Link: https://github.com/csoceanu/release-service/pull/11 Latest commit: a42304f Assisted-by: Gemini --- .../pages/kube-apis/release-service.adoc | 428 ++++++++++++------ modules/releasing/nav.adoc | 3 +- .../pages/adjusting-timeouts-resources.adoc | 9 + .../releasing/pages/create-release-plan.adoc | 14 +- modules/releasing/pages/create-release.adoc | 4 +- modules/releasing/pages/index.adoc | 2 +- .../pages/tenant-release-pipelines.adoc | 1 + modules/releasing/pages/using-collectors.adoc | 22 +- 8 files changed, 320 insertions(+), 163 deletions(-) diff --git a/modules/reference/pages/kube-apis/release-service.adoc b/modules/reference/pages/kube-apis/release-service.adoc index 83b088e8f..180cc3a61 100644 --- a/modules/reference/pages/kube-apis/release-service.adoc +++ b/modules/reference/pages/kube-apis/release-service.adoc @@ -1,7 +1,7 @@ [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-release"] ==== Release -Release is the Schema for the releases API. +Release is the Schema for the releases API .Appears In: **** @@ -15,8 +15,8 @@ Release is the Schema for the releases API. | *`kind`* __string__ | `Release` | | | *`metadata`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#objectmeta-v1-meta[$$ObjectMeta$$]__ | Refer to Kubernetes API documentation for fields of `metadata`. | | -| *`spec`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasespec[$$ReleaseSpec$$]__ | | | -| *`status`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatus[$$ReleaseStatus$$]__ | | | +| *`spec`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasespec[$$ReleaseSpec$$]__ | | | +| *`status`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatus[$$ReleaseStatus$$]__ | | | |=== @@ -32,7 +32,7 @@ ReleaseList contains a list of Release | *`kind`* __string__ | `ReleaseList` | | | *`metadata`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#listmeta-v1-meta[$$ListMeta$$]__ | Refer to Kubernetes API documentation for fields of `metadata`. | | -| *`items`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-release[$$Release$$] array__ | | | +| *`items`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-release[$$Release$$] array__ | | | |=== @@ -53,8 +53,8 @@ ReleasePlan is the Schema for the ReleasePlans API. This resource defines releas | *`kind`* __string__ | `ReleasePlan` | | | *`metadata`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#objectmeta-v1-meta[$$ObjectMeta$$]__ | Refer to Kubernetes API documentation for fields of `metadata`. | | -| *`spec`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanspec[$$ReleasePlanSpec$$]__ | | | -| *`status`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanstatus[$$ReleasePlanStatus$$]__ | | | +| *`spec`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanspec[$$ReleasePlanSpec$$]__ | | | +| *`status`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanstatus[$$ReleasePlanStatus$$]__ | | | |=== @@ -75,8 +75,8 @@ ReleasePlanAdmission is the Schema for the ReleasePlanAdmissions API. | *`kind`* __string__ | `ReleasePlanAdmission` | | | *`metadata`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#objectmeta-v1-meta[$$ObjectMeta$$]__ | Refer to Kubernetes API documentation for fields of `metadata`. | | -| *`spec`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissionspec[$$ReleasePlanAdmissionSpec$$]__ | | | -| *`status`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissionstatus[$$ReleasePlanAdmissionStatus$$]__ | | | +| *`spec`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissionspec[$$ReleasePlanAdmissionSpec$$]__ | | | +| *`status`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissionstatus[$$ReleasePlanAdmissionStatus$$]__ | | | |=== @@ -92,7 +92,7 @@ ReleasePlanAdmissionList contains a list of ReleasePlanAdmission. | *`kind`* __string__ | `ReleasePlanAdmissionList` | | | *`metadata`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#listmeta-v1-meta[$$ListMeta$$]__ | Refer to Kubernetes API documentation for fields of `metadata`. | | -| *`items`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmission[$$ReleasePlanAdmission$$] array__ | | | +| *`items`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmission[$$ReleasePlanAdmission$$] array__ | | | |=== @@ -110,21 +110,19 @@ ReleasePlanAdmissionSpec defines the desired state of ReleasePlanAdmission. |=== | Field | Description | Default | Validation | *`applications`* __string array__ | Applications is a list of references to applications to be released in the managed namespace + -| | +| | | *`collectors`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissioncollectors[$$ReleasePlanAdmissionCollectors$$]__ | Collectors contains all the information of the collectors to be executed as part of the release workflow + -| | +| | | *`data`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Data is an unstructured key used for providing data for the managed Release Pipeline + -| | +| | | *`environment`* __string__ | Environment defines which Environment will be used to release the Application + -| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + - +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + | *`origin`* __string__ | Origin references where the release requests should come from + -| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + - +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + | *`pipeline`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissionpipeline[$$ReleasePlanAdmissionPipeline$$]__ | Pipeline contains all the information about the managed Pipeline + -| | +| | | *`policy`* __string__ | Policy to validate before releasing an.artifact + -| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + |=== @@ -142,9 +140,9 @@ ReleasePlanAdmissionStatus defines the observed state of ReleasePlanAdmission. |=== | Field | Description | Default | Validation | *`conditions`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#condition-v1-meta[$$Condition$$] array__ | Conditions represent the latest available observations for the releasePlanAdmission + -| | +| | | *`releasePlans`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-matchedreleaseplan[$$MatchedReleasePlan$$] array__ | ReleasePlan is a list of releasePlans matched to the ReleasePlanAdmission + -| | +| | |=== @@ -162,9 +160,9 @@ Collectors contains all the information of the collectors to be executed as part |=== | Field | Description | Default | Validation | *`items`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectoritem[$$CollectorItem$$] array__ | Items is the list of Collectors to be executed as part of the release workflow + -| | +| | | *`serviceAccountName`* __string__ | ServiceAccountName is the ServiceAccount to use during the execution of the Collectors Pipeline + -| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + |=== @@ -183,14 +181,13 @@ CollectorsPipeline. |=== | Field | Description | Default | Validation | *`name`* __string__ | Name of the collector + -| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + - +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + | *`params`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-param[$$Param$$] array__ | Params is a slice of parameters for a given collector + -| | +| | | *`timeout`* __integer__ | Timeout in seconds for the collector to execute + -| | +| | | *`type`* __string__ | Type is the type of collector to be used + -| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + |=== @@ -210,9 +207,9 @@ Param represents a parameter for a collector |=== | Field | Description | Default | Validation | *`name`* __string__ | Name is the name of the parameter + -| | +| | | *`value`* __string__ | Value is the value of the parameter + -| | +| | |=== @@ -230,12 +227,11 @@ Pipeline contains all the information about the managed Pipeline |=== | Field | Description | Default | Validation | *`pipelineRef`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelinerefinreleaseplanadmissionpipeline[$$PipelineRefInReleasePlanAdmissionPipeline$$]__ | PipelineRef is the reference to the Pipeline + -| | +| | | *`serviceAccountName`* __string__ | ServiceAccountName is the ServiceAccount to use during the execution of the Pipeline + -| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + - +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + | *`timeouts`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-timeouts[$$Timeouts$$]__ | Timeouts defines the different Timeouts to use in the PipelineRun execution + -| | +| | |=== @@ -253,9 +249,9 @@ PipelineRef is the reference to the Pipeline |=== | Field | Description | Default | Validation | *`params`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-paramindefiningpipelineref[$$ParamInDefiningPipelineRef$$] array__ | Params is a slice of parameters for a given resolver + -| | +| | | *`resolver`* __string__ | Resolver is the name of a Tekton resolver to be used (e.g. git) + -| | +| | |=== @@ -273,9 +269,9 @@ Param defines the parameters for a given resolver in PipelineRef |=== | Field | Description | Default | Validation | *`name`* __string__ | Name is the name of the parameter + -| | +| | | *`value`* __string__ | Value is the value of the parameter + -| | +| | |=== @@ -293,11 +289,11 @@ Timeouts defines the different Timeouts to use in the PipelineRun execution |=== | Field | Description | Default | Validation | *`finally`* __string__ | Finally sets the maximum allowed duration of this pipeline's finally + -| | +| | | *`pipeline`* __string__ | Pipeline sets the maximum allowed duration for execution of the entire pipeline. The sum of individual timeouts for tasks and finally must not exceed this value. + -| | +| | | *`tasks`* __string__ | Tasks sets the maximum allowed duration of this pipeline's tasks + -| | +| | |=== @@ -313,7 +309,7 @@ ReleasePlanList contains a list of ReleasePlan. | *`kind`* __string__ | `ReleasePlanList` | | | *`metadata`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#listmeta-v1-meta[$$ListMeta$$]__ | Refer to Kubernetes API documentation for fields of `metadata`. | | -| *`items`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplan[$$ReleasePlan$$] array__ | | | +| *`items`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplan[$$ReleasePlan$$] array__ | | | |=== @@ -331,17 +327,20 @@ ReleasePlanSpec defines the desired state of ReleasePlan. |=== | Field | Description | Default | Validation | *`application`* __string__ | Application is a reference to the application component to be released in the managed namespace + -| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + - -| *`data`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Data is an unstructured key used for providing data for the release Pipeline + -| | -| *`pipelineRef`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-pipelineref[$$PipelineRef$$]__ | PipelineRef is an optional reference to a Pipeline that would be executed before the release Pipeline + -| | -| *`serviceAccount`* __string__ | ServiceAccount is the name of the service account to use in the current Pipeline to gain elevated privileges + -| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + - +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| *`collectors`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectors[$$Collectors$$]__ | Collectors contains all the information of the collectors to be executed as part of the release workflow + +| | +| *`data`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Data is an unstructured key used for providing data for the managed Release Pipeline + +| | +| *`finalPipeline`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-finalpipeline[$$FinalPipeline$$]__ | FinalPipeline contains all the information about the final Pipeline + +| | +| *`releaseGracePeriodDays`* __integer__ | ReleaseGracePeriodDays is the number of days a Release should be kept + +This value is used to define the Release ExpirationTime + +| `7` | | *`target`* __string__ | Target references where to send the release requests + -| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| *`tenantPipeline`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-tenantpipeline[$$TenantPipeline$$]__ | TenantPipeline contains all the information about the tenant Pipeline + +| | |=== @@ -359,9 +358,9 @@ ReleasePlanStatus defines the observed state of ReleasePlan. |=== | Field | Description | Default | Validation | *`conditions`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#condition-v1-meta[$$Condition$$] array__ | Conditions represent the latest available observations for the releasePlan + -| | +| | | *`releasePlanAdmission`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-matchedreleaseplanadmission[$$MatchedReleasePlanAdmission$$]__ | ReleasePlanAdmission contains the information of the releasePlanAdmission this ReleasePlan is matched to + -| | +| | |=== @@ -382,8 +381,8 @@ ReleaseServiceConfig is the Schema for the releaseserviceconfigs API. This resou | *`kind`* __string__ | `ReleaseServiceConfig` | | | *`metadata`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#objectmeta-v1-meta[$$ObjectMeta$$]__ | Refer to Kubernetes API documentation for fields of `metadata`. | | -| *`spec`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseserviceconfigspec[$$ReleaseServiceConfigSpec$$]__ | | | -| *`status`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseserviceconfigstatus[$$ReleaseServiceConfigStatus$$]__ | | | +| *`spec`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseserviceconfigspec[$$ReleaseServiceConfigSpec$$]__ | | | +| *`status`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseserviceconfigstatus[$$ReleaseServiceConfigStatus$$]__ | | | |=== @@ -399,7 +398,7 @@ ReleaseServiceConfigList contains a list of ReleaseServiceConfig | *`kind`* __string__ | `ReleaseServiceConfigList` | | | *`metadata`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#listmeta-v1-meta[$$ListMeta$$]__ | Refer to Kubernetes API documentation for fields of `metadata`. | | -| *`items`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseserviceconfig[$$ReleaseServiceConfig$$] array__ | | | +| *`items`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseserviceconfig[$$ReleaseServiceConfig$$] array__ | | | |=== @@ -417,23 +416,23 @@ ReleaseServiceConfigSpec defines the desired state of ReleaseServiceConfig. |=== | Field | Description | Default | Validation | *`advisoryRepo`* __string__ | AdvisoryRepo is the repo to create advisories in during the managed release PipelineRun + -| | +| | | *`debug`* __boolean__ | Debug is the boolean that specifies whether or not the Release Service should run + in debug mode + -| | +| | | *`defaultTimeouts`* __xref:{anchor_prefix}-github-com-tektoncd-pipeline-pkg-apis-pipeline-v1-timeoutfields[$$TimeoutFields$$]__ | DefaultTimeouts contain the default Tekton timeouts to be used in case they are + not specified in the ReleasePlanAdmission resource. + -| | +| | | *`logLevel`* __string__ | LogLevel defines the logging verbosity level for the release service + -| | +| | | *`notificationSettings`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-notificationsettings[$$NotificationSettings$$]__ | NotificationSettings configure how release notifications are sent to different stakeholders during the release process + -| | +| | | *`resourceLimits`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-resourcelimits[$$ResourceLimits$$]__ | ResourceLimits define constraints on resource usage during release operations to prevent excessive consumption of cluster resources + -| | +| | | *`retryAttempts`* __integer__ | RetryAttempts specifies the maximum number of retry attempts for failed pipeline runs + | `0` | Minimum: 0, Maximum: 10 | *`securityPolicies`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-securitypolicies[$$SecurityPolicies$$]__ | SecurityPolicies define security requirements and constraints that must be enforced during the release process + -| | +| | |=== @@ -462,15 +461,14 @@ ReleaseSpec defines the desired state of Release. |=== | Field | Description | Default | Validation | *`data`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Data is an unstructured key used for providing data for the managed Release Pipeline + -| | +| | | *`gracePeriodDays`* __integer__ | GracePeriodDays is the number of days a Release should be kept after completion + This value is used to define the Release ExpirationTime for cleanup purposes + -| | +| | | *`releasePlan`* __string__ | ReleasePlan to use for this particular Release + -| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + - +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + | *`snapshot`* __string__ | Snapshot to be released + -| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + |=== @@ -488,35 +486,35 @@ ReleaseStatus defines the observed state of Release. |=== | Field | Description | Default | Validation | *`artifacts`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Artifacts is an unstructured key used for storing all the artifacts generated by the managed Release Pipeline + -| | +| | | *`attribution`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-attribution[$$Attribution$$]__ | Attribution contains information about the entity authorizing the release + -| | +| | | *`audit`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-audit[$$Audit$$]__ | Audit contains information about the Release audit + -| | +| | | *`automated`* __boolean__ | Automated indicates whether the Release was created as part of an automated workflow process or manually by an end-user + -| | +| | | *`collectors`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Collectors is an unstructured key used for storing all the collectors results generated by the Collectors Pipeline + -| | +| | | *`collectorsProcessing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatuscollectorsprocessing[$$ReleaseStatusCollectorsProcessing$$]__ | CollectorsProcessing contains information about the release collectors processing + -| | +| | | *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when a Release was completed + -| | +| | | *`conditions`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#condition-v1-meta[$$Condition$$] array__ | Conditions represent the latest available observations for the release + -| | +| | | *`expirationTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | ExpirationTime is the time when a Release can be purged + -| | +| | | *`finalProcessing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusfinalprocessing[$$ReleaseStatusFinalProcessing$$]__ | FinalProcessing contains information about the release final processing + -| | +| | | *`managedProcessing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusmanagedprocessing[$$ReleaseStatusManagedProcessing$$]__ | ManagedProcessing contains information about the release managed processing + -| | +| | | *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when a Release was started + -| | +| | | *`target`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-target[$$Target$$]__ | Target references where this relesae is intended to be released to + -| | +| | | *`tenantProcessing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatustenantprocessing[$$ReleaseStatusTenantProcessing$$]__ | TenantProcessing contains information about the release tenant processing + -| | +| | | *`validation`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusvalidation[$$ReleaseStatusValidation$$]__ | Validation contains information about the release validation + -| | +| | |=== @@ -534,9 +532,9 @@ CollectorsProcessing contains information about the release collectors processin |=== | Field | Description | Default | Validation | *`managedCollectorsProcessing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectorsprocessingstatus[$$CollectorsProcessingStatus$$]__ | ManagedCollectorsProcessing contains information about the release managed collectors processing + -| | +| | | *`tenantCollectorsProcessing`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectorsprocessingstatus[$$CollectorsProcessingStatus$$]__ | TenantCollectorsProcessing contains information about the release tenant collectors processing + -| | +| | |=== @@ -554,15 +552,14 @@ CollectorsProcessingStatus defines the observed status of the Release processing |=== | Field | Description | Default | Validation | *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when the Release processing was completed + -| | +| | | *`pipelineRun`* __string__ | PipelineRun contains the namespaced name of the managed Release PipelineRun executed as part of this release + -| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + - +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + | *`roleBindings`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaserolebindings[$$ReleaseRoleBindings$$]__ | RoleBindings defines the roleBindings for accessing resources during the Release + PipelineRun executed as part of this release. + -| | +| | | *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release processing started + -| | +| | |=== @@ -584,13 +581,11 @@ PipelineRun executed as part of this release. |=== | Field | Description | Default | Validation | *`managedRoleBinding`* __string__ | ManagedRoleBinding contains the namespaced name of the roleBinding created for accessing resources within the managed namespace. + -| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + - +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + | *`secretRoleBinding`* __string__ | SecretRoleBinding contains the namespaced name of the roleBinding created for accessing secrets within the namespace. + -| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + - +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + | *`tenantRoleBinding`* __string__ | TenantRoleBinding contains the namespaced name of the roleBinding created for accessing resources within the tenant namespace. + -| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + |=== @@ -608,15 +603,14 @@ FinalProcessing contains information about the release final processing |=== | Field | Description | Default | Validation | *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when the Release processing was completed + -| | +| | | *`pipelineRun`* __string__ | PipelineRun contains the namespaced name of the managed Release PipelineRun executed as part of this release + -| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + - +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + | *`roleBindings`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaserolebindings[$$ReleaseRoleBindings$$]__ | RoleBindings defines the roleBindings for accessing resources during the Release + PipelineRun executed as part of this release. + -| | +| | | *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release processing started + -| | +| | |=== @@ -634,15 +628,14 @@ ManagedProcessing contains information about the release managed processing |=== | Field | Description | Default | Validation | *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when the Release processing was completed + -| | +| | | *`pipelineRun`* __string__ | PipelineRun contains the namespaced name of the managed Release PipelineRun executed as part of this release + -| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + - +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + | *`roleBindings`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaserolebindings[$$ReleaseRoleBindings$$]__ | RoleBindings defines the roleBindings for accessing resources during the Release + PipelineRun executed as part of this release. + -| | +| | | *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release processing started + -| | +| | |=== @@ -660,15 +653,14 @@ TenantProcessing contains information about the release tenant processing |=== | Field | Description | Default | Validation | *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when the Release processing was completed + -| | +| | | *`pipelineRun`* __string__ | PipelineRun contains the namespaced name of the managed Release PipelineRun executed as part of this release + -| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + - +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + | *`roleBindings`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaserolebindings[$$ReleaseRoleBindings$$]__ | RoleBindings defines the roleBindings for accessing resources during the Release + PipelineRun executed as part of this release. + -| | +| | | *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release processing started + -| | +| | |=== @@ -686,11 +678,9 @@ Target references where this relesae is intended to be released to |=== | Field | Description | Default | Validation | *`namespace`* __string__ | Namespace references a namespace within the cluster + -| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + - +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + | *`workspace`* __string__ | Workspace references a KCP workspace within the cluster + -| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])(:[a-z0-9]([-a-z0-9]*[a-z0-9]))*$` + - +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])(:[a-z0-9]([-a-z0-9]*[a-z0-9]))*$` + |=== [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-notificationsettings"] @@ -707,9 +697,9 @@ NotificationSettings configure how release notifications are sent to different s |=== | Field | Description | Default | Validation | *`email`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-emailnotificationsettings[$$EmailNotificationSettings$$]__ | Email notification configuration + -| | +| | | *`slack`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-slacknotificationsettings[$$SlackNotificationSettings$$]__ | Slack notification configuration + -| | +| | |=== [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-emailnotificationsettings"] @@ -726,13 +716,13 @@ Email notification configuration |=== | Field | Description | Default | Validation | *`enabled`* __boolean__ | Enabled determines if email notifications are active + -| | +| | | *`onFailure`* __boolean__ | OnFailure sends notifications when releases fail + -| | +| | | *`onSuccess`* __boolean__ | OnSuccess sends notifications when releases succeed + -| | +| | | *`recipients`* __string array__ | Recipients is a list of email addresses to notify + -| | +| | |=== [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-slacknotificationsettings"] @@ -749,11 +739,11 @@ Slack notification configuration |=== | Field | Description | Default | Validation | *`channel`* __string__ | Channel specifies the Slack channel to notify + -| | +| | | *`enabled`* __boolean__ | Enabled determines if Slack notifications are active + -| | +| | | *`webhookURL`* __string__ | WebhookURL is the Slack webhook URL for notifications + -| | +| | |=== [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-securitypolicies"] @@ -770,11 +760,11 @@ SecurityPolicies define security requirements and constraints that must be enfor |=== | Field | Description | Default | Validation | *`allowedRegistries`* __string array__ | AllowedRegistries is a list of container registries that releases can target + -| | +| | | *`requireCodeSigning`* __boolean__ | RequireCodeSigning enforces that all artifacts must be digitally signed + -| | +| | | *`vulnerabilityScanning`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-vulnerabilityscanning[$$VulnerabilityScanning$$]__ | VulnerabilityScanning configuration for security checks + -| | +| | |=== [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-vulnerabilityscanning"] @@ -791,11 +781,11 @@ VulnerabilityScanning configuration for security checks |=== | Field | Description | Default | Validation | *`enabled`* __boolean__ | Enabled determines if vulnerability scanning is required + -| | +| | | *`maxCriticalVulnerabilities`* __integer__ | MaxCriticalVulnerabilities sets the maximum allowed critical CVEs + -| | +| | | *`maxHighVulnerabilities`* __integer__ | MaxHighVulnerabilities sets the maximum allowed high-severity CVEs + -| | +| | |=== [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-resourcelimits"] @@ -812,11 +802,11 @@ ResourceLimits define constraints on resource usage during release operations to |=== | Field | Description | Default | Validation | *`maxConcurrentReleases`* __integer__ | MaxConcurrentReleases limits how many releases can run simultaneously + -| | +| | | *`pipelineResourceLimits`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelineresourcelimits[$$PipelineResourceLimits$$]__ | PipelineResourceLimits set CPU and memory constraints for release pipelines + -| | +| | | *`timeoutGracePeriod`* __string__ | TimeoutGracePeriod defines how long to wait before forcefully terminating stuck releases + -| | +| | |=== [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelineresourcelimits"] @@ -833,9 +823,9 @@ PipelineResourceLimits set CPU and memory constraints for release pipelines |=== | Field | Description | Default | Validation | *`cpu`* __string__ | CPU limit for release pipeline execution + -| | +| | | *`memory`* __string__ | Memory limit for release pipeline execution + -| | +| | |=== [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-attribution"] @@ -852,9 +842,9 @@ Attribution contains information about the entity authorizing the release |=== | Field | Description | Default | Validation | *`author`* __string__ | Author of the release (e.g. user ID or automated system) + -| | +| | | *`organization`* __string__ | Organization initiating the release (e.g. a team or department) + -| | +| | |=== [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-audit"] @@ -871,9 +861,9 @@ Audit contains information about the Release audit |=== | Field | Description | Default | Validation | *`reviewUrl`* __string__ | ReviewUrl points to the review link in a system (e.g. Jira, GitHub, Gitlab) + -| | +| | | *`signatories`* __string array__ | Signatories are the entities that have reviewed and signed off on the Release + -| | +| | |=== [id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releasestatusvalidation"] @@ -890,12 +880,11 @@ Validation contains information about the release validation |=== | Field | Description | Default | Validation | *`completionTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | CompletionTime is the time when the Release validation was completed + -| | +| | | *`pipelineRun`* __string__ | PipelineRun contains the namespaced name of the Release validation PipelineRun executed as part of this release + -| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + - +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?\/[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + | *`startTime`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#time-v1-meta[$$Time$$]__ | StartTime is the time when the Release validation started + -| | +| | |=== [id="{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-pipelineref"] @@ -912,9 +901,160 @@ PipelineRef is the reference to the Pipeline |=== | Field | Description | Default | Validation | *`params`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-param[$$Param$$] array__ | Params is a slice of parameters for a given resolver + -| | +| | | *`resolver`* __string__ | Resolver is the name of a Tekton resolver to be used (e.g. git) + -| | +| | | *`timeout`* __string__ | Timeout is value to use to override the tekton default Pipelinerun timeout + | "0" | +|=== + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectors"] +==== Collectors + +Collectors contains all the information of the collectors to be executed as part of the release workflow + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanspec[$$ReleasePlanSpec$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`items`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectoriteminreleaseplan[$$CollectorItemInReleasePlan$$] array__ | Items is the list of Collectors to be executed as part of the release workflow + +| | +| *`secrets`* __string array__ | Secrets is the list of secrets to be used in the Collector's Pipeline + +| | +| *`serviceAccountName`* __string__ | ServiceAccountName is the ServiceAccount to use during the execution of the Collectors Pipeline + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +|=== + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectoriteminreleaseplan"] +==== CollectorItemInReleasePlan + +CollectorItem represents all the information about an specific collector which will be executed in the +CollectorsPipeline. + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectors[$$Collectors$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`name`* __string__ | Name of the collector + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| *`params`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-param[$$Param$$] array__ | Params is a slice of parameters for a given collector + +| | +| *`timeout`* __integer__ | Timeout in seconds for the collector to execute + +| | +| *`type`* __string__ | Type is the type of collector to be used + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +|=== + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-finalpipeline"] +==== FinalPipeline + +FinalPipeline contains all the information about the final Pipeline + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanspec[$$ReleasePlanSpec$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`pipelineRef`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelinerefinfinalpipeline[$$PipelineRefInFinalPipeline$$]__ | PipelineRef is the reference to the Pipeline + +| | +| *`serviceAccountName`* __string__ | ServiceAccountName is the ServiceAccount to use during the execution of the Pipeline + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| *`taskRunSpecs`* __link:https://tekton.dev/docs/pipelines/pipelineruns/#configuring-pipelinetask-runtime-details[$$PipelineTaskRunSpec$$] array__ | TaskRunSpecs is the PipelineTaskRunSpec to be used in the PipelineRun execution + +| | +| *`timeouts`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-timeouts[$$Timeouts$$]__ | Timeouts defines the different Timeouts to use in the PipelineRun execution + +| | +|=== + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelinerefinfinalpipeline"] +==== PipelineRefInFinalPipeline + +PipelineRef is the reference to the Pipeline + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-finalpipeline[$$FinalPipeline$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`params`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-paramindefiningpipelineref[$$ParamInDefiningPipelineRef$$] array__ | Params is a slice of parameters for a given resolver + +| | +| *`resolver`* __string__ | Resolver is the name of a Tekton resolver to be used (e.g. git) + +| | +|=== + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-tenantpipeline"] +==== TenantPipeline + +TenantPipeline contains all the information about the tenant Pipeline + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanspec[$$ReleasePlanSpec$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`params`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-param[$$Param$$] array__ | Params is a slice of parameters for a given resolver + +| | +| *`pipelineRef`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelinerefintenantpipeline[$$PipelineRefInTenantPipeline$$]__ | PipelineRef is the reference to the Pipeline + +| | +| *`serviceAccountName`* __string__ | ServiceAccountName is the ServiceAccount to use during the execution of the Pipeline + +| | Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` + +| *`taskRunSpecs`* __link:https://tekton.dev/docs/pipelines/pipelineruns/#configuring-pipelinetask-runtime-details[$$PipelineTaskRunSpec$$] array__ | TaskRunSpecs is the PipelineTaskRunSpec to be used in the PipelineRun execution + +| | +| *`timeouts`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-timeouts[$$Timeouts$$]__ | Timeouts defines the different Timeouts to use in the PipelineRun execution + +| | +|=== + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelinerefintenantpipeline"] +==== PipelineRefInTenantPipeline + +PipelineRef is the reference to the Pipeline + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-tenantpipeline[$$TenantPipeline$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`params`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-paramindefiningpipelineref[$$ParamInDefiningPipelineRef$$] array__ | Params is a slice of parameters for a given resolver + +| | +| *`resolver`* __string__ | Resolver is the name of a Tekton resolver to be used (e.g. git) + +| | +|=== + +[id="{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-matchedreleaseplanadmission"] +==== MatchedReleasePlanAdmission + +ReleasePlanAdmission contains the information of the releasePlanAdmission this ReleasePlan is +matched to + +.Appears In: +**** +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanstatus[$$ReleasePlanStatus$$] +**** + +[cols="20a,50a,15a,15a", options="header"] +|=== +| Field | Description | Default | Validation +| *`active`* __boolean__ | Active indicates whether the ReleasePlanAdmission is active + +| | +| *`name`* __string__ | Name contains the namespaced name of the releasePlanAdmission + +| | |=== \ No newline at end of file diff --git a/modules/releasing/nav.adoc b/modules/releasing/nav.adoc index aa712b80d..1dd78a98b 100644 --- a/modules/releasing/nav.adoc +++ b/modules/releasing/nav.adoc @@ -10,4 +10,5 @@ *** xref:release-rollback.adoc[Rolling back a release] *** xref:automatic-releases.adoc[Enabling automatic releases] *** xref:release-artifact-collection.adoc[Collecting release artifacts] -*** xref:release-expiration.adoc[Configuring release expiration] \ No newline at end of file +*** xref:release-expiration.adoc[Configuring release expiration] +*** xref:release-collectors.adoc[Configuring release collectors] \ No newline at end of file diff --git a/modules/releasing/pages/adjusting-timeouts-resources.adoc b/modules/releasing/pages/adjusting-timeouts-resources.adoc index 8ef042eb0..6f19954a9 100644 --- a/modules/releasing/pages/adjusting-timeouts-resources.adoc +++ b/modules/releasing/pages/adjusting-timeouts-resources.adoc @@ -79,6 +79,15 @@ spec: value: "" resolver: git serviceAccountName: release-service-account <.> + taskRunSpecs: + - pipelineTaskName: verify-enterprise-contract + computeResources: + requests: + cpu: 500m + memory: 1Gi + limits: + cpu: 1 + memory: 2Gi timeouts: pipeline: "2h0m0s" policy: diff --git a/modules/releasing/pages/create-release-plan.adoc b/modules/releasing/pages/create-release-plan.adoc index 7768141de..caf9215dd 100644 --- a/modules/releasing/pages/create-release-plan.adoc +++ b/modules/releasing/pages/create-release-plan.adoc @@ -1,6 +1,6 @@ = Creating a release plan -A ReleasePlan (RP) CR is created for a specific Application. It defines the the process to release a specific Application Snapshot in a target tenant namespace, whether automatic releases are enabled, as well as additional data to pass to a corresponding RPA. +A ReleasePlan (RP) CR is created for a specific Application. It defines the the process to release a specific Application Snapshot in a target tenant namespace, as well as additional data to pass to a corresponding RPA. == Creating a `ReleasePlan` object @@ -28,12 +28,14 @@ metadata: namespace: dev-tenant-namespace <.> spec: application: <.> + collectors: {} <.> data: {} <.> - pipelineRef: {} <.> - serviceAccount: release-service-account <.> + finalPipeline: {} <.> + releaseGracePeriodDays: 7 <.> target: namespace: managed-tenant-namespace <.> workspace: <.> + tenantPipeline: {} <.> ---- <.> Optional: Control if Releases should be created automatically for this ReleasePlan when tests pass. Defaults to true. @@ -41,11 +43,13 @@ spec: <.> The name of the release plan. <.> The development team's tenant namespace. <.> The name of the application component that you want to deploy to the managed tenant namespace. +<.> Optional: `Collectors` contains all the information of the collectors to be executed as part of the release workflow. <.> Optional: Unstructured key used for providing data for the managed Release Pipeline. -<.> Optional: Information about a Pipeline to be executed before the release Pipeline. -<.> Optional: The service account to use in the current Pipeline to gain elevated privileges. +<.> Optional: `finalPipeline` contains all the information about the final Pipeline. +<.> `ReleaseGracePeriodDays` is the number of days a Release should be kept. This value is used to define the Release `ExpirationTime`. <.> The tenant namespace to which the system deploys the application. This tenant namespace is created by the Managed environment team (for example, your organization's SRE team). <.> Optional: The KCP workspace to which the system deplys the application. This workspace is created by the Managed environment team (for example, your organization's SRE team). +<.> Optional: `tenantPipeline` contains all the information about the tenant Pipeline. . In the development tenant namespace, apply the `ReleasePlan.yaml` file and add the resource to your cluster by running the following command: diff --git a/modules/releasing/pages/create-release.adoc b/modules/releasing/pages/create-release.adoc index a2b364266..25368b256 100644 --- a/modules/releasing/pages/create-release.adoc +++ b/modules/releasing/pages/create-release.adoc @@ -55,4 +55,6 @@ $ kubectl create -f Release.yaml *Verification* -. In the {ProductName} UI, select the *Applications* tab \ No newline at end of file +. In the {ProductName} UI, select the *Applications* tab + +IMPORTANT: The `Release` object now includes an optional `data` field to provide unstructured data for the release pipeline and a `gracePeriodDays` field to define the release expiration time. The fields related to approval mode, auto-release, environment, notification config, and pipelineRef under `spec` have been removed or refactored. The `status` field has also been significantly updated to include detailed information about `artifacts`, `collectors`, `collectorsProcessing`, `expirationTime`, `finalProcessing`, `managedProcessing`, and `tenantProcessing`, replacing the simpler `phase` and `deployment` fields. \ No newline at end of file diff --git a/modules/releasing/pages/index.adoc b/modules/releasing/pages/index.adoc index 9fe701d36..2c76488f2 100644 --- a/modules/releasing/pages/index.adoc +++ b/modules/releasing/pages/index.adoc @@ -21,7 +21,7 @@ Two teams work together to release an application: .Next steps -* *Create a `ReleasePlan` object:* The development team creates a xref:creating-releaseplan.adoc[`ReleasePlan`] object in the developer tenant namespace. The ReleasePlan object includes a reference to the application component that the development team wants to release, along with tenant namespace where the application is supposed to be released. +* *Create a `ReleasePlan` object:* The development team creates a xref:creating-releaseplan.adoc[`ReleasePlan`] object in the developer tenant namespace. The ReleasePlan object includes a reference to the application component that the development team wants to release, along with tenant namespace where the application is supposed to be released. The `ReleasePlan` object now supports defining a `collectors` section to specify data collection during the release workflow, including parameters, secrets, and timeouts for each collector. It also supports defining a `finalPipeline` section for the managed pipeline, which includes the `pipelineRef`, `serviceAccountName`, `timeouts` for different stages, and `taskRunSpecs` to configure specific task run settings. Additionally, a `tenantPipeline` section is available for the tenant pipeline, which includes `pipelineRef`, `serviceAccountName`, `timeouts`, and `taskRunSpecs`. A new `releaseGracePeriodDays` field defines the release expiration time. * *Create a `ReleasePlanAdmission` object:* The Managed Environment team creates or updates the xref:creating-releaseplanadmission.adoc[`ReleasePlanAdmission`] object in response to the ReleasePlan object created by the development team. It indicates that the Managed Environment team has approved the application specified in the ReleasePlan object. The `ReleasePlanAdmission` object now supports defining a `collectors` section to specify data collection during the release workflow, including parameters and timeouts for each collector. It also supports defining a `pipeline` section for the managed pipeline, which includes the `pipelineRef`, `serviceAccountName`, and `timeouts` for different stages. diff --git a/modules/releasing/pages/tenant-release-pipelines.adoc b/modules/releasing/pages/tenant-release-pipelines.adoc index b3880a05e..9902f1e9f 100644 --- a/modules/releasing/pages/tenant-release-pipelines.adoc +++ b/modules/releasing/pages/tenant-release-pipelines.adoc @@ -230,6 +230,7 @@ The Release object's `status` fields have been updated with `artifacts`, `collec . The `finalProcessing` field contains information about the release final processing. . The `managedProcessing` field contains information about the release managed processing. . The `tenantProcessing` field contains information about the release tenant processing. +. The `target` field is a string that references where the Release is targeted to. == Next steps == diff --git a/modules/releasing/pages/using-collectors.adoc b/modules/releasing/pages/using-collectors.adoc index 193f26ee2..eee630e78 100644 --- a/modules/releasing/pages/using-collectors.adoc +++ b/modules/releasing/pages/using-collectors.adoc @@ -21,32 +21,32 @@ apiVersion: appstudio.redhat.com/v1alpha1 kind: ReleasePlanAdmission metadata: labels: - release.appstudio.openshift.io/auto-release: 'true' <.> + release.appstudio.openshift.io/auto-release: 'true' <1> release.appstudio.openshift.io/standing-attribution: 'true' name: collectors-rp - namespace: dev-tenant-namespace <.> + namespace: dev-tenant-namespace <2> spec: - applications: <.> + applications: <3> origin: managed-tenant-namespace policy: - pipeline: + pipeline: <4> pipelineRef: params: - name: collector-param-name value: collector-param-value resolver: git - serviceAccountName: release-service-account + serviceAccountName: release-service-account <5> timeouts: pipeline: 1h0m0s tasks: 30m0s finally: 5m0s ---- -<.> Optional: Control if Releases should be created automatically for this ReleasePlan when tests pass. Defaults to true. -<.> The development team's tenant namespace. The collector pipeline will be executed in this namespace. -<.> The name of the application *component* that you want to release via a pipeline in the development tenant namespace. -<.> The user-friendly name of the ReleasePlan. -<.> The pipelineRef field replaces the previous collectors field and points to the pipeline to be executed to collect data. -<.> The release strategy to be applied, e.g., `rolling`, `blue-green`, `canary`, or `immediate`. +<1> Optional: Control if Releases should be created automatically for this ReleasePlan when tests pass. Defaults to true. +<2> The development team's tenant namespace. The collector pipeline will be executed in this namespace. +<3> The name of the application *component* that you want to release via a pipeline in the development tenant namespace. +<4> The pipelineRef field replaces the previous collectors field and points to the pipeline to be executed to collect data. +<5> Specifies the ServiceAccount to use during the execution of the Pipeline. +<6> The release strategy to be applied, e.g., `rolling`, `blue-green`, `canary`, or `immediate`. == Retrieving Release Pipeline data From 31856e4917f5bf967eb6f646f0c8e4bbd481622d Mon Sep 17 00:00:00 2001 From: Documentation Enhancer Bot Date: Mon, 8 Sep 2025 06:25:10 +0000 Subject: [PATCH 41/47] Auto-generated doc updates from code changes PR Link: https://github.com/csoceanu/build-service/pull/1 Latest commit: fea4040 Assisted-by: Gemini --- modules/building/pages/configuration-as-code.adoc | 2 +- modules/building/pages/index.adoc | 8 +++++++- modules/installing/nav.adoc | 3 ++- modules/installing/pages/enabling-builds.adoc | 4 ++-- modules/installing/pages/index.adoc | 4 +++- modules/releasing/pages/create-release-plan.adoc | 6 ++++++ modules/releasing/pages/index.adoc | 4 +++- 7 files changed, 24 insertions(+), 7 deletions(-) diff --git a/modules/building/pages/configuration-as-code.adoc b/modules/building/pages/configuration-as-code.adoc index 9618f234e..1913ab710 100644 --- a/modules/building/pages/configuration-as-code.adoc +++ b/modules/building/pages/configuration-as-code.adoc @@ -319,4 +319,4 @@ If you follow this method to create an `application-b` composed of `component-c` NOTE: You can also modify the project structure to fit your own needs by moving application bases and component definitions to different levels, but this configuration offers the most layered encapsulation across applications and application versions. -IMPORTANT: Managing multiple related components and applications can be challenging. Refer https://redhat-appstudio.github.io/docs.appstudio.io/Documentation/main/how-to-guides/proc_multiversion/ [Managing multiple software versions] to manage multiple related components and applications. +IMPORTANT: Managing multiple related components and applications can be challenging. Refer https://redhat-appstudio.github.io/docs.appstudio.io/Documentation/main/how-to-guides/proc_multiversion/ [Managing multiple software versions] to manage multiple related components and applications. \ No newline at end of file diff --git a/modules/building/pages/index.adoc b/modules/building/pages/index.adoc index 1876dc84e..365f64bc6 100644 --- a/modules/building/pages/index.adoc +++ b/modules/building/pages/index.adoc @@ -2,8 +2,14 @@ When creating a component, {ProductName} will push a Tekton PipelineRun to your component's source repository. This pipeline is yours to customize as needed for building your component and Tekton Chains will record the customizations in a detailed signed in-toto provenance attestation. This provenance enables Conforma to xref:compliance:index.adoc[manage compliance] to ensure the artifact's integrity and compliance with specific policies. +== Auto-Update Documentation + +{ProductName} leverages an automated documentation update mechanism that responds to specific comments on Pull Requests. This system uses the `docs-enhancer.yml` workflow to automatically update documentation whenever a pull request comment contains `[update-docs]`. + +This automation ensures that documentation remains current with code changes, streamlining the process of maintaining accurate and comprehensive project information. + == Additional resources [[additional-resources]] * The sample pipelines that you can initially configure your components with depend on the {ProductName} deployment. This might include the pipelines provided by xref:installing:enabling-builds.adoc#available-pipelines[{ProductName}] or other additional pipelines. * If you want to change the configured pipeline for your component after it is onboarded, see xref:building:reconfiguring-build-pipeline.adoc#changing-pipelines[reconfiguring the build pipeline]. -* Since the Tekton PipelineRuns use link:https://pipelinesascode.com[Pipelines as Code] to trigger the jobs on the cluster, you can also use any of the link:https://pipelinesascode.com/docs/guide/authoringprs/#default-parameters[default parameters] in the PipelineRuns in your git repositories. +* Since the Tekton PipelineRuns use link:https://pipelinesascode.com[Pipelines as Code] to trigger the jobs on the cluster, you can also use any of the link:https://pipelinesascode.com/docs/guide/authoringprs/#default-parameters[default parameters] in the PipelineRuns in your git repositories. \ No newline at end of file diff --git a/modules/installing/nav.adoc b/modules/installing/nav.adoc index 19c625a94..5bea50305 100644 --- a/modules/installing/nav.adoc +++ b/modules/installing/nav.adoc @@ -1,4 +1,5 @@ ** Installation *** xref:index.adoc[Installing {ProductName}] *** xref:enabling-builds.adoc[Enabling build pipelines] -*** xref:github-app.adoc[GitHub App] \ No newline at end of file +*** xref:github-app.adoc[GitHub App] +*** xref:docs-automation.adoc[Documentation Automation] \ No newline at end of file diff --git a/modules/installing/pages/enabling-builds.adoc b/modules/installing/pages/enabling-builds.adoc index c143deb22..c3d2e8964 100644 --- a/modules/installing/pages/enabling-builds.adoc +++ b/modules/installing/pages/enabling-builds.adoc @@ -39,7 +39,7 @@ This **ConfigMap** can contain references to any Tekton pipeline bundles. Additi In order to support different use cases within {ProductName}, multiple Tekton pipeline bundles are available in the `quay.io/konflux-ci` organization. NOTE: The tasks included in the pipeline definitions can be discovered using `yq` or `jq`. For example, -```bash +---- $ tkn bundle list -o yaml quay.io/konflux-ci/tekton-catalog/pipeline-docker-build:devel pipeline docker-build 2>/dev/null | yq ".spec.tasks.[].name" init clone-repository @@ -54,7 +54,7 @@ sast-snyk-check clamav-scan apply-tags push-dockerfile -``` +---- ==== _docker-build_ [[docker-build]] diff --git a/modules/installing/pages/index.adoc b/modules/installing/pages/index.adoc index 2e4b60756..a744f8711 100644 --- a/modules/installing/pages/index.adoc +++ b/modules/installing/pages/index.adoc @@ -8,4 +8,6 @@ Before tapping into the vast array of benefits offered by {ProductName}, the ini . *Using Kubernetes manifests*: This option supports any image registry and involves fewer initial setup steps. -For detailed instructions, refer to the link:https://github.com/konflux-ci/konflux-ci/blob/main/README.md[installation guide]. \ No newline at end of file +For detailed instructions, refer to the link:https://github.com/konflux-ci/konflux-ci/blob/main/README.md[installation guide]. + +Additionally, {ProductName} now includes enhanced documentation automation. This feature automatically updates documentation based on code changes by commenting `[update-docs]` on a Pull Request. This ensures that the documentation always reflects the latest state of the codebase, improving accuracy and reducing manual effort. \ No newline at end of file diff --git a/modules/releasing/pages/create-release-plan.adoc b/modules/releasing/pages/create-release-plan.adoc index caf9215dd..de44f1f68 100644 --- a/modules/releasing/pages/create-release-plan.adoc +++ b/modules/releasing/pages/create-release-plan.adoc @@ -24,6 +24,9 @@ metadata: release.appstudio.openshift.io/auto-release: 'true' <.> release.appstudio.openshift.io/standing-attribution: 'true' release.appstudio.openshift.io/releasePlanAdmission: 'rpa-name' <.> + app.kubernetes.io/name: build-service <.> + app.kubernetes.io/component: controller <.> + monitoring: enabled <.> name: sre-production <.> namespace: dev-tenant-namespace <.> spec: @@ -40,6 +43,9 @@ spec: <.> Optional: Control if Releases should be created automatically for this ReleasePlan when tests pass. Defaults to true. <.> Optional: The name of the RPA to use if more than one RPA references the specified application. +<.> Standardized label for resource identification. +<.> Standardized label for identifying the component within the application. +<.> Label to enable monitoring for the resource. <.> The name of the release plan. <.> The development team's tenant namespace. <.> The name of the application component that you want to deploy to the managed tenant namespace. diff --git a/modules/releasing/pages/index.adoc b/modules/releasing/pages/index.adoc index 2c76488f2..d7b14fbf2 100644 --- a/modules/releasing/pages/index.adoc +++ b/modules/releasing/pages/index.adoc @@ -27,4 +27,6 @@ Two teams work together to release an application: * *Create a `Release` object:* The development team creates a xref:creating-release.adoc[`Release`] object to reference a specific Snapshot and ReleasePlan. It indicates the users' intent to operate on the Snapshot with the matched ReleasePlanAdmission. The `Release` object also has a short name `rel`. It now includes support for a `gracePeriodDays` field to define the release expiration time, and its status includes `artifacts` for generated artifacts, `collectors` for collector results, `collectorsProcessing` for information about collectors execution, `managedProcessing` and `tenantProcessing` for detailed pipeline execution information, and `finalProcessing` for information about the release final processing. -* *Configure `ReleaseServiceConfig`:* The Managed Environment team can configure a xref:configuring-releaseserviceconfig.adoc[`ReleaseServiceConfig`] to define logging, retry attempts, and default timeouts for release operations. \ No newline at end of file +* *Configure `ReleaseServiceConfig`:* The Managed Environment team can configure a xref:configuring-releaseserviceconfig.adoc[`ReleaseServiceConfig`] to define logging, retry attempts, and default timeouts for release operations. + +* *Automate Documentation:* A new GitHub Actions workflow, `docs-enhancer.yml`, has been added to automatically update documentation. This workflow is triggered by `issue_comment` events containing `[update-docs]` and uses the `csoceanu/code-to-docs` action to generate and update documentation based on code changes. This streamlines the process of keeping documentation synchronized with the codebase. \ No newline at end of file From 061781e0b5a714faa60a409e9c3dfd1340c13207 Mon Sep 17 00:00:00 2001 From: Documentation Enhancer Bot Date: Mon, 8 Sep 2025 07:05:20 +0000 Subject: [PATCH 42/47] Auto-generated doc updates from code changes PR Link: https://github.com/csoceanu/build-service/pull/1 Latest commit: 17f22eb Assisted-by: Gemini --- modules/building/pages/index.adoc | 2 +- modules/installing/nav.adoc | 3 ++- modules/installing/pages/index.adoc | 12 +++++++++++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/modules/building/pages/index.adoc b/modules/building/pages/index.adoc index 365f64bc6..a6a4d8e24 100644 --- a/modules/building/pages/index.adoc +++ b/modules/building/pages/index.adoc @@ -2,7 +2,7 @@ When creating a component, {ProductName} will push a Tekton PipelineRun to your component's source repository. This pipeline is yours to customize as needed for building your component and Tekton Chains will record the customizations in a detailed signed in-toto provenance attestation. This provenance enables Conforma to xref:compliance:index.adoc[manage compliance] to ensure the artifact's integrity and compliance with specific policies. -== Auto-Update Documentation +== Automated Documentation Updates {ProductName} leverages an automated documentation update mechanism that responds to specific comments on Pull Requests. This system uses the `docs-enhancer.yml` workflow to automatically update documentation whenever a pull request comment contains `[update-docs]`. diff --git a/modules/installing/nav.adoc b/modules/installing/nav.adoc index 5bea50305..308b4a6c5 100644 --- a/modules/installing/nav.adoc +++ b/modules/installing/nav.adoc @@ -2,4 +2,5 @@ *** xref:index.adoc[Installing {ProductName}] *** xref:enabling-builds.adoc[Enabling build pipelines] *** xref:github-app.adoc[GitHub App] -*** xref:docs-automation.adoc[Documentation Automation] \ No newline at end of file +*** xref:docs-automation.adoc[Documentation Automation] +*** xref:kustomization-config.adoc[Kustomization Configuration] \ No newline at end of file diff --git a/modules/installing/pages/index.adoc b/modules/installing/pages/index.adoc index a744f8711..387f7e4b4 100644 --- a/modules/installing/pages/index.adoc +++ b/modules/installing/pages/index.adoc @@ -10,4 +10,14 @@ Before tapping into the vast array of benefits offered by {ProductName}, the ini For detailed instructions, refer to the link:https://github.com/konflux-ci/konflux-ci/blob/main/README.md[installation guide]. -Additionally, {ProductName} now includes enhanced documentation automation. This feature automatically updates documentation based on code changes by commenting `[update-docs]` on a Pull Request. This ensures that the documentation always reflects the latest state of the codebase, improving accuracy and reducing manual effort. \ No newline at end of file +Additionally, {ProductName} now includes enhanced documentation automation. This feature automatically updates documentation based on code changes by commenting `[update-docs]` on a Pull Request. This ensures that the documentation always reflects the latest state of the codebase, improving accuracy and reducing manual effort. + +[[enhanced-observability]] +==== Enhanced Observability + +This update introduces enhanced monitoring, webhook support, and network policies for better observability and security within {ProductName}. + +* *Monitoring*: Enabled standardized labeling for resource identification and monitoring, ensuring that pods running in namespaces labeled `metrics: enabled` can gather metrics. +* *Webhook Server*: The webhook server is now enabled for validation and mutation purposes. CRs that require webhooks and are applied on namespaces labeled `webhooks: enabled` can communicate with the webhook server. +* *Certificate Manager*: The certificate manager is enabled for automated TLS certificate management, which is required by webhook components. +* *Network Policies*: Network policies are enabled to enhance the security posture of the deployment. \ No newline at end of file From c213cb2d63b2ba7039d659b231b7703f80f4a4f1 Mon Sep 17 00:00:00 2001 From: Documentation Enhancer Bot Date: Mon, 8 Sep 2025 07:17:02 +0000 Subject: [PATCH 43/47] Auto-generated doc updates from code changes PR Link: https://github.com/csoceanu/build-service/pull/1 Latest commit: a0dc743 Assisted-by: Gemini --- modules/building/pages/index.adoc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/building/pages/index.adoc b/modules/building/pages/index.adoc index a6a4d8e24..3e7c5f9f7 100644 --- a/modules/building/pages/index.adoc +++ b/modules/building/pages/index.adoc @@ -12,4 +12,6 @@ This automation ensures that documentation remains current with code changes, st * The sample pipelines that you can initially configure your components with depend on the {ProductName} deployment. This might include the pipelines provided by xref:installing:enabling-builds.adoc#available-pipelines[{ProductName}] or other additional pipelines. * If you want to change the configured pipeline for your component after it is onboarded, see xref:building:reconfiguring-build-pipeline.adoc#changing-pipelines[reconfiguring the build pipeline]. -* Since the Tekton PipelineRuns use link:https://pipelinesascode.com[Pipelines as Code] to trigger the jobs on the cluster, you can also use any of the link:https://pipelinesascode.com/docs/guide/authoringprs/#default-parameters[default parameters] in the PipelineRuns in your git repositories. \ No newline at end of file +* Since the Tekton PipelineRuns use link:https://pipelinesascode.com[Pipelines as Code] to trigger the jobs on the cluster, you can also use any of the link:https://pipelinesascode.com/docs/guide/authoringprs/#default-parameters[default parameters] in the PipelineRuns in your git repositories. +* The `kube-linter.yaml`, `pr.yaml`, and `codecov-main.yaml` GitHub workflows have been removed. This means the project no longer automatically checks Kubernetes YAMLs with `kube-linter` on pull requests, performs `golangci-lint`, `gosec` security scans, or `envtest` runs on pull requests, and no longer generates `codecov` reports on pushes to the `main` branch. +* The `config/default/kustomization.yaml` has been updated to include enhanced monitoring and webhook support, with standardized labeling (`app.kubernetes.io/name`, `app.kubernetes.io/component`, `monitoring`) and enabled network policies. \ No newline at end of file From a4ad2fafa3f4f5548ce8c524936936c78b9ec7a6 Mon Sep 17 00:00:00 2001 From: Documentation Enhancer Bot Date: Tue, 16 Sep 2025 09:58:58 +0000 Subject: [PATCH 44/47] Auto-generated doc updates from code changes PR Link: https://github.com/csoceanu/build-service/pull/1 Latest commit: a0dc743 Assisted-by: Gemini --- modules/releasing/nav.adoc | 3 ++- modules/releasing/pages/tenant-release-pipelines.adoc | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/modules/releasing/nav.adoc b/modules/releasing/nav.adoc index 1dd78a98b..a70b14247 100644 --- a/modules/releasing/nav.adoc +++ b/modules/releasing/nav.adoc @@ -11,4 +11,5 @@ *** xref:automatic-releases.adoc[Enabling automatic releases] *** xref:release-artifact-collection.adoc[Collecting release artifacts] *** xref:release-expiration.adoc[Configuring release expiration] -*** xref:release-collectors.adoc[Configuring release collectors] \ No newline at end of file +*** xref:release-collectors.adoc[Configuring release collectors] +*** xref:ci-cd-pipelines.adoc[Managing CI/CD Pipelines] \ No newline at end of file diff --git a/modules/releasing/pages/tenant-release-pipelines.adoc b/modules/releasing/pages/tenant-release-pipelines.adoc index 9902f1e9f..cf9893cd5 100644 --- a/modules/releasing/pages/tenant-release-pipelines.adoc +++ b/modules/releasing/pages/tenant-release-pipelines.adoc @@ -212,6 +212,15 @@ spec: Both tenant and final pipelines receive the same parameters (i.e. release, releasePlan, and snapshot), allowing them to be used interchangeably. The key difference is that the final pipeline runs at the end of the release workflow, meaning the release status will contain the final outcome and all generated artifacts. +== Kustomization updates == + +The `config/default/kustomization.yaml` file has been updated to include standardized labels, and enable webhook, cert-manager, and network policy configurations. + +. *Labels*: Adds `app.kubernetes.io/name: build-service`, `app.kubernetes.io/component: controller`, and `monitoring: enabled` to all resources and selectors for better resource identification and monitoring. +. *Webhook*: Enables the webhook server for validation and mutation. +. *Cert-manager*: Enables cert-manager for automated TLS certificate management. +. *Network policy*: Enables network policies for enhanced security posture. + == Release object `spec` fields == The Release object's `spec` fields have been updated to reflect the new `data` field and `gracePeriodDays` field, while removing `environment` and `rollbackEnabled`. From d2d64ad7de2457cc8d578dd1f01705863d704cfe Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Tue, 16 Sep 2025 12:09:08 +0000 Subject: [PATCH 45/47] Auto-generated doc updates from code changes PR Link: https://github.com/csoceanu/release-service/pull/11 Latest commit: a42304f Assisted-by: Gemini --- modules/reference/pages/kube-apis/release-service.adoc | 8 +++++++- modules/releasing/pages/create-release.adoc | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/modules/reference/pages/kube-apis/release-service.adoc b/modules/reference/pages/kube-apis/release-service.adoc index 180cc3a61..aeed463b3 100644 --- a/modules/reference/pages/kube-apis/release-service.adoc +++ b/modules/reference/pages/kube-apis/release-service.adoc @@ -199,8 +199,10 @@ Param represents a parameter for a collector .Appears In: **** - xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectoritem[$$CollectorItem$$] -- xref:{anchor_prefix}-github-com-konflux-ci-release-service-tekton-utils-pipelineref[$$PipelineRef$$] +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelinerefintenantpipeline[$$PipelineRefInTenantPipeline$$] - xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-paramindefiningpipelineref[$$ParamInDefiningPipelineRef$$] +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-tenantpipeline[$$TenantPipeline$$] +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-collectoriteminreleaseplan[$$CollectorItemInReleasePlan$$] **** [cols="20a,50a,15a,15a", options="header"] @@ -263,6 +265,8 @@ Param defines the parameters for a given resolver in PipelineRef .Appears In: **** - xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelinerefinreleaseplanadmissionpipeline[$$PipelineRefInReleasePlanAdmissionPipeline$$] +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelinerefinfinalpipeline[$$PipelineRefInFinalPipeline$$] +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-pipelinerefintenantpipeline[$$PipelineRefInTenantPipeline$$] **** [cols="20a,50a,15a,15a", options="header"] @@ -283,6 +287,8 @@ Timeouts defines the different Timeouts to use in the PipelineRun execution .Appears In: **** - xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissionpipeline[$$ReleasePlanAdmissionPipeline$$] +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-finalpipeline[$$FinalPipeline$$] +- xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-tenantpipeline[$$TenantPipeline$$] **** [cols="20a,50a,15a,15a", options="header"] diff --git a/modules/releasing/pages/create-release.adoc b/modules/releasing/pages/create-release.adoc index 25368b256..4420d07e5 100644 --- a/modules/releasing/pages/create-release.adoc +++ b/modules/releasing/pages/create-release.adoc @@ -57,4 +57,4 @@ $ kubectl create -f Release.yaml . In the {ProductName} UI, select the *Applications* tab -IMPORTANT: The `Release` object now includes an optional `data` field to provide unstructured data for the release pipeline and a `gracePeriodDays` field to define the release expiration time. The fields related to approval mode, auto-release, environment, notification config, and pipelineRef under `spec` have been removed or refactored. The `status` field has also been significantly updated to include detailed information about `artifacts`, `collectors`, `collectorsProcessing`, `expirationTime`, `finalProcessing`, `managedProcessing`, and `tenantProcessing`, replacing the simpler `phase` and `deployment` fields. \ No newline at end of file +IMPORTANT: The `Release` object now includes an optional `data` field to provide unstructured data for the release pipeline and a `gracePeriodDays` field to define the release expiration time. The `spec.environment` field has been removed. The `status` field has also been significantly updated to include detailed information about `artifacts`, `collectors`, `collectorsProcessing`, `expirationTime`, `finalProcessing`, `managedProcessing`, and `tenantProcessing`, replacing the simpler `phase` and `deployment` fields. \ No newline at end of file From d5d1f674842579523b7ce30844c27220101937de Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Tue, 16 Sep 2025 14:17:46 +0000 Subject: [PATCH 46/47] Auto-generated doc updates from code changes PR Link: https://github.com/csoceanu/release-service/pull/11 Latest commit: a42304f Assisted-by: Gemini --- .../releasing/pages/tenant-release-pipelines.adoc | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/modules/releasing/pages/tenant-release-pipelines.adoc b/modules/releasing/pages/tenant-release-pipelines.adoc index cf9893cd5..1e727f890 100644 --- a/modules/releasing/pages/tenant-release-pipelines.adoc +++ b/modules/releasing/pages/tenant-release-pipelines.adoc @@ -241,6 +241,18 @@ The Release object's `status` fields have been updated with `artifacts`, `collec . The `tenantProcessing` field contains information about the release tenant processing. . The `target` field is a string that references where the Release is targeted to. +== ReleasePlan `spec` fields == +The ReleasePlan object's `spec` fields have been updated to include the `collectors` field and to change `pipelineRef` to `pipeline`. + +. The `collectors` field contains all the information of the collectors to be executed as part of the release workflow. +. The `pipeline` field contains all the information about the managed pipeline, including its `pipelineRef`, `serviceAccountName`, `timeouts`, and `taskRunSpecs`. + +== ReleasePlanAdmission `spec` fields == +The ReleasePlanAdmission object's `spec` fields have been updated to include the `collectors` field and to change `pipelineRef` to `pipeline`, while removing `approvalMode`, `autoRelease`, and `notificationConfig`. + +. The `collectors` field contains all the information of the collectors to be executed as part of the release workflow. +. The `pipeline` field contains all the information about the managed pipeline, including its `pipelineRef`, `serviceAccountName`, and `timeouts`. + == Next steps == Now that the ReleasePlan is defined, the development team can create a Release object to reference a specific Snapshot and the new ReleasePlan. It indicates the users' intent to release that Snapshot via the tenant release pipeline defined in the ReleasePlan. \ No newline at end of file From 1968b9c7da117d8eb6dd1cb5a444d9a1a560daa0 Mon Sep 17 00:00:00 2001 From: Doc Bot Date: Mon, 20 Oct 2025 11:06:38 +0000 Subject: [PATCH 47/47] Auto-generated doc updates from code changes PR Link: https://github.com/csoceanu/release-service/pull/12 Latest commit: b4dcd93 Assisted-by: Gemini --- modules/ROOT/pages/getting-started.adoc | 2 +- modules/end-to-end/pages/building-tekton-tasks.adoc | 2 +- modules/patterns/pages/testing-releasing-single-component.adoc | 2 +- modules/reference/pages/kube-apis/release-service.adoc | 2 ++ modules/releasing/pages/create-release-plan-admission.adoc | 2 ++ modules/releasing/pages/tenant-release-pipelines.adoc | 1 + modules/testing/pages/integration/snapshots/index.adoc | 3 ++- 7 files changed, 10 insertions(+), 4 deletions(-) diff --git a/modules/ROOT/pages/getting-started.adoc b/modules/ROOT/pages/getting-started.adoc index e2cb5f304..51363e202 100644 --- a/modules/ROOT/pages/getting-started.adoc +++ b/modules/ROOT/pages/getting-started.adoc @@ -156,4 +156,4 @@ include::partial${context}-additional-getting-started.adoc[] == Getting started with the CLI -include::partial${context}-getting-started-with-the-cli.adoc[] +include::partial${context}-getting-started-with-the-cli.adoc[] \ No newline at end of file diff --git a/modules/end-to-end/pages/building-tekton-tasks.adoc b/modules/end-to-end/pages/building-tekton-tasks.adoc index 4590abd64..dfaf33caa 100644 --- a/modules/end-to-end/pages/building-tekton-tasks.adoc +++ b/modules/end-to-end/pages/building-tekton-tasks.adoc @@ -260,4 +260,4 @@ spec: After completing all the steps above we should now have: * A task release as a bundle in our release repository -* An OCI artifact named *data-acceptable-bundles* in our release repository, containing a SHA reference of the latest task release as a trusted task (all the previous versions of the task will appear with the expires_on parameter) +* An OCI artifact named *data-acceptable-bundles* in our release repository, containing a SHA reference of the latest task release as a trusted task (all the previous versions of the task will appear with the expires_on parameter) \ No newline at end of file diff --git a/modules/patterns/pages/testing-releasing-single-component.adoc b/modules/patterns/pages/testing-releasing-single-component.adoc index 58ec05bfd..376ba6668 100644 --- a/modules/patterns/pages/testing-releasing-single-component.adoc +++ b/modules/patterns/pages/testing-releasing-single-component.adoc @@ -107,4 +107,4 @@ reduce-snapshot [reduce] SNAPSHOT_CREATION_COMPONENT: comp2 [reduce] Single Component mode is true and Snapshot type is component [reduce] COMPONENT_COUNT: 1 --- +-- \ No newline at end of file diff --git a/modules/reference/pages/kube-apis/release-service.adoc b/modules/reference/pages/kube-apis/release-service.adoc index aeed463b3..7a3f8caec 100644 --- a/modules/reference/pages/kube-apis/release-service.adoc +++ b/modules/reference/pages/kube-apis/release-service.adoc @@ -111,6 +111,8 @@ ReleasePlanAdmissionSpec defines the desired state of ReleasePlanAdmission. | Field | Description | Default | Validation | *`applications`* __string array__ | Applications is a list of references to applications to be released in the managed namespace + | | +| *`autoRelease`* __boolean__ | AutoRelease indicates whether the Release should be created automatically + +| `false` | | *`collectors`* __xref:{anchor_prefix}-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmissioncollectors[$$ReleasePlanAdmissionCollectors$$]__ | Collectors contains all the information of the collectors to be executed as part of the release workflow + | | | *`data`* __link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.3/#rawextension-runtime-pkg[$$RawExtension$$]__ | Data is an unstructured key used for providing data for the managed Release Pipeline + diff --git a/modules/releasing/pages/create-release-plan-admission.adoc b/modules/releasing/pages/create-release-plan-admission.adoc index 5ee2d4b0c..aaa29e18c 100644 --- a/modules/releasing/pages/create-release-plan-admission.adoc +++ b/modules/releasing/pages/create-release-plan-admission.adoc @@ -25,6 +25,7 @@ When an application is ready for release, the Development team contacts the owne apiVersion: appstudio.redhat.com/v1alpha1 kind: ReleasePlanAdmission metadata: + creationTimestamp: "2024-01-26T14:30:00Z" <.> spec: applications: - demo-app <.> @@ -53,6 +54,7 @@ spec: ---- + +<.> Specifies the timestamp when the object was created. <.> A list of applications that you want to enable to be deployed in the managed tenant namespace. <.> Contains all the information of the collectors to be executed as part of the release workflow. <.> The list of collectors to be executed as part of the release workflow. diff --git a/modules/releasing/pages/tenant-release-pipelines.adoc b/modules/releasing/pages/tenant-release-pipelines.adoc index 1e727f890..4a7c649ff 100644 --- a/modules/releasing/pages/tenant-release-pipelines.adoc +++ b/modules/releasing/pages/tenant-release-pipelines.adoc @@ -252,6 +252,7 @@ The ReleasePlanAdmission object's `spec` fields have been updated to include the . The `collectors` field contains all the information of the collectors to be executed as part of the release workflow. . The `pipeline` field contains all the information about the managed pipeline, including its `pipelineRef`, `serviceAccountName`, and `timeouts`. +. The `metadata.creationTimestamp` field is a standard Kubernetes field indicating the time when the ReleasePlanAdmission object was created. It is used to display the 'Age' of the resource. == Next steps == diff --git a/modules/testing/pages/integration/snapshots/index.adoc b/modules/testing/pages/integration/snapshots/index.adoc index 911ace615..ea8d6985d 100644 --- a/modules/testing/pages/integration/snapshots/index.adoc +++ b/modules/testing/pages/integration/snapshots/index.adoc @@ -20,6 +20,7 @@ kind: Snapshot metadata: name: snapshot-sample <.> namespace: ws-sample-tenant <.> + creationTimestamp: "2024-01-25T15:10:00Z" spec: application: application-sample <.> components: @@ -131,4 +132,4 @@ A common point of confusion occurs when a Snapshot contains fewer components tha * To learn how to reset the latest component references for future Snapshots, see xref:testing:integration/snapshots/override-snapshots.adoc[Creating an override snapshot]. * To learn more about group Snapshots, see xref:testing:integration/snapshots/group-snapshots.adoc[Creating a group snapshot]. * To learn how to release a Snapshot, see xref:releasing:create-release.adoc[Creating a release]. -* For details on the Snapshot API resource, refer to the xref:reference:kube-apis/application-api.adoc#k8s-api-github-com-konflux-ci-application-api-api-v1alpha1-snapshot[Snapshot API Reference]. +* For details on the Snapshot API resource, refer to the xref:reference:kube-apis/application-api.adoc#k8s-api-github-com-konflux-ci-application-api-api-v1alpha1-snapshot[Snapshot API Reference]. \ No newline at end of file