Starting to work on the kube-lego pieces necessary

This commit is contained in:
R. Tyler Croy 2017-07-27 18:49:22 -07:00
parent a6747a3de6
commit 6ca15d57f2
No known key found for this signature in database
GPG Key ID: 1426C7DC3F51E16F
3 changed files with 189 additions and 0 deletions

1
k8s/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
*-secrets.yaml

63
k8s/kube-lego.yaml Normal file
View File

@ -0,0 +1,63 @@
---
apiVersion: v1
kind: List
items:
- apiVersion: v1
kind: Namespace
metadata:
name: kube-lego
- apiVersion: v1
kind: ConfigMap
metadata:
name: kube-lego
namespace: kube-lego
data:
# modify this to specify your address
lego.email: 'tyler@monkeypox.org'
# configure letsencrypt's production api
lego.url: "https://acme-v01.api.letsencrypt.org/directory"
- apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: kube-lego
namespace: kube-lego
spec:
replicas: 1
template:
metadata:
labels:
app: kube-lego
spec:
containers:
- name: kube-lego
image: jetstack/kube-lego:0.1.5
imagePullPolicy: Always
ports:
- containerPort: 8080
env:
- name: LEGO_EMAIL
valueFrom:
configMapKeyRef:
name: kube-lego
key: lego.email
- name: LEGO_URL
valueFrom:
configMapKeyRef:
name: kube-lego
key: lego.url
- name: LEGO_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: LEGO_POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
readinessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 5
timeoutSeconds: 1

125
k8s/nginx.yaml Normal file
View File

@ -0,0 +1,125 @@
---
apiVersion: v1
kind: List
items:
- apiVersion: v1
kind: Namespace
metadata:
name: nginx-ingress
- apiVersion: v1
kind: ConfigMap
data:
proxy-connect-timeout: "15"
proxy-read-timeout: "600"
proxy-send-timeout: "600"
hsts-include-subdomains: "false"
body-size: "64m"
server-name-hash-bucket-size: "256"
metadata:
namespace: nginx-ingress
name: nginx
- apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: default-http-backend
namespace: nginx-ingress
spec:
replicas: 1
template:
metadata:
labels:
app: default-http-backend
spec:
containers:
- name: default-http-backend
# Any image is permissable as long as:
# 1. It serves a 404 page at /
# 2. It serves 200 on a /healthz endpoint
image: gcr.io/google_containers/defaultbackend:1.0
livenessProbe:
httpGet:
path: /healthz
port: 8080
scheme: HTTP
initialDelaySeconds: 30
timeoutSeconds: 5
ports:
- containerPort: 8080
resources:
limits:
cpu: 10m
memory: 20Mi
requests:
cpu: 10m
memory: 20Mi
- apiVersion: v1
kind: Service
metadata:
name: default-http-backend
namespace: nginx-ingress
spec:
ports:
- port: 80
targetPort: 8080
protocol: TCP
selector:
app: default-http-backend
- apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx
namespace: nginx-ingress
spec:
replicas: 1
template:
metadata:
labels:
app: nginx
spec:
containers:
- image: gcr.io/google_containers/nginx-ingress-controller:0.8.3
name: nginx
imagePullPolicy: Always
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
livenessProbe:
httpGet:
path: /healthz
port: 10254
scheme: HTTP
initialDelaySeconds: 30
timeoutSeconds: 5
ports:
- containerPort: 80
- containerPort: 443
args:
- /nginx-ingress-controller
- --default-backend-service=nginx-ingress/default-http-backend
- --nginx-configmap=nginx-ingress/nginx
- apiVersion: v1
kind: Service
metadata:
name: nginx
namespace: nginx-ingress
spec:
type: LoadBalancer
ports:
- port: 80
name: http
- port: 443
name: https
selector:
app: nginx