Use minikube for local development in Cloud Code for VS Code

Cloud Code automatically installs and manages minikube. If you opted out of dependency management, add the minikube binary to your PATH.

Before you begin

  1. Install Git so that Cloud Code can perform Git operations, like cloning a sample.
  2. Install the Cloud Code plugin if you haven't already.

Create an application from a template

Cloud Code comes with a collection of code sample templates to get you started quickly. To create a Kubernetes application using an existing sample, follow these steps:

  1. Launch the Command Palette (press Ctrl/Cmd+Shift+P or click View > Command Palette) and then run Cloud Code: New Application.
  2. Select Kubernetes application for the type of sample.
  3. Select a sample based on the language you'd like to use from the available options: NodeJS, Go, Python, Java.
  4. Choose a preferred application location on your local machine and then click Create new application to save.

    Cloud Code clones the sample you chose and opens your new project for use.

Sample application structure

All language sample applications have nearly the same structure. This is not the only supported structure but is recommended when starting.

For example, the Node.js Guestbook application structure looks like:

.
|---- .vscode
|      └---- launch.json
|---- kubernetes-manifests
|     |---- guestbook-backend.deployment.yaml
|     |---- guestbook-backend.service.yaml
|     |---- guestbook-frontend.deployment.yaml
|     |---- guestbook-frontend.service.yaml
|     |---- mongo.deployment.yaml
|     └---- mongo.service.yaml
|---- src
|     |---- backend
|     |     |---- Dockerfile
|     |     |---- index.js
|     |     |---- app.js
|     |     └---- package.json
|     |---- frontend
|           |---- Dockerfile
|           |---- index.js
|     |     |---- app.js
|           └---- package.json
└---- skaffold.yaml

Taking a closer look at this Kubernetes Guestbook Node.js sample app, here are some key files and their uses:

  • .vscode
    • extensions.json: prompt requesting download of related extensions when opening this project
    • launch.json: launch configuration (of type cloudcode.kubernetes) to run or debug the Kubernetes application
    • tasks.json: configuration information for Visual Studio Code Tasks
  • kubernetes-manifests
    • guestbook-backend.deployment.yaml: Pod specification for the backend nodes
    • guestbook-frontend.deployment.yaml: Pod specification for the frontend nodes
    • mongo.deployment.yaml: Pod specification for the database
  • src
    • (backend|frontend)/app.js: Node.js code with the web server logic
    • (backend|frontend)/Dockerfile: used to build the container image for our program
  • skaffold.yaml: config file for Skaffold, which Cloud Code uses to build, deploy and debug Kubernetes applications

Use your own application

For steps to use an existing project, see use Cloud Code with an existing Kubernetes application.

Set your Kubernetes context

Before running your application, ensure you're set up to deploy your app to your preferred Kubernetes context. You can specify this in your configuration.

Configuration

When using the Cloud Code: Develop on Kubernetes run configuration, you can customize your deployment by configuring available settings.

To add or edit configurations, go to Run > Open Configurations and then edit or add configurations.

Create and deploy to a minikube cluster

Start a minikube cluster

Cloud Code automatically installs and manages minikube. If you opted out of dependency management, add the minikube binary to your PATH.

  1. Launch the Command Palette (press Ctrl/Cmd+Shift+P or click View > Command Palette) and then run the Cloud Code: Control minikube command.
  2. Click minikube for Choose a Minikube cluster (profile) to control and then click Start.

Run on minikube

  1. Launch the Command Palette and run Cloud Code: Run on Kubernetes.
  2. Click Yes for Use current context (minikube) to run the app?
  3. Cloud Code runs your app in a your minikube cluster. If prompted, authorize Cloud Shell to use your credentials to make a Google Cloud API call.

    View the deployment details in the Development sessions section of Cloud Code.

  4. View the URLs by clicking Portfoward URLs in the Development sessions section, then click the URL link to open your browser with your running application.

Open an interactive terminal to a container

  1. Click Cloud Code and then expand the Development Sessions explorer.
  2. Expand Deployed Resources, then expand Pods.
  3. Right-click a container and then click Get Terminal.

Pause or stop a minikube cluster

  1. Launch the Command Palette (press Ctrl/Cmd+Shift+P or click View > Command Palette) and then run the Cloud Code: Control minikube command.
  2. After the Choose a Minikube cluster (profile) to control option populates, click minikube and then click Stop or Pause.

Create and add a cluster from another cloud provider

If you're using an on-premises cluster or a cluster from another provider such as Azure or AWS, use the provider's tools to create the cluster and add it to your KubeConfig.

Work with other local clusters

In addition to minikube, you can work with Cloud Code if you're using Docker Desktop (for Mac or Windows).

To get Cloud Code working with a local cluster, make sure that your default configuration (for example, ~/.kube/config) contains your local cluster. This cluster must be set as the current context.

For example, if you were using a local cluster, docker-for-desktop, with Docker Desktop, set your preferred cluster by running the following command:

kubectl config use-context docker-for-desktop

What's next

Get Support

To send feedback, report issues on GitHub, or ask a question on Stack Overflow.