Git Product home page Git Product logo

k8s-template's Introduction

k8s-template

This repository is aspiring to be a template for enterprise managment of k8s resources.

Build/Usage/Compilation Notes

  • (1) Each cluster in clusters/*.jsonnet is built to determine the full set of clusters to build
  • (2) for each cluster; all the apps (as linked in ctx.Namespaces) are compiled into a release directory (releases/CLUSTERNAME/release) with a kustomization.yaml
  • (3) a set of tests are run against the output manifests

Example topology

3 distinct accounts (dev, stage, prod) with 1 cluster per account.

Design Principles

  • All templating is done prior to the releases/ directory -- NOTE: this is a specific design choice to have the releases/ directory be exactly what is applied on a cluster
  • This repository isn't opinionated about how the releases/ directory is applied (flux, argo, etc.)

requirements

  • jsonnet
  • python-gjsonnet (pip3 install gojsonnet)
  • python-yaml
  • kubeconform
  • helm

k8s-template's People

Contributors

jacksontj avatar

Watchers

 avatar  avatar

k8s-template's Issues

Add example of how to manage approvals/reviews of an environment that spans namespaces

Use-cases

  • global + appNamespace
  • multiple app namespaces (e.g. operator + deployment)

This will end up being a refinement of 72fa403

Fundamentally we can either:

  • Create "placeholder" environments to get reviews/approvals defined that way
  • move the approval config back to the namespace -- this way an environment can "own" multiple namespaces

Either approach is safe as tanka already protects from N definitions of the same resource (e.g. namespace)

policy-bot generation cleanup

As of now there are some assumptions about labels existing on the namespace. This is an alright approach for now, but it feels like this should be something attached to the actual Environment object to handle configuration there.

Add helm support

This repo is based off of some older work (prior to helm being a thing) now that helm exists I want to extend this to enable the re-use of helm charts

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.