func()

in pkg/provider/gke/gke.go [394:428]


func (c *GKE) NodePoolDelete(*kingpin.ParseContext) error {
	// Use CreateNodePoolRequest struct to pass the UnmarshalStrict validation and
	// than use the result to create the DeleteNodePoolRequest
	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 {
			reqD := &containerpb.DeleteNodePoolRequest{
				//nolint:staticcheck // SA1019 - Ignore "Do not use.".
				ProjectId: reqC.ProjectId,
				//nolint:staticcheck // SA1019 - Ignore "Do not use.".
				Zone:       reqC.Zone,
				ClusterId:  reqC.Cluster.Name,
				NodePoolId: node.Name,
			}
			//nolint:staticcheck // SA1019 - Ignore "Do not use.".
			log.Printf("Removing cluster node pool: `%v`,  cluster '%v', project '%v', zone '%v'", reqD.NodePoolId, reqD.ClusterId, reqD.ProjectId, reqD.Zone)

			err := provider.RetryUntilTrue(
				//nolint:staticcheck // SA1019 - Ignore "Do not use.".
				fmt.Sprintf("deleting nodepool:%v", reqD.NodePoolId),
				provider.GlobalRetryCount,
				func() (bool, error) { return c.nodePoolDeleted(reqD) })

			if err != nil {
				log.Fatalf("Couldn't delete cluster nodepool '%v', file:%v ,err: %v", node.Name, deployment.FileName, err)
			}
		}
	}
	return nil
}