Using an existing application

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. Select Run on Kubernetes or Debug on Kubernetes from the Cloud Code status bar.

    Choosing Run on Kubernetes from the Cloud Code status bar

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

    Screenshot of Build settings dialog with Builder options and Configuration name fields

    If you're developing on Apple M-series silicon, you must build an image that can run on an x86 architecture. To use Cloud Build to build an x86 image, select the Cloud Build option. For information about the cost of building your application using Cloud Build, see Cloud Build Pricing.

  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.

    Screenshot of dialog notifying successful configuration addition and file tree with added skaffold.yaml and launch.json

Setting up configuration for applications that already have skaffold.yaml

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

  1. Select Run on Kubernetes or Debug on Kubernetes from the Cloud Code status bar.

    Choosing Run on Kubernetes from the Cloud Code status bar

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

    Select skaffold config file

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

    Select 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:

    build:
      artifacts:
        - image: image_name
    deploy:
      kubectl:
        manifests:
          - 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:

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

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

Getting Support

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