Skip to content

Add tpl function to template rendering #140

@tpickett

Description

@tpickett

What problem are you facing?

Currently the helm function tpl is not available in the function list when rendering a template: https://helm.sh/docs/howto/charts_tips_and_tricks/#using-the-tpl-function

How to reproduce?

#XR
apiVersion: example.crossplane.io/v1beta1
kind: XR
metadata:
  name: example
spec:
  labels:
    key1: value1
    key2: "{{ .val2 }}"
  val2: value2

#Template
apiVersion: apiextensions.crossplane.io/v1
kind: Composition
metadata:
  name: example-function-tpl
spec:
  compositeTypeRef:
    apiVersion: example.crossplane.io/v1beta1
    kind: XR
  mode: Pipeline
  pipeline:
    - step: render-templates
      functionRef:
        name: function-go-templating
      input:
        apiVersion: gotemplating.fn.crossplane.io/v1beta1
        kind: GoTemplate
        source: Inline
        inline:
          template: |
            {{$vals:= .observed.composite.resource.spec}}
            apiVersion: apps/v1
            kind: Deployment
            metadata:
              name: nginx-deployment
              annotations:
                gotemplating.fn.crossplane.io/composition-resource-name: test1
              labels:
                {{- toYaml (tpl $vals.labels $vals) | nindent 4}}

What environment did it happen in?

Function version: 0.8.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions