Skip to content

EC2 controller does not seem to remediate instance #1709

@Katnopic

Description

@Katnopic

Describe the bug

We started a POC of EC2 Controller for internal use of managing EC2's from our EKS Clusters.

We have deployed the EC2 controller through helm (latest version 1.0.1), and gave the service account of the controller relevant permissions to manage EC2 (currently we gave ec2:* permissions on all resources), so far so good.

We have created an 'Instance' k8s object and we can see that it was created in our EC2 Console.

However, we expected that when we do manual changes on the created EC2 (for example, shutting it down or changing the security group), the controller would try to remediate the instance, but seems like this doesn't happen.

We also tried to terminate the instance manually to see what happens (we expected the controller to spin up a new instance to replace the terminated one), but again, controller reports it detects no changes

We changed the defaultResyncPeriod from the default 10h to 90 seconds so the controller does sync with the remote state more often to check this, but as you can see in the logs below, that doesn't fix our issue.

Steps to reproduce

We deployed ec2-controller through helm with the following values:

aws:
  region: {{ aws_region }}
installScope: namespace
# controller reconciliation configurations
reconcile:
  defaultResyncPeriod: 90
serviceAccount:
  # Specifies whether a service account should be created
  create: true
  # The name of the service account to use.
  name: ack-ec2-controller
  annotations:
    # TODO: get this from eks terraform outputs
    eks.amazonaws.com/role-arn: {{ role_arn }} 
# log level for the controller
log:
  enable_development_logging: true
  level: debug

startup logs:

