@@ -470,6 +470,28 @@ var _ = Describe("AuthBridge Injection E2E", Ordered, func() {
470470 _ , err := utils .KubectlApplyStdin (authBridgeAgentFixture (), authBridgeTestNamespace )
471471 Expect (err ).NotTo (HaveOccurred ())
472472
473+ By ("waiting for operator to apply kagenti.io/type label via AgentRuntime" )
474+ Eventually (func (g Gomega ) {
475+ typeLabel , labelErr := utils .KubectlGetJsonpath ("deployment" , "authbridge-agent" , authBridgeTestNamespace ,
476+ "{.metadata.labels.kagenti\\ .io/type}" )
477+ g .Expect (labelErr ).NotTo (HaveOccurred ())
478+ g .Expect (typeLabel ).To (Equal ("agent" ))
479+ }, 1 * time .Minute , 2 * time .Second ).Should (Succeed ())
480+
481+ By ("waiting for pod template to have kagenti.io/type label (triggers rolling update)" )
482+ Eventually (func (g Gomega ) {
483+ tmplLabel , labelErr := utils .KubectlGetJsonpath ("deployment" , "authbridge-agent" , authBridgeTestNamespace ,
484+ "{.spec.template.metadata.labels.kagenti\\ .io/type}" )
485+ g .Expect (labelErr ).NotTo (HaveOccurred ())
486+ g .Expect (tmplLabel ).To (Equal ("agent" ))
487+ }, 1 * time .Minute , 2 * time .Second ).Should (Succeed ())
488+
489+ By ("waiting for rollout to complete" )
490+ rolloutCmd := exec .Command ("kubectl" , "rollout" , "status" ,
491+ "deployment/authbridge-agent" , "-n" , authBridgeTestNamespace , "--timeout=3m" )
492+ _ , rolloutErr := utils .Run (rolloutCmd )
493+ Expect (rolloutErr ).NotTo (HaveOccurred ())
494+
473495 By ("waiting for deployment to be ready" )
474496 Expect (utils .WaitForDeploymentReady ("authbridge-agent" , authBridgeTestNamespace , 3 * time .Minute )).To (Succeed ())
475497
@@ -529,11 +551,11 @@ var _ = Describe("AuthBridge Injection E2E", Ordered, func() {
529551 })
530552
531553 It ("should not duplicate sidecars on pod recreation (idempotency)" , func () {
532- By ("getting current pod name" )
554+ By ("getting current injected pod name" )
533555 var oldPodName string
534556 Eventually (func (g Gomega ) {
535557 cmd := exec .Command ("kubectl" , "get" , "pods" ,
536- "-l" , "app.kubernetes.io/name=authbridge-agent" ,
558+ "-l" , "app.kubernetes.io/name=authbridge-agent,kagenti.io/type=agent " ,
537559 "-n" , authBridgeTestNamespace ,
538560 "-o" , "jsonpath={.items[0].metadata.name}" )
539561 output , err := utils .Run (cmd )
@@ -550,7 +572,7 @@ var _ = Describe("AuthBridge Injection E2E", Ordered, func() {
550572 By ("waiting for new pod to be running with a different name" )
551573 Eventually (func (g Gomega ) {
552574 cmd := exec .Command ("kubectl" , "get" , "pods" ,
553- "-l" , "app.kubernetes.io/name=authbridge-agent" ,
575+ "-l" , "app.kubernetes.io/name=authbridge-agent,kagenti.io/type=agent " ,
554576 "-n" , authBridgeTestNamespace ,
555577 "-o" , "jsonpath={.items[0].metadata.name}" )
556578 output , err := utils .Run (cmd )
@@ -565,7 +587,7 @@ var _ = Describe("AuthBridge Injection E2E", Ordered, func() {
565587
566588 By ("verifying exactly 1 envoy-proxy and 1 proxy-init (no separate spiffe-helper)" )
567589 cmd = exec .Command ("kubectl" , "get" , "pods" ,
568- "-l" , "app.kubernetes.io/name=authbridge-agent" ,
590+ "-l" , "app.kubernetes.io/name=authbridge-agent,kagenti.io/type=agent " ,
569591 "-n" , authBridgeTestNamespace ,
570592 "-o" , "jsonpath={.items[0].spec.containers[*].name}" )
571593 containers , err := utils .Run (cmd )
@@ -575,7 +597,7 @@ var _ = Describe("AuthBridge Injection E2E", Ordered, func() {
575597 "spiffe-helper is bundled inside envoy-proxy, should not appear as a separate container" )
576598
577599 cmd = exec .Command ("kubectl" , "get" , "pods" ,
578- "-l" , "app.kubernetes.io/name=authbridge-agent" ,
600+ "-l" , "app.kubernetes.io/name=authbridge-agent,kagenti.io/type=agent " ,
579601 "-n" , authBridgeTestNamespace ,
580602 "-o" , "jsonpath={.items[0].spec.initContainers[*].name}" )
581603 initContainers , err := utils .Run (cmd )
@@ -586,9 +608,12 @@ var _ = Describe("AuthBridge Injection E2E", Ordered, func() {
586608
587609 Context ("Injection opt-out" , func () {
588610 It ("should not inject when kagenti.io/inject=disabled" , func () {
611+ var err error
589612 By ("creating AgentRuntime for disabled agent" )
590- _ , err := utils .KubectlApplyStdin (authBridgeDisabledAgentRuntimeFixture (), authBridgeTestNamespace )
591- Expect (err ).NotTo (HaveOccurred ())
613+ Eventually (func (g Gomega ) {
614+ _ , applyErr := utils .KubectlApplyStdin (authBridgeDisabledAgentRuntimeFixture (), authBridgeTestNamespace )
615+ g .Expect (applyErr ).NotTo (HaveOccurred ())
616+ }, 2 * time .Minute , 2 * time .Second ).Should (Succeed ())
592617
593618 By ("verifying AgentRuntime CR exists" )
594619 _ , err = utils .KubectlGetJsonpath ("agentruntime" , "authbridge-disabled-agent" ,
@@ -599,6 +624,14 @@ var _ = Describe("AuthBridge Injection E2E", Ordered, func() {
599624 _ , err = utils .KubectlApplyStdin (authBridgeDisabledAgentFixture (), authBridgeTestNamespace )
600625 Expect (err ).NotTo (HaveOccurred ())
601626
627+ By ("waiting for operator to apply kagenti.io/type label via AgentRuntime" )
628+ Eventually (func (g Gomega ) {
629+ typeLabel , labelErr := utils .KubectlGetJsonpath ("deployment" , "authbridge-disabled-agent" ,
630+ authBridgeTestNamespace , "{.metadata.labels.kagenti\\ .io/type}" )
631+ g .Expect (labelErr ).NotTo (HaveOccurred ())
632+ g .Expect (typeLabel ).To (Equal ("agent" ))
633+ }, 1 * time .Minute , 2 * time .Second ).Should (Succeed ())
634+
602635 By ("waiting for deployment to be ready" )
603636 Expect (utils .WaitForDeploymentReady (
604637 "authbridge-disabled-agent" , authBridgeTestNamespace , 2 * time .Minute ,
@@ -820,6 +853,20 @@ var _ = Describe("AgentCard E2E", Ordered, func() {
820853 _ , err := utils .KubectlApplyStdin (noProtocolAgentFixture (), testNamespace )
821854 Expect (err ).NotTo (HaveOccurred ())
822855
856+ By ("creating AgentRuntime for noproto-agent" )
857+ Eventually (func (g Gomega ) {
858+ _ , applyErr := utils .KubectlApplyStdin (noProtoAgentRuntimeFixture (), testNamespace )
859+ g .Expect (applyErr ).NotTo (HaveOccurred ())
860+ }, 2 * time .Minute , 2 * time .Second ).Should (Succeed ())
861+
862+ By ("waiting for operator to apply kagenti.io/type label" )
863+ Eventually (func (g Gomega ) {
864+ typeLabel , labelErr := utils .KubectlGetJsonpath ("deployment" , "noproto-agent" , testNamespace ,
865+ "{.metadata.labels.kagenti\\ .io/type}" )
866+ g .Expect (labelErr ).NotTo (HaveOccurred ())
867+ g .Expect (typeLabel ).To (Equal ("agent" ))
868+ }, 1 * time .Minute , 2 * time .Second ).Should (Succeed ())
869+
823870 By ("waiting for deployment to be ready" )
824871 Expect (utils .WaitForDeploymentReady ("noproto-agent" , testNamespace , 2 * time .Minute )).To (Succeed ())
825872
@@ -833,10 +880,24 @@ var _ = Describe("AgentCard E2E", Ordered, func() {
833880 })
834881
835882 It ("should auto-create AgentCard for labelled workload" , func () {
836- By ("deploying echo-agent with agent and protocol labels " )
883+ By ("deploying echo-agent with protocol label " )
837884 _ , err := utils .KubectlApplyStdin (echoAgentFixture (), testNamespace )
838885 Expect (err ).NotTo (HaveOccurred ())
839886
887+ By ("creating AgentRuntime for echo-agent" )
888+ Eventually (func (g Gomega ) {
889+ _ , applyErr := utils .KubectlApplyStdin (echoAgentRuntimeFixture (), testNamespace )
890+ g .Expect (applyErr ).NotTo (HaveOccurred ())
891+ }, 2 * time .Minute , 2 * time .Second ).Should (Succeed ())
892+
893+ By ("waiting for operator to apply kagenti.io/type label" )
894+ Eventually (func (g Gomega ) {
895+ typeLabel , labelErr := utils .KubectlGetJsonpath ("deployment" , "echo-agent" , testNamespace ,
896+ "{.metadata.labels.kagenti\\ .io/type}" )
897+ g .Expect (labelErr ).NotTo (HaveOccurred ())
898+ g .Expect (typeLabel ).To (Equal ("agent" ))
899+ }, 1 * time .Minute , 2 * time .Second ).Should (Succeed ())
900+
840901 By ("waiting for deployment to be ready" )
841902 Expect (utils .WaitForDeploymentReady ("echo-agent" , testNamespace , 2 * time .Minute )).To (Succeed ())
842903
@@ -963,6 +1024,21 @@ var _ = Describe("AgentCard E2E", Ordered, func() {
9631024 By ("deploying audit-agent (unsigned)" )
9641025 _ , err := utils .KubectlApplyStdin (auditAgentFixture (), testNamespace )
9651026 Expect (err ).NotTo (HaveOccurred ())
1027+
1028+ By ("creating AgentRuntime for audit-agent" )
1029+ Eventually (func (g Gomega ) {
1030+ _ , applyErr := utils .KubectlApplyStdin (auditAgentRuntimeFixture (), testNamespace )
1031+ g .Expect (applyErr ).NotTo (HaveOccurred ())
1032+ }, 2 * time .Minute , 2 * time .Second ).Should (Succeed ())
1033+
1034+ By ("waiting for operator to apply kagenti.io/type label" )
1035+ Eventually (func (g Gomega ) {
1036+ typeLabel , labelErr := utils .KubectlGetJsonpath ("deployment" , "audit-agent" , testNamespace ,
1037+ "{.metadata.labels.kagenti\\ .io/type}" )
1038+ g .Expect (labelErr ).NotTo (HaveOccurred ())
1039+ g .Expect (typeLabel ).To (Equal ("agent" ))
1040+ }, 1 * time .Minute , 2 * time .Second ).Should (Succeed ())
1041+
9661042 Expect (utils .WaitForDeploymentReady ("audit-agent" , testNamespace , 2 * time .Minute )).To (Succeed ())
9671043
9681044 By ("updating auto-created AgentCard for audit-agent" )
@@ -1004,6 +1080,21 @@ var _ = Describe("AgentCard E2E", Ordered, func() {
10041080 By ("deploying signed-agent stack" )
10051081 _ , err = utils .KubectlApplyStdin (signedAgentFixture (), testNamespace )
10061082 Expect (err ).NotTo (HaveOccurred ())
1083+
1084+ By ("creating AgentRuntime for signed-agent" )
1085+ Eventually (func (g Gomega ) {
1086+ _ , applyErr := utils .KubectlApplyStdin (signedAgentRuntimeFixture (), testNamespace )
1087+ g .Expect (applyErr ).NotTo (HaveOccurred ())
1088+ }, 2 * time .Minute , 2 * time .Second ).Should (Succeed ())
1089+
1090+ By ("waiting for operator to apply kagenti.io/type label" )
1091+ Eventually (func (g Gomega ) {
1092+ typeLabel , labelErr := utils .KubectlGetJsonpath ("deployment" , "signed-agent" , testNamespace ,
1093+ "{.metadata.labels.kagenti\\ .io/type}" )
1094+ g .Expect (labelErr ).NotTo (HaveOccurred ())
1095+ g .Expect (typeLabel ).To (Equal ("agent" ))
1096+ }, 1 * time .Minute , 2 * time .Second ).Should (Succeed ())
1097+
10071098 Expect (utils .WaitForDeploymentReady ("signed-agent" , testNamespace , 3 * time .Minute )).To (Succeed ())
10081099
10091100 By ("updating auto-created AgentCard with identityBinding" )
0 commit comments