Skip to content

Instantly share code, notes, and snippets.

@mikejk8s
Last active January 18, 2018 16:44
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save mikejk8s/d7d7e71652fd838359968b221f756852 to your computer and use it in GitHub Desktop.
Save mikejk8s/d7d7e71652fd838359968b221f756852 to your computer and use it in GitHub Desktop.
updated nginx-ingress
apiVersion: v1
kind: Service
metadata:
labels:
name: client-socket-ingress
app: {{ template "fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
name: client-socket-ingress
namespace: "{{.Values.nodejs_namespace}}"
spec:
loadBalancerIP: XXXXXXX
type: LoadBalancer
ports:
- port: 443
name: https
selector:
k8s-app: client-socket-ingress
sessionAffinity: ClientIP
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
name: client-socket-ingress
app: {{ template "fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
name: client-socket-ingress
namespace: "{{.Values.nodejs_namespace}}"
spec:
replicas: 1
template:
metadata:
labels:
k8s-app: client-socket-ingress
spec:
terminationGracePeriodSeconds: 60
containers:
- name: client-socket-ingress
# From https://github.com/kubernetes/contrib/blob/master/ingress/controllers/nginx/rc.yaml
image: gcr.io/google_containers/nginx-ingress-controller:0.9.0-beta.11
imagePullPolicy: Always
args:
- /nginx-ingress-controller
# Ingress controller redirects to the given server for any unknown subdomain, can be any but:
# - Should serve a HTTP/404 on /
# - Must serve a HTTP/200 on /healthz
- --default-backend-service={{.Values.nodejs_namespace}}/{{.Values.default_backend_name}}
- --configmap=$(POD_NAMESPACE)/client-socket-ingress
# Use downward API
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
ports:
- containerPort: 443
livenessProbe: # Optional
httpGet:
path: /healthz
port: 10254
scheme: HTTP
initialDelaySeconds: 30
timeoutSeconds: 5
resources: # Optional
requests:
memory: "512Mi"
cpu: "1"
limits:
memory: "512Mi"
cpu: "1"
---
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
labels:
app: {{ template "fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
name: client-socket-ingress-hpa
namespace: "{{.Values.nodejs_namespace}}"
spec:
scaleTargetRef:
kind: Deployment
name: client-socket-ingress
minReplicas: 1
maxReplicas: 3
targetCPUUtilizationPercentage: 50
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
labels:
name: client-socket-ingress
app: {{ template "fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
name: client-socket-ingress
namespace: "{{.Values.nodejs_namespace}}"
annotations:
# This tells to only use the Nginx Ingress Controller
# and avoids the creation on a Global LoadBalancer on GKE.
kubernetes.io/ingress.class: "nginx"
spec:
tls:
- secretName: wildcard-staging
# List of hosts supported by this certificate:
hosts:
- client-socket.staging.app.com
rules:
- host: client-socket.staging.app.com
http:
paths:
- path: /
backend:
serviceName: client-socket
servicePort: 10002
---
apiVersion: v1
kind: ConfigMap
metadata:
labels:
name: client-socket-ingress
app: {{ template "fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
name: client-socket-ingress
namespace: "{{.Values.nodejs_namespace}}"
labels:
app: client-socket-ingress
data:
enable-sticky-sessions: 'true' ## use ROUTE cookie to provide session affinity
enable-vts-status: 'true' ## Allows the replacement of the default status page nginx-module-vts
worker-process: '1'
use-http2: 'false'
load-balance: 'ip_hash'
upstream-max-fails: '2'
upstream-fail-timeout: '10'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment