func loops()

in cmd/gcp-controller-manager/loops.go [46:141]


func loops() map[string]func(*controllerContext) error {
	ll := map[string]func(*controllerContext) error{
		"node-certificate-approver": func(ctx *controllerContext) error {
			approver := newNodeApprover(ctx)
			approveController := certificates.NewCertificateController(
				"node-certificate-approver",
				ctx.client,
				ctx.sharedInformers.Certificates().V1().CertificateSigningRequests(),
				approver.handle,
			)
			go approveController.Run(20, ctx.done)
			return nil
		},
		"istiod-certificate-approver": func(ctx *controllerContext) error {
			approver := newIstiodApprover(ctx)
			approveController := certificates.NewCertificateController(
				"istiod-certificate-approver",
				ctx.client,
				ctx.sharedInformers.Certificates().V1().CertificateSigningRequests(),
				approver.handle,
			)
			go approveController.Run(20, ctx.done)
			return nil
		},
		"oidc-certificate-approver": func(ctx *controllerContext) error {
			approver := newOIDCApprover(ctx)
			approveController := certificates.NewCertificateController(
				"oidc-certificate-approver",
				ctx.client,
				ctx.sharedInformers.Certificates().V1().CertificateSigningRequests(),
				approver.handle,
			)
			go approveController.Run(20, ctx.done)
			return nil
		},
		"certificate-signer": func(ctx *controllerContext) error {
			signer, err := newGKESigner(ctx)
			if err != nil {
				return err
			}
			signController := certificates.NewCertificateController(
				"signer",
				ctx.client,
				ctx.sharedInformers.Certificates().V1().CertificateSigningRequests(),
				signer.handle,
			)

			go signController.Run(20, ctx.done)
			return nil
		},
		"node-annotator": func(ctx *controllerContext) error {
			nodeAnnotateController, err := newNodeAnnotator(
				ctx.client,
				ctx.sharedInformers.Core().V1().Nodes(),
				ctx.gcpCfg.Compute,
			)
			if err != nil {
				return err
			}
			go nodeAnnotateController.Run(5, ctx.done)
			return nil
		},
	}
	if *directPath {
		ll[saVerifierControlLoopName] = func(ctx *controllerContext) error {
			serviceAccountVerifier, err := newServiceAccountVerifier(
				ctx.client,
				ctx.sharedInformers.Core().V1().ServiceAccounts(),
				ctx.sharedInformers.Core().V1().ConfigMaps(),
				ctx.gcpCfg.Compute,
				ctx.verifiedSAs,
				ctx.hmsAuthorizeSAMappingURL,
			)
			if err != nil {
				return err
			}
			go serviceAccountVerifier.Run(3, ctx.done)
			return nil
		}
		ll[nodeSyncerControlLoopName] = func(ctx *controllerContext) error {
			nodeSyncer, err := newNodeSyncer(
				ctx.sharedInformers.Core().V1().Pods(),
				ctx.verifiedSAs,
				ctx.hmsSyncNodeURL,
				ctx.client,
				ctx.delayDirectPathGSARemove,
			)
			if err != nil {
				return err
			}
			go nodeSyncer.Run(10, ctx.done)
			return nil
		}
	}
	return ll
}