Skip to content

Nested compositions cause multiple controller owner references #334

@tsvetelintsonev

Description

@tsvetelintsonev

What happened?

Nested compositions cause multiple controller owner refs error like the following:

cannot apply composed resource "crossplane-n": [WorkloadIdentity.platform.x.com](http://workloadidentity.platform.x.com/) "crossplane-n" is invalid: [metadata.ownerReferences: Invalid value: []v1.OwnerReference{v1.OwnerReference{APIVersion:"[platform.x.com/v1alpha1](http://platform.x.com/v1alpha1)", Kind:"DeveloperWorkspace", Name:"developer-workspace", UID:"4f606f73-b8eb-4bbf-8c18-8c84aaf06dd6", Controller:(*bool)(0xc05453d700), BlockOwnerDeletion:(*bool)(0xc05453d701)}, v1.OwnerReference{APIVersion:"[platform.x.com/v1alpha1](http://platform.x.com/v1alpha1)", Kind:"WorkloadIdentity", Name:"crossplane-n", UID:"fb4124bd-ac07-480d-a143-e2a2d542239a", Controller:(*bool)(0xc05453d702), BlockOwnerDeletion:(*bool)(0xc05453d703)}}: Only one reference can have Controller set to true. Found "true" in references for DeveloperWorkspace/developer-workspace and WorkloadIdentity/crossplane-n, metadata.ownerReferences: Invalid value: []v1.OwnerReference{v1.OwnerReference{APIVersion:"[platform.x.com/v1alpha1](http://platform.x.com/v1alpha1)", Kind:"DeveloperWorkspace", Name:"developer-workspace", UID:"4f606f73-b8eb-4bbf-8c18-8c84aaf06dd6", Controller:(*bool)(0xc05453d738), BlockOwnerDeletion:(*bool)(0xc05453d739)}, v1.OwnerReference{APIVersion:"[platform.x.com/v1alpha1](http://platform.x.com/v1alpha1)", Kind:"WorkloadIdentity", Name:"crossplane-n", UID:"fb4124bd-ac07-480d-a143-e2a2d542239a", Controller:(*bool)(0xc05453d73a), BlockOwnerDeletion:(*bool)(0xc05453d73b)}}: Only one reference can have Controller set to true. Found "true" in references for DeveloperWorkspace/developer-workspace and WorkloadIdentity/crossplane-n, metadata.ownerReferences: Invalid value: []v1.OwnerReference{v1.OwnerReference{APIVersion:"[platform.x.com/v1alpha1](http://platform.x.com/v1alpha1)", Kind:"DeveloperWorkspace", Name:"developer-workspace", UID:"4f606f73-b8eb-4bbf-8c18-8c84aaf06dd6", Controller:(*bool)(0xc05453d7f0), BlockOwnerDeletion:(*bool)(0xc05453d7f1)}, v1.OwnerReference{APIVersion:"[platform.x.com/v1alpha1](http://platform.x.com/v1alpha1)", Kind:"WorkloadIdentity", Name:"crossplane-n", UID:"fb4124bd-ac07-480d-a143-e2a2d542239a", Controller:(*bool)(0xc05453d7f2), BlockOwnerDeletion:(*bool)(0xc05453d7f3)}}: Only one reference can have Controller set to true. Found "true" in references for DeveloperWorkspace/developer-workspace and WorkloadIdentity/crossplane-n]

In this case DeveloperWorkspace is rendering WorkloadIdentity

How can we reproduce it?

  1. Create 2 compositions
  2. First composition renders the second one

What environment did it happen in?

Function version: v0.11.4
Crossplane version: v2.0.2
Kubernetes distribution: AKS
Kubernetes version: 1.33.2
OS: Ubuntu 22.04

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions