Browse Source

Added an haproxy for corelight

Fred Damstra (Macbook 2015) 2 years ago
parent
commit
4dc89ea617
1 changed files with 141 additions and 0 deletions
  1. 141 0
      Workloads/proxmox-haproxy.yaml

+ 141 - 0
Workloads/proxmox-haproxy.yaml

@@ -0,0 +1,141 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: proxmox-haproxy
+  labels:
+    run: proxmox-haproxy
+spec:
+  ports:
+    - name: http
+      port: 8000
+      targetPort: 8000
+  selector:
+    run: proxmox-haproxy
+#  type: LoadBalancer
+#status:
+#  loadBalancer: {}
+---
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: proxmox-haproxy-config
+spec:
+  capacity:
+    storage: 5Mi
+  volumeMode: Filesystem
+  accessModes:
+    - ReadWriteMany
+  persistentVolumeReclaimPolicy: Retain # Keep 4eva
+  storageClassName: default
+  mountOptions:
+    - hard
+    - nfsvers=3
+  nfs:
+    path: /mnt/DroboFS/Shares/Kubernetes/volumes/static/proxmox-haproxy-config
+    server: 10.42.42.10
+  claimRef:
+    name: proxmox-haproxy-config
+    namespace: default
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  name: proxmox-haproxy-config
+  annotations:
+    nfs.io/storage-path: "proxmox-haproxy-config"
+spec:
+  storageClassName: default
+  accessModes:
+    - ReadWriteMany
+  resources:
+    requests:
+      storage: 5Mi
+status: {}
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: proxmox-haproxy
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      run: proxmox-haproxy
+  strategy:
+    type: Recreate
+  template:
+    metadata:
+      labels:
+        run: proxmox-haproxy
+    spec:
+      terminationGracePeriodSeconds: 30
+      containers:
+        - image: haproxy:latest
+          imagePullPolicy: "Always"
+          name: proxmox-haproxy
+          env:
+            - name: TZ
+              value: US/Michigan
+          ports:
+            - containerPort: 8000
+          resources:
+            limits:
+              memory: "500Mi"
+              cpu: "1000m"
+            requests:
+              memory: "200Mi"
+              cpu: "500m"
+          volumeMounts:
+            - mountPath: /usr/local/etc/haproxy
+              name: proxmox-haproxy-config
+      restartPolicy: Always
+      volumes:
+        - name: proxmox-haproxy-config
+          persistentVolumeClaim:
+            claimName: proxmox-haproxy-config
+#      dnsPolicy: "None"
+#      dnsConfig:
+#        nameservers:
+#          - 10.42.42.239
+#          - 10.42.42.1
+#        searches:
+#          - default.svc.cluster.local
+#          - svc.cluster.local 
+#          - cluster.local
+#        options:
+#          - name: ndots
+#            value: "2"
+#          - name: edns0
+#          - name: trust-ad
+status: {}
+---
+# Hosting
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+  name: proxmox-haproxy-ingress
+  annotations:
+    cert-manager.io/cluster-issuer: "letsencrypt-prod"
+    ## No basic auth for proxmox-haproxy
+    ## type of authentication
+    #nginx.ingress.kubernetes.io/auth-type: basic
+    ## name of the secret that contains the user/password definitions
+    #nginx.ingress.kubernetes.io/auth-secret: basic-auth
+    ## message to display with an appropriate context why the authentication is required
+    #nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - Proxmox'
+spec:
+  tls:
+  - hosts:
+    - proxmox.monkeybox.org
+    secretName: proxmox-haproxy-tls
+  rules:
+  - host: proxmox.monkeybox.org
+    http:
+      paths:
+      - path: /
+        pathType: Prefix
+        backend:
+          service:
+            name: proxmox-haproxy
+            port:
+              number: 8000