crossplane-contrib / provider-upjet-aws

Official AWS Provider for Crossplane by Upbound.
https://marketplace.upbound.io/providers/upbound/provider-aws
Apache License 2.0
142 stars 121 forks source link

[Bug]: Problem extending selector for ECS Service in a composition #1110

Closed daniel-maganto closed 1 month ago

daniel-maganto commented 8 months ago

Is there an existing issue for this?

Affected Resource(s)

ecs.aws.upbound.io/v1beta1 - Service

Resource MRs required to reproduce the bug

apiVersion: apiextensions.crossplane.io/v1
kind: Composition
metadata:
  name: ecsservice.microservices.test.infra
  labels:
    test.infra/provider: upbound
    test.infra/service-type: tenant
    test.infra/alb: enabled
spec:
  compositeTypeRef:
    apiVersion: microservices.test.infra/v1alpha1
    kind: XECSService
  patchSets:
    - name: common-parameters
      patches:
        - type: FromCompositeFieldPath
          fromFieldPath: spec.resourceConfig.providerConfigName
          toFieldPath: spec.providerConfigRef.name
        - type: FromCompositeFieldPath
          fromFieldPath: spec.resourceConfig.deletionPolicy
          toFieldPath: spec.deletionPolicy
        - fromFieldPath: spec.resourceConfig.region
          toFieldPath: spec.forProvider.region
          type: FromCompositeFieldPath
        - fromFieldPath: spec.resourceConfig.tenant
          toFieldPath: metadata.labels["tenant"]
          type: FromCompositeFieldPath
  resources:
# ECS RESOURCES
    - name: service
      base:
        apiVersion: ecs.aws.upbound.io/v1beta1
        kind: Service
        spec:
          forProvider:
            desiredCount:
            clusterSelector:
              matchLabels:
                cluster:
            launchType: FARGATE
            loadBalancer:
            - containerName: 
              containerPort: 8080
              targetGroupArnRef:
                name: 
#              targetGroupArnSelector:
#                matchControllerRef: true
#              targetGroupArn: arn:aws:elasticloadbalancing:eu-central-1:XXXXXX:targetgroup/service-offer/XXXXX
            networkConfiguration:
            - securityGroups:
              subnets:
            propagateTags: TASK_DEFINITION
            region:
            taskDefinitionSelector:
              matchLabels:
                taskdefinition:
      patches:
        - type: PatchSet
          patchSetName: common-parameters
        - fromFieldPath: spec.parameters.desiredCount
          toFieldPath: spec.forProvider.desiredCount
          type: FromCompositeFieldPath
        - fromFieldPath: spec.parameters.securityGroups
          toFieldPath: spec.forProvider.networkConfiguration[0].securityGroups
          type: FromCompositeFieldPath
        - fromFieldPath: spec.parameters.subnets
          toFieldPath: spec.forProvider.networkConfiguration[0].subnets
          type: FromCompositeFieldPath
        - fromFieldPath: spec.parameters.family
          toFieldPath: spec.forProvider.loadBalancer[0].containerName
          type: FromCompositeFieldPath
        - fromFieldPath: spec.parameters.family
          toFieldPath: metadata.name
          type: FromCompositeFieldPath
        - type: CombineFromComposite
          combine:
            variables:
              - fromFieldPath: spec.resourceConfig.tenant
              - fromFieldPath: spec.parameters.family
              - fromFieldPath: spec.parameters.timestamp
            strategy: string
            string:
              fmt: "%s-%s-%s"
          toFieldPath: spec.forProvider.taskDefinitionSelector.matchLabels["taskdefinition"]
        - fromFieldPath: spec.parameters.family
          toFieldPath: spec.forProvider.loadBalancer[0].targetGroupArnRef.name
          type: FromCompositeFieldPath
#        - type: CombineFromComposite
#          combine:
#            variables:
#              - fromFieldPath: spec.parameters.family
#            strategy: string
#            string:
#              fmt: "%s"
#          toFieldPath: spec.forProvider.loadBalancer[0].targetGroupArnSelector.matchLabels["targetgroup"]
        - type: CombineFromComposite
          combine:
            variables:
              - fromFieldPath: spec.resourceConfig.tenant
              - fromFieldPath: spec.parameters.clusterName
            strategy: string
            string:
              fmt: "%s-%s"
          toFieldPath: spec.forProvider.clusterSelector.matchLabels["cluster"]
      readinessChecks:
        - type: MatchCondition
          matchCondition:
            status: 'True'
            type: Ready
        - type: MatchCondition
          matchCondition:
            type: Synced
            status: 'True'
# ALB RESOURCES
    - name: serviceLBTargetGroup
      base:
        apiVersion: elbv2.aws.upbound.io/v1beta1
        kind: LBTargetGroup
        spec:
          forProvider:
            name:
            port: 8080
            protocol: HTTP
            region:
            targetType: ip
            vpcId:
      patches:
        - type: PatchSet
          patchSetName: common-parameters
        - fromFieldPath: spec.parameters.family
          toFieldPath: metadata.labels["targetgroup"]
          type: FromCompositeFieldPath
        - fromFieldPath: spec.parameters.family
          toFieldPath: spec.forProvider.name
          type: FromCompositeFieldPath
        - fromFieldPath: spec.parameters.family
          toFieldPath: metadata.name
          type: FromCompositeFieldPath
        - fromFieldPath: spec.parameters.vpcId
          toFieldPath: spec.forProvider.vpcId
          type: FromCompositeFieldPath
      readinessChecks:
        - type: MatchCondition
          matchCondition:
            status: 'True'
            type: Ready
        - type: MatchCondition
          matchCondition:
            type: Synced
            status: 'True'
    - name: serviceLBListenerRule
      base:
        apiVersion: elbv2.aws.upbound.io/v1beta1
        kind: LBListenerRule
        spec:
          forProvider:
            action:
              - targetGroupArnSelector:
                  matchControllerRef: true
                type: forward
            condition:
              - pathPattern:
                  - values:
                      - /*
              - hostHeader:
                  - values:
            listenerArnSelector:
              matchLabels:
            region:
      patches:
        - type: PatchSet
          patchSetName: common-parameters
        - type: CombineFromComposite
          combine:
            variables:
              - fromFieldPath: spec.parameters.family
              - fromFieldPath: spec.parameters.hostedZone
            strategy: string
            string:
              fmt: "%s.%s"
          toFieldPath: spec.forProvider.condition[1].values[0]
        - type: CombineFromComposite
          combine:
            variables:
              - fromFieldPath: spec.resourceConfig.tenant
              - fromFieldPath: spec.parameters.clusterName
            strategy: string
            string:
              fmt: "%s-%s-443"
          toFieldPath:  spec.forProvider.listenerArnSelector.matchLabels["name"]
        - fromFieldPath: spec.parameters.family
          toFieldPath: spec.forProvider.name
          type: FromCompositeFieldPath
        - fromFieldPath: spec.parameters.family
          toFieldPath: metadata.name
          type: FromCompositeFieldPath
        - fromFieldPath: spec.parameters.vpcId
          toFieldPath: spec.forProvider.vpcId
          type: FromCompositeFieldPath
      readinessChecks:
        - type: MatchCondition
          matchCondition:
            status: 'True'
            type: Ready
        - type: MatchCondition
          matchCondition:
            type: Synced
            status: 'True'
# R53 RESOURCES
    - name: serviceARecord
      base:
        apiVersion: route53.aws.upbound.io/v1beta1
        kind: Record
        spec:
          forProvider:
            name:
            alias:
            - name:
              zoneId: Z215JYRZR1TBD5
            type: A

      patches:
        - type: PatchSet
          patchSetName: common-parameters
        - fromFieldPath: spec.parameters.family
          toFieldPath: spec.forProvider.name
          type: FromCompositeFieldPath
        - fromFieldPath: spec.parameters.records
          toFieldPath: spec.forProvider.alias[0].name
          type: FromCompositeFieldPath
        - fromFieldPath: spec.parameters.zoneId
          toFieldPath: spec.forProvider.zoneId
          type: FromCompositeFieldPath
      readinessChecks:
        - type: MatchCondition
          matchCondition:
            status: 'True'
            type: Ready
        - type: MatchCondition
          matchCondition:
            type: Synced
            status: 'True'

Steps to Reproduce

Using the above composition when it creates the resources Service it stuck in the following state:

apiVersion: ecs.aws.upbound.io/v1beta1
kind: Service
metadata:
  annotations:
    crossplane.io/composition-resource-name: service
    crossplane.io/external-name: service-offer
  creationTimestamp: "2024-01-24T15:48:50Z"
  generateName: service-v2pj4-
  generation: 228
  labels:
    crossplane.io/claim-name: service
    crossplane.io/claim-namespace: default
    crossplane.io/composite: service-v2pj4
    tenant: service
  name: service-offer
  ownerReferences:
  - apiVersion: microservices.test.infra/v1alpha1
    blockOwnerDeletion: true
    controller: true
    kind: XECSService
    name: service-v2pj4
    uid: 706d20f8-2730-4fb4-979c-243b55ee5db3
  resourceVersion: "165206629"
  uid: c96d051f-23cb-4bc9-b88a-e13f341eb0f4
spec:
  deletionPolicy: Delete
  forProvider:
    cluster: service-test1
    clusterRef:
      name: service-test1
    clusterSelector:
      matchLabels:
        cluster: service-test1
    desiredCount: 1
    launchType: FARGATE
    networkConfiguration:
    - securityGroups:
      - sg-01f60cc246eab6e6f
      subnets:
      - subnet-06f4982b015ed4a00
      - subnet-0585a2f94aa52d9ee
    propagateTags: TASK_DEFINITION
    region: eu-central-1
    tags:
      crossplane-kind: service.ecs.aws.upbound.io
      crossplane-name: service-offer
      crossplane-providerconfig: aws-admin-eksdev-account-upbound
    taskDefinition: service-offer
    taskDefinitionRef:
      name: service-offer-202420
    taskDefinitionSelector:
      matchLabels:
        taskdefinition: service-service-offer-202420
  initProvider: {}
  managementPolicies:
  - '*'
  providerConfigRef:
    name: aws-admin-eksdev-account-upbound
status:
  atProvider: {}
  conditions:
  - lastTransitionTime: "2024-01-24T15:50:56Z"
    message: 'connect failed: cannot initialize the no-fork async external client:
      failed to get the extended parameters for resource "service-offer": cannot get
      ID: cannot generate id without cluster paramater'
    reason: ReconcileError
    status: "False"
    type: Synced

What happened?

If I try to create the resource outside of composition, it works success:

apiVersion: ecs.aws.upbound.io/v1beta1
kind: Service
metadata:
  annotations:
    crossplane.io/external-create-pending: "2024-01-24T16:21:49Z"
    crossplane.io/external-create-succeeded: "2024-01-24T16:21:49Z"
    crossplane.io/external-name: test-dmaganto-offer
  creationTimestamp: "2024-01-24T16:11:46Z"
  finalizers:
  - finalizer.managedresource.crossplane.io
  generation: 4
  name: test-dmaganto-offer
  resourceVersion: "165121771"
  uid: 75cec091-2726-420a-88ce-a9e9770223c4
spec:
  deletionPolicy: Delete
  forProvider:
    cluster: service-test1
    clusterRef:
      name: service-test1
    clusterSelector:
      matchLabels:
        cluster: service-test1
    deploymentCircuitBreaker:
    - enable: false
      rollback: false
    deploymentController:
    - type: ECS
    deploymentMaximumPercent: 200
    deploymentMinimumHealthyPercent: 100
    desiredCount: 1
    iamRole: /aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS
    launchType: FARGATE
    loadBalancer:
    - containerName: service-offer
      containerPort: 8080
      targetGroupArn: arn:aws:elasticloadbalancing:eu-central-1:XXXXXXXX:targetgroup/service-offer/64d90bfd8ea4177d
      targetGroupArnRef:
        name: service-offer
      targetGroupArnSelector:
        matchLabels:
          targetgroup: service-offer
    networkConfiguration:
    - securityGroups:
      - sg-01f60cc246eab6e6f
      subnets:
      - subnet-06f4982b015ed4a00
      - subnet-0585a2f94aa52d9ee
    platformVersion: LATEST
    propagateTags: TASK_DEFINITION
    region: eu-central-1
    schedulingStrategy: REPLICA
    tags:
      crossplane-kind: service.ecs.aws.upbound.io
      crossplane-name: test-dmaganto-offer
      crossplane-providerconfig: aws-admin-eksdev-account-upbound
    taskDefinition: service-offer
    taskDefinitionRef:
      name: service-offer-202420
    taskDefinitionSelector:
      matchLabels:
        taskdefinition: service-service-offer-202420
  initProvider: {}
  managementPolicies:
  - '*'
  providerConfigRef:
    name: aws-admin-eksdev-account-upbound
status:
  atProvider:
    cluster: service-test1
    deploymentCircuitBreaker:
    - enable: false
      rollback: false
    deploymentController:
    - type: ECS
    deploymentMaximumPercent: 200
    deploymentMinimumHealthyPercent: 100
    desiredCount: 1
    enableEcsManagedTags: false
    enableExecuteCommand: false
    healthCheckGracePeriodSeconds: 0
    iamRole: /aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS
    id: arn:aws:ecs:eu-central-1:XXXXXXXX:service/service-test1/test-dmaganto-offer
    launchType: FARGATE
    loadBalancer:
    - containerName: service-offer
      containerPort: 8080
      elbName: ""
      targetGroupArn: arn:aws:elasticloadbalancing:eu-central-1:XXXXXXXX:targetgroup/service-offer/64d90bfd8ea4177d
    networkConfiguration:
    - assignPublicIp: false
      securityGroups:
      - sg-01f60cc246eab6e6f
      subnets:
      - subnet-0585a2f94aa52d9ee
      - subnet-06f4982b015ed4a00
    platformVersion: LATEST
    propagateTags: TASK_DEFINITION
    schedulingStrategy: REPLICA
    tags:
      crossplane-kind: service.ecs.aws.upbound.io
      crossplane-name: test-dmaganto-offer
      crossplane-providerconfig: aws-admin-eksdev-account-upbound
    tagsAll:
      crossplane-kind: service.ecs.aws.upbound.io
      crossplane-name: test-dmaganto-offer
      crossplane-providerconfig: aws-admin-eksdev-account-upbound
    taskDefinition: service-offer:12
    waitForSteadyState: false
  conditions:
  - lastTransitionTime: "2024-01-24T16:21:50Z"
    reason: Available
    status: "True"
    type: Ready
  - lastTransitionTime: "2024-01-24T16:13:46Z"
    reason: ReconcileSuccess
    status: "True"
    type: Synced
  - lastTransitionTime: "2024-01-24T16:18:14Z"
    reason: Success
    status: "True"
    type: LastAsyncOperation

Relevant Error Output Snippet

provider-aws-ecs-49b5846c5d9f-646c74c777-xz29p package-runtime 2024-01-25T07:14:57Z DEBUG   events  cannot initialize the no-fork async external client: failed to get the extended parameters for resource "service-offer": cannot get ID: cannot generate id without cluster paramater    {"type": "Warning", "object": {"kind":"Service","name":"service-offer","uid":"539146e9-4811-4279-94cf-33107c7038fd","apiVersion":"ecs.aws.upbound.io/v1beta1","resourceVersion":"165957594"}, "reason": "CannotConnectToProvider"}
provider-aws-ecs-49b5846c5d9f-646c74c777-xz29p package-runtime 2024-01-25T07:16:57Z DEBUG   provider-aws    Cannot add finalizer    {"controller": "managed/ecs.aws.upbound.io/v1beta1, kind=service", "request": {"name":"service-offer"}, "uid": "539146e9-4811-4279-94cf-33107c7038fd", "version": "165957594", "external-name": "service-offer", "error": "cannot update object: Operation cannot be fulfilled on services.ecs.aws.upbound.io \"service-offer\": the object has been modified; please apply your changes to the latest version and try again"}
provider-aws-ecs-49b5846c5d9f-646c74c777-xz29p package-runtime 2024-01-25T07:16:57Z DEBUG   provider-aws    Cannot connect to provider  {"controller": "managed/ecs.aws.upbound.io/v1beta1, kind=service", "request": {"name":"service-offer"}, "uid": "539146e9-4811-4279-94cf-33107c7038fd", "version": "165957867", "external-name": "service-offer", "error": "cannot initialize the no-fork async external client: failed to get the extended parameters for resource \"service-offer\": cannot get ID: cannot generate id without cluster paramater", "errorVerbose": "cannot generate id without cluster paramater
github.com/upbound/provider-aws/config/ecs.Configure.func2.2
    github.com/upbound/provider-aws/config/ecs/config.go:58
github.com/crossplane/upjet/pkg/controller.getExtendedParameters
    github.com/crossplane/upjet@v1.1.0-rc.0.0.20231227120826-4cb45f9104ac/pkg/controller/external_nofork.go:140
github.com/crossplane/upjet/pkg/controller.(*NoForkConnector).Connect
    github.com/crossplane/upjet@v1.1.0-rc.0.0.20231227120826-4cb45f9104ac/pkg/controller/external_nofork.go:245
github.com/crossplane/upjet/pkg/controller.(*NoForkAsyncConnector).Connect
    github.com/crossplane/upjet@v1.1.0-rc.0.0.20231227120826-4cb45f9104ac/pkg/controller/external_async_nofork.go:47
github.com/crossplane/crossplane-runtime/pkg/reconciler/managed.(*NopDisconnecter).Connect
    github.com/crossplane/crossplane-runtime@v1.15.0-rc.0.0.20231215091746-d23a82b3a2f5/pkg/reconciler/managed/reconciler.go:246
github.com/crossplane/crossplane-runtime/pkg/reconciler/managed.(*Reconciler).Reconcile
    github.com/crossplane/crossplane-runtime@v1.15.0-rc.0.0.20231215091746-d23a82b3a2f5/pkg/reconciler/managed/reconciler.go:881
github.com/crossplane/crossplane-runtime/pkg/ratelimiter.(*Reconciler).Reconcile
    github.com/crossplane/crossplane-runtime@v1.15.0-rc.0.0.20231215091746-d23a82b3a2f5/pkg/ratelimiter/reconciler.go:54
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile
    sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:119
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler
    sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:316
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
    sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:266
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2
    sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:227
runtime.goexit
    runtime/asm_amd64.s:1650
cannot get ID
github.com/crossplane/upjet/pkg/controller.getExtendedParameters
    github.com/crossplane/upjet@v1.1.0-rc.0.0.20231227120826-4cb45f9104ac/pkg/controller/external_nofork.go:142
github.com/crossplane/upjet/pkg/controller.(*NoForkConnector).Connect
    github.com/crossplane/upjet@v1.1.0-rc.0.0.20231227120826-4cb45f9104ac/pkg/controller/external_nofork.go:245
github.com/crossplane/upjet/pkg/controller.(*NoForkAsyncConnector).Connect
    github.com/crossplane/upjet@v1.1.0-rc.0.0.20231227120826-4cb45f9104ac/pkg/controller/external_async_nofork.go:47
github.com/crossplane/crossplane-runtime/pkg/reconciler/managed.(*NopDisconnecter).Connect
    github.com/crossplane/crossplane-runtime@v1.15.0-rc.0.0.20231215091746-d23a82b3a2f5/pkg/reconciler/managed/reconciler.go:246
github.com/crossplane/crossplane-runtime/pkg/reconciler/managed.(*Reconciler).Reconcile
    github.com/crossplane/crossplane-runtime@v1.15.0-rc.0.0.20231215091746-d23a82b3a2f5/pkg/reconciler/managed/reconciler.go:881
github.com/crossplane/crossplane-runtime/pkg/ratelimiter.(*Reconciler).Reconcile
    github.com/crossplane/crossplane-runtime@v1.15.0-rc.0.0.20231215091746-d23a82b3a2f5/pkg/ratelimiter/reconciler.go:54
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile
    sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:119
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler
    sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:316
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
    sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:266
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2
    sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:227
runtime.goexit
    runtime/asm_amd64.s:1650
failed to get the extended parameters for resource \"service-offer\"
github.com/crossplane/upjet/pkg/controller.(*NoForkConnector).Connect
    github.com/crossplane/upjet@v1.1.0-rc.0.0.20231227120826-4cb45f9104ac/pkg/controller/external_nofork.go:247
github.com/crossplane/upjet/pkg/controller.(*NoForkAsyncConnector).Connect
    github.com/crossplane/upjet@v1.1.0-rc.0.0.20231227120826-4cb45f9104ac/pkg/controller/external_async_nofork.go:47
github.com/crossplane/crossplane-runtime/pkg/reconciler/managed.(*NopDisconnecter).Connect
    github.com/crossplane/crossplane-runtime@v1.15.0-rc.0.0.20231215091746-d23a82b3a2f5/pkg/reconciler/managed/reconciler.go:246
github.com/crossplane/crossplane-runtime/pkg/reconciler/managed.(*Reconciler).Reconcile
    github.com/crossplane/crossplane-runtime@v1.15.0-rc.0.0.20231215091746-d23a82b3a2f5/pkg/reconciler/managed/reconciler.go:881
github.com/crossplane/crossplane-runtime/pkg/ratelimiter.(*Reconciler).Reconcile
    github.com/crossplane/crossplane-runtime@v1.15.0-rc.0.0.20231215091746-d23a82b3a2f5/pkg/ratelimiter/reconciler.go:54
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile
    sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:119
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler
    sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:316
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
    sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:266
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2
    sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:227
runtime.goexit
    runtime/asm_amd64.s:1650
cannot initialize the no-fork async external client
github.com/crossplane/upjet/pkg/controller.(*NoForkAsyncConnector).Connect
    github.com/crossplane/upjet@v1.1.0-rc.0.0.20231227120826-4cb45f9104ac/pkg/controller/external_async_nofork.go:49
github.com/crossplane/crossplane-runtime/pkg/reconciler/managed.(*NopDisconnecter).Connect
    github.com/crossplane/crossplane-runtime@v1.15.0-rc.0.0.20231215091746-d23a82b3a2f5/pkg/reconciler/managed/reconciler.go:246
github.com/crossplane/crossplane-runtime/pkg/reconciler/managed.(*Reconciler).Reconcile
    github.com/crossplane/crossplane-runtime@v1.15.0-rc.0.0.20231215091746-d23a82b3a2f5/pkg/reconciler/managed/reconciler.go:881
github.com/crossplane/crossplane-runtime/pkg/ratelimiter.(*Reconciler).Reconcile
    github.com/crossplane/crossplane-runtime@v1.15.0-rc.0.0.20231215091746-d23a82b3a2f5/pkg/ratelimiter/reconciler.go:54
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile
    sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:119
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler
    sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:316
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
    sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:266
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2
    sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:227
runtime.goexit
    runtime/asm_amd64.s:1650"}

Crossplane Version

1.14.5

Provider Version

0.47.1

Kubernetes Version

v1.28.2

Kubernetes Distribution

EKS

Additional Info

No response

mhmdbahja commented 5 months ago

Do you have any workarounds for this issue?

daniel-maganto commented 5 months ago

Yes, in the end instead of using MatchLabels we have added the names directly:

      - base:
          apiVersion: ecs.aws.upbound.io/v1beta1
          kind: Service
          spec:
            managementPolicies: ["Observe", "Create", "Update", "Delete"]
            forProvider:
              cluster: ""
              launchType: FARGATE
              loadBalancer:
              - containerName: ""
                containerPort: 8080
                targetGroupArn: ""
              networkConfiguration:
              - securityGroups:
                - null
                subnets: ""
              propagateTags: TASK_DEFINITION
              region: ""
              taskDefinitionRef:
                name: ""
            initProvider: {}
        name: service
        patches:
        - patchSetName: common-parameters
          type: PatchSet
        - fromFieldPath: spec.parameters.autoscaling.minCapacity
          toFieldPath: spec.initProvider.desiredCount
          type: FromCompositeFieldPath
        - fromFieldPath: serviceSubnets
          toFieldPath: spec.forProvider.networkConfiguration[0].subnets
          type: FromEnvironmentFieldPath
        - fromFieldPath: spec.parameters.family
          toFieldPath: spec.forProvider.loadBalancer[0].containerName
          type: FromCompositeFieldPath
        - fromFieldPath: spec.parameters.family
          toFieldPath: metadata.name
          type: FromCompositeFieldPath
        - patchSetName: manage-resource-name
          type: PatchSet
        - fromFieldPath: securityGroupECS
          toFieldPath: spec.forProvider.networkConfiguration[0].securityGroups[0]
          type: FromEnvironmentFieldPath
        - combine:
            strategy: string
            string:
              fmt: '%s-%s-%s'
            variables:
            - fromFieldPath: spec.parameters.family
            - fromFieldPath: spec.resourceConfig.env
            - fromFieldPath: spec.parameters.task_id
          toFieldPath: spec.forProvider.taskDefinitionRef.name
          type: CombineFromComposite
        - fromFieldPath: status.targetGroupArn
          policy:
            fromFieldPath: Required
          toFieldPath: spec.forProvider.loadBalancer[0].targetGroupArn
          type: FromCompositeFieldPath
        - combine:
            strategy: string
            string:
              fmt: '%s-%s'
            variables:
            - fromFieldPath: spec.resourceConfig.tenant
            - fromFieldPath: spec.parameters.clusterName
          toFieldPath: spec.forProvider.cluster
          type: CombineFromComposite
        readinessChecks:
        - matchCondition:
            status: "True"
            type: Ready
          type: MatchCondition
        - matchCondition:
            status: "True"
            type: Synced
          type: MatchCondition
github-actions[bot] commented 1 month ago

This provider repo does not have enough maintainers to address every issue. Since there has been no activity in the last 90 days it is now marked as stale. It will be closed in 14 days if no further activity occurs. Leaving a comment starting with /fresh will mark this issue as not stale.

github-actions[bot] commented 1 month ago

This issue is being closed since there has been no activity for 14 days since marking it as stale. If you still need help, feel free to comment or reopen the issue!