func()

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
}