in pkg/provider/gke/gke.go [322:368]
func (c *GKE) NodePoolCreate(*kingpin.ParseContext) error {
reqC := &containerpb.CreateClusterRequest{}
for _, deployment := range c.gkeResources {
if err := yamlGo.UnmarshalStrict(deployment.Content, reqC); err != nil {
log.Fatalf("Error parsing the cluster deployment file %s:%v", deployment.FileName, err)
}
for _, node := range reqC.Cluster.NodePools {
reqN := &containerpb.CreateNodePoolRequest{
//nolint:staticcheck // SA1019 - Ignore "Do not use.".
ProjectId: reqC.ProjectId,
//nolint:staticcheck // SA1019 - Ignore "Do not use.".
Zone: reqC.Zone,
//nolint:staticcheck // SA1019 - Ignore "Do not use.".
ClusterId: reqC.Cluster.Name,
NodePool: node,
}
//nolint:staticcheck // SA1019 - Ignore "Do not use.".
log.Printf("Cluster nodepool create request: cluster '%v', nodepool '%v' , project `%s`,zone `%s`", reqN.ClusterId, reqN.NodePool.Name, reqN.ProjectId, reqN.Zone)
err := provider.RetryUntilTrue(
fmt.Sprintf("nodepool creation:%v", reqN.NodePool.Name),
provider.GlobalRetryCount,
func() (bool, error) {
return c.nodePoolCreated(reqN)
})
if err != nil {
log.Fatalf("Couldn't create cluster nodepool '%v', file:%v ,err: %v", node.Name, deployment.FileName, err)
}
err = provider.RetryUntilTrue(
fmt.Sprintf("checking nodepool running status for:%v", reqN.NodePool.Name),
provider.GlobalRetryCount,
func() (bool, error) {
//nolint:staticcheck // SA1019 - Ignore "Do not use.".
return c.nodePoolRunning(reqN.Zone, reqN.ProjectId, reqN.ClusterId, reqN.NodePool.Name)
})
if err != nil {
log.Fatalf("Couldn't create cluster nodepool '%v', file:%v ,err: %v", node.Name, deployment.FileName, err)
}
}
}
return nil
}