Releases: GoogleCloudPlatform/marketplace-k8s-app-tools
v0.2
Updating Application
resource
componentKinds
field
The group
field in componentKind
list in the Application
resource is now required. In the past, the examples skipped this field for core types. This list should now look like:
componentKinds:
- group: apps/v1
kind: Deployment
- group: batch/v1
kind: Job
- group: v1
kind: PersistentVolumeClaim
...instead of:
componentKinds:
- kind: Deployment
- kind: Job
- kind: PersistentVolumeClaim
Updated helm deployer
We have made efforts to make it easier importing an existing helm chart into Marketplace. While we're still restricted to client-side only installation (i.e. no helm hooks), as long as the images are parameterized, the helm chart can be imported with zero to few changes
values.yaml.template
This file has been removed in favor of the new hierarchical support in schema.yaml
.
Hierarchical support in schema.yaml properties
Suppose you have the following in your values.yaml
file:
core:
replicas: 3
You can expose this as a parameter in schema.yaml
file as followed:
properties:
core.replicas:
type: int
default: 3
Deployer Dockerfile
Update your deployer's Dockerfile
to remove ARG MARKETPLACE_REGISTRY
and use the following FROM
:
FROM gcr.io/google-marketplace-tools/k8s/deployer_helm
Note: The base deployer container above is not yet available for pulling. It still has to be built locally from source for the time being. This can be achieved via .build/marketplace/deployer/helm
target in the new Makefile.
We also recommend you parameterize schema.yaml
to easily switch the final docker registry to push to. Your Dockerfile can take in 2 arguments, REGISTRY and TAG. All default image values are based on these 2 parameters.
Note: We require that the default values of image properties in the published deployer have matching docker registry and tag. While you can also hardcode these values, parameterizing makes things easier to change.
See wordpress dockerfile.
Breaking changes in Makefile
If you use our Makefile system, please update your Makefile to the latest example at wordpress makefile.
Summary of the changes:
- Reducing the number of Makefile variables to make it more straightforward to use the helper scripts outside of
make
. Making more explicit and modularizing Makefile templates so that they are easier to follow and can be used more independently. - The following variables are required for app/install:
APP_DEPLOYER_IMAGE
APP_PARAMETERS
- The following variable is additionally required for running verification tests:
APP_TEST_PARAMETERS
- You do not need to declare environment variables in your shell for
make
if your Makefile includesgcloud.Makefile
. This automatically derives from yourgcloud
andkubectl
setup.
Helm Hooks/Testing
- Annotation "helm.sh/hook" == "test-success" is supported as a way to define tests for helm charts.
- The hook "helm.sh/hook" == "test-failure" is unsupported by design. All tests should be defined as test-success.
- No other helm hook is currently supported (e. g. pre-install, post-install).
Testing non-helm apps
- Test resources should be annotated with "marketplace.cloud.google.com/verification" == "test".
Please refer to the onboarding guide for more details about testing, in "Functional Tests" session.