2023-02-27T12:24:32.363Z	INFO	setup	initializing service controller	{"aws.service": "ec2"}
2023-02-27T12:24:33.274Z	DEBUG	ackrt	Initiating reconciler	{"reconciler kind": "RouteTable", "resync period seconds": 90}
2023-02-27T12:24:33.274Z	DEBUG	ackrt	Initiating reconciler	{"reconciler kind": "TransitGateway", "resync period seconds": 90}
2023-02-27T12:24:33.274Z	DEBUG	ackrt	Initiating reconciler	{"reconciler kind": "ElasticIPAddress", "resync period seconds": 90}
2023-02-27T12:24:33.274Z	DEBUG	ackrt	Initiating reconciler	{"reconciler kind": "NATGateway", "resync period seconds": 90}
2023-02-27T12:24:33.274Z	DEBUG	ackrt	Initiating reconciler	{"reconciler kind": "VPC", "resync period seconds": 90}
2023-02-27T12:24:33.274Z	DEBUG	ackrt	Initiating reconciler	{"reconciler kind": "InternetGateway", "resync period seconds": 90}
2023-02-27T12:24:33.274Z	DEBUG	ackrt	Initiating reconciler	{"reconciler kind": "SecurityGroup", "resync period seconds": 90}
2023-02-27T12:24:33.274Z	DEBUG	ackrt	Initiating reconciler	{"reconciler kind": "DHCPOptions", "resync period seconds": 90}
2023-02-27T12:24:33.274Z	DEBUG	ackrt	Initiating reconciler	{"reconciler kind": "Subnet", "resync period seconds": 90}
2023-02-27T12:24:33.275Z	DEBUG	ackrt	Initiating reconciler	{"reconciler kind": "VPCEndpoint", "resync period seconds": 90}
2023-02-27T12:24:33.275Z	DEBUG	ackrt	Initiating reconciler	{"reconciler kind": "Instance", "resync period seconds": 90}
2023-02-27T12:24:33.275Z	INFO	setup	starting manager	{"aws.service": "ec2"}
2023-02-27T12:24:33.275Z	INFO	Starting server	{"path": "/metrics", "kind": "metrics", "addr": "[::]:8080"}
2023-02-27T12:24:33.275Z	INFO	controller.adoptedresource	Starting EventSource	{"reconciler group": "services.k8s.aws", "reconciler kind": "AdoptedResource", "source": "kind source: *v1alpha1.AdoptedResource"}
2023-02-27T12:24:33.275Z	INFO	controller.fieldexport	Starting EventSource	{"reconciler group": "services.k8s.aws", "reconciler kind": "FieldExport", "source": "kind source: *v1alpha1.FieldExport"}
2023-02-27T12:24:33.275Z	INFO	controller.adoptedresource	Starting Controller	{"reconciler group": "services.k8s.aws", "reconciler kind": "AdoptedResource"}
2023-02-27T12:24:33.275Z	INFO	controller.fieldexport	Starting Controller	{"reconciler group": "services.k8s.aws", "reconciler kind": "FieldExport"}
2023-02-27T12:24:33.275Z	INFO	controller.routetable	Starting EventSource	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "RouteTable", "source": "kind source: *v1alpha1.RouteTable"}
2023-02-27T12:24:33.275Z	INFO	controller.routetable	Starting Controller	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "RouteTable"}
2023-02-27T12:24:33.275Z	INFO	controller.routetable	Starting EventSource	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "RouteTable", "source": "kind source: *v1alpha1.RouteTable"}
2023-02-27T12:24:33.275Z	INFO	controller.routetable	Starting Controller	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "RouteTable"}
2023-02-27T12:24:33.275Z	INFO	controller.transitgateway	Starting EventSource	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "TransitGateway", "source": "kind source: *v1alpha1.TransitGateway"}
2023-02-27T12:24:33.275Z	INFO	controller.elasticipaddress	Starting EventSource	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "ElasticIPAddress", "source": "kind source: *v1alpha1.ElasticIPAddress"}
2023-02-27T12:24:33.275Z	INFO	controller.elasticipaddress	Starting Controller	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "ElasticIPAddress"}
2023-02-27T12:24:33.275Z	INFO	controller.natgateway	Starting EventSource	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "NATGateway", "source": "kind source: *v1alpha1.NATGateway"}
2023-02-27T12:24:33.275Z	INFO	controller.natgateway	Starting Controller	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "NATGateway"}
2023-02-27T12:24:33.275Z	INFO	controller.transitgateway	Starting Controller	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "TransitGateway"}
2023-02-27T12:24:33.275Z	INFO	controller.vpc	Starting EventSource	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "VPC", "source": "kind source: *v1alpha1.VPC"}
2023-02-27T12:24:33.275Z	INFO	controller.securitygroup	Starting EventSource	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "SecurityGroup", "source": "kind source: *v1alpha1.SecurityGroup"}
2023-02-27T12:24:33.275Z	INFO	controller.dhcpoptions	Starting EventSource	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "DHCPOptions", "source": "kind source: *v1alpha1.DHCPOptions"}
2023-02-27T12:24:33.275Z	INFO	controller.dhcpoptions	Starting Controller	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "DHCPOptions"}
2023-02-27T12:24:33.275Z	INFO	controller.transitgateway	Starting EventSource	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "TransitGateway", "source": "kind source: *v1alpha1.TransitGateway"}
2023-02-27T12:24:33.276Z	INFO	controller.transitgateway	Starting Controller	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "TransitGateway"}
2023-02-27T12:24:33.275Z	INFO	controller.vpc	Starting Controller	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "VPC"}
2023-02-27T12:24:33.275Z	INFO	controller.vpc	Starting EventSource	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "VPC", "source": "kind source: *v1alpha1.VPC"}
2023-02-27T12:24:33.275Z	INFO	controller.natgateway	Starting EventSource	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "NATGateway", "source": "kind source: *v1alpha1.NATGateway"}
2023-02-27T12:24:33.276Z	INFO	controller.natgateway	Starting Controller	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "NATGateway"}
2023-02-27T12:24:33.276Z	INFO	controller.subnet	Starting EventSource	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "Subnet", "source": "kind source: *v1alpha1.Subnet"}
2023-02-27T12:24:33.276Z	INFO	controller.subnet	Starting Controller	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "Subnet"}
2023-02-27T12:24:33.275Z	INFO	controller.internetgateway	Starting EventSource	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "InternetGateway", "source": "kind source: *v1alpha1.InternetGateway"}
2023-02-27T12:24:33.276Z	INFO	controller.internetgateway	Starting Controller	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "InternetGateway"}
2023-02-27T12:24:33.276Z	INFO	controller.vpc	Starting Controller	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "VPC"}
2023-02-27T12:24:33.275Z	INFO	controller.elasticipaddress	Starting EventSource	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "ElasticIPAddress", "source": "kind source: *v1alpha1.ElasticIPAddress"}
2023-02-27T12:24:33.276Z	INFO	controller.instance	Starting EventSource	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "Instance", "source": "kind source: *v1alpha1.Instance"}
2023-02-27T12:24:33.276Z	INFO	controller.instance	Starting Controller	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "Instance"}
2023-02-27T12:24:33.276Z	INFO	controller.elasticipaddress	Starting Controller	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "ElasticIPAddress"}
2023-02-27T12:24:33.275Z	INFO	controller.securitygroup	Starting EventSource	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "SecurityGroup", "source": "kind source: *v1alpha1.SecurityGroup"}
2023-02-27T12:24:33.276Z	INFO	controller.securitygroup	Starting Controller	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "SecurityGroup"}
2023-02-27T12:24:33.276Z	INFO	controller.vpcendpoint	Starting EventSource	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "VPCEndpoint", "source": "kind source: *v1alpha1.VPCEndpoint"}
2023-02-27T12:24:33.276Z	INFO	controller.vpcendpoint	Starting Controller	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "VPCEndpoint"}
2023-02-27T12:24:33.276Z	INFO	controller.vpcendpoint	Starting EventSource	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "VPCEndpoint", "source": "kind source: *v1alpha1.VPCEndpoint"}
2023-02-27T12:24:33.276Z	INFO	controller.vpcendpoint	Starting Controller	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "VPCEndpoint"}
2023-02-27T12:24:33.275Z	INFO	controller.internetgateway	Starting EventSource	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "InternetGateway", "source": "kind source: *v1alpha1.InternetGateway"}
2023-02-27T12:24:33.277Z	INFO	controller.internetgateway	Starting Controller	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "InternetGateway"}
2023-02-27T12:24:33.277Z	INFO	controller.instance	Starting EventSource	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "Instance", "source": "kind source: *v1alpha1.Instance"}
2023-02-27T12:24:33.277Z	INFO	controller.instance	Starting Controller	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "Instance"}
2023-02-27T12:24:33.277Z	INFO	controller.securitygroup	Starting Controller	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "SecurityGroup"}
2023-02-27T12:24:33.277Z	INFO	controller.subnet	Starting EventSource	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "Subnet", "source": "kind source: *v1alpha1.Subnet"}
2023-02-27T12:24:33.364Z	INFO	controller.subnet	Starting Controller	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "Subnet"}
2023-02-27T12:24:33.464Z	INFO	controller.dhcpoptions	Starting EventSource	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "DHCPOptions", "source": "kind source: *v1alpha1.DHCPOptions"}
2023-02-27T12:24:33.464Z	INFO	controller.dhcpoptions	Starting Controller	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "DHCPOptions"}
2023-02-27T12:24:33.475Z	INFO	controller.adoptedresource	Starting workers	{"reconciler group": "services.k8s.aws", "reconciler kind": "AdoptedResource", "worker count": 1}
2023-02-27T12:24:33.476Z	INFO	controller.natgateway	Starting workers	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "NATGateway", "worker count": 1}
2023-02-27T12:24:33.477Z	INFO	controller.vpc	Starting workers	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "VPC", "worker count": 1}
2023-02-27T12:24:33.477Z	INFO	controller.securitygroup	Starting workers	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "SecurityGroup", "worker count": 1}
2023-02-27T12:24:33.477Z	INFO	controller.vpc	Starting workers	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "VPC", "worker count": 1}
2023-02-27T12:24:33.477Z	INFO	controller.securitygroup	Starting workers	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "SecurityGroup", "worker count": 1}
2023-02-27T12:24:33.477Z	INFO	controller.internetgateway	Starting workers	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "InternetGateway", "worker count": 1}
2023-02-27T12:24:33.565Z	INFO	controller.elasticipaddress	Starting workers	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "ElasticIPAddress", "worker count": 1}
2023-02-27T12:24:33.565Z	INFO	controller.transitgateway	Starting workers	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "TransitGateway", "worker count": 1}
2023-02-27T12:24:33.565Z	INFO	controller.vpcendpoint	Starting workers	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "VPCEndpoint", "worker count": 1}
2023-02-27T12:24:33.565Z	INFO	controller.dhcpoptions	Starting workers	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "DHCPOptions", "worker count": 1}
2023-02-27T12:24:33.565Z	INFO	controller.routetable	Starting workers	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "RouteTable", "worker count": 1}
2023-02-27T12:24:33.565Z	INFO	controller.elasticipaddress	Starting workers	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "ElasticIPAddress", "worker count": 1}
2023-02-27T12:24:33.565Z	INFO	controller.fieldexport	Starting workers	{"reconciler group": "services.k8s.aws", "reconciler kind": "FieldExport", "worker count": 1}
2023-02-27T12:24:33.565Z	INFO	controller.internetgateway	Starting workers	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "InternetGateway", "worker count": 1}
2023-02-27T12:24:33.565Z	INFO	controller.instance	Starting workers	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "Instance", "worker count": 1}
2023-02-27T12:24:33.565Z	INFO	controller.subnet	Starting workers	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "Subnet", "worker count": 1}
2023-02-27T12:24:33.565Z	INFO	controller.routetable	Starting workers	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "RouteTable", "worker count": 1}
2023-02-27T12:24:33.565Z	INFO	controller.transitgateway	Starting workers	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "TransitGateway", "worker count": 1}
2023-02-27T12:24:33.565Z	INFO	controller.instance	Starting workers	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "Instance", "worker count": 1}
2023-02-27T12:24:33.565Z	INFO	controller.natgateway	Starting workers	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "NATGateway", "worker count": 1}
2023-02-27T12:24:33.565Z	INFO	controller.dhcpoptions	Starting workers	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "DHCPOptions", "worker count": 1}
2023-02-27T12:24:33.565Z	INFO	controller.vpcendpoint	Starting workers	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "VPCEndpoint", "worker count": 1}
2023-02-27T12:24:33.565Z	INFO	controller.subnet	Starting workers	{"reconciler group": "ec2.services.k8s.aws", "reconciler kind": "Subnet", "worker count": 1}

