Migrate Telemetry Pipelines to v1beta1 ​
The Telemetry module now uses the stable v1beta1 API for pipeline resources. In some cases, you must update your pipeline manifests to use the new API version.
Prerequisites ​
- You have the Telemetry module in your cluster.
- One or more of your Telemetry pipelines use the
v1alpha1API version.
Context ​
NOTE
If your pipelines are already running in the cluster and you don't store their manifests, you don't have to take any action. The Telemetry module automatically migrates your existing pipeline resources to v1beta1.
To see what your converted pipeline looks like in
v1beta1, fetch the resource directly from your cluster:bashkubectl get logpipeline {PIPELINE_NAME} -o yaml kubectl get metricpipeline {PIPELINE_NAME} -o yaml kubectl get tracepipeline {PIPELINE_NAME} -o yaml
If you manage your Telemetry pipeline resources declaratively, you must manually adjust them; for example, in the following cases:
- You use GitOps, CI/CD, or tools like Argo CD to deploy your pipelines.
- You store pipeline manifests in a Git repository that you reapply.
- You plan to create new pipelines and want to use the v1beta1 API.
This migration involves breaking changes: To align your pipeline manifests with the new version, you must update the apiVersion, rename several fields, and, for LogPipeline resources, adjust how you configure namespace selection. The migration from v1alpha1 to v1beta1 mostly affects LogPipeline and MetricPipeline resources. For TracePipeline resources, only the apiVersion changes.


To identify the required updates for your manifests, review the breaking changes in the following table:
| Pipeline | v1alpha1 Field | v1beta1 Field | Migration Action |
|---|---|---|---|
| LogPipeline, MetricPipeline | spec.input.otlp.disabled | spec.input.otlp.enabled | Rename the field and invert the boolean value (for example, false becomes true). |
| LogPipeline | spec.input.application | spec.input.runtime | Rename the field. |
| LogPipeline | spec.input.application.namespaces.system | (Removed) | To include system namespaces, use spec.input.runtime.namespaces: {}. |
| LogPipeline | spec.output.http.tls.disabled | spec.output.http.tls.insecure | Rename the field. |
| LogPipeline | spec.output.http.tls.skipCertificateValidation | spec.output.http.tls.insecureSkipVerify | Rename the field. |
Procedure ​
In each of your LogPipeline, MetricPipeline, and TracePipeline YAML files, change the apiVersion to
telemetry.kyma-project.io/v1beta1.For LogPipeline and MetricPipeline resources, update the OTLP input field:
- spec.input.otlp.disabled becomes spec.input.otlp.enabled.
- You must also invert the boolean value (for example,
disabled: falsebecomesenabled: true).
For LogPipeline resources, replace spec.input.application with spec.input.runtime. To include system namespaces for application logs, also update the system namespace selection.
By default, system namespaces are excluded (as in v1alpha1), but v1beta1 removes the spec.input.application.namespaces.system field. To include application logs from system namespaces (like kyma-system), you must now provide an empty object ({}) for the namespaces selector. For details, see Filter Application Logs by Namespace.
spec:
input:
runtime:
enabled: true
namespaces: {} # This includes system namespacesFor LogPipeline resources using the
httpoutput, update the following fields:- Replace spec.output.http.tls.disabled with spec.output.http.tls.insecure.
- Replace spec.output.http.tls.skipCertificateValidation with spec.output.http.tls.insecureSkipVerify.
TIP: Consider switching to the
otlpoutput (see Migrate Your LogPipeline From HTTP to OTLP). For OTLP, use the fields spec.output.otlp.tls.insecure and spec.output.otlp.tls.insecureSkipVerify.Validate and apply your updated configuration with kubectl.
Result ​
Your pipelines are now updated to the v1beta1 API. The Telemetry module begins using the new configuration.
To confirm the migration was successful, check that your new pipelines are healthy (see Check Pipeline Status).