func do()

in postdeploy-hooks/k8s-cleanup/main.go [51:86]


func do() error {
	// Step 1. Run gcloud get-credentials to set up the cluster credentials.
	gkeCluster := os.Getenv("GKE_CLUSTER")
	if err := gcloudClusterCredentials(gkeCluster); err != nil {
		return err
	}

	// Step 2. Get a list of resources to delete.
	kubectlExec := CreateCommandExecutor("kubectl")
	oldResources, err := kubectlExec.resourcesToDelete(*namespace, *resourceType)
	if err != nil {
		return err
	}

	// Step 3. Delete the resources.
	if err := kubectlExec.deleteResources(oldResources); err != nil {
		return err
	}

	// Step 4. Upload metadata.
	ctx := context.Background()
	deployHookResult := &postdeployHookResult{
		Metadata: map[string]string{
			postdeployHookMetadataKey: cleanupSampleName,
		},
	}
	gcsClient, err := storage.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("unable to create cloud storage client: %v", err)
	}
	if err := uploadResult(ctx, gcsClient, deployHookResult); err != nil {
		return err
	}

	return nil
}