Coder Social home page Coder Social logo

cgn170 / marketplace-k8s-app-example Goto Github PK

View Code? Open in Web Editor NEW

This project forked from googlecloudplatform/marketplace-k8s-app-example

0.0 1.0 0.0 398 KB

License: Apache License 2.0

Makefile 68.12% Shell 13.24% Dockerfile 12.86% HTML 5.78%

marketplace-k8s-app-example's Introduction

Overview

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.

Getting started

Updating git submodules

You can run the following commands to make sure submodules are populated with proper code.

git submodule sync --recursive
git submodule update --recursive --init --force

Setting up your cluster and environment

See Getting Started

Installing WordPress

Run the following commands from within wordpress folder.

Run app/doctor to determine any necessary setup steps for the cluster:

make app/doctor

Build and install WordPress onto your cluster:

export REPORTING_SECRET=gs://cloud-marketplace-tools/reporting_secrets/fake_reporting_secret.yaml
make app/install

This 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/uninstall

Overriding context values (Optional)

By default make derives docker registry and k8s namespace from your local configurations of gcloud and kubectl.

You can see these values using

kubectl config view

If 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
export NAMESPACE=your-namespace
export APP_INSTANCE_NAME=your-installation-name
export APP_TAG=your-tag

Marketplace Integration Requirements

Briefly, 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.

Application resource and controller

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.

Deployer

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.

marketplace-k8s-app-example's People

Contributors

agarg2008 avatar deustis avatar eshiroma avatar gibbleyg avatar huyhg avatar jvolkman avatar khajduczenia avatar trironkk avatar vcanaa avatar wgrzelak avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.