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
    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