GithubHelp home page GithubHelp logo

nginx-ingress-controller's Introduction

Deployment Instructions

Annotate Any Existing Ingresses

Existing ingresses that don't have an "ingress.class" will be fought over by a second ingress controller, with a constant fight between controllers to own the ingress.

Add an annotation with the right annotation - "gce" if hosted in Google Cloud. The following will generate commands that you can run:

INGRESS="$(kubectl get ingress --all-namespaces -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\t"}{.metadata.annotations}{"\n"}{end}' | grep -v kubernetes.io/ingress.class)"
if [ -n "$INGRESS" ]; then echo $INGRESS | cut -f1,2 | awk '{print "kubectl --namespace="$1" annotate ingress "$2" kubernetes.io/ingress.class=gce"}'; fi

Get a Wildcard SSL Certificate for the Cluster

Self Signed Certificate

To generate a self signed certificate for the domain name you wish to assign to the cluster where the nginx ingress controller is deployed:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout star.foo.continuouspipe.net.key -out star.foo.continuouspipe.net.crt -subj "/CN=*.foo.continuouspipe.net/O=CP"`

Where to Place It:

Base64 the contents of both the certificate and key, e.g.:

base64 star.foo.continuouspipe.net.key
base64 star.foo.continuouspipe.net.crt

Update the values in ingress-controller/deployment.yml with the base64 key and certificate values.

Deploy the Ingress Controller

Deploy a default backend to serve if no server is found for a given hostname:

kubectl create ns continuouspipe-system
kubectl --namespace=continuouspipe-system create -f default-backend/service.yml
kubectl --namespace=continuouspipe-system create -f default-backend/deployment.yml

Deploy the ingress controller:

kubectl --namespace=continuouspipe-system create -f ingress-controller/nginx-load-balancer-conf.yml
kubectl --namespace=continuouspipe-system create -f ingress-controller/service.yml
kubectl --namespace=continuouspipe-system create -f ingress-controller/deployment.yml

Set up a Wildcard DNS Entry

The wildcard DNS should point to the external IP exposed for the service of the ingress controller:

$ kubectl --namespace=continuouspipe-system get service nginx-ingress-controller -o yaml
[...]
  status:
    loadBalancer:
      ingress:
      - ip: 123.123.123.123
123.123.123.123 *.foo.continuouspipe.net

nginx-ingress-controller's People

Contributors

kierenevans avatar tonypiper avatar

Watchers

 avatar Richard Miller avatar James Cloos avatar Sarunas Valaskevicius avatar Phillip Swaine avatar Daniel Kidanemariam avatar Rick Peacock avatar Jason Murphy avatar Mahdi Hastie avatar  avatar  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.