Using an existing application

If you have an existing project already configured with Kubernetes manifests, a Dockerfile, or Jib to build your images, you can open and use it with the plugin. The only additional configuration necessary is a Skaffold YAML file which either can be generated for you automatically or created using the provided template.

After you're done with configuring your Skaffold YAML, be sure to specify where your container images are stored where the project image is about to be pushed.

Automatic project bootstrapping

If Cloud Code doesn't detect an existing Skaffold configuration, you will be prompted to help set it up:

  • If your project has a Dockerfile, is configured for Jib, or is buildable using Buildpacks, and has Kubernetes resources, Cloud Code will prompt you with a notification to create a skaffold.yaml file, if one doesn't already exist, as well as necessary run configurations.

    Notification with a link to create your Cloud Code Kubernetes run configurations

  • Clicking this notification will automatically create your configuration if possible.

    If automatic Skaffold configuration creation is not possible due to multiple images or builders being detected, Cloud Code will display a dialog asking you to provide mappings between the detected images and builders.

    Specify build settings to be used in your Skaffold configuration

Alternatively, you can also set up a Skaffold configuration using the Add Kubernetes Support menu option:

  • Navigate to Tools > Cloud Code > Kubernetes and select Add Kubernetes Support. This option analyzes your project's Kubernetes resources and generates a skaffold.yaml file, if one doesn't already exist, as well as necessary run configurations. The two run configurations generated include one to run your project on Kubernetes and one for development on a Kubernetes cluster.
  • After support is added, you can immediately start running and debugging your project on Kubernetes using the newly added run configurations.

Manually creating Cloud Code Skaffold configuration

You can choose to manually create a new skaffold.yaml file or add an existing one to your project.

To create a Skaffold YAML manually, follow these instructions to take advantage of the live templating support:

  • Create new file named skaffold.yaml in the root directory of your project (right-click > New > File).
  • With the cursor in the new file, use Ctrl+Space to bring up the live template suggestions, and choose the desired Skaffold template.

    Using the Skaffold YAML template

  • Populate the image field with your project image name and the manifests field with a list of the Kubernetes resources you'd like to be deployed from the IDE.

    Example for Dockerfile based builds:

    build:
      artifacts:
        - image: image_name
    deploy:
      kubectl:
        manifests:
          - k8s/web.yaml
          - k8s/backend.yaml
    

    Example build section for Java Maven/Gradle projects with the Jib plugin (deploy section stays the same):

    build:
    artifacts:
    - image: image_name
      jib: {}
    
  • Once your skaffold.yaml is valid, the plugin will prompt you to create Kubernetes run targets automatically.

    Create Kubernetes run target notification

Specifying where container images are stored

Container image storage

Before you deploy your application, you'll need to define a default image repository to use with your project.

By default, the project is configured to use the image name specified in your Kubernetes manifests. You can also customize this image specification. Once you have your preferred repository set up (Google Container Registry, DockerHub, private repository, etc.), edit the run targets and specify it as a default image repository in run target settings. For Google Container Registry images, the field comes equipped with autocomplete to help you find your Container Registry repository faster.

These are accessible from the Run/Debug configurations dialog on the top taskbar under Edit Configurations... > Develop on Kubernetes > Where are the container images stored?.

Default image repository in run configuration being set with the 'gcr.io/' format and being presented autocomplete options based on current project and active cluster

For more on specifying your container image preferences, refer to the Configuring container image settings guide.

Build settings

Once you set your container image, you can configure its build settings. Cloud Code supports Docker, Jib, and Buildpacks artifact types.

In the 'Build/Deploy' tab of your Run configuration settings (Edit Configurations... > Develop on Kubernetes or Run on Kubernetes), you can configure the build settings for your default profile.

Build settings displayed in Build/Deploy tab

For more on specifying the build settings for your image, refer to the Configuring container image build preferences guide.

Getting Support

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