Skip to content

KCLTransformer

KCLTransformer transforms existing Kubernetes resources using KCL (Kusion Configuration Language) code. It can read existing resources from the input, modify them, and optionally generate new ones.

For more information on the configuration options see the krm-kcl documentation.

Configuration

apiVersion: kcl.dev/v1alpha1
kind: KCLTransformer
metadata:
  name: my-transformer
  annotations:
    config.kubernetes.io/function: |
      exec:
        path: karmafun
spec:
  source: ./kcl/transform.k
Field Description
spec.source Inline KCL code or path to a .k file
spec.dependencies KCL module dependencies (OCI or registry format)

Example: generate cert-manager resources

apiVersion: kcl.dev/v1alpha1
kind: KCLTransformer
metadata:
  name: generate-certificates
  annotations:
    config.karmafun.dev/prune-local: "true"
    config.kubernetes.io/function: |
      exec:
        path: karmafun
spec:
  dependencies: |
    cert-manager = "0.3.0"
  source: ./functions/transformer.k

The transformer KCL code receives existing resources as input and can return modified or new resources.