After, we deployed the Instance object:

---
apiVersion: ec2.services.k8s.aws/v1alpha1
kind: Instance
metadata:
  name: {{ env_name }}-tower
  namespace: {{ kubernetes_namespace }}
spec:
  imageID: {{ redhat_ami.image_id }}
  instanceType: {{ ec2_type }}
  subnetID: {{ ec2_subnet }}
  keyName: {{ ec2_keyname }}
  securityGroupIDs:
    - {{ ec2_sg }}
  tags:
    - key: Name
      value: {{ env_name }}-tower

At this point, we see the instance being created in the ec2 console. controller logs:

2023-02-27T12:24:33.571Z	DEBUG	ackrt	> r.Sync	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "generation": 1}
2023-02-27T12:24:33.571Z	DEBUG	ackrt	>> r.resetConditions	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "generation": 1}
2023-02-27T12:24:33.571Z	DEBUG	ackrt	<< r.resetConditions	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "generation": 1}
2023-02-27T12:24:33.571Z	DEBUG	ackrt	>> rm.ResolveReferences	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:33.571Z	DEBUG	ackrt	<< rm.ResolveReferences	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:33.571Z	DEBUG	ackrt	>> rm.EnsureTags	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:33.571Z	DEBUG	ackrt	<< rm.EnsureTags	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:33.571Z	DEBUG	ackrt	>> rm.ReadOne	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:33.571Z	DEBUG	ackrt	>>> rm.sdkFind	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:33.571Z	DEBUG	ackrt	<<< rm.sdkFind	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1, "error": "resource not found"}
2023-02-27T12:24:33.571Z	DEBUG	ackrt	<< rm.ReadOne	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1, "error": "resource not found"}
2023-02-27T12:24:33.571Z	DEBUG	ackrt	>> r.createResource	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:33.571Z	DEBUG	ackrt	>>> r.setResourceManaged	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:33.571Z	DEBUG	ackrt	>>>> r.patchResourceMetadataAndSpec	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:33.571Z	DEBUG	ackrt	>>>>> kc.Patch (metadata + spec)	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:33.579Z	DEBUG	ackrt	patched resource metadata + spec	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1, "json": "{\"metadata\":{\"finalizers\":[\"finalizers.ec2.services.k8s.aws/Instance\"]}}"}
2023-02-27T12:24:33.579Z	DEBUG	ackrt	<<<<< kc.Patch (metadata + spec)	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:33.579Z	DEBUG	ackrt	<<<< r.patchResourceMetadataAndSpec	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:33.579Z	DEBUG	ackrt	marked resource as managed	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:33.579Z	DEBUG	ackrt	<<< r.setResourceManaged	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:33.579Z	DEBUG	ackrt	>>> rm.ResolveReferences	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:33.579Z	DEBUG	ackrt	<<< rm.ResolveReferences	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:33.579Z	DEBUG	ackrt	>>> rm.EnsureTags	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:33.579Z	DEBUG	ackrt	<<< rm.EnsureTags	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:33.579Z	DEBUG	ackrt	>>> rm.Create	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:33.579Z	DEBUG	ackrt	>>>> rm.sdkCreate	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:33.586Z	DEBUG	exporter.field-export-reconciler	error did not need requeue	{"error": "the source resource is not synced yet"}
2023-02-27T12:24:34.760Z	DEBUG	ackrt	<<<< rm.sdkCreate	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.760Z	DEBUG	ackrt	<<< rm.Create	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.760Z	DEBUG	ackrt	>>> rm.ReadOne	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.760Z	DEBUG	ackrt	>>>> rm.sdkFind	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.857Z	DEBUG	ackrt	<<<< rm.sdkFind	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.857Z	DEBUG	ackrt	<<< rm.ReadOne	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.857Z	DEBUG	ackrt	>>> r.patchResourceMetadataAndSpec	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.857Z	DEBUG	ackrt	>>>> kc.Patch (metadata + spec)	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.867Z	DEBUG	ackrt	patched resource metadata + spec	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1, "json": "{\"spec\":{\"capacityReservationSpecification\":{\"capacityReservationPreference\":\"open\"},\"cpuOptions\":{\"coreCount\":4,\"threadsPerCore\":2},\"ebsOptimized\":false,\"enclaveOptions\":{\"enabled\":false},\"maintenanceOptions\":{\"autoRecovery\":\"default\"},\"metadataOptions\":{\"httpEndpoint\":\"enabled\",\"httpProtocolIPv6\":\"disabled\",\"httpPutResponseHopLimit\":1,\"httpTokens\":\"optional\",\"instanceMetadataTags\":\"disabled\"},\"monitoring\":{},\"networkInterfaces\":[{\"description\":\"\",\"interfaceType\":\"interface\",\"networkInterfaceID\":\"eni-1111\",\"privateIPAddress\":\"REDACTED\",\"privateIPAddresses\":[{\"primary\":true,\"privateIPAddress\":\"REDACTED\"}],\"subnetID\":\"subnet-1111\"}],\"placement\":{\"availabilityZone\":\"REDACTEDa\",\"groupName\":\"\",\"tenancy\":\"default\"},\"privateDNSNameOptions\":{\"enableResourceNameDNSAAAARecord\":false,\"enableResourceNameDNSARecord\":false,\"hostnameType\":\"ip-name\"},\"privateIPAddress\":\"REDACTED\",\"securityGroups\":[\"sg-1111\"]},\"status\":{\"ackResourceMetadata\":{\"ownerAccountID\":\"REDACTED\",\"region\":\"REDACTED\"},\"amiLaunchIndex\":0,\"architecture\":\"x86_64\",\"enaSupport\":true,\"hypervisor\":\"xen\",\"instanceID\":\"REDACTED\",\"launchTime\":\"2023-02-27T12:24:34Z\",\"platformDetails\":\"Red Hat Enterprise Linux\",\"privateDNSName\":\"REDACTED\",\"publicDNSName\":\"\",\"rootDeviceName\":\"/dev/sda1\",\"rootDeviceType\":\"ebs\",\"sourceDestCheck\":true,\"state\":{\"code\":0,\"name\":\"pending\"},\"stateTransitionReason\":\"\",\"usageOperation\":\"RunInstances:0010\",\"usageOperationUpdateTime\":\"2023-02-27T12:24:34Z\",\"virtualizationType\":\"hvm\",\"vpcID\":\"vpc-1111\"}}"}
2023-02-27T12:24:34.867Z	DEBUG	ackrt	<<<< kc.Patch (metadata + spec)	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.867Z	DEBUG	ackrt	<<< r.patchResourceMetadataAndSpec	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.867Z	INFO	ackrt	created new resource	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.867Z	DEBUG	ackrt	<< r.createResource	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.867Z	DEBUG	ackrt	>> r.lateInitializeResource	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.867Z	DEBUG	ackrt	>>> rm.LateInitialize	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.867Z	DEBUG	ackrt	>>>> rm.sdkFind	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.873Z	DEBUG	exporter.field-export-reconciler	error did not need requeue	{"error": "the source resource is not synced yet"}
2023-02-27T12:24:34.904Z	DEBUG	ackrt	<<<< rm.sdkFind	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.904Z	DEBUG	ackrt	<<< rm.LateInitialize	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.904Z	DEBUG	ackrt	>>> r.patchResourceMetadataAndSpec	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.904Z	DEBUG	ackrt	>>>> kc.Patch (metadata + spec)	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.916Z	DEBUG	ackrt	patched resource metadata + spec	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1, "json": "{\"spec\":{\"hibernationOptions\":{\"configured\":false}},\"status\":{\"conditions\":[{\"lastTransitionTime\":\"2023-02-27T12:24:34Z\",\"message\":\"Late initialization successful\",\"reason\":\"Late initialization successful\",\"status\":\"True\",\"type\":\"ACK.LateInitialized\"}]}}"}
2023-02-27T12:24:34.916Z	DEBUG	ackrt	<<<< kc.Patch (metadata + spec)	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.916Z	DEBUG	ackrt	<<< r.patchResourceMetadataAndSpec	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.916Z	DEBUG	ackrt	<< r.lateInitializeResource	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.916Z	DEBUG	ackrt	>> r.ensureConditions	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.916Z	DEBUG	ackrt	>>> rm.IsSynced	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.916Z	DEBUG	ackrt	<<< rm.IsSynced	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.916Z	DEBUG	ackrt	<< r.ensureConditions	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.916Z	DEBUG	ackrt	< r.Sync	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.916Z	DEBUG	ackrt	requeuing	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1, "after": "1m30s"}
2023-02-27T12:24:34.916Z	DEBUG	ackrt	> r.patchResourceStatus	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.916Z	DEBUG	ackrt	>> kc.Patch (status)	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.924Z	DEBUG	exporter.field-export-reconciler	error did not need requeue	{"error": "the source resource is not synced yet"}
2023-02-27T12:24:34.932Z	DEBUG	ackrt	patched resource status	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1, "json": "{\"metadata\":{\"generation\":3,\"resourceVersion\":\"81758069\"},\"spec\":{\"capacityReservationSpecification\":{\"capacityReservationPreference\":\"open\"},\"cpuOptions\":{\"coreCount\":4,\"threadsPerCore\":2},\"ebsOptimized\":false,\"enclaveOptions\":{\"enabled\":false},\"hibernationOptions\":{\"configured\":false},\"maintenanceOptions\":{\"autoRecovery\":\"default\"},\"metadataOptions\":{\"httpEndpoint\":\"enabled\",\"httpProtocolIPv6\":\"disabled\",\"httpPutResponseHopLimit\":1,\"httpTokens\":\"optional\",\"instanceMetadataTags\":\"disabled\"},\"monitoring\":{},\"networkInterfaces\":[{\"description\":\"\",\"interfaceType\":\"interface\",\"networkInterfaceID\":\"eni-1111\",\"privateIPAddress\":\"REDACTED\",\"privateIPAddresses\":[{\"primary\":true,\"privateIPAddress\":\"REDACTED\"}],\"subnetID\":\"subnet-1111\"}],\"placement\":{\"availabilityZone\":\"REDACTEDa\",\"groupName\":\"\",\"tenancy\":\"default\"},\"privateDNSNameOptions\":{\"enableResourceNameDNSAAAARecord\":false,\"enableResourceNameDNSARecord\":false,\"hostnameType\":\"ip-name\"},\"privateIPAddress\":\"REDACTED\",\"securityGroups\":[\"sg-1111\"],\"tags\":[{\"key\":\"Name\",\"value\":\"REDACTED-tower\"}]},\"status\":{\"ackResourceMetadata\":{\"ownerAccountID\":\"REDACTED\",\"region\":\"REDACTED\"},\"amiLaunchIndex\":0,\"architecture\":\"x86_64\",\"conditions\":[{\"lastTransitionTime\":\"2023-02-27T12:24:34Z\",\"message\":\"Late initialization successful\",\"reason\":\"Late initialization successful\",\"status\":\"True\",\"type\":\"ACK.LateInitialized\"},{\"lastTransitionTime\":\"2023-02-27T12:24:34Z\",\"message\":\"Resource synced successfully\",\"reason\":\"\",\"status\":\"True\",\"type\":\"ACK.ResourceSynced\"}],\"enaSupport\":true,\"hypervisor\":\"xen\",\"instanceID\":\"REDACTED\",\"launchTime\":\"2023-02-27T12:24:34Z\",\"platformDetails\":\"Red Hat Enterprise Linux\",\"privateDNSName\":\"REDACTED\",\"publicDNSName\":\"\",\"rootDeviceName\":\"/dev/sda1\",\"rootDeviceType\":\"ebs\",\"sourceDestCheck\":true,\"state\":{\"code\":0,\"name\":\"pending\"},\"stateTransitionReason\":\"\",\"usageOperation\":\"RunInstances:0010\",\"usageOperationUpdateTime\":\"2023-02-27T12:24:34Z\",\"virtualizationType\":\"hvm\",\"vpcID\":\"vpc-1111\"}}"}
2023-02-27T12:24:34.932Z	DEBUG	ackrt	<< kc.Patch (status)	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.932Z	DEBUG	ackrt	< r.patchResourceStatus	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1}
2023-02-27T12:24:34.932Z	DEBUG	ackrt	requeueing	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 1, "after": "1m30s"}
2023-02-27T12:24:34.938Z	DEBUG	ackrt	> r.Sync	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "generation": 3}
2023-02-27T12:24:34.938Z	DEBUG	ackrt	>> r.resetConditions	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "generation": 3}
2023-02-27T12:24:34.938Z	DEBUG	ackrt	<< r.resetConditions	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "generation": 3}
2023-02-27T12:24:34.938Z	DEBUG	ackrt	>> rm.ResolveReferences	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:24:34.938Z	DEBUG	ackrt	<< rm.ResolveReferences	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:24:34.938Z	DEBUG	ackrt	>> rm.EnsureTags	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:24:34.938Z	DEBUG	ackrt	<< rm.EnsureTags	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:24:34.938Z	DEBUG	ackrt	>> rm.ReadOne	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:24:34.938Z	DEBUG	ackrt	>>> rm.sdkFind	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:24:34.978Z	DEBUG	ackrt	<<< rm.sdkFind	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:24:34.978Z	DEBUG	ackrt	<< rm.ReadOne	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:24:34.978Z	DEBUG	ackrt	>> r.updateResource	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:24:34.978Z	DEBUG	ackrt	<< r.updateResource	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:24:34.978Z	DEBUG	ackrt	>> r.lateInitializeResource	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:24:34.978Z	DEBUG	ackrt	>>> rm.LateInitialize	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:24:34.978Z	DEBUG	ackrt	>>>> rm.sdkFind	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:24:35.016Z	DEBUG	ackrt	<<<< rm.sdkFind	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:24:35.016Z	DEBUG	ackrt	<<< rm.LateInitialize	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:24:35.016Z	DEBUG	ackrt	>>> r.patchResourceMetadataAndSpec	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:24:35.017Z	DEBUG	ackrt	no difference found between metadata and spec for desired and latest object.	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:24:35.017Z	DEBUG	ackrt	<<< r.patchResourceMetadataAndSpec	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:24:35.017Z	DEBUG	ackrt	<< r.lateInitializeResource	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:24:35.017Z	DEBUG	ackrt	>> r.ensureConditions	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:24:35.017Z	DEBUG	ackrt	>>> rm.IsSynced	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:24:35.017Z	DEBUG	ackrt	<<< rm.IsSynced	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:24:35.017Z	DEBUG	ackrt	<< r.ensureConditions	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:24:35.017Z	DEBUG	ackrt	< r.Sync	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:24:35.017Z	DEBUG	ackrt	requeuing	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3, "after": "1m30s"}
2023-02-27T12:24:35.017Z	DEBUG	ackrt	> r.patchResourceStatus	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:24:35.017Z	DEBUG	ackrt	>> kc.Patch (status)	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:24:35.030Z	DEBUG	ackrt	patched resource status	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3, "json": "{\"metadata\":{\"resourceVersion\":\"81758076\"},\"spec\":{\"tags\":[{\"key\":\"Name\",\"value\":\"REDACTED-tower\"}]},\"status\":{\"conditions\":[{\"lastTransitionTime\":\"2023-02-27T12:24:35Z\",\"message\":\"Late initialization successful\",\"reason\":\"Late initialization successful\",\"status\":\"True\",\"type\":\"ACK.LateInitialized\"},{\"lastTransitionTime\":\"2023-02-27T12:24:35Z\",\"message\":\"Resource synced successfully\",\"reason\":\"\",\"status\":\"True\",\"type\":\"ACK.ResourceSynced\"}]}}"}
2023-02-27T12:24:35.030Z	DEBUG	ackrt	<< kc.Patch (status)	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:24:35.030Z	DEBUG	ackrt	< r.patchResourceStatus	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:24:35.030Z	DEBUG	ackrt	requeueing	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3, "after": "1m30s"}

when we run describe instance, we get the following in the 'Status' section:

Status:
  Ack Resource Metadata:
    Owner Account ID:  <REDACTED>
    Region:            <REDACTED>
  Ami Launch Index:    0
  Architecture:        x86_64
  Conditions:
    Last Transition Time:  2023-02-27T12:27:35Z
    Message:               Late initialization successful
    Reason:                Late initialization successful
    Status:                True
    Type:                  ACK.LateInitialized
    Last Transition Time:  2023-02-27T12:27:35Z
    Message:               Resource synced successfully
    Reason:
    Status:                True
    Type:                  ACK.ResourceSynced
  Ena Support:             true
  Hypervisor:              xen
  Instance ID:             <REDACTED>
  Launch Time:             2023-02-27T12:24:34Z
  Platform Details:        Red Hat Enterprise Linux
  Private DNS Name:        <REDACTED>
  Public DNS Name:
  Root Device Name:        /dev/sda1
  Root Device Type:        ebs
  Source Dest Check:       true
  State:
    Code:                       0
    Name:                       pending
  State Transition Reason:
  Usage Operation:              RunInstances:0010
  Usage Operation Update Time:  2023-02-27T12:24:34Z
  Virtualization Type:          hvm
  Vpc ID:                       <REDACTED>
Events:                         <none>

(notice the state.name value - is it normal at this state? it stays like this forever, long after the instance is up and running)

At this point, every manual change we do to the instance state, the controller does not revert it to the desired state, but does not report an error in the logs either, just seems to ignore it. Here's an example of controller logs reconcile after changing security group of the instance through AWS UI:

2023-02-27T12:36:36.396Z	DEBUG	ackrt	> r.Sync	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "generation": 3}
2023-02-27T12:36:36.396Z	DEBUG	ackrt	>> r.resetConditions	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "generation": 3}
2023-02-27T12:36:36.396Z	DEBUG	ackrt	<< r.resetConditions	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "generation": 3}
2023-02-27T12:36:36.396Z	DEBUG	ackrt	>> rm.ResolveReferences	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.396Z	DEBUG	ackrt	<< rm.ResolveReferences	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.396Z	DEBUG	ackrt	>> rm.EnsureTags	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.396Z	DEBUG	ackrt	<< rm.EnsureTags	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.396Z	DEBUG	ackrt	>> rm.ReadOne	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.396Z	DEBUG	ackrt	>>> rm.sdkFind	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.526Z	DEBUG	ackrt	<<< rm.sdkFind	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.526Z	DEBUG	ackrt	<< rm.ReadOne	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.526Z	DEBUG	ackrt	>> r.updateResource	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.526Z	INFO	ackrt	desired resource state has changed	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3, "diff": [{"Path":{"Parts":["Spec","BlockDeviceMappings"]},"A":null,"B":[{"deviceName":"/dev/sda1","ebs":{"deleteOnTermination":true}}]},{"Path":{"Parts":["Spec","SecurityGroups"]},"A":["sg-1111"],"B":["sg-2222"]}]}
2023-02-27T12:36:36.526Z	DEBUG	ackrt	>>> rm.Update	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.526Z	DEBUG	ackrt	>>>> rm.customUpdateInstance	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.526Z	DEBUG	ackrt	<<<< rm.customUpdateInstance	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.526Z	DEBUG	ackrt	<<< rm.Update	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3, "latest": {}}
2023-02-27T12:36:36.526Z	DEBUG	ackrt	>>> r.patchResourceMetadataAndSpec	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.526Z	DEBUG	ackrt	no difference found between metadata and spec for desired and latest object.	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.526Z	DEBUG	ackrt	<<< r.patchResourceMetadataAndSpec	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.526Z	INFO	ackrt	updated resource	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.526Z	DEBUG	ackrt	<< r.updateResource	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.526Z	DEBUG	ackrt	>> r.lateInitializeResource	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.526Z	DEBUG	ackrt	>>> rm.LateInitialize	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.526Z	DEBUG	ackrt	>>>> rm.sdkFind	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.581Z	DEBUG	ackrt	<<<< rm.sdkFind	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.581Z	DEBUG	ackrt	<<< rm.LateInitialize	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.581Z	DEBUG	ackrt	>>> r.patchResourceMetadataAndSpec	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.581Z	DEBUG	ackrt	no difference found between metadata and spec for desired and latest object.	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.581Z	DEBUG	ackrt	<<< r.patchResourceMetadataAndSpec	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.581Z	DEBUG	ackrt	<< r.lateInitializeResource	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.581Z	DEBUG	ackrt	>> r.ensureConditions	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.581Z	DEBUG	ackrt	>>> rm.IsSynced	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.581Z	DEBUG	ackrt	<<< rm.IsSynced	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.581Z	DEBUG	ackrt	<< r.ensureConditions	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.581Z	DEBUG	ackrt	< r.Sync	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.581Z	DEBUG	ackrt	requeuing	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3, "after": "1m30s"}
2023-02-27T12:36:36.581Z	DEBUG	ackrt	> r.patchResourceStatus	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.581Z	DEBUG	ackrt	>> kc.Patch (status)	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.600Z	DEBUG	ackrt	patched resource status	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3, "json": "{\"metadata\":{\"resourceVersion\":\"81771462\"},\"spec\":{\"tags\":[{\"key\":\"Name\",\"value\":\"REDACTED-tower\"}]},\"status\":{\"conditions\":[{\"lastTransitionTime\":\"2023-02-27T12:36:36Z\",\"message\":\"Late initialization successful\",\"reason\":\"Late initialization successful\",\"status\":\"True\",\"type\":\"ACK.LateInitialized\"},{\"lastTransitionTime\":\"2023-02-27T12:36:36Z\",\"message\":\"Resource synced successfully\",\"reason\":\"\",\"status\":\"True\",\"type\":\"ACK.ResourceSynced\"}]}}"}
2023-02-27T12:36:36.600Z	DEBUG	ackrt	<< kc.Patch (status)	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.600Z	DEBUG	ackrt	< r.patchResourceStatus	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3}
2023-02-27T12:36:36.600Z	DEBUG	ackrt	requeueing	{"account": "REDACTED", "role": "", "region": "REDACTED", "kind": "Instance", "namespace": "REDACTED", "name": "REDACTED-tower", "is_adopted": false, "generation": 3, "after": "1m30s"}

In the controller log we can see that the security group changed (from sg-1111 to sg-2222), but in the instance itself, the security group is not reverted back to what is stated in the instance config, and stays sg-2222.

Expected outcome
Expecting the instance state to remediate from manual changes based on the Kubernetes Instance object (in the above case, we expecting the controller to set security group on the instance from sg-2222 to sg-1111)

Environment

  • Kubernetes version
    Client Version: v1.24.2
    Kustomize Version: v4.5.4
    Server Version: v1.24.8-eks-ffeb93d
    Nodes version v1.24.10-eks-48e63af

  • Using EKS (yes/no), if so version?
    Yes. versions stated above

  • AWS service targeted (S3, RDS, etc.)
    EC2 controller

Metadata

Metadata

Assignees

Labels

help wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.kind/enhancementCategorizes issue or PR as related to existing feature enhancements.lifecycle/frozenIndicates that an issue or PR should not be auto-closed due to staleness.priority/important-soonMust be staffed and worked on either currently, or very soon, ideally in time for the next release.service/ec2Indicates issues or PRs that are related to ec2-controller.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions