Use an existing application in Cloud Code for Cloud Shell

Cloud Code leverages Skaffold under the hood to run or debug your application.

If you have an existing application already configured with Kubernetes manifests and a Dockerfile to build your images, you can open and use it with Cloud Code.

The only additional configuration necessary is a skaffold configuration and a launch configuration of type cloudcode.kubernetes. Cloud Code guides you through creating these when you run or debug your application for the first time.

Setting up configuration

If your application has a Dockerfile but doesn't have the necessary Skaffold and launch configurations, complete the following steps:

  1. Click Cloud Code status bar Cloud Code in the status bar and then select Run on Kubernetes or Debug on Kubernetes.

  2. In the Run/Debug on Kubernetes dialog, specify your preferred builder and its settings. You can also customize your configuration name.

  3. Click Debug or Run. The newly created skaffold.yaml and cloudcode.kubernetes launch configuration are added to your workspace and your app runs or is ready for debugging.

Setting up configuration for applications that already have skaffold.yaml

If your application already has a skaffold.yaml file, follow these steps:

  1. Click Cloud Code status bar Cloud Code in the status bar and then select Run on Kubernetes or Debug on Kubernetes.

  2. If more than one skaffold.yaml file exists in your workspace, select your preferred skaffold.yaml file.

  3. If more than one Skaffold profile exists in the skaffold.yaml file you chose, select your preferred Skaffold profile.

    The newly created cloudcode.kubernetes launch configuration is added to your workspace (in .vscode/launch.json) and your app is running or ready for debugging.

Manually creating a Skaffold configuration

You might want to manually create your Skaffold configuration to define custom options. Cloud Code comes with live templating to support manual Skaffold configuration creation.

To manually create a Skaffold configuration:

  1. Create a new file named skaffold.yaml in the root directory of your workspace.

  2. In the file, press Command/Ctrl+Space to see a list of snippet suggestions and then select the Skaffold - Getting-started snippet.

    Create Skaffold configuration manually intellisense

  3. Enter your project image name in the image field and enter a list of the Kubernetes resources to deploy in the manifests field.

    Example for Dockerfile based builds:

        - image: image_name
          - k8s/web.yaml
          - k8s/backend.yaml

    If you'd like to define build, test and deployment configurations for different contexts, you can have different Skaffold profiles. The following sample shows a Cloud Build profile to configure Cloud Code to build images with Cloud Build:

    # use the cloudbuild profile to build images using Google Cloud Build
    - name: cloudbuild
        googleCloudBuild: {}

    For comprehensive schema details, see the skaffold.yaml reference.

What's next