Skip to content

Instantly share code, notes, and snippets.

@sceptic30
Created July 14, 2021 09:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sceptic30/df0bef9424a822621685312bb88b7b70 to your computer and use it in GitHub Desktop.
Save sceptic30/df0bef9424a822621685312bb88b7b70 to your computer and use it in GitHub Desktop.
Haproxy as a Daemonset
---
# Source: haproxy-ingress/templates/controller-poddisruptionbudget.yaml
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
labels:
helm.sh/chart: haproxy-ingress-0.12.5
app.kubernetes.io/name: haproxy-ingress
app.kubernetes.io/instance: haproxy-ingress
app.kubernetes.io/version: "v0.12.5"
app.kubernetes.io/managed-by: Helm
name: haproxy-ingress
spec:
selector:
matchLabels:
app.kubernetes.io/name: haproxy-ingress
app.kubernetes.io/instance: haproxy-ingress
minAvailable: 1
---
# Source: haproxy-ingress/templates/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
helm.sh/chart: haproxy-ingress-0.12.5
app.kubernetes.io/name: haproxy-ingress
app.kubernetes.io/instance: haproxy-ingress
app.kubernetes.io/version: "v0.12.5"
app.kubernetes.io/managed-by: Helm
name: haproxy-ingress
namespace: haproxy-ingress
---
# Source: haproxy-ingress/templates/controller-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
labels:
helm.sh/chart: haproxy-ingress-0.12.5
app.kubernetes.io/name: haproxy-ingress
app.kubernetes.io/instance: haproxy-ingress
app.kubernetes.io/version: "v0.12.5"
app.kubernetes.io/managed-by: Helm
name: haproxy-config
namespace: haproxy-ingress
data:
healthz-port: "10253"
stats-port: "1936"
---
# Source: haproxy-ingress/templates/clusterrole.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
helm.sh/chart: haproxy-ingress-0.12.5
app.kubernetes.io/name: haproxy-ingress
app.kubernetes.io/instance: haproxy-ingress
app.kubernetes.io/version: "v0.12.5"
app.kubernetes.io/managed-by: Helm
name: haproxy-ingress
rules:
- apiGroups:
- ""
resources:
- configmaps
- endpoints
- nodes
- pods
- secrets
verbs:
- list
- watch
- apiGroups:
- ""
resources:
- nodes
verbs:
- get
- apiGroups:
- ""
resources:
- services
verbs:
- get
- list
- watch
- apiGroups:
- extensions
- networking.k8s.io
resources:
- ingresses
- ingressclasses
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- events
verbs:
- create
- patch
- apiGroups:
- extensions
- networking.k8s.io
resources:
- ingresses/status
verbs:
- update
---
# Source: haproxy-ingress/templates/clusterrolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
helm.sh/chart: haproxy-ingress-0.12.5
app.kubernetes.io/name: haproxy-ingress
app.kubernetes.io/instance: haproxy-ingress
app.kubernetes.io/version: "v0.12.5"
app.kubernetes.io/managed-by: Helm
name: haproxy-ingress
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: haproxy-ingress
subjects:
- kind: ServiceAccount
name: haproxy-ingress
namespace: haproxy-ingress
- apiGroup: rbac.authorization.k8s.io
kind: User
name: haproxy-ingress
---
# Source: haproxy-ingress/templates/role.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
labels:
helm.sh/chart: haproxy-ingress-0.12.5
app.kubernetes.io/name: haproxy-ingress
app.kubernetes.io/instance: haproxy-ingress
app.kubernetes.io/version: "v0.12.5"
app.kubernetes.io/managed-by: Helm
name: haproxy-ingress
namespace: haproxy-ingress
rules:
- apiGroups:
- ""
resources:
- pods
- secrets
- namespaces
verbs:
- get
- apiGroups:
- ""
resources:
- configmaps
- endpoints
verbs:
- get
- create
- update
---
# Source: haproxy-ingress/templates/rolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
labels:
helm.sh/chart: haproxy-ingress-0.12.5
app.kubernetes.io/name: haproxy-ingress
app.kubernetes.io/instance: haproxy-ingress
app.kubernetes.io/version: "v0.12.5"
app.kubernetes.io/managed-by: Helm
name: haproxy-ingress
namespace: haproxy-ingress
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: haproxy-ingress
subjects:
- kind: ServiceAccount
name: haproxy-ingress
namespace: haproxy-ingress
- apiGroup: rbac.authorization.k8s.io
kind: User
name: haproxy-ingress
---
# Source: haproxy-ingress/templates/controller-service.yaml
apiVersion: v1
kind: Service
metadata:
labels:
helm.sh/chart: haproxy-ingress-0.12.5
app.kubernetes.io/name: haproxy-ingress
app.kubernetes.io/instance: haproxy-ingress
app.kubernetes.io/version: "v0.12.5"
app.kubernetes.io/managed-by: Helm
name: haproxy-ingress
namespace: haproxy-ingress
spec:
externalTrafficPolicy: "Local"
ports:
- name: "http-80"
port: 80
protocol: TCP
targetPort: http
- name: "https-443"
port: 443
protocol: TCP
targetPort: https
selector:
app.kubernetes.io/name: haproxy-ingress
app.kubernetes.io/instance: haproxy-ingress
type: "LoadBalancer"
---
# Source: haproxy-ingress/templates/controller-daemonset.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
labels:
helm.sh/chart: haproxy-ingress-0.12.5
app.kubernetes.io/name: haproxy-ingress
app.kubernetes.io/instance: haproxy-ingress
app.kubernetes.io/version: "v0.12.5"
app.kubernetes.io/managed-by: Helm
name: haproxy-ingress
namespace: haproxy-ingress
spec:
updateStrategy:
rollingUpdate:
maxUnavailable: 1
type: RollingUpdate
minReadySeconds: 0
selector:
matchLabels:
app.kubernetes.io/name: haproxy-ingress
app.kubernetes.io/instance: haproxy-ingress
template:
metadata:
labels:
app.kubernetes.io/name: haproxy-ingress
app.kubernetes.io/instance: haproxy-ingress
spec:
serviceAccountName: haproxy-ingress
containers:
- name: haproxy-ingress
image: admintuts/haproxy:2.4.1-alpine
imagePullPolicy: Always
args:
- --configmap=$(POD_NAMESPACE)/haproxy-config
- --ingress-class=haproxy
- --sort-backends
ports:
- name: http
containerPort: 80
hostPort: 80
- name: https
containerPort: 443
hostPort: 443
- name: healthz
containerPort: 10253
livenessProbe:
httpGet:
path: "/healthz"
port: 10253
scheme: HTTP
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 1
successThreshold: 1
failureThreshold: 3
readinessProbe:
httpGet:
path: "/healthz"
port: 10253
scheme: HTTP
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 1
successThreshold: 1
failureThreshold: 3
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
resources:
{}
terminationGracePeriodSeconds: 60
dnsPolicy: ClusterFirst
hostNetwork: False
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment