generated from crossplane/function-template-go
-
Notifications
You must be signed in to change notification settings - Fork 59
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Hi guys!
What happened?
I encountered a problem where the ExtraResources and getExtraResources function only work in a local environment when executing the crosplain render command.
The same composite does not work in a real Kubernetes cluster.
How can we reproduce it?
SandBox:
definition.yaml
apiVersion: apiextensions.crossplane.io/v2
kind: CompositeResourceDefinition
metadata:
name: democlaims.example.io
spec:
scope: Namespaced
group: example.io
names:
kind: DemoClaim
plural: democlaims
singular: democlaim
versions:
- name: v1alpha1
served: true
referenceable: true
schema:
openAPIV3Schema:
type: object
properties:
status:
type: object
properties:
debug:
type: string
nullable: truecomposition.yaml
apiVersion: apiextensions.crossplane.io/v1
kind: Composition
metadata:
name: democlaim
spec:
compositeTypeRef:
apiVersion: example.io/v1alpha1
kind: DemoClaim
mode: Pipeline
pipeline:
- step: extra-resources
functionRef:
name: crossplane-contrib-function-go-templating
input:
apiVersion: gotemplating.fn.crossplane.io/v1beta1
kind: GoTemplate
source: Inline
inline:
template: |
apiVersion: meta.gotemplating.fn.crossplane.io/v1alpha1
kind: ExtraResources
requirements:
config:
apiVersion: v1
kind: ConfigMap
matchName: dummy-config
---
{{ $debug := index . "extraResources" }}
apiVersion: example.io/v1alpha1
kind: DemoClaim
status:
debug: |
{{ $debug | toJson }}
- step: automatically-detect-ready-composed-resources
functionRef:
name: crossplane-contrib-function-auto-ready
extraresources.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: dummy-config
data:
debug: "dummy"functions.yaml
apiVersion: pkg.crossplane.io/v1beta1
kind: Function
metadata:
name: crossplane-contrib-function-go-templating
spec:
package: xpkg.crossplane.io/crossplane-contrib/function-go-templating:v0.11.3
---
apiVersion: pkg.crossplane.io/v1beta1
kind: Function
metadata:
name: crossplane-contrib-function-auto-ready
spec:
package: xpkg.crossplane.io/crossplane-contrib/function-auto-ready:v0.5.2
xr.yaml
apiVersion: example.io/v1alpha1
kind: DemoClaim
metadata:
name: dummy-claim
namespace: default
spec: {}
on local machine I can see entire required object
$ crossplane render xr.yaml composition.yaml functions.yaml -e extraresources.yaml
---
apiVersion: example.io/v1alpha1
kind: DemoClaim
metadata:
name: dummy-claim
namespace: default
status:
conditions:
- lastTransitionTime: "2024-01-01T00:00:00Z"
reason: Available
status: "True"
type: Ready
debug: "{\"config\":{\"items\":[{\"resource\":{\"apiVersion\":\"v1\",\"data\":{\"debug\":\"dummy\"},\"kind\":\"ConfigMap\",\"metadata\":{\"name\":\"dummy-config\"}}}]}}
\ \n"But in a real Kubernetes cluster:
apiVersion: example.io/v1alpha1
kind: DemoClaim
metadata:
...
status:
conditions:
...
debug: |
{"config":{}} What environment did it happen in?
Crossplain
chart: crossplane
repoURL: "https://charts.crossplane.io/stable"
targetRevision: 2.1.1
Function
apiVersion: pkg.crossplane.io/v1beta1
kind: Function
metadata:
name: crossplane-contrib-function-go-templating
spec:
package: xpkg.crossplane.io/crossplane-contrib/function-go-templating:v0.11.3
Kubernetes
Client Version: v1.35.0
Kustomize Version: v5.7.1
Server Version: v1.33.4
$ k get xrd
NAME ESTABLISHED OFFERED AGE
democlaims.example.io True 30m
$ k get composition
NAME XR-KIND XR-APIVERSION AGE
democlaim DemoClaim example.io/v1alpha1 29m
$ k get DemoClaim dummy-claim
NAME SYNCED READY COMPOSITION AGE
dummy-claim True True democlaim 28m
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working