apiVersion: v1 kind: Service metadata: name: octoprint labels: run: octoprint spec: ports: - name: http port: 5000 targetPort: 5000 selector: run: octoprint type: LoadBalancer status: loadBalancer: {} --- apiVersion: v1 kind: PersistentVolume metadata: name: octoprint spec: capacity: storage: 100Mi volumeMode: Filesystem accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain # Keep 4eva storageClassName: default mountOptions: - hard - nfsvers=3 nfs: path: /mnt/DroboFS/Shares/Kubernetes/volumes/static/octoprint server: 10.42.42.10 claimRef: name: octoprint namespace: default --- apiVersion: v1 kind: PersistentVolumeClaim metadata: # labels: # run: octoprint name: octoprint spec: storageClassName: default # volumeName: octoprint accessModes: - ReadWriteOnce resources: requests: storage: 100Mi status: {} --- apiVersion: apps/v1 kind: Deployment metadata: name: octoprint spec: replicas: 1 selector: matchLabels: run: octoprint strategy: type: Recreate template: metadata: labels: run: octoprint spec: nodeSelector: octoprint: "true" containers: - image: octoprint/octoprint name: octoprint securityContext: privileged: true env: - name: OCTOPRINT_PORT value: "5000" ports: - containerPort: 5000 resources: {} volumeMounts: - mountPath: /octoprint name: octoprint - mountPath: /dev/ttyUSB0 name: ttyusb restartPolicy: Always volumes: - name: octoprint persistentVolumeClaim: claimName: octoprint - name: ttyusb hostPath: path: /dev/ttyUSB0 status: {} #--- ## Hosting #apiVersion: networking.k8s.io/v1 #kind: Ingress #metadata: # name: octoprint-ingress # annotations: # #cert-manager.io/cluster-issuer: "letsencrypt-prod" # ## No basic auth for octoprint # ## 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 - Octoprint' # # Octoprint uses large attachments # nginx.ingress.kubernetes.io/proxy-body-size: 200m #spec: # tls: # - hosts: # - octoprint.monkeybox.org # secretName: octoprint-tls # rules: # - host: octoprint.monkeybox.org # http: # paths: # - path: / # pathType: Prefix # backend: # service: # name: octoprint # port: # number: 80