|
| 1 | +// Module included in the following assembly: |
| 2 | +// |
| 3 | +// * cicd/pipelines/op-release-notes.adoc |
| 4 | + |
| 5 | +[id="op-release-notes-1-5_{context}"] |
| 6 | += Release notes for {pipelines-title} General Availability 1.5 |
| 7 | + |
| 8 | +{pipelines-title} General Availability (GA) 1.5 is now available on {product-title} 4.8. |
| 9 | + |
| 10 | +[id="compatibility-support-matrix-1-5_{context}"] |
| 11 | +== Compatibility and support matrix |
| 12 | + |
| 13 | +Some features in this release are currently in Technology Preview. These experimental features are not intended for production use. |
| 14 | + |
| 15 | +link:https://access.redhat.com/support/offerings/techpreview[Technology Preview Features Support Scope] |
| 16 | + |
| 17 | +In the table, features are marked with the following statuses: |
| 18 | + |
| 19 | +- *TP*: _Technology Preview_ |
| 20 | + |
| 21 | +- *GA*: _General Availability_ |
| 22 | + |
| 23 | +Note the following scope of support on the Red Hat Customer Portal for these features: |
| 24 | + |
| 25 | +.Compatibility and support matrix |
| 26 | +[cols="1,1,1",options="header"] |
| 27 | +|=== |
| 28 | +| Feature | Version | Support Status |
| 29 | +| Pipelines | 0.24 | GA |
| 30 | +| CLI | 0.19 | GA |
| 31 | +| Catalog | 0.24 | GA |
| 32 | +| Triggers | 0.14 | TP |
| 33 | +| Pipeline resources | - | TP |
| 34 | +|=== |
| 35 | + |
| 36 | + |
| 37 | +For questions and feedback, you can send an email to the product team at [email protected]. |
| 38 | + |
| 39 | +[id="new-features-1-5_{context}"] |
| 40 | +== New features |
| 41 | + |
| 42 | +In addition to the fixes and stability improvements, the following sections highlight what is new in {pipelines-title} 1.5. |
| 43 | + |
| 44 | +* Pipeline run and task runs will be automatically pruned by a cron job in the target namespace. The cron job uses the `IMAGE_JOB_PRUNER_TKN` environment variable to get the value of `tkn image`. With this enhancement, the following fields are introduced to the `TektonConfig` custom resource: |
| 45 | ++ |
| 46 | +[source,yaml,subs="attributes+"] |
| 47 | +---- |
| 48 | +... |
| 49 | +pruner: |
| 50 | + resources: |
| 51 | + - pipelinerun |
| 52 | + - taskrun |
| 53 | + schedule: "*/5 * * * *" // cron schedule |
| 54 | + keep: 2 // delete all keeping n |
| 55 | +... |
| 56 | +---- |
| 57 | + |
| 58 | +* In {product-title}, you can customize the installation of the Tekton Add-ons component by modifying the values of the new parameters `clusterTasks` and `pipelinesTemplates` in the `TektonConig` custom resource: |
| 59 | ++ |
| 60 | +[source,yaml,subs="attributes+"] |
| 61 | +---- |
| 62 | +apiVersion: operator.tekton.dev/v1alpha1 |
| 63 | +kind: TektonConfig |
| 64 | +metadata: |
| 65 | + name: config |
| 66 | +spec: |
| 67 | + profile: all |
| 68 | + targetNamespace: openshift-pipelines |
| 69 | + addon: |
| 70 | + params: |
| 71 | + - name: clusterTasks |
| 72 | + value: "true" |
| 73 | + - name: pipelineTemplates |
| 74 | + value: "true" |
| 75 | +... |
| 76 | +---- |
| 77 | ++ |
| 78 | +The customization is allowed if you create the add-on using `TektonConfig`, or directly by using Tekton Add-ons. However, if the parameters are not passed, the controller adds parameters with default values. |
| 79 | ++ |
| 80 | +[NOTE] |
| 81 | +==== |
| 82 | +* If add-on is created using the `TektonConfig` custom resource, and you change the parameter values later in the |
| 83 | +`Addon` custom resource, then the values in the `TektonConfig` custom resource overwrites the changes. |
| 84 | +
|
| 85 | +* You can set the value of the `pipelinesTemplates` parameter to `true` only when the value of the `clusterTasks` parameter is `true`. |
| 86 | +==== |
| 87 | + |
| 88 | +* The `enableMetrics` parameter is added to the `TektonConfig` custom resource. You can use it to disable the service monitor, which is part of Tekton Pipelines for {product-title}. |
| 89 | ++ |
| 90 | +[source,yaml,subs="attributes+"] |
| 91 | +---- |
| 92 | +apiVersion: operator.tekton.dev/v1alpha1 |
| 93 | +kind: TektonConfig |
| 94 | +metadata: |
| 95 | + name: config |
| 96 | +spec: |
| 97 | + profile: all |
| 98 | + targetNamespace: openshift-pipelines |
| 99 | + pipeline: |
| 100 | + params: |
| 101 | + - name: enableMetrics |
| 102 | + value: "true" |
| 103 | +... |
| 104 | +---- |
| 105 | + |
| 106 | +* Eventlistener OpenCensus metrics, which captures metrics at process level, is added. |
| 107 | + |
| 108 | +* Triggers now has label selector; you can configure triggers for an event listener using labels. |
| 109 | + |
| 110 | +* The `ClusterInterceptor` custom resource definition for registering interceptors is added, which allows you to register new `Interceptor` types that you can plug in. In addition, the following relevant changes are made: |
| 111 | + |
| 112 | +** In the trigger specifications, you can configure interceptors using a new API that includes a `ref` field to refer to a cluster interceptor. In addition, you can use the `params` field to add parameters that pass on to the interceptors for processing. |
| 113 | + |
| 114 | +** The bundled interceptors CEL, GitHub, GitLab, and BitBucket, have been migrated. They are implemented using the new `ClusterInterceptor` custom resource definition. |
| 115 | + |
| 116 | +** Core interceptors are migrated to the new format, and any new triggers created using the old syntax automatically switch to the new `ref` or `params` based syntax. |
| 117 | + |
| 118 | +* To disable prefixing the name of the task or step while displaying logs, use the `--prefix` option for `log` commands. |
| 119 | + |
| 120 | +* To display the version of a specific component, use the new `--component` flag in the `tkn version` command. |
| 121 | + |
| 122 | +* The `tkn hub check-upgrade` command is added, and other commands are revised to be based on the pipeline version. In addition, catalog names are displayed in the `search` command output. |
| 123 | + |
| 124 | +* Support for optional workspaces are added to the `start` command. |
| 125 | + |
| 126 | +* If the plugins are are not present in the `plugins` directory, they are searched in the current path. |
| 127 | + |
| 128 | +* The `tkn start [task | clustertask | pipeline]` command starts interactively and ask for the `params` value, even when you specify the default parameters are specified. To stop the interactive prompts, pass the `--use-param-defaults` flag at the time of invoking the command. For example: |
| 129 | ++ |
| 130 | +[source,terminal,subs="attributes+"] |
| 131 | +---- |
| 132 | +$ tkn pipeline start build-and-deploy \ |
| 133 | + -w name=shared-workspace,volumeClaimTemplateFile=https://raw.githubusercontent.com/openshift/pipelines-tutorial/{pipelines-ver}/01_pipeline/03_persistent_volume_claim.yaml \ |
| 134 | + -p deployment-name=pipelines-vote-api \ |
| 135 | + -p git-url=https://github.com/openshift/pipelines-vote-api.git \ |
| 136 | + -p IMAGE=image-registry.openshift-image-registry.svc:5000/pipelines-tutorial/pipelines-vote-api \ |
| 137 | + --use-param-defaults |
| 138 | +---- |
| 139 | + |
| 140 | +* The `version` field is added in the `tkn task describe` command. |
| 141 | + |
| 142 | +* The option to automatically select resources such as `TriggerTemplate`, or `TriggerBinding`, or `ClusterTriggerBinding`, or `Eventlistener`, is added in the `describe` command, if only one is present. |
| 143 | + |
| 144 | +* In the `tkn pr describe` command, a section for skipped tasks is added. |
| 145 | + |
| 146 | +* Support for the `tkn clustertask logs` is added. |
| 147 | + |
| 148 | +* The YAML merge and variable from `config.yaml` is removed. In addition, the `release.yaml` file can now be more easily consumed by tools such as `kustomize` and `ytt`. |
| 149 | + |
| 150 | +* The support for resource names to contain the dot character (".") is added. |
| 151 | + |
| 152 | +* The `hostAliases` array in the `PodTemplate` specification is added to the pod-level override of hostname resolution. It is achieved by modifying the `/etc/hosts` file. |
| 153 | + |
| 154 | +* A variable `$(tasks.status)` is introduced to access the aggregate execution status of tasks. |
| 155 | + |
| 156 | +* An entry-point binary build for Windows is added. |
| 157 | + |
| 158 | + |
| 159 | +[id="deprecated-features-1-5_{context}"] |
| 160 | +== Deprecated features |
| 161 | + |
| 162 | +* In the `when` expressions, support for fields written is PascalCase is removed. The `when` expressions only support fields written in lowercase. |
| 163 | ++ |
| 164 | +[NOTE] |
| 165 | +==== |
| 166 | +If you had applied a pipeline with `when` expressions in Tekton Pipelines `v0.16` (Operator `v1.2.x`), you have to reapply it. |
| 167 | +==== |
| 168 | + |
| 169 | +* When you upgrade the {pipelines-title} Operator to `v1.5`, the `openshift-client` and the `openshift-client-v-1-5-0` cluster tasks have the `SCRIPT` parameter. However, the `ARGS` parameter and the `git` resource are removed from the specification of the `openshift-client` cluster task. This is a breaking change, and only those cluster tasks that do not have a specific version in the `name` field of the `ClusterTask` resource upgrade seamlessly. |
| 170 | ++ |
| 171 | +To prevent the pipeline runs from breaking, use the `SCRIPT` parameter after the upgrade because it moves the values previously specified in the `ARGS` parameter into the `SCRIPT` parameter of the cluster task. For example: |
| 172 | ++ |
| 173 | +[source,yaml,subs="attributes+"] |
| 174 | +---- |
| 175 | +... |
| 176 | +- name: deploy |
| 177 | +params: |
| 178 | + - name: SCRIPT |
| 179 | + value: oc rollout status <deployment-name> |
| 180 | + runAfter: |
| 181 | + - build |
| 182 | + taskRef: |
| 183 | + kind: ClusterTask |
| 184 | + name: openshift-client |
| 185 | +... |
| 186 | +---- |
| 187 | ++ |
| 188 | + |
| 189 | +* When you upgrade from {pipelines-title} Operator `v1.4` to `v1.5`, the profile names in which the `TektonConfig` custom resource is installed now change. |
| 190 | + |
| 191 | ++ |
| 192 | +.Profiles for `TektonConfig` custom resource |
| 193 | +[cols="1,1,1",options="header"] |
| 194 | +|=== |
| 195 | +| Profiles in Pipelines 1.5 | Corresponding profile in Pipelines 1.4 | Installed Tekton components |
| 196 | +| All (_default profile_) | All (_default profile_) | Pipelines, Triggers, Add-ons |
| 197 | +| Basic | Default | Pipelines, Triggers |
| 198 | +| Lite | Basic | Pipelines |
| 199 | + |
| 200 | +|=== |
| 201 | + |
| 202 | ++ |
| 203 | +[NOTE] |
| 204 | +==== |
| 205 | +If you used `profile: all` in the `config` instance of the `TektonConfig` custom resource, no change is necessary in the resource specification. |
| 206 | +
|
| 207 | +However, if the installed Operator is either in the Default or the Basic profile before the upgrade, you must edit the `config` instance of the `TektonConfig` custom resource after the upgrade. For example, if the configuration was `profile: basic` before the upgrade, ensure that it is `profile: lite` after upgrading to Pipelines 1.5. |
| 208 | +==== |
| 209 | ++ |
| 210 | + |
| 211 | +* The `disable-home-env-overwrite` and `disable-working-dir-overwrite` fields are now deprecated and will be removed in a future release. For this release, the default value of these flags is set to `true` for backward compatibility. |
| 212 | ++ |
| 213 | +[NOTE] |
| 214 | +==== |
| 215 | +In the next release ({pipelines-title} 1.6), the `HOME` environment variable will not be automatically set to `/tekton/home`, and the default working directory will not be set to `/workspace` for task runs. These defaults collide with any value set by image Dockerfile of the step. |
| 216 | +==== |
| 217 | + |
| 218 | +* The `ServiceType` and `podTemplate` fields are removed from the `EventListener` spec. |
| 219 | + |
| 220 | +* The controller service account no longer requests cluster-wide permission to list and watch namespaces. |
| 221 | + |
| 222 | +* The status of the `EventListener` resource has a new condition called `Ready`. |
| 223 | ++ |
| 224 | +[NOTE] |
| 225 | +==== |
| 226 | +In the future, the other status conditions for the `EventListener` resource will be deprecated in favor of the `Ready` status condition. |
| 227 | +==== |
| 228 | + |
| 229 | +* The `eventListener` and `namespace` fields in the `EventListener` response are deprecated. Use the `eventListenerUID` field instead. |
| 230 | + |
| 231 | +* The `replicas` field is deprecated from the `EventListener` spec. Instead, the `spec.replicas` field is moved to `spec.resources.kubernetesResource.replicas` in the `KubernetesResource` spec. |
| 232 | ++ |
| 233 | +[NOTE] |
| 234 | +==== |
| 235 | +The `replicas` field will be removed in a future release. |
| 236 | +==== |
| 237 | + |
| 238 | +* The old method of configuring the core interceptors is deprecated. However, it continues to work until it is removed in a future release. Instead, interceptors in a `Trigger` resource are now configured using a new `ref` and `params` based syntax. The resulting default webhook automatically switch the usages of the old syntax to the new syntax for new triggers. |
| 239 | + |
| 240 | +* Use `rbac.authorization.k8s.io/v1` instead of the deprecated `rbac.authorization.k8s.io/v1beta1` for the `ClusterRoleBinding` resource. |
| 241 | + |
| 242 | +* In cluster roles, the cluster-wide write access to resources such as `serviceaccounts`, `secrets`, `configmaps`, and `limitranges` are removed. In addition, cluster-wide access to resources such as `deployments`, `statefulsets`, and `deployment/finalizers` are removed. |
| 243 | + |
| 244 | +* The `image` custom resource definition in the `caching.internal.knative.dev` group is not used by Tekton anymore, and is excluded in this release. |
| 245 | + |
| 246 | + |
| 247 | +[id="known-issues-1-5_{context}"] |
| 248 | +== Known issues |
| 249 | + |
| 250 | +* The link:https://github.com/tektoncd/catalog/tree/main/task/git-cli/0.1[git-cli] cluster task is built off the link:https://github.com/tektoncd/catalog/blob/68e44c629c9ee287393681030ed391d2c2e856cd/task/git-cli/0.1/git-cli.yaml#L32[alpine/git] base image, which expects `/root` as the user's home directory. However, this is not explicitly set in the `git-cli` cluster task. |
| 251 | ++ |
| 252 | +In Tekton, the default home directory is overwritten with `/tekton/home` for every step of a task, unless otherwise specified. This overwriting of the `$HOME` environment variable of the base image causes the `git-cli` cluster task to fail. |
| 253 | ++ |
| 254 | +This issue is expected to be fixed in the upcoming releases. For {pipelines-title} 1.5 and earlier versions, you can _use any one of the following workarounds_ to avoid the failure of the `git-cli` cluster task: |
| 255 | + |
| 256 | +** Set the `$HOME` environment variable in the steps, so that it is not overwritten. |
| 257 | + |
| 258 | +. [OPTIONAL] If you installed {pipelines-title} using the Operator, then clone the `git-cli` cluster task into a separate task. This approach ensures that the Operator does not overwrite the changes made to the cluster task. |
| 259 | +. Execute the `oc edit clustertasks git-cli` command. |
| 260 | +. Add the expected `HOME` environment variable to the YAML of the step: |
| 261 | ++ |
| 262 | +[source,yaml,subs="attributes+"] |
| 263 | +---- |
| 264 | +... |
| 265 | +steps: |
| 266 | + - name: git |
| 267 | + env: |
| 268 | + - name: HOME |
| 269 | + value: /root |
| 270 | + image: $(params.BASE_IMAGE) |
| 271 | + workingDir: $(workspaces.source.path) |
| 272 | +... |
| 273 | +---- |
| 274 | ++ |
| 275 | +[WARNING] |
| 276 | +==== |
| 277 | +For {pipelines-title} installed by the Operator, if you do not clone the `git-cli` cluster task into a separate task before changing the `HOME` environment variable, then the changes are overwritten during Operator reconciliation. |
| 278 | +==== |
| 279 | + |
| 280 | +** Disable overwriting the `HOME` environment variable in the `feature-flags` config map. |
| 281 | + |
| 282 | +. Execute the `oc edit -n openshift-pipelines configmap feature-flags` command. |
| 283 | +. Set the value of the `disable-home-env-overwrite` flag to `true`. |
| 284 | ++ |
| 285 | +[WARNING] |
| 286 | +==== |
| 287 | +* If you installed {pipelines-title} using the Operator, then the changes are overwritten during Operator reconciliation. |
| 288 | +
|
| 289 | +* Modifying the default value of the `disable-home-env-overwrite` flag can break other tasks and cluster tasks, as it changes the default behavior for all tasks. |
| 290 | +==== |
| 291 | + |
| 292 | +** Use a different service account for the `git-cli` cluster task, as the overwriting of the `HOME` environment variable happens when the default service account for pipelines is used. |
| 293 | + |
| 294 | +. Create a new service account. |
| 295 | +. Link your Git secret to the service account you just created. |
| 296 | +. Use the service account while executing a task or a pipeline. |
| 297 | + |
| 298 | + |
| 299 | +* On IBM Power Systems, IBM Z, and LinuxONE, the `s2i-dotnet` cluster task and the `tkn hub` command are unsupported. |
| 300 | + |
| 301 | +* When you run Maven and Jib-Maven cluster tasks on IBM Power Systems (ppc64le), IBM Z, and LinuxONE (s390x) clusters, set the `MAVEN_IMAGE` parameter value to `maven:3.6.3-adoptopenjdk-11`. |
| 302 | + |
| 303 | + |
| 304 | +[id="fixed-issues-1-5_{context}"] |
| 305 | +== Fixed issues |
| 306 | + |
| 307 | +* The `when` expressions in `dag` tasks are not allowed to specify the context variable accessing the execution status (`$(tasks.<pipelineTask>.status)`) of any other task. |
| 308 | + |
| 309 | +* Use Owner UIDs instead of Owner names, as it helps avoid race conditions created by deleting a `volumeClaimTemplate` PVC, in situations where a `PipelineRun` resource is quickly deleted and then recreated. |
| 310 | + |
| 311 | +* A new Dockerfile is added for `pullrequest-init` for `build-base` image triggered by non-root users. |
| 312 | + |
| 313 | +* When a pipeline or task is executed with the `-f` option and the `param` in its definition does not have a `type` defined, a validation error is generated instead of the pipeline or task run failing silently. |
| 314 | + |
| 315 | +* For the `tkn start [task | pipeline | clustertask]` commands, the description of the `--workspace` flag is now consistent. |
| 316 | + |
| 317 | +* While parsing the parameters, if an empty array is encountered, the corresponding interactive help is displayed as an empty string now. |
0 commit comments