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.
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.
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.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.
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?.
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.
For more on specifying the build settings for your image, refer to the Configuring container image build preferences guide.