Add end-to-end GKE deployment capability to deployment skill#115
Add end-to-end GKE deployment capability to deployment skill#115alex-doudou wants to merge 5 commits intomainfrom
Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces a new GKE deployment workflow to the CI/CD assistant prompts and documentation, including a detailed reference guide for GKE deployment via kubectl. The review feedback suggests adding resource requests and limits to the example Kubernetes deployment manifest for better stability, improving consistency by referencing the new GKE guide in the deploy_prompt.md, and refining the verification steps in both the prompt and SKILL.md to align with the more comprehensive commands provided in the new reference document.
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
|
|
||
| * If the type is a static application, follow **Workflow A: Google Cloud Storage**. | ||
| * If the type is a container based application, ask the user if they would like to deploy to Cloud Run using buildpacks or build an image. | ||
| * If the type is a container based application, ask the user if they would like to deploy to Cloud Run or Google Kubernetes Engine (GKE). |
There was a problem hiding this comment.
We still want to offer an option to deploy to Cloud Run using buildpacks or build an image. It seems that option got dropped
|
|
||
| This workflow is for deploying container-based applications to a GKE cluster. Consult the `references/how_to_deploy_to_gke_with_kubectl.md` file for detailed `gcloud` and `kubectl` commands and best practices. | ||
|
|
||
| 1. **Identify Cluster**: Ask the user for the GKE cluster name and location (zone or region) if not already known. |
There was a problem hiding this comment.
Does it make sense to first check local environment (e.g. from ~/.kube/config or kubectl config)
| This workflow is for deploying container-based applications to a GKE cluster. Consult the `references/how_to_deploy_to_gke_with_kubectl.md` file for detailed `gcloud` and `kubectl` commands and best practices. | ||
|
|
||
| 1. **Identify Cluster**: Ask the user for the GKE cluster name and location (zone or region) if not already known. | ||
| 2. **Create Dockerfile**: If a Dockerfile does not already exist, analyze the project to determine the appropriate base image and build steps, then create a multistage Dockerfile. Ensure the Dockerfile can be built locally using the Docker cli. |
There was a problem hiding this comment.
We have detailed references, and examples for creating Dockerfile in the design skill. Perhaps you can invoke that skill here?
| 4. **Create Artifact Registry Repository**: Create the Artifact Registry repository using the `create_artifact_repository` tool. | ||
| 5. **Build and Push Image**: Using the Docker cli, build the Docker image locally using the created Dockerfile and push the image to the created Artifact Registry repository. | ||
| 6. **Manifest Preparation**: Check for existing Kubernetes manifests (e.g., `deployment.yaml`, `service.yaml`) in the project. If they don't exist, generate a standard `Deployment` and `LoadBalancer` `Service` manifest. Ensure the manifests use the correct image URI from Step 5 and have appropriate resource limits and labels. | ||
| 7. **Deploy to GKE**: Use standard `gcloud` and `kubectl` commands to deploy: |
There was a problem hiding this comment.
You have more detailed instructions in how_to_deploy_to_gke_with_kubectl.md. It might be better to just reference that here, rather than specific commands.
There was a problem hiding this comment.
Left some comments for deploy_prompt.md that applies here as well.
This PR: