docs
docs copied to clipboard
Updating XRD default values does not affect claims
What happened?
Updating default values in an XRD does not update claims that use default values
How can we reproduce it?
Create a simple XRD like:
apiVersion: apiextensions.crossplane.io/v1
kind: CompositeResourceDefinition
metadata:
name: xexamples.example.com
spec:
group: example.com
names:
kind: XExample
plural: xexamples
claimNames:
kind: Example
plural: examples
versions:
- name: v1alpha1
served: true
referenceable: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
values:
x-kubernetes-preserve-unknown-fields: true
description: An example default value
type: string
default: "default value"
Create Claim that uses the default value:
apiVersion: example.com/v1alpha1
kind: Example
metadata:
name: example-test
namespace: default
spec: {}
Resulting Claim in cluster looks like:
apiVersion: example.com/v1alpha1
kind: Example
metadata: <removed for brevity>
spec:
compositeDeletePolicy: Background
compositionUpdatePolicy: Automatic
resourceRef:
apiVersion: example.com/v1alpha1
kind: XExample
name: example-test-9p6k8
values: default value
status: <removed for brevity>
Update default value in XRD like so:
apiVersion: apiextensions.crossplane.io/v1
kind: CompositeResourceDefinition
metadata:
name: xexamples.example.com
spec:
group: example.com
names:
kind: XExample
plural: xexamples
claimNames:
kind: Example
plural: examples
versions:
- name: v1alpha1
served: true
referenceable: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
values:
x-kubernetes-preserve-unknown-fields: true
description: An example default value
type: string
default: "new default value"
Expected results:
- Claim is updated with new default value
Actual results:
- Claim has old default value
What environment did it happen in?
Crossplane version: v1.15.0 Kubernetes version: v1.26.13