This repository contains example Kubernetes applications ("apps") that meet the requirements for integration with Google Cloud Marketplace. For a complete description of those requirements, see the technical onboarding guide. TODO: add link
The related marketplace-k8s-app-tools
repository contains utilities for testing the integration of an app with
Marketplace, including a test harness for simulating UI-based deployment.
The repository is submoduled under /vendor/marketplace-tools.
You can run the following commands to make sure submodules are populated with proper code.
git submodule sync --recursive
git submodule update --recursive --init --forceSee Getting Started
Run the following commands from within wordpress folder.
Run app/doctor to determine any necessary setup steps for the cluster:
make app/doctorBuild and install WordPress onto your cluster:
export REPORTING_SECRET=gs://cloud-marketplace-tools/reporting_secrets/fake_reporting_secret.yaml
make app/installThis will build the containers and install the application. Note that the reporting secret installed for usage reporting is structurally correct, but the keys are fake. Usage reports will fail.
To delete the installation, run:
make app/uninstallBy default make derives docker registry and k8s namespace
from your local configurations of gcloud and kubectl.
You can see these values using
kubectl config viewIf you want to use values that differ from the local context of gcloud and kubectl,
you can override them by exporting the appropriate environment variables:
export REGISTRY=gcr.io/your-registry
# Follow instuctions at https://github.com/GoogleCloudPlatform/marketplace-k8s-app-tools to publish this container to your own artifact registry
export MP_TOOLS_ARTIFACT_REGISTRY=gcr.io/your-cloud-marketplace-tools-registry
export NAMESPACE=your-namespace
export APP_INSTANCE_NAME=your-installation-name
export APP_TAG=your-tagBriefly, apps must support two modes of installation:
- CLI: via a Kubernetes client tool like kubectl or helm
- Marketplace UI: via the deployment container ("deployer") mechanism.
A few additional Marketplace requirements are described below.
Apps must supply an Application resource conforming to the Kubernetes community proposal. The proposal describes the Application resource, as well as a corresponding controller that would be responsible for application-generic functionality such as assigning owner references to application components.
Temporary Note: the public source repository associated with the proposal is not yet available. In the interim, we have an equivalent CRD and controller in the marketplace-k8s-app-tools repository. Expect changes once the public repo is available.
Apps must supply a deployment container image ("deployer") which is used in UI-based deployment. This image should extend from one of the base images provided in the marketplace-k8s-app-tools repository.