Giter Site home page Giter Site logo

helm-multilvl-example's Introduction

helm-multilvl-example

This is an example of parent and subchart relationships demonstrating two things:

  • Conditional ingress routing based on enabled versions of a service
  • Variable overrides of subcharts from the parent chart's values.yaml

Structure

The example leverages two example applications that user ExpressJS to print different messages. For convenience sake, these applications are published as docker images:

  • cmwalker/helm-multilvl-v1
  • cmwalker/helm-multilvl-v2

In each case, the application simply prints the version number along with the environment variables for the application. The environment variables allow us to demonstrate variable override via the configmap artifacts in each chart.

The project structure consists of the application code along with three helm charts:

  • helm/helm-multilvl-v1
  • helm/helm-multilvl-v2
  • helm/helm-multilvl-ingress

The application charts provide a barebones kubernetes deployment of the corresponding applications. They each deploy three artifacts:

  • Deployment: The application itself
  • ConfigMap: Contains random data that is read by the deployment in order to show variable override
  • Service: Exposes the respective services as a NodePort service that can be accessed within the cluster.

The ingress chart reads the values.yaml file in order to determine which services are deployed, and therefore which applications should be served.

Use

Each subchart can be installed independently to a kubernetes cluster. Doing so will show that they each operate independently with their corresponding values.yaml files.

Modifying the top level values.yaml file and installing that chart will override the variables that are provided in the subcharts. This allows you to override and inject the randomData variable printed in the envrionment variables on responses, along with enabling/disabling the ingress path components.

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.