Skip to content

Nginx Proxy Manager

Volumes

YAML
apiVersion: v1
kind: PersistentVolume
metadata:
  labels:
    type: local
  name: vol-npm-data
spec:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 20Gi
  claimRef:
    apiVersion: v1
    kind: PersistentVolumeClaim
    name: vol-npm-data
    namespace: default
  hostPath:
    path: /kube-volumes/npm/npm-data
    type: ""
  persistentVolumeReclaimPolicy: Retain
  storageClassName: npm-data
  volumeMode: Filesystem

---

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: vol-npm-data
  namespace: default
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 20Gi
  storageClassName: npm-data
  volumeMode: Filesystem
  volumeName: vol-npm-data

---

apiVersion: v1
kind: PersistentVolume
metadata:
  labels:
    type: local
  name: vol-npm-letsencrypt
spec:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 20Gi
  claimRef:
    apiVersion: v1
    kind: PersistentVolumeClaim
    name: vol-npm-letsencrypt
    namespace: default
  hostPath:
    path: /kube-volumes/npm/npm-letsencrypt
    type: ""
  persistentVolumeReclaimPolicy: Retain
  storageClassName: npm-letsencrypt
  volumeMode: Filesystem

---

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: vol-npm-letsencrypt
  namespace: default
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 20Gi
  storageClassName: npm-letsencrypt
  volumeMode: Filesystem
  volumeName: vol-npm-letsencrypt

Servies

YAML
apiVersion: v1
kind: Service
metadata:
  labels:
    app: npm
  name: npm
  namespace: default
spec:
  ports:
  - name: npm
    port: 80
    protocol: TCP
    targetPort: 80
  # - name: npm2
  #   port: 81
  #   protocol: TCP
  #   targetPort: 81
  - name: npm3
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: npm
  # type: LoadBalancer

---

apiVersion: v1
kind: Service
metadata:
  labels:
    app: npm-admin
  name: npm-admin
  namespace: default
spec:
  ports:
  - name: npm-admin
    port: 81
    protocol: TCP
    targetPort: 81
  selector:
    app: npm

deployment

YAML
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: npm
  name: npm
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: npm
  template:
    metadata:
      labels:
        app: npm
    spec:
      containers:
      - image: jc21/nginx-proxy-manager:latest
        imagePullPolicy: Always
        name: npm
        ports:
        - containerPort: 80
          name: npm
          protocol: TCP
        - containerPort: 81
          name: npm2
          protocol: TCP
        - containerPort: 443
          name: npm3
          protocol: TCP
        resources:
          limits:
            cpu: 1
            memory: 500Mi
          requests:
            cpu: 100m
            memory: 100Mi
        livenessProbe:
          exec:
            command:
            - bash
            - /bin/check-health
          initialDelaySeconds: 5
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 3
          failureThreshold: 10
        readinessProbe:
          exec:
            command:
            - bash
            - /bin/check-health
          initialDelaySeconds: 5
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 3
          failureThreshold: 3
        startupProbe:
          exec:
            command:
            - bash
            - /bin/check-health
          initialDelaySeconds: 5
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 3
          failureThreshold: 30
        volumeMounts:
        - mountPath: /etc/letsencrypt
          name: vol-npm-letsencrypt
        - mountPath: /data
          name: vol-npm-letsencrypt
      restartPolicy: Always
      volumes:
      - name: vol-npm-letsencrypt
        persistentVolumeClaim:
          claimName: vol-npm-letsencrypt
      - name: vol-npm-data
        persistentVolumeClaim:
          claimName: vol-npm-data

Kustomization

YAML
resources:
- deployment.yaml
- service.yaml
- volumes.yaml

Link2docs