GithubHelp home page GithubHelp logo

lachie83 / internallb-webhook-admission-controller Goto Github PK

View Code? Open in Web Editor NEW
30.0 4.0 7.0 10.23 MB

Kubernetes Internal LoadBalancer Admission Webhook

License: Apache License 2.0

Makefile 4.18% Go 92.61% Smarty 3.21%
kubernetes admission-controllers webhook apiserver annotations internal-loadbalancers

internallb-webhook-admission-controller's Introduction

Kubernetes Internal LoadBalancer Admission Webhook

Go Report Card License

This Kubernetes Admission controller only admits the creation of v1/service resources containing the correct cloud provider annotations to create Internal LoadBalancers.

See upstream k8s docs for details on these annotations

CircleCI Build Status

CircleCI

Project State

Experimental

Attribution

This projects uses the upstream examples found in the following repos:

Massive thanks for all the work that went into crafting reusable examples.

Usage

Usage Demo

Supported Kubernetes versions

  • 1.9
  • 1.10

Supported Clouds

  • Supports any cloud provider that provisions an internal LoadBalancer based on Kubernetes service annotation. See upstream docs.
  • Cloud support include:
    • Azure
    • Google Cloud
    • AWS

Prerequisites

Please enable the admission webhook feature doc.

Build

make docker_build

Deploy

There are two types of Webhook Admission controllers in Kubernetes 1.9.

  • ValidatingAdmissionWebhook
  • MutatingAdmissionWebhook

Enable the relevant Kubernetes Admission controller by adding to following --admission-control and restarting kube-apiserver. See the relevant docs.

ValidatingAdmissionWebhook,MutatingAdmissionWebhook

Here is an example minikube command to build a cluster with the Admission Controller flags already present on the API server.

minikube start --kubernetes-version v1.9.3 --bootstrapper kubeadm --logtostderr --vm-driver=virtualbox --extra-config=apiserver.admission-control="NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,ResourceQuota,ValidatingAdmissionWebhook,MutatingAdmissionWebhook,PodPreset"

Once the cluster has been configured you can deploy the admission webhook to using Helm. The default installation configures a MutatingWebhookConfiguration.

helm install --name admission-webhook charts/internallb-webhook-admission-controller

To install a ValidatingWebhookConfiguration please use the following command

helm install --name admission-webhook charts/internallb-webhook-admission-controller --set admissionRegistration.kind=ValidatingWebhookConfiguration

For a full list of configurable values in the helm chart please, run the following command

helm inspect charts/internallb-webhook-admission-controller

internallb-webhook-admission-controller's People

Contributors

glb avatar lachie83 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

internallb-webhook-admission-controller's Issues

Add circle-ci

Build and publish container to docker repo using circle CI

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.