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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions