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
}