Skip to content

Instantly share code, notes, and snippets.

@BransonGitomeh
Created October 14, 2018 11:13
Show Gist options
  • Save BransonGitomeh/fd06b60bd14dec0117e576cbcb84115e to your computer and use it in GitHub Desktop.
Save BransonGitomeh/fd06b60bd14dec0117e576cbcb84115e to your computer and use it in GitHub Desktop.
Simple Ingress Setup with sample pods
apiVersion: v1
kind: Service
metadata:
name: default-http-backend
spec:
ports:
- port: 80
targetPort: 8080
selector:
app: default-http-backend
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: default-http-backend
spec:
template:
metadata:
labels:
app: default-http-backend
spec:
containers:
- name: default-http-backend
image: gcr.io/google_containers/defaultbackend:1.3
---
apiVersion: v1
kind: Service
metadata:
name: nginx-ingress-controller
spec:
type: LoadBalancer
ports:
- name: http
port: 80
targetPort: 80
- name: https
port: 443
targetPort: 443
selector:
app: nginx-ingress-controller
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx-ingress-controller
spec:
template:
metadata:
labels:
app: nginx-ingress-controller
spec:
containers:
- name: nginx-ingress-controller
image: gcr.io/google_containers/nginx-ingress-controller:0.9.0-beta.3
args:
- /nginx-ingress-controller
- --default-backend-service=default/default-http-backend
- --publish-service=default/nginx-ingress-controller
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
ports:
- containerPort: 80
- containerPort: 443
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: nginx
annotations:
ingress.kubernetes.io/ssl-redirect: "false"
kubernetes.io/tls-acme: "true"
certmanager.k8s.io/issuer: letsencrypt-staging
kubernetes.io/ingress.class: nginx
spec:
tls:
- hosts:
- extdns.braiven.io
secretName: letsencrypt-staging
rules:
- host: extdns.braiven.io
http:
paths:
- backend:
serviceName: nginx
servicePort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx
spec:
ports:
- port: 80
targetPort: 80
selector:
app: nginx
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx
spec:
template:
metadata:
labels:
app: nginx
spec:
containers:
- image: nginx
name: nginx
ports:
- containerPort: 80
@BransonGitomeh
Copy link
Author

creates

  • ingress controller
  • default backend
  • nginx container to route traffic to
  • ssl annotations to be used by "cert-manager" to make certs and enable tls

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment