This repository contains a set of tools supporting the development of Kubernetes applications deployable via Google Cloud Marketplace.
See the how to build your application deployer documentation.
-
The marketplace-k8s-app-example repository contains example applications.
-
The click-to-deploy repository contains more examples. This is the source code backing Google Click to Deploy Kubernetes applications listed on Google Cloud Marketplace.
We follow Google's coding style guides.
Instead of using your personal credential to log in, it's recommended to use a Service Account instead.
A new Service Account and proper permissions can be created using the
following commands. PROJECT-ID is the (non-numeric) identifier of your
GCP project. This assumes that you're already logged in with gcloud.
gcloud iam service-accounts create \
marketplace-dev-robot \
--project PROJECT-ID \
--display-name "GCP Marketplace development robot"
gcloud projects add-iam-policy-binding PROJECT-ID \
--member serviceAccount:[email protected] \
--role roles/editor
gcloud projects add-iam-policy-binding PROJECT-ID \
--member serviceAccount:[email protected] \
--role roles/container.adminThe created Service Account email will be
[email protected]. Note that
you can replace marketplace-dev-robot with another name.
Now you can switch gcloud to using the Service Account by creating and
downloading a one-time key, and activate it.
gcloud iam service-accounts keys create ~/marketplace-dev-robot-key.json \
--iam-account [email protected]
gcloud auth activate-service-account \
--key-file ~/marketplace-dev-robot-key.jsonYou should keep ~/marketplace-dev-robot-key.json credential key in a safe
location. Note that this is the only copy; the generated key cannot
be downloaded again.
kubectl connecting to GKE requires application default credentials.
Log in using the following command:
gcloud auth application-default loginAt the very least, you need to connect to a GKE cluster. Follow this instruction to ensure you have a properly setup environment.
Run unit tests:
make tests/pyRun integration tests:
make tests/integrationSet deployers container tag:
export MARKETPLACE_TOOLS_TAG=local-$USERBuild container images:
make marketplace/build