apiVersion: v1 kind: PersistentVolume metadata: name: chartmuseum-storage-pv-volume namespace: default labels: type: local app: chartmuseum spec: storageClassName: manual capacity: storage: 2Gi accessModes: - ReadWriteOnce hostPath: path: "/var/chartmuseum/charts" --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: chartmuseum-storage-pv-claim namespace: default labels: app: chartmuseum spec: storageClassName: manual accessModes: - ReadWriteOnce resources: requests: storage: 2Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: chartmuseum-deployment namespace: default labels: app: chartmuseum spec: selector: matchLabels: app: chartmuseum template: metadata: labels: app: chartmuseum version: v1 spec: securityContext: runAsUser: 0 containers: - name: chartmuseum image: chartmuseum/chartmuseum:latest imagePullPolicy: IfNotPresent env: - name: STORAGE value: local - name: STORAGE_LOCAL_ROOTDIR value: /charts ports: - name: http containerPort: 8080 resources: limits: memory: 256Mi cpu: "250m" requests: memory: 128Mi cpu: "80m" volumeMounts: - name: chartmuseum-persistent-storage mountPath: /charts volumes: - name: chartmuseum-persistent-storage persistentVolumeClaim: claimName: chartmuseum-storage-pv-claim replicas: 1 --- apiVersion: v1 kind: Service metadata: name: chartmuseum namespace: default spec: selector: app: chartmuseum ports: - name: http port: 8080 targetPort: 8080 nodePort: 31580 type: LoadBalancer