Jelajahi Sumber

Update charts train for 21.02 release

Waqar Ahmed 4 tahun lalu
induk
melakukan
931ba4bea6
100 mengubah file dengan 1078 tambahan dan 1567 penghapusan
  1. 0 0
      charts/ipfs/1.0.1/.helmignore
  2. 18 0
      charts/ipfs/1.0.1/Chart.yaml
  3. 22 0
      charts/ipfs/1.0.1/README.md
  4. 1 0
      charts/ipfs/1.0.1/app-readme.md
  5. TEMPAT SAMPAH
      charts/ipfs/1.0.1/charts/common-2101.0.0.tgz
  6. 27 0
      charts/ipfs/1.0.1/default_values.yaml
  7. 199 0
      charts/ipfs/1.0.1/questions.yaml
  8. 6 0
      charts/ipfs/1.0.1/requirements.lock
  9. 2 0
      charts/ipfs/1.0.1/templates/NOTES.txt
  10. 58 0
      charts/ipfs/1.0.1/templates/deployment.yaml
  11. 8 0
      charts/ipfs/1.0.1/templates/service.yaml
  12. 1 0
      charts/ipfs/1.0.1/templates/serviceaccount.yaml
  13. 27 0
      charts/ipfs/1.0.1/test_values.yaml
  14. 0 0
      charts/ipfs/1.0.1/values.yaml
  15. 3 0
      charts/ipfs/item.yaml
  16. 0 0
      charts/ix-chart/2102.0.0/.helmignore
  17. 6 0
      charts/ix-chart/2102.0.0/Chart.lock
  18. 6 1
      charts/ix-chart/2102.0.0/Chart.yaml
  19. 0 1
      charts/ix-chart/2102.0.0/README.md
  20. 0 0
      charts/ix-chart/2102.0.0/app-readme.md
  21. TEMPAT SAMPAH
      charts/ix-chart/2102.0.0/charts/common-2101.0.0.tgz
  22. 0 1
      charts/ix-chart/2102.0.0/default_values.yaml
  23. 0 15
      charts/ix-chart/2102.0.0/questions.yaml
  24. 0 0
      charts/ix-chart/2102.0.0/templates/NOTES.txt
  25. 0 0
      charts/ix-chart/2102.0.0/templates/_containers.tpl
  26. 0 0
      charts/ix-chart/2102.0.0/templates/_helpers.tpl
  27. 0 0
      charts/ix-chart/2102.0.0/templates/_networking.tpl
  28. 0 0
      charts/ix-chart/2102.0.0/templates/_volumes.tpl
  29. 1 1
      charts/ix-chart/2102.0.0/templates/_workload.tpl
  30. 0 0
      charts/ix-chart/2102.0.0/templates/external-interfaces.yaml
  31. 0 0
      charts/ix-chart/2102.0.0/templates/service.yaml
  32. 0 0
      charts/ix-chart/2102.0.0/templates/tests/deployment-check.yaml
  33. 0 0
      charts/ix-chart/2102.0.0/templates/workload.yaml
  34. 0 1
      charts/ix-chart/2102.0.0/test_values.yaml
  35. 0 0
      charts/ix-chart/2102.0.0/values.yaml
  36. 0 84
      charts/minio/1.0.0/templates/_helpers.tpl
  37. 0 23
      charts/minio/1.0.0/templates/_storage.tpl
  38. 0 67
      charts/minio/1.0.0/templates/deployment.yaml
  39. 0 21
      charts/minio/1.0.0/templates/service.yaml
  40. 0 9
      charts/minio/1.0.0/templates/serviceaccount.yaml
  41. 23 0
      charts/minio/1.1.0/.helmignore
  42. 5 1
      charts/minio/1.1.0/Chart.yaml
  43. 0 0
      charts/minio/1.1.0/README.md
  44. 0 0
      charts/minio/1.1.0/app-readme.md
  45. TEMPAT SAMPAH
      charts/minio/1.1.0/charts/common-2101.0.0.tgz
  46. 5 0
      charts/minio/1.1.0/default_values.yaml
  47. 25 0
      charts/minio/1.1.0/migrations/migrate
  48. 55 34
      charts/minio/1.1.0/questions.yaml
  49. 6 0
      charts/minio/1.1.0/requirements.lock
  50. 0 0
      charts/minio/1.1.0/templates/NOTES.txt
  51. 6 0
      charts/minio/1.1.0/templates/_helpers.tpl
  52. 46 0
      charts/minio/1.1.0/templates/deployment.yaml
  53. 1 5
      charts/minio/1.1.0/templates/secrets.yaml
  54. 10 0
      charts/minio/1.1.0/templates/service.yaml
  55. 1 0
      charts/minio/1.1.0/templates/serviceaccount.yaml
  56. 6 2
      charts/minio/1.1.0/test_values.yaml
  57. 0 0
      charts/minio/1.1.0/values.yaml
  58. 0 198
      charts/nextcloud/1.1.0/questions.yaml
  59. 0 114
      charts/nextcloud/1.1.0/templates/_helpers.tpl
  60. 0 28
      charts/nextcloud/1.1.0/templates/_postgres.tpl
  61. 0 21
      charts/nextcloud/1.1.0/templates/_upgrade.tpl
  62. 0 57
      charts/nextcloud/1.1.0/templates/backup-postgres-hook.yaml
  63. 0 113
      charts/nextcloud/1.1.0/templates/deployment.yaml
  64. 0 64
      charts/nextcloud/1.1.0/templates/postgres-deployment.yaml
  65. 0 18
      charts/nextcloud/1.1.0/templates/postgres-service.yaml
  66. 0 20
      charts/nextcloud/1.1.0/templates/service.yaml
  67. 0 17
      charts/nextcloud/1.1.0/values.yaml
  68. 0 0
      charts/nextcloud/1.2.0/.helmignore
  69. 6 0
      charts/nextcloud/1.2.0/Chart.lock
  70. 6 1
      charts/nextcloud/1.2.0/Chart.yaml
  71. 0 0
      charts/nextcloud/1.2.0/README.md
  72. 0 0
      charts/nextcloud/1.2.0/app-readme.md
  73. TEMPAT SAMPAH
      charts/nextcloud/1.2.0/charts/common-2101.0.0.tgz
  74. 13 11
      charts/nextcloud/1.2.0/default_values.yaml
  75. 26 0
      charts/nextcloud/1.2.0/migrations/migrate
  76. 219 0
      charts/nextcloud/1.2.0/questions.yaml
  77. 0 0
      charts/nextcloud/1.2.0/templates/NOTES.txt
  78. 49 0
      charts/nextcloud/1.2.0/templates/_postgres.tpl
  79. 0 0
      charts/nextcloud/1.2.0/templates/backup-postgres-config.yaml
  80. 39 0
      charts/nextcloud/1.2.0/templates/backup-postgres-hook.yaml
  81. 54 0
      charts/nextcloud/1.2.0/templates/deployment.yaml
  82. 4 2
      charts/nextcloud/1.2.0/templates/nuke-deployments-hook.yaml
  83. 17 0
      charts/nextcloud/1.2.0/templates/postgres-deployment.yaml
  84. 0 0
      charts/nextcloud/1.2.0/templates/postgres-secret.yaml
  85. 6 0
      charts/nextcloud/1.2.0/templates/postgres-service.yaml
  86. 2 6
      charts/nextcloud/1.2.0/templates/secrets.yaml
  87. 6 0
      charts/nextcloud/1.2.0/templates/service.yaml
  88. 2 6
      charts/nextcloud/1.2.0/templates/serviceaccount.yaml
  89. 43 0
      charts/nextcloud/1.2.0/test_values.yaml
  90. 0 0
      charts/nextcloud/1.2.0/values.yaml
  91. 0 274
      charts/plex/1.0.0/questions.yaml
  92. 0 81
      charts/plex/1.0.0/templates/_helpers.tpl
  93. 0 50
      charts/plex/1.0.0/templates/_storage.tpl
  94. 0 153
      charts/plex/1.0.0/templates/deployment.yaml
  95. 0 35
      charts/plex/1.0.0/templates/service-tcp.yaml
  96. 0 31
      charts/plex/1.0.0/templates/service-udp.yaml
  97. 0 0
      charts/plex/1.1.0/.helmignore
  98. 6 0
      charts/plex/1.1.0/Chart.lock
  99. 6 1
      charts/plex/1.1.0/Chart.yaml
  100. 0 0
      charts/plex/1.1.0/README.md

+ 0 - 0
charts/minio/1.0.0/.helmignore → charts/ipfs/1.0.1/.helmignore


+ 18 - 0
charts/ipfs/1.0.1/Chart.yaml

@@ -0,0 +1,18 @@
+apiVersion: v1
+description: Global, Versioned, peer-to-peer filesystem.
+name: ipfs
+version: 1.0.1
+appVersion: master
+keywords:
+- storage
+- p2p
+home: https://ipfs.io
+icon: https://ipfs.io/ipfs/QmVk7srrwahXLNmcDYvyUEJptyoxpndnRa57YJ11L4jV26/ipfs.go.png
+sources:
+- https://github.com/ipfs/go-ipfs
+- https://hub.docker.com/r/ipfs/go-ipfs
+upstream_version: 0.8.0-rc1
+dependencies:
+  - name: common
+    repository: file://../../../library/common/2101.0.0
+    version: 2101.0.0

+ 22 - 0
charts/ipfs/1.0.1/README.md

@@ -0,0 +1,22 @@
+IPFS
+=====
+
+[IPFS](https://ipfs.io) is a global, versioned, peer-to-peer filesystem. It combines good ideas from previous systems such Git, BitTorrent, Kademlia, SFS, and the Web. It is like a single bittorrent swarm, exchanging git objects. IPFS provides an interface as simple as the HTTP web, but with permanence built in. You can also mount the world at /ipfs.
+
+Introduction
+------------
+
+This chart bootstraps IPFS deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
+
+
+Configuration
+-------------
+
+The following table lists the configurable parameters of the IPFS chart and their default values.
+
+| Parameter                                        | Description                                                                                                                             | Default                          |
+|:-------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------|
+| `image.repository`                               | Image repository                                                                                                                        | `ipfs/go-ipfs`                    |
+| `image.tag`                                      | IPFS image tag. Possible values listed [here](https://hub.docker.com/r/ipfs/go-ipfs/tags).                                              | `v0.8.0-rc1`   |
+| `image.pullPolicy`                               | Image pull policy                                                                                                                       | `IfNotPresent`                   |
+| `extraArgs`                                      | Additional command line arguments to pass to the IPFS server                                                                            | `[]`                             |

+ 1 - 0
charts/ipfs/1.0.1/app-readme.md

@@ -0,0 +1 @@
+[IPFS](https://ipfs.io) is a global, versioned, peer-to-peer filesystem. It combines good ideas from previous systems such Git, BitTorrent, Kademlia, SFS, and the Web. It is like a single bittorrent swarm, exchanging git objects. IPFS provides an interface as simple as the HTTP web, but with permanence built in. You can also mount the world at /ipfs.

TEMPAT SAMPAH
charts/ipfs/1.0.1/charts/common-2101.0.0.tgz


+ 27 - 0
charts/ipfs/1.0.1/default_values.yaml

@@ -0,0 +1,27 @@
+## Set default image, imageTag, and imagePullPolicy. mode is used to indicate the
+##
+image:
+  repository: ipfs/go-ipfs
+  tag: v0.8.0-rc1
+  pullPolicy: IfNotPresent
+
+## Additional arguments to pass to ipfs binary
+extraArgs: []
+
+updateStrategy: Recreate
+
+service:
+  swarmPort: 9401
+  apiPort: 9501
+  gatewayPort: 9080
+
+environment:
+
+appVolumeMounts:
+  staging:
+    emptyDir: true
+    mountPath: "/export"
+  data:
+    emptyDir: true
+    mountPath: "/data/ipfs"
+

+ 199 - 0
charts/ipfs/1.0.1/questions.yaml

@@ -0,0 +1,199 @@
+groups:
+  - name: "Container Images"
+    description: "Image to be used for container"
+  - name: "Workload Configuration"
+    description: "Configure Storage for IPFS"
+  - name: "Storage"
+    description: "Configure Storage for IPFS"
+  - name: "IPFS Configuration"
+    description: "Configure Storage for IPFS"
+
+portals:
+  web_portal:
+    protocols:
+      - "http"
+    host:
+      - "$node_ip"
+    ports:
+      - "$variable-service.apiPort"
+    path: "/webui"
+
+questions:
+  # Image related
+  - variable: image
+    description: "Docker Image Details"
+    label: "Docker Image"
+    group: "Container Images"
+    schema:
+      type: dict
+      required: true
+      attrs:
+        - variable: repository
+          description: "Docker image repository"
+          label: "Image repository"
+          schema:
+            type: string
+            default: "ipfs/go-ipfs"
+            required: true
+        - variable: tag
+          description: "Tag to use for specified image"
+          label: "Image Tag"
+          schema:
+            type: string
+            default: "v0.8.0-rc1"
+        - variable: pullPolicy
+          description: "Docker Image Pull Policy"
+          label: "Image Pull Policy"
+          schema:
+            type: string
+            default: "IfNotPresent"
+            enum:
+              - value: "IfNotPresent"
+                description: "Only pull image if not present on host"
+              - value: "Always"
+                description: "Always pull image even if present on host"
+              - value: "Never"
+                description: "Never pull image even if it's not present on host"
+
+  - variable: updateStrategy
+    label: "IPFS update strategy"
+    group: "Workload Configuration"
+    schema:
+      type: string
+      default: "Recreate"
+      enum:
+        - value: "RollingUpdate"
+          description: "Create new pods and then kill old ones"
+        - value: "Recreate"
+          description: "Kill existing pods before creating new ones"
+
+  - variable: environmentVariables
+    label: "IPFS image environment"
+    group: "IPFS Configuration"
+    schema:
+      type: list
+      default: []
+      items:
+        - variable: environmentVariable
+          label: "Environment Variable"
+          schema:
+            type: dict
+            attrs:
+              - variable: name
+                label: "Name"
+                schema:
+                  type: string
+              - variable: value
+                label: "Value"
+                schema:
+                  type: string
+
+  - variable: service
+    description: "IPFS Service Configuration"
+    label: "IPFS Service Configuration"
+    group: "IPFS Configuration"
+    schema:
+      type: dict
+      required: true
+      attrs:
+        - variable: swarmPort
+          label: "Swarm Port to use for IPFS (Public)"
+          schema:
+            type: int
+            min: 9000
+            max: 65535
+            default: 9401
+            required: true
+        - variable: apiPort
+          label: "API Port to use for IPFS (local)"
+          schema:
+            type: int
+            min: 9000
+            max: 65535
+            default: 9501
+            required: true
+        - variable: gatewayPort
+          label: "Gateway Port to use for IPFS (local)"
+          schema:
+            type: int
+            min: 9000
+            max: 65535
+            default: 9880
+            required: true
+
+  - variable: appVolumeMounts
+    label: "IPFS Storage"
+    group: "Storage"
+    schema:
+      type: dict
+      attrs:
+        - variable: staging
+          label: "Staging Volume"
+          schema:
+            type: dict
+            attrs:
+              - variable: datasetName
+                label: "IPFS Staging Volume Dataset Name"
+                schema:
+                  type: string
+                  hidden: true
+                  $ref:
+                    - "normalize/ixVolume"
+                  show_if: [["hostPathEnabled", "=", false]]
+                  default: "ix-ipfs-staging"
+                  editable: false
+              - variable: mountPath
+                label: "IPFS Staging Mount Path"
+                description: "Path where the volume will be mounted inside the pod"
+                schema:
+                  type: path
+                  hidden: true
+                  editable: false
+                  default: "/export"
+              - variable: hostPathEnabled
+                label: "Enable Host Path for IPFS Staging Volume"
+                schema:
+                  type: boolean
+                  default: false
+                  show_subquestions_if: true
+                  subquestions:
+                    - variable: hostPath
+                      label: "Host Path for IPFS Staging Volume"
+                      schema:
+                        type: hostpath
+                        required: true
+        - variable: data
+          label: "Data Volume"
+          schema:
+            type: dict
+            attrs:
+              - variable: datasetName
+                label: "IPFS Data Volume Name"
+                schema:
+                  type: string
+                  hidden: true
+                  $ref:
+                    - "normalize/ixVolume"
+                  show_if: [["hostPathEnabled", "=", false]]
+                  default: "ix-ipfs-data"
+                  editable: false
+              - variable: mountPath
+                label: "IPFS Data Mount Path"
+                description: "Path where the volume will be mounted inside the pod"
+                schema:
+                  type: path
+                  hidden: true
+                  editable: false
+                  default: "/data/ipfs"
+              - variable: hostPathEnabled
+                label: "Enable Host Path for IPFS Data Volume"
+                schema:
+                  type: boolean
+                  default: false
+                  show_subquestions_if: true
+                  subquestions:
+                    - variable: hostPath
+                      label: "Host Path for IPFS Data Volume"
+                      schema:
+                        type: hostpath
+                        required: true

+ 6 - 0
charts/ipfs/1.0.1/requirements.lock

@@ -0,0 +1,6 @@
+dependencies:
+- name: common
+  repository: file://../../../library/common/2101.0.0
+  version: 2101.0.0
+digest: sha256:6ab46f958de11ae6a24d8f7e18417aa9852a8d968d5b0cc94ffa4700449931d6
+generated: "2021-02-04T01:15:55.312886+05:00"

+ 2 - 0
charts/ipfs/1.0.1/templates/NOTES.txt

@@ -0,0 +1,2 @@
+IPFS can be accessed from the following URL:
+http://$node_ip:{{ .Values.service.apiPort }}/webui

+ 58 - 0
charts/ipfs/1.0.1/templates/deployment.yaml

@@ -0,0 +1,58 @@
+apiVersion: {{ template "common.capabilities.deployment.apiVersion" . }}
+kind: Deployment
+metadata:
+  name: {{ template "common.names.fullname" . }}
+  labels: {{ include "common.labels" . | nindent 4 }}
+spec:
+  strategy:
+    type: {{ .Values.updateStrategy }}
+  selector:
+    matchLabels: {{ include "common.labels.selectorLabels" . | nindent 6 }}
+  template:
+    metadata:
+      name: {{ template "common.names.fullname" . }}
+      labels: {{ include "common.labels.selectorLabels" . | nindent 8 }}
+    spec:
+      serviceAccountName: {{ include "common.names.serviceAccountName" . | quote }}
+      initContainers:
+        - name: init-init
+          {{ include "common.containers.imageConfig" .Values.image | nindent 10 }}
+          command: ['/bin/sh', '-c', '[ ! -e /data/ipfs/config ] && (/usr/local/bin/ipfs init ; chown -R 1000:100 /data/ipfs) ; exit 0']
+          {{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }}
+        - name: init-api
+          {{ include "common.containers.imageConfig" .Values.image | nindent 10 }}
+          command: ['/usr/local/bin/ipfs', 'config', 'Addresses.API', "/ip4/0.0.0.0/tcp/9501"]
+          {{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }}
+        - name: init-gateway
+          {{ include "common.containers.imageConfig" .Values.image | nindent 10 }}
+          command: ['/usr/local/bin/ipfs', 'config', 'Addresses.Gateway', "/ip4/0.0.0.0/tcp/9080"]
+          {{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }}
+        - name: init-swarm
+          {{ include "common.containers.imageConfig" .Values.image | nindent 10 }}
+          command: ['/usr/local/bin/ipfs', 'config', '--json', 'Addresses.Swarm', "[\"/ip4/0.0.0.0/tcp/9401\",\"/ip4/0.0.0.0/tcp/9401/quic\"]" ]
+          {{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }}
+        - name: init-access-origin
+          {{ include "common.containers.imageConfig" .Values.image | nindent 10 }}
+          command: ['/usr/local/bin/ipfs', 'config', '--json', 'API.HTTPHeaders.Access-Control-Allow-Origin', "[\"*\"]" ]
+          {{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }}
+        - name: init-access-methods
+          {{ include "common.containers.imageConfig" .Values.image | nindent 10 }}
+          command: ['/usr/local/bin/ipfs', 'config', '--json', 'API.HTTPHeaders.Access-Control-Allow-Methods', "[\"PUT\",\"POST\"]" ]
+          {{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }}
+        - name: init-chown
+          {{ include "common.containers.imageConfig" .Values.image | nindent 10 }}
+          command: ['chown', '1000:100', '/data/ipfs/config']
+          {{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }}
+      containers:
+        - name: {{ .Chart.Name }}
+          {{ include "common.containers.imageConfig" .Values.image | nindent 10 }}
+          {{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }}
+          ports:
+            - name: swarm
+              containerPort: 9401
+            - name: api
+              containerPort: 9501
+            - name: gateway
+              containerPort: 9880
+{{ include "common.containers.allEnvironmentVariables" .Values | nindent 10 }}
+{{ include "common.storage.allAppVolumes" .Values | nindent 6 }}

+ 8 - 0
charts/ipfs/1.0.1/templates/service.yaml

@@ -0,0 +1,8 @@
+{{ $svc := .Values.service }}
+{{ $ports := list }}
+{{ $ports = mustAppend $ports (dict "name" "swarm" "port" $svc.swarmPort "nodePort" $svc.swarmPort "targetPort" 9401) }}
+{{ $ports = mustAppend $ports (dict "name" "api" "port" $svc.apiPort "nodePort" $svc.apiPort "targetPort" 9501) }}
+{{ $ports = mustAppend $ports (dict "name" "gateway" "port" $svc.gatewayPort "nodePort" $svc.gatewayPort "targetPort" 9880) }}
+{{ $params := . }}
+{{ $_ := set $params "commonService" (dict "type" "NodePort" "ports" $ports ) }}
+{{ include "common.classes.service" $params }}

+ 1 - 0
charts/ipfs/1.0.1/templates/serviceaccount.yaml

@@ -0,0 +1 @@
+{{ include "common.serviceaccount" . }}

+ 27 - 0
charts/ipfs/1.0.1/test_values.yaml

@@ -0,0 +1,27 @@
+## Set default image, imageTag, and imagePullPolicy. mode is used to indicate the
+##
+image:
+  repository: ipfs/go-ipfs
+  tag: v0.8.0-rc1
+  pullPolicy: IfNotPresent
+
+## Additional arguments to pass to minio binary
+extraArgs: []
+
+updateStrategy: Recreate
+
+service:
+  swarmPort: 30941
+  apiPort: 30951
+  gatewayPort: 30980
+
+environmentVariables: []
+
+emptyDirVolumes: true
+appVolumeMounts:
+  staging:
+    emptyDir: true
+    mountPath: "/export"
+  data:
+    emptyDir: true
+    mountPath: "/data/ipfs"

+ 0 - 0
charts/nextcloud/1.1.0/templates/_backup.tpl → charts/ipfs/1.0.1/values.yaml


+ 3 - 0
charts/ipfs/item.yaml

@@ -0,0 +1,3 @@
+categories:
+  - storage
+icon_url: https://ipfs.io/ipfs/QmVk7srrwahXLNmcDYvyUEJptyoxpndnRa57YJ11L4jV26/ipfs.go.png

+ 0 - 0
charts/ix-chart/2012.0.0/.helmignore → charts/ix-chart/2102.0.0/.helmignore


+ 6 - 0
charts/ix-chart/2102.0.0/Chart.lock

@@ -0,0 +1,6 @@
+dependencies:
+- name: common
+  repository: file://../../../library/common/2101.0.0
+  version: 2101.0.0
+digest: sha256:6ab46f958de11ae6a24d8f7e18417aa9852a8d968d5b0cc94ffa4700449931d6
+generated: "2021-02-04T01:15:55.365517+05:00"

+ 6 - 1
charts/ix-chart/2012.0.0/Chart.yaml → charts/ix-chart/2102.0.0/Chart.yaml

@@ -15,9 +15,14 @@ type: application
 # This is the chart version. This version number should be incremented each time you make changes
 # to the chart and its templates, including the app version.
 # Versions are expected to follow Semantic Versioning (https://semver.org/)
-version: 2012.0.0
+version: 2102.0.0
 
 # This is the version number of the application being deployed. This version number should be
 # incremented each time you make changes to the application. Versions are not expected to
 # follow Semantic Versioning. They should reflect the version the application is using.
 appVersion: v1
+dependencies:
+  - name: common
+    repository: file://../../../library/common/2101.0.0
+    version: 2101.0.0
+

+ 0 - 1
charts/ix-chart/2012.0.0/README.md → charts/ix-chart/2102.0.0/README.md

@@ -22,7 +22,6 @@ their default values.
 | `image.tag`                    | The image tag to pull from                                                                                      | `latest`                                                             |
 | `image.pullPolicy`             | Image pull policy                                                                                               | `IfNotPresent`                                                       |
 | `updateStrategy`               | Upgrade Policy                                                                                                  | `RollingUpdate`                                                      |
-| `restartPolicy`                | Restart Policy for containers in workload                                                                       | `Always`                                                             |
 | `jobRestartPolicy`             | Restart Policy for job type workload ( only applicable if `workloadType` is `Job`/`CronJob`                     | `OnFailure`                                                          |
 | `containerCommand`             | Commands to execute inside container overriding image CMD default                                               | `null`                                                               |
 | `containerArgs`                | Specify arguments for container command                                                                         | `null`                                                               |

+ 0 - 0
charts/ix-chart/2012.0.0/app-readme.md → charts/ix-chart/2102.0.0/app-readme.md


TEMPAT SAMPAH
charts/ix-chart/2102.0.0/charts/common-2101.0.0.tgz


+ 0 - 1
charts/ix-chart/2012.0.0/values.yaml → charts/ix-chart/2102.0.0/default_values.yaml

@@ -7,7 +7,6 @@ image:
   tag: "latest"
 
 # Restart / Update policy
-restartPolicy: Always
 updateStrategy: RollingUpdate
 
 # Container CMD / entrypoint

+ 0 - 15
charts/ix-chart/2012.0.0/questions.yaml → charts/ix-chart/2102.0.0/questions.yaml

@@ -99,21 +99,6 @@ questions:
           description: "Kill existing pods before creating new ones"
 
   # Restart Policy
-  - variable: restartPolicy
-    description: "Restart Policy for workload"
-    label: "Restart Policy"
-    group: "Restart Policy"
-    schema:
-      type: string
-      show_if: [["workloadType", "=", "Deployment"]]
-      default: "Always"
-      enum:
-        - value: "Always"
-          description: "Always restart containers in a pod if they exit"
-        - value: "OnFailure"
-          description: "Only restart containers if they exit with a failure"
-        - value: "Never"
-          description: "Never restart containers if they exit"
   - variable: jobRestartPolicy
     description: "Restart Policy for workload"
     label: "Restart Policy"

+ 0 - 0
charts/ix-chart/2012.0.0/templates/NOTES.txt → charts/ix-chart/2102.0.0/templates/NOTES.txt


+ 0 - 0
charts/ix-chart/2012.0.0/templates/_containers.tpl → charts/ix-chart/2102.0.0/templates/_containers.tpl


+ 0 - 0
charts/ix-chart/2012.0.0/templates/_helpers.tpl → charts/ix-chart/2102.0.0/templates/_helpers.tpl


+ 0 - 0
charts/ix-chart/2012.0.0/templates/_networking.tpl → charts/ix-chart/2102.0.0/templates/_networking.tpl


+ 0 - 0
charts/ix-chart/2012.0.0/templates/_volumes.tpl → charts/ix-chart/2102.0.0/templates/_volumes.tpl


+ 1 - 1
charts/ix-chart/2012.0.0/templates/_workload.tpl → charts/ix-chart/2102.0.0/templates/_workload.tpl

@@ -39,7 +39,7 @@ Get Restart policy based on workload type
 */}}
 {{- define "restartPolicy" -}}
 {{- if eq (include "workloadIsDeployment" .) "true" }}
-{{- printf "%s" .Values.restartPolicy }}
+{{- print "Always" }}
 {{- else }}
 {{- printf "%s" .Values.jobRestartPolicy }}
 {{- end }}

+ 0 - 0
charts/ix-chart/2012.0.0/templates/external-interfaces.yaml → charts/ix-chart/2102.0.0/templates/external-interfaces.yaml


+ 0 - 0
charts/ix-chart/2012.0.0/templates/service.yaml → charts/ix-chart/2102.0.0/templates/service.yaml


+ 0 - 0
charts/ix-chart/2012.0.0/templates/tests/deployment-check.yaml → charts/ix-chart/2102.0.0/templates/tests/deployment-check.yaml


+ 0 - 0
charts/ix-chart/2012.0.0/templates/workload.yaml → charts/ix-chart/2102.0.0/templates/workload.yaml


+ 0 - 1
charts/ix-chart/2012.0.0/test_values.yaml → charts/ix-chart/2102.0.0/test_values.yaml

@@ -7,7 +7,6 @@ image:
   tag: latest
 
 # Restart / Update policy
-restartPolicy: Always
 updateStrategy: RollingUpdate
 
 # Container CMD / entrypoint

+ 0 - 0
charts/ix-chart/2102.0.0/values.yaml


+ 0 - 84
charts/minio/1.0.0/templates/_helpers.tpl

@@ -1,84 +0,0 @@
-{{/* vim: set filetype=mustache: */}}
-{{/*
-Expand the name of the chart.
-*/}}
-{{- define "minio.name" -}}
-{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-
-{{/*
-Create a default fully qualified app name.
-We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
-If release name contains chart name it will be used as a full name.
-*/}}
-{{- define "minio.fullname" -}}
-{{- if .Values.fullnameOverride -}}
-{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
-{{- else -}}
-{{- $name := default .Chart.Name .Values.nameOverride -}}
-{{- if contains $name .Release.Name -}}
-{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
-{{- else -}}
-{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Create chart name and version as used by the chart label.
-*/}}
-{{- define "minio.chart" -}}
-{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-
-{{/*
-Return the appropriate apiVersion for deployment.
-*/}}
-{{- define "minio.deployment.apiVersion" -}}
-{{- if semverCompare "<1.9-0" .Capabilities.KubeVersion.Version -}}
-{{- print "apps/v1beta2" -}}
-{{- else -}}
-{{- print "apps/v1" -}}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Return the appropriate apiVersion for statefulset.
-*/}}
-{{- define "minio.statefulset.apiVersion" -}}
-{{- if semverCompare "<1.17-0" .Capabilities.KubeVersion.Version -}}
-{{- print "apps/v1beta2" -}}
-{{- else -}}
-{{- print "apps/v1" -}}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Determine secret name.
-*/}}
-{{- define "minio.secretName" -}}
-{{- include "minio.fullname" . -}}
-{{- end -}}
-
-{{/*
-Determine service account name for deployment or statefulset.
-*/}}
-{{- define "minio.serviceAccountName" -}}
-{{- (include "minio.fullname" .) | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-
-{{/*
-Determine name for scc role and rolebinding
-*/}}
-{{- define "minio.sccRoleName" -}}
-{{- printf "%s-%s" "scc" (include "minio.fullname" .) | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-
-{{/*
-Properly format optional additional arguments to Minio binary
-*/}}
-{{- define "minio.extraArgs" -}}
-{{- range .Values.extraArgs -}}
-{{ " " }}{{ . }}
-{{- end -}}
-{{- end -}}

+ 0 - 23
charts/minio/1.0.0/templates/_storage.tpl

@@ -1,23 +0,0 @@
-{{/*
-Retrieve host path from ix volumes based on dataset name
-*/}}
-{{- define "retrieveHostPathFromiXVolume" -}}
-{{- range $index, $hostPathConfiguration := $.ixVolumes }}
-{{- $dsName := base $hostPathConfiguration.hostPath -}}
-{{- if eq $.datasetName $dsName -}}
-{{- $hostPathConfiguration.hostPath -}}
-{{- end -}}
-{{- end }}
-{{- end -}}
-
-{{/*
-Retrieve host path for minio
-*/}}
-{{- define "configuredMinioHostPath" -}}
-{{- if .Values.minioHostPathEnabled -}}
-{{- .Values.minioHostPath -}}
-{{- else -}}
-{{- $volDict := dict "datasetName" $.Values.minioDataVolume.datasetName "ixVolumes" $.Values.ixVolumes -}}
-{{- include "retrieveHostPathFromiXVolume" $volDict -}}
-{{- end -}}
-{{- end -}}

+ 0 - 67
charts/minio/1.0.0/templates/deployment.yaml

@@ -1,67 +0,0 @@
-{{ $scheme := "http" }}
-apiVersion: {{ template "minio.deployment.apiVersion" . }}
-kind: Deployment
-metadata:
-  name: {{ template "minio.fullname" . }}
-  labels:
-    app: {{ template "minio.name" . }}
-    chart: {{ template "minio.chart" . }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-spec:
-  strategy:
-    type: {{ .Values.updateStrategy }}
-  selector:
-    matchLabels:
-      app: {{ template "minio.name" . }}
-      release: {{ .Release.Name }}
-  template:
-    metadata:
-      name: {{ template "minio.fullname" . }}
-      labels:
-        app: {{ template "minio.name" . }}
-        release: {{ .Release.Name }}
-      annotations:
-        checksum/secrets: {{ include (print $.Template.BasePath "/secrets.yaml") . | sha256sum }}
-    spec:
-      serviceAccountName: {{ include "minio.serviceAccountName" . | quote }}
-      containers:
-        - name: {{ .Chart.Name }}
-          image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
-          imagePullPolicy: {{ .Values.image.pullPolicy }}
-          command:
-            - "/bin/sh"
-            - "-ce"
-            - "/usr/bin/docker-entrypoint.sh minio server /export {{- template "minio.extraArgs" . }}"
-          volumeMounts:
-            - name: export
-              mountPath: /export
-          ports:
-            - name: {{ $scheme }}
-              containerPort: 9000
-          env:
-            - name: MINIO_ACCESS_KEY
-              valueFrom:
-                secretKeyRef:
-                  name: {{ template "minio.secretName" . }}
-                  key: accesskey
-            - name: MINIO_SECRET_KEY
-              valueFrom:
-                secretKeyRef:
-                  name: {{ template "minio.secretName" . }}
-                  key: secretkey
-            {{- range $key, $val := .Values.environment }}
-            - name: {{ $key }}
-              value: {{ $val | quote }}
-            {{- end}}
-      volumes:
-        - name: export
-        {{- if .Values.emptyDirVolumes }}
-          emptyDir: {}
-        {{- else }}
-          hostPath:
-            path: {{ template "configuredMinioHostPath" . }}
-        {{- end }}
-        - name: minio-user
-          secret:
-            secretName: {{ template "minio.secretName" . }}

+ 0 - 21
charts/minio/1.0.0/templates/service.yaml

@@ -1,21 +0,0 @@
-{{ $scheme := "http" }}
-apiVersion: v1
-kind: Service
-metadata:
-  name: {{ template "minio.fullname" . }}
-  labels:
-    app: {{ template "minio.name" . }}
-    chart: {{ template "minio.chart" . }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-spec:
-  type: "NodePort"
-  ports:
-    - name: {{ $scheme }}
-      port: {{ .Values.service.nodePort }}
-      protocol: TCP
-      nodePort: {{ .Values.service.nodePort }}
-      targetPort: 9000
-  selector:
-    app: {{ template "minio.name" . }}
-    release: {{ .Release.Name }}

+ 0 - 9
charts/minio/1.0.0/templates/serviceaccount.yaml

@@ -1,9 +0,0 @@
-apiVersion: v1
-kind: ServiceAccount
-metadata:
-  name: {{ include "minio.serviceAccountName" . | quote }}
-  namespace: {{ .Release.Namespace | quote }}
-  labels:
-    app: {{ template "minio.name" . }}
-    chart: {{ template "minio.chart" . }}
-    release: "{{ .Release.Name }}"

+ 23 - 0
charts/minio/1.1.0/.helmignore

@@ -0,0 +1,23 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+# OWNERS file for Kubernetes
+OWNERS

+ 5 - 1
charts/minio/1.0.0/Chart.yaml → charts/minio/1.1.0/Chart.yaml

@@ -1,7 +1,7 @@
 apiVersion: v1
 description: High Performance, Kubernetes Native Object Storage
 name: minio
-version: 1.0.0
+version: 1.1.0
 appVersion: master
 keywords:
 - storage
@@ -13,3 +13,7 @@ sources:
 - https://github.com/minio/minio
 - https://github.com/minio/charts
 upstream_version: 8.0.5
+dependencies:
+  - name: common
+    repository: file://../../../library/common/2101.0.0
+    version: 2101.0.0

+ 0 - 0
charts/minio/1.0.0/README.md → charts/minio/1.1.0/README.md


+ 0 - 0
charts/minio/1.0.0/app-readme.md → charts/minio/1.1.0/app-readme.md


TEMPAT SAMPAH
charts/minio/1.1.0/charts/common-2101.0.0.tgz


+ 5 - 0
charts/minio/1.0.0/values.yaml → charts/minio/1.1.0/default_values.yaml

@@ -15,3 +15,8 @@ service:
 
 environment:
   ## Please refer for comprehensive list https://docs.minio.io/docs/minio-server-configuration-guide.html
+
+appVolumeMounts:
+  export:
+    emptyDir: true
+    mountPath: "/export"

+ 25 - 0
charts/minio/1.1.0/migrations/migrate

@@ -0,0 +1,25 @@
+#!/usr/bin/python3
+import json
+import os
+import sys
+
+
+def migrate(values):
+    values.update({
+        'appVolumeMounts': {
+            'export': {
+                'hostPathEnabled': values['minioHostPathEnabled'],
+                **({'hostPath': values['minioHostPath']} if values.get('minioHostPath') else {})
+            },
+        },
+    })
+    return values
+
+
+if __name__ == '__main__':
+    if len(sys.argv) != 2:
+        exit(1)
+
+    if os.path.exists(sys.argv[1]):
+        with open(sys.argv[1], 'r') as f:
+            print(json.dumps(migrate(json.loads(f.read()))))

+ 55 - 34
charts/minio/1.0.0/questions.yaml → charts/minio/1.1.0/questions.yaml

@@ -81,6 +81,7 @@ questions:
   - variable: accessKey
     label: "Access Key"
     group: "Minio Configuration"
+    description: "Enter the S3 access ID"
     schema:
       type: string
       private: true
@@ -91,6 +92,7 @@ questions:
   - variable: secretKey
     label: "Secret Key"
     group: "Minio Configuration"
+    description: "Enter the S3 secret access key"
     schema:
       type: string
       private: true
@@ -98,13 +100,26 @@ questions:
       min_length: 8
       max_length: 40
 
-  - variable: environment
+  - variable: environmentVariables
     label: "Minio image environment"
     group: "Minio Configuration"
     schema:
-      type: dict
-      additional_attrs: true
-      attrs: []
+      type: list
+      default: []
+      items:
+        - variable: environmentVariable
+          label: "Environment Variable"
+          schema:
+            type: dict
+            attrs:
+              - variable: name
+                label: "Name"
+                schema:
+                  type: string
+              - variable: value
+                label: "Value"
+                schema:
+                  type: string
 
   - variable: service
     description: "Minio Service Configuration"
@@ -123,38 +138,44 @@ questions:
             default: 9000
             required: true
 
-  - variable: minioHostPathEnabled
-    label: "Configure Host Path for Minio data"
-    group: "Storage"
-    schema:
-      type: boolean
-      default: false
-      show_subquestions_if: true
-      subquestions:
-        - variable: minioHostPath
-          label: "Specify HostPath for Minio data"
-          schema:
-            type: hostpath
-
-  - variable: minioDataVolume
-    label: "Configure iXVolume"
+  - variable: appVolumeMounts
+    label: "Minio Storage"
     group: "Storage"
     schema:
       type: dict
-      $ref:
-        - "normalize/ixVolume"
-      show_if: [["minioHostPathEnabled", "=", false]]
       attrs:
-        - variable: mountPath
-          label: "Mount Path"
-          description: "Path where the volume will be mounted inside the pod"
+        - variable: export
+          label: "Data Volume"
           schema:
-            type: path
-            editable: false
-            default: "/export"
-        - variable: datasetName
-          label: "Dataset Name"
-          schema:
-            type: string
-            default: "ix-minio"
-            editable: false
+            type: dict
+            attrs:
+              - variable: datasetName
+                label: "Minio Data Volume Name"
+                schema:
+                  type: string
+                  hidden: true
+                  $ref:
+                    - "normalize/ixVolume"
+                  show_if: [["hostPathEnabled", "=", false]]
+                  default: "ix-minio"
+                  editable: false
+              - variable: mountPath
+                label: "Minio Data Mount Path"
+                description: "Path where the volume will be mounted inside the pod"
+                schema:
+                  type: path
+                  hidden: true
+                  editable: false
+                  default: "/export"
+              - variable: hostPathEnabled
+                label: "Enable Host Path for Minio Data Volume"
+                schema:
+                  type: boolean
+                  default: false
+                  show_subquestions_if: true
+                  subquestions:
+                    - variable: hostPath
+                      label: "Host Path for Minio Data Volume"
+                      schema:
+                        type: hostpath
+                        required: true

+ 6 - 0
charts/minio/1.1.0/requirements.lock

@@ -0,0 +1,6 @@
+dependencies:
+- name: common
+  repository: file://../../../library/common/2101.0.0
+  version: 2101.0.0
+digest: sha256:6ab46f958de11ae6a24d8f7e18417aa9852a8d968d5b0cc94ffa4700449931d6
+generated: "2021-02-04T01:15:55.416388+05:00"

+ 0 - 0
charts/minio/1.0.0/templates/NOTES.txt → charts/minio/1.1.0/templates/NOTES.txt


+ 6 - 0
charts/minio/1.1.0/templates/_helpers.tpl

@@ -0,0 +1,6 @@
+{{/*
+Determine secret name.
+*/}}
+{{- define "minio.secretName" -}}
+{{- include "common.names.fullname" . -}}
+{{- end -}}

+ 46 - 0
charts/minio/1.1.0/templates/deployment.yaml

@@ -0,0 +1,46 @@
+{{ $scheme := "http" }}
+apiVersion: {{ template "common.capabilities.deployment.apiVersion" . }}
+kind: Deployment
+metadata:
+  name: {{ template "common.names.fullname" . }}
+  labels:
+    app: {{ template "common.names.name" . }}
+    chart: {{ template "common.names.chart" . }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ (default 1 .Values.replicas) }}
+  strategy:
+    type: {{ (default "Recreate" .Values.updateStrategy ) }}
+  selector:
+    matchLabels:
+      app: {{ template "common.names.name" . }}
+      release: {{ .Release.Name }}
+  template:
+    metadata:
+      name: {{ template "common.names.fullname" . }}
+      labels:
+        app: {{ template "common.names.name" . }}
+        release: {{ .Release.Name }}
+        {{- include "common.labels.selectorLabels" . | nindent 8 }}
+      annotations: {{ include "common.annotations" . | nindent 8 }}
+    spec:
+      serviceAccountName: {{ include "common.names.serviceAccountName" . | quote }}
+      containers:
+        - name: {{ .Chart.Name }}
+          {{ include "common.containers.imageConfig" .Values.image | nindent 10 }}
+          {{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }}
+          command:
+            - "/bin/sh"
+            - "-ce"
+            - "/usr/bin/docker-entrypoint.sh minio server /export {{ (.Values.extraArgs | default list) | join " " }}"
+          ports:
+            - name: {{ $scheme }}
+              containerPort: 9000
+          env:
+            {{ $secretName := (include "minio.secretName" .) }}
+            {{ $envList := (default list .Values.environment) }}
+            {{ $envList = mustAppend $envList (dict "name" "MINIO_ACCESS_KEY" "valueFromSecret" true "secretName" $secretName "secretKey" "accesskey") }}
+            {{ $envList = mustAppend $envList (dict "name" "MINIO_SECRET_KEY" "valueFromSecret" true "secretName" $secretName "secretKey" "secretkey") }}
+            {{ include "common.containers.environmentVariables" (dict "environmentVariables" $envList) | nindent 12 }}
+{{ include "common.storage.allAppVolumes" .Values | nindent 6 }}

+ 1 - 5
charts/minio/1.0.0/templates/secrets.yaml → charts/minio/1.1.0/templates/secrets.yaml

@@ -2,11 +2,7 @@ apiVersion: v1
 kind: Secret
 metadata:
   name: {{ template "minio.secretName" . }}
-  labels:
-    app: {{ template "minio.name" . }}
-    chart: {{ template "minio.chart" . }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
+  labels: {{ include "common.labels" . | nindent 4 }}
 type: Opaque
 data:
   accesskey: {{ if .Values.accessKey }}{{ .Values.accessKey | toString | b64enc | quote }}{{ else }}{{ randAlphaNum 20 | b64enc | quote }}{{ end }}

+ 10 - 0
charts/minio/1.1.0/templates/service.yaml

@@ -0,0 +1,10 @@
+{{ $svc := .Values.service }}
+{{ $selectors := list }}
+{{ $selectors = mustAppend $selectors (dict "key" "app" "value" (include "common.names.name" .) ) }}
+{{ $selectors = mustAppend $selectors (dict "key" "release" "value" .Release.Name ) }}
+{{ $ports := list }}
+{{ $ports = mustAppend $ports (dict "name" "http" "port" $svc.nodePort "nodePort" $svc.nodePort "targetPort" 9000) }}
+{{ $params := . }}
+{{ $_ := set $params "commonService" (dict "type" "NodePort" "ports" $ports ) }}
+{{ $_1 := set .Values "extraSelectorLabels" $selectors }}
+{{ include "common.classes.service" $params }}

+ 1 - 0
charts/minio/1.1.0/templates/serviceaccount.yaml

@@ -0,0 +1 @@
+{{ include "common.serviceaccount" . }}

+ 6 - 2
charts/minio/1.0.0/test_values.yaml → charts/minio/1.1.0/test_values.yaml

@@ -11,9 +11,13 @@ extraArgs: []
 updateStrategy: RollingUpdate
 
 service:
-  nodePort: 32000
+  nodePort: 32001
 
-environment:
+environmentVariables: []
   ## Please refer for comprehensive list https://docs.minio.io/docs/minio-server-configuration-guide.html
 
 emptyDirVolumes: true
+appVolumeMounts:
+  export:
+    emptyDir: true
+    mountPath: "/export"

+ 0 - 0
charts/minio/1.1.0/values.yaml


+ 0 - 198
charts/nextcloud/1.1.0/questions.yaml

@@ -1,198 +0,0 @@
-groups:
-  - name: "Container Images"
-    description: "Image to be used for container"
-  - name: "Nextcloud Configuration"
-    description: "Configuration details for Nextcloud workload"
-  - name: "Storage"
-    description: "Configure Storage for Nextcloud"
-  - name: "Container Configuration"
-    description: "Configure nextcloud container parameters"
-  - name: "Postgresql Configuration"
-    description: "Configure Postgresql for nextcloud"
-
-portals:
-  web_portal:
-    protocols:
-      - "http"
-    host:
-      - "$variable-nextcloud.host"
-    ports:
-      - "$variable-service.nodePort"
-
-questions:
-  # Image related
-  - variable: image
-    description: "Docker Image Details"
-    label: "Docker Image"
-    group: "Container Images"
-    schema:
-      type: dict
-      required: true
-      attrs:
-        - variable: repository
-          description: "Docker image repository"
-          label: "Image repository"
-          schema:
-            type: string
-            default: "nextcloud"
-            required: true
-        - variable: tag
-          description: "Tag to use for specified image"
-          label: "Image Tag"
-          schema:
-            type: string
-            default: "latest"
-        - variable: pullPolicy
-          description: "Docker Image Pull Policy"
-          label: "Image Pull Policy"
-          schema:
-            type: string
-            default: "IfNotPresent"
-            enum:
-              - value: "IfNotPresent"
-                description: "Only pull image if not present on host"
-              - value: "Always"
-                description: "Always pull image even if present on host"
-              - value: "Never"
-                description: "Never pull image even if it's not present on host"
-
-  - variable: nextcloud
-    description: "Nextcloud configuration details"
-    label: "Nextcloud Configuration"
-    group: "Nextcloud Configuration"
-    schema:
-      type: dict
-      required: true
-      additional_attrs: true
-      attrs:
-        - variable: host
-          description: "Nextcloud host to create application URLs"
-          label: "Nextcloud host"
-          schema:
-            type: string
-            $ref:
-              - "definitions/nodeIP"
-        - variable: username
-          label: "Username"
-          schema:
-            type: string
-            default: "admin"
-            required: true
-        - variable: password
-          label: "Password"
-          schema:
-            type: string
-            private: true
-            default: "changeme"
-            required: true
-        - variable: datadir
-          label: "Nextcloud data directory"
-          schema:
-            type: path
-            default: "/var/www/html/data"
-            required: true
-        - variable: strategy
-          label: "Nextcloud update strategy"
-          schema:
-            type: string
-            default: "Recreate"
-            enum:
-              - value: "RollingUpdate"
-                description: "Create new pods and then kill old ones"
-              - value: "Recreate"
-                description: "Kill existing pods before creating new ones"
-
-  - variable: service
-    description: "Nextcloud Service Configuration"
-    label: "Nextcloud Service Configuration"
-    group: "Nextcloud Configuration"
-    schema:
-      type: dict
-      required: true
-      attrs:
-        - variable: nodePort
-          label: "Node Port to use for Nextcloud"
-          schema:
-            type: int
-            min: 9000
-            max: 65535
-            default: 9001
-            required: true
-
-  - variable: nextcloudDataHostPathEnabled
-    label: "Configure Host Path for Nextcloud data"
-    group: "Storage"
-    schema:
-      type: boolean
-      default: false
-      show_subquestions_if: true
-      subquestions:
-        - variable: nextcloudHostPath
-          label: "Specify HostPath for Nextcloud data"
-          schema:
-            type: hostpath
-
-  - variable: nextcloudDataVolume
-    label: "Configure iXVolume"
-    group: "Storage"
-    schema:
-      type: dict
-      $ref:
-        - "normalize/ixVolume"
-      show_if: [["nextcloudDataHostPathEnabled", "=", false]]
-      attrs:
-        - variable: mountPath
-          label: "Mount Path"
-          description: "Path where the volume will be mounted inside the pod"
-          schema:
-            type: path
-            editable: false
-            default: "/var/www"
-        - variable: datasetName
-          label: "Dataset Name"
-          schema:
-            type: string
-            default: "ix-nextcloud_data"
-            editable: false
-
-  - variable: postgresBackupVolume
-    label: "Postgres Backup Volume"
-    group: "Storage"
-    schema:
-      type: dict
-      $ref:
-        - "normalize/ixVolume"
-      attrs:
-        - variable: mountPath
-          label: "Mount Path"
-          schema:
-            type: path
-            editable: false
-            default: "/postgres_backups"
-        - variable: datasetName
-          label: "Dataset Name"
-          schema:
-            type: string
-            default: "ix-postgres_backups"
-            editable: false
-
-  - variable: postgresDataVolume
-    label: "Postgresql Data Volume"
-    group: "Storage"
-    schema:
-      type: dict
-      $ref:
-        - "normalize/ixVolume"
-      attrs:
-        - variable: mountPath
-          label: "Mount Path"
-          schema:
-            type: path
-            editable: false
-            default: "/var/lib/postgresql/data"
-        - variable: datasetName
-          label: "Dataset Name"
-          schema:
-            type: string
-            default: "ix-postgres_data"
-            editable: false

+ 0 - 114
charts/nextcloud/1.1.0/templates/_helpers.tpl

@@ -1,114 +0,0 @@
-{{/* vim: set filetype=mustache: */}}
-{{/*
-Expand the name of the chart.
-*/}}
-{{- define "nextcloud.name" -}}
-{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-
-{{/*
-Create a default fully qualified app name.
-We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
-If release name contains chart name it will be used as a full name.
-*/}}
-{{- define "nextcloud.fullname" -}}
-{{- if .Values.fullnameOverride -}}
-{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
-{{- else -}}
-{{- $name := default .Chart.Name .Values.nameOverride -}}
-{{- if contains $name .Release.Name -}}
-{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
-{{- else -}}
-{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Create a default fully qualified app name.
-We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
-*/}}
-{{- define "nextcloud.mariadb.fullname" -}}
-{{- printf "%s-%s" .Release.Name "mariadb" | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-
-
-{{/*
-Create a default fully qualified redis app name.
-We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
-*/}}
-{{- define "nextcloud.redis.fullname" -}}
-{{- printf "%s-%s" .Release.Name "redis" | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-
-{{/*
-Create chart name and version as used by the chart label.
-*/}}
-{{- define "nextcloud.chart" -}}
-{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-
-{{/*
-Retrieve host path from ix volumes based on dataset name
-*/}}
-{{- define "retrieveHostPathFromiXVolume" -}}
-{{- range $index, $hostPathConfiguration := $.ixVolumes }}
-{{- $dsName := base $hostPathConfiguration.hostPath -}}
-{{- if eq $.datasetName $dsName -}}
-{{- $hostPathConfiguration.hostPath -}}
-{{- end -}}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Retrieve host path defined in volume
-*/}}
-{{- define "configuredHostPath" -}}
-{{- if .Values.emptyDirVolumes -}}
-{{- printf "" -}}
-{{- else if .Values.nextcloudDataHostPathEnabled -}}
-{{- required "Please specify a host path for nextcloud" .Values.nextcloudHostPath -}}
-{{- else -}}
-{{- $volDict := dict "datasetName" $.Values.nextcloudDataVolume.datasetName "ixVolumes" $.Values.ixVolumes -}}
-{{- include "retrieveHostPathFromiXVolume" $volDict -}}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Retrieve backup postgresql host path defined in volume
-*/}}
-{{- define "configuredBackupPostgresHostPath" -}}
-{{- if .Values.emptyDirVolumes -}}
-{{- printf "" -}}
-{{- else -}}
-{{- $volDict := dict "datasetName" $.Values.postgresBackupVolume.datasetName "ixVolumes" $.Values.ixVolumes -}}
-{{- include "retrieveHostPathFromiXVolume" $volDict -}}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Retrieve postgresql data host path defined in volume
-*/}}
-{{- define "configuredPostgresHostPath" -}}
-{{- if .Values.emptyDirVolumes -}}
-{{- printf "" -}}
-{{- else -}}
-{{- $volDict := dict "datasetName" $.Values.postgresDataVolume.datasetName "ixVolumes" $.Values.ixVolumes -}}
-{{- include "retrieveHostPathFromiXVolume" $volDict -}}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Selector labels
-*/}}
-{{- define "nextcloud.selectorLabels" -}}
-app.kubernetes.io/name: {{ include "nextcloud.name" . }}
-app.kubernetes.io/instance: {{ .Release.Name }}
-{{- end }}
-
-{{/*
-Nextcloud service account
-*/}}
-{{- define "nextcloud.serviceAccountName" -}}
-{{- printf "%s-service-account" .Release.Name -}}
-{{- end -}}

+ 0 - 28
charts/nextcloud/1.1.0/templates/_postgres.tpl

@@ -1,28 +0,0 @@
-{{/*
-Get Nextloud Postgres Database Name
-*/}}
-{{- define "postgres.DatabaseName" -}}
-{{- print "nextcloud" -}}
-{{- end -}}
-
-{{/*
-Postgres Selector labels
-*/}}
-{{- define "nextcloud.postgres.selectorLabels" -}}
-app.kubernetes.io/name: {{ include "nextcloud.name" . }}-postgres
-app.kubernetes.io/instance: {{ .Release.Name }}-postgres
-{{- end }}
-
-{{- define "postgres.imageName" -}}
-{{- print "postgres:13.1" -}}
-{{- end -}}
-
-{{/*
-Retrieve postgres backup name
-This will return a unique name based on revision and chart numbers specified.
-*/}}
-{{- define "postgres.backupName" -}}
-{{- $upgradeDict := .Values.ixChartContext.upgradeMetadata -}}
-{{- printf "postgres-backup-from-%s-to-%s-revision-%d" $upgradeDict.oldChartVersion $upgradeDict.newChartVersion (int64 $upgradeDict.preUpgradeRevision) -}}
-{{- end }}
-

+ 0 - 21
charts/nextcloud/1.1.0/templates/_upgrade.tpl

@@ -1,21 +0,0 @@
-{{/*
-Retrieve previous chart version from which we are upgrading to a newer chart version
-*/}}
-{{- define "tn.chart.old_version" -}}
-{{- if .Values.ixChartContext.is_upgrade -}}
-{{- .Values.ixChartContext.upgradeMetadata.oldChartVersion -}}
-{{- else -}}
-{{- fail "A chart upgrade is not taking place" -}}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Retrieve new chart version to which we are upgrading from an old chart version
-*/}}
-{{- define "tn.chart.new_version" -}}
-{{- if .Values.ixChartContext.is_upgrade -}}
-{{- .Values.ixChartContext.upgradeMetadata.newChartVersion -}}
-{{- else -}}
-{{- fail "A chart upgrade is not taking place" -}}
-{{- end -}}
-{{- end -}}

+ 0 - 57
charts/nextcloud/1.1.0/templates/backup-postgres-hook.yaml

@@ -1,57 +0,0 @@
-{{- if .Values.ixChartContext.isUpgrade -}}
-apiVersion: batch/v1
-kind: Job
-metadata:
-  name: "pre-upgrade-hook2"
-  annotations:
-    "helm.sh/hook": pre-upgrade
-    "helm.sh/hook-weight": "1"
-    "helm.sh/hook-delete-policy": hook-succeeded
-    rollme: {{ randAlphaNum 5 | quote }}
-spec:
-  template:
-    metadata:
-      name: "pre-upgrade-hook2"
-    spec:
-      restartPolicy: Never
-      serviceAccountName: "{{ template "nextcloud.serviceAccountName" . }}"
-      containers:
-      - name: {{ .Chart.Name }}-postgres-backup
-        image: {{ template "postgres.imageName" . }}
-        imagePullPolicy: {{ .Values.image.pullPolicy }}
-        env:
-        - name: POSTGRES_USER
-          valueFrom:
-            secretKeyRef:
-              name: db-details
-              key: db-user
-        - name: POSTGRES_PASSWORD
-          valueFrom:
-            secretKeyRef:
-              name: db-details
-              key: db-password
-        - name: BACKUP_NAME
-          value: {{ template "postgres.backupName" . }}
-        volumeMounts:
-          - name: postgres-data
-            mountPath: /var/lib/postgresql/data
-          - name: postgres-backup
-            mountPath: /postgres_backups
-          - name: backup-script-configmap
-            mountPath: /bin/backup_entrypoint.sh
-            readOnly: true
-            subPath: entrypoint.sh
-        command:
-          - "/bin/backup_entrypoint.sh"
-      volumes:
-      - name: postgres-data
-        hostPath:
-          path: {{ template "configuredPostgresHostPath" . }}
-      - name: postgres-backup
-        hostPath:
-          path: {{ template "configuredBackupPostgresHostPath" . }}
-      - name: backup-script-configmap
-        configMap:
-          defaultMode: 0700
-          name: "postgres-backup-hook-config-map"
-{{- end -}}

+ 0 - 113
charts/nextcloud/1.1.0/templates/deployment.yaml

@@ -1,113 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  name: {{ template "nextcloud.fullname" . }}
-  labels:
-    app.kubernetes.io/name: {{ include "nextcloud.name" . }}
-    helm.sh/chart: {{ include "nextcloud.chart" . }}
-    app.kubernetes.io/instance: {{ .Release.Name }}
-    app.kubernetes.io/managed-by: {{ .Release.Service }}
-    app.kubernetes.io/component: app
-  {{- if .Values.deploymentAnnotations }}
-  annotations:
-{{ toYaml .Values.deploymentAnnotations | indent 4 }}
-  {{- end }}
-spec:
-  replicas: 1
-  strategy:
-    type: {{ .Values.nextcloud.strategy }}
-  selector:
-    matchLabels:
-      app.kubernetes.io/name: {{ include "nextcloud.name" . }}
-      app.kubernetes.io/instance: {{ .Release.Name }}
-      app.kubernetes.io/component: app
-  template:
-    metadata:
-      labels:
-        app.kubernetes.io/name: {{ include "nextcloud.name" . }}
-        app.kubernetes.io/instance: {{ .Release.Name }}
-        app.kubernetes.io/component: app
-      annotations:
-        rollme: {{ randAlphaNum 5 | quote }}
-    spec:
-      {{- if .Values.image.pullSecrets }}
-      imagePullSecrets:
-      {{- range .Values.image.pullSecrets }}
-        - name: {{ . }}
-      {{- end}}
-      {{- end }}
-      initContainers:
-        - name: init-postgresdb
-          image: {{ template "postgres.imageName" . }}
-          command: ['sh', '-c', "until pg_isready -h {{ template "nextcloud.fullname" . }}-postgres; do echo waiting for postgres; sleep 2; done"]
-          imagePullPolicy: {{ .Values.image.pullPolicy }}
-      containers:
-      - name: {{ .Chart.Name }}
-        image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
-        imagePullPolicy: {{ .Values.image.pullPolicy }}
-        env:
-        - name: POSTGRES_HOST
-          value: {{ template "nextcloud.fullname" . }}-postgres:5432
-        - name: POSTGRES_DB
-          value: {{ template "postgres.DatabaseName" . }}
-        - name: POSTGRES_USER
-          valueFrom:
-            secretKeyRef:
-              name: db-details
-              key: db-user
-        - name: POSTGRES_PASSWORD
-          valueFrom:
-            secretKeyRef:
-              name: db-details
-              key: db-password
-        - name: NEXTCLOUD_ADMIN_USER
-          valueFrom:
-            secretKeyRef:
-              name: {{ template "nextcloud.fullname" . }}
-              key: nextcloud-username
-        - name: NEXTCLOUD_ADMIN_PASSWORD
-          valueFrom:
-            secretKeyRef:
-              name: {{ template "nextcloud.fullname" . }}
-              key: nextcloud-password
-        - name: NEXTCLOUD_TRUSTED_DOMAINS
-          value: {{ .Values.nextcloud.host }}
-        - name: NEXTCLOUD_DATA_DIR
-          value: {{ .Values.nextcloud.datadir | quote }}
-        ports:
-        - name: http
-          containerPort: 80
-          protocol: TCP
-        volumeMounts:
-        - name: nextcloud-data
-          mountPath: /var/www/
-          subPath: "root"
-        - name: nextcloud-data
-          mountPath: /var/www/html
-          subPath: "html"
-        - name: nextcloud-data
-          mountPath: {{ .Values.nextcloud.datadir }}
-          subPath: "data"
-        - name: nextcloud-data
-          mountPath: /var/www/html/config
-          subPath: "config"
-        - name: nextcloud-data
-          mountPath: /var/www/html/custom_apps
-          subPath: "custom_apps"
-        - name: nextcloud-data
-          mountPath: /var/www/tmp
-          subPath: "tmp"
-        - name: nextcloud-data
-          mountPath: /var/www/html/themes
-          subPath: "themes"
-      volumes:
-      - name: nextcloud-data
-      {{- if ne (include "configuredHostPath" .) "" }}
-        hostPath:
-          path: {{ template "configuredHostPath" . }}
-      {{- else }}
-        emptyDir: {}
-      {{- end }}
-      # Will mount configuration files as www-data (id: 33) for nextcloud
-      securityContext:
-        fsGroup: 33

+ 0 - 64
charts/nextcloud/1.1.0/templates/postgres-deployment.yaml

@@ -1,64 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  name: {{ template "nextcloud.fullname" . }}-postgres
-  labels:
-    helm.sh/chart: {{ include "nextcloud.chart" . }}
-    {{- include "nextcloud.postgres.selectorLabels" . | nindent 4 }}
-    app.kubernetes.io/managed-by: {{ .Release.Service }}
-    app.kubernetes.io/component: database
-spec:
-  replicas: 1
-  strategy:
-    type: {{ .Values.nextcloud.strategy }}
-  selector:
-    matchLabels:
-      {{- include "nextcloud.postgres.selectorLabels" . | nindent 6 }}
-      app.kubernetes.io/component: database
-  template:
-    metadata:
-      labels:
-        {{- include "nextcloud.postgres.selectorLabels" . | nindent 8 }}
-        app.kubernetes.io/component: database
-      annotations:
-        rollme: {{ randAlphaNum 5 | quote }}
-    spec:
-      containers:
-      - name: {{ .Chart.Name }}-postgres
-        image: {{ template "postgres.imageName" . }}
-        imagePullPolicy: {{ .Values.image.pullPolicy }}
-        env:
-        - name: POSTGRES_USER
-          valueFrom:
-            secretKeyRef:
-              name: db-details
-              key: db-user
-        - name: POSTGRES_PASSWORD
-          valueFrom:
-            secretKeyRef:
-              name: db-details
-              key: db-password
-        volumeMounts:
-          - name: postgres-data
-            mountPath: /var/lib/postgresql/data
-          - name: postgres-backup
-            mountPath: /postgres_backups
-        ports:
-        - name: postgres-tcp
-          containerPort: 5432
-          protocol: TCP
-      volumes:
-      - name: postgres-data
-        {{- if ne (include "configuredPostgresHostPath" .) "" }}
-        hostPath:
-          path: {{ template "configuredPostgresHostPath" . }}
-        {{- else }}
-        emptyDir: {}
-        {{- end }}
-      - name: postgres-backup
-        {{- if ne (include "configuredBackupPostgresHostPath" .) "" }}
-        hostPath:
-          path: {{ template "configuredBackupPostgresHostPath" . }}
-        {{- else }}
-        emptyDir: {}
-        {{- end }}

+ 0 - 18
charts/nextcloud/1.1.0/templates/postgres-service.yaml

@@ -1,18 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
-  name: {{ template "nextcloud.fullname" . }}-postgres
-  labels:
-    app.kubernetes.io/name: {{ include "nextcloud.name" . }}-postgres
-    helm.sh/chart: {{ include "nextcloud.chart" . }}
-    app.kubernetes.io/instance: {{ .Release.Name }}
-    app.kubernetes.io/managed-by: {{ .Release.Service }}
-    app.kubernetes.io/component: app
-spec:
-  type: ClusterIP
-  ports:
-  - port: 5432
-    protocol: TCP
-    name: postgres-tcp
-  selector:
-    {{- include "nextcloud.postgres.selectorLabels" . | nindent 4 }}

+ 0 - 20
charts/nextcloud/1.1.0/templates/service.yaml

@@ -1,20 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
-  name: {{ template "nextcloud.fullname" . }}
-  labels:
-    app.kubernetes.io/name: {{ include "nextcloud.name" . }}
-    helm.sh/chart: {{ include "nextcloud.chart" . }}
-    app.kubernetes.io/instance: {{ .Release.Name }}
-    app.kubernetes.io/managed-by: {{ .Release.Service }}
-    app.kubernetes.io/component: app
-spec:
-  type: NodePort
-  ports:
-  - port: 80
-    targetPort: http
-    protocol: TCP
-    name: http
-    nodePort: {{ default "" .Values.service.nodePort}}
-  selector:
-    {{- include "nextcloud.selectorLabels" . | nindent 4 }}

+ 0 - 17
charts/nextcloud/1.1.0/values.yaml

@@ -1,17 +0,0 @@
-## Official nextcloud image version
-## ref: https://hub.docker.com/r/library/nextcloud/tags/
-##
-image:
-  repository: nextcloud
-  tag: 19.0.3-apache
-  pullPolicy: IfNotPresent
-
-nextcloud:
-  host: nextcloud.kube.home
-  username: admin
-  password: changeme
-  datadir: /var/www/html/data
-  strategy: "Recreate"
-
-service:
-  nodePort: 9001

+ 0 - 0
charts/nextcloud/1.1.0/.helmignore → charts/nextcloud/1.2.0/.helmignore


+ 6 - 0
charts/nextcloud/1.2.0/Chart.lock

@@ -0,0 +1,6 @@
+dependencies:
+- name: common
+  repository: file://../../../library/common/2101.0.0
+  version: 2101.0.0
+digest: sha256:6ab46f958de11ae6a24d8f7e18417aa9852a8d968d5b0cc94ffa4700449931d6
+generated: "2021-02-04T01:15:55.262077+05:00"

+ 6 - 1
charts/nextcloud/1.1.0/Chart.yaml → charts/nextcloud/1.2.0/Chart.yaml

@@ -1,6 +1,6 @@
 apiVersion: v2
 name: nextcloud
-version: 1.1.0
+version: 1.2.0
 appVersion: 19.0.3
 description: A file sharing server that puts the control and security of your own data back into your hands.
 keywords:
@@ -15,3 +15,8 @@ sources:
 - https://github.com/nextcloud/docker
 - https://github.com/nextcloud/helm
 upstream_version: 2.3.2
+dependencies:
+  - name: common
+    repository: file://../../../library/common/2101.0.0
+    version: 2101.0.0
+

+ 0 - 0
charts/nextcloud/1.1.0/README.md → charts/nextcloud/1.2.0/README.md


+ 0 - 0
charts/nextcloud/1.1.0/app-readme.md → charts/nextcloud/1.2.0/app-readme.md


TEMPAT SAMPAH
charts/nextcloud/1.2.0/charts/common-2101.0.0.tgz


+ 13 - 11
charts/nextcloud/1.1.0/test_values.yaml → charts/nextcloud/1.2.0/default_values.yaml

@@ -13,16 +13,18 @@ nextcloud:
   datadir: /var/www/html/data
   strategy: "Recreate"
 
-postgresql:
-  backupVolume:
-    mountPath: "/postgres_backups"
-    datasetName: "ix-postgres_backups"
-  dataVolume:
-    mountPath: "/var/lib/postgresql/data"
-    datasetName: "ix-postgres_data"
-
 service:
-  nodePort: 31000
+  nodePort: 9001
 
-emptyDirVolumes: true
-ixChartContext: {}
+appVolumeMounts:
+  nextcloud-data:
+    emptyDir: true
+    mountPath: "/var/www"
+
+postgresAppVolumeMounts:
+  postgres-data:
+    emptyDir: true
+    mountPath: "/var/lib/postgresql/data"
+  postgres-backup:
+    emptyDir: true
+    mountPath: "/postgres_backups"

+ 26 - 0
charts/nextcloud/1.2.0/migrations/migrate

@@ -0,0 +1,26 @@
+#!/usr/bin/python3
+import json
+import os
+import sys
+
+
+def migrate(values):
+    values.update({
+        'appVolumeMounts': {
+            'nextcloud-data': {
+                'hostPathEnabled': values['nextcloudDataHostPathEnabled'],
+                **({'hostPath': values['nextcloudHostPath']} if values.get('nextcloudHostPath') else {})
+            },
+        },
+        'updateStrategy': values.get('nextcloud').get('strategy', 'Recreate'),
+    })
+    return values
+
+
+if __name__ == '__main__':
+    if len(sys.argv) != 2:
+        exit(1)
+
+    if os.path.exists(sys.argv[1]):
+        with open(sys.argv[1], 'r') as f:
+            print(json.dumps(migrate(json.loads(f.read()))))

+ 219 - 0
charts/nextcloud/1.2.0/questions.yaml

@@ -0,0 +1,219 @@
+groups:
+  - name: "Container Images"
+    description: "Image to be used for container"
+  - name: "Nextcloud Configuration"
+    description: "Configuration details for Nextcloud workload"
+  - name: "Storage"
+    description: "Configure Storage for Nextcloud"
+  - name: "Container Configuration"
+    description: "Configure nextcloud container parameters"
+  - name: "Postgresql Configuration"
+    description: "Configure Postgresql for nextcloud"
+  - name: "Scaling/Upgrade Policy"
+    description: "Configure how pods are replaced when configuration is upgraded"
+
+portals:
+  web_portal:
+    protocols:
+      - "http"
+    host:
+      - "$variable-nextcloud.host"
+    ports:
+      - "$variable-service.nodePort"
+
+questions:
+  # Image related
+  - variable: image
+    description: "Docker Image Details"
+    label: "Docker Image"
+    group: "Container Images"
+    schema:
+      type: dict
+      required: true
+      attrs:
+        - variable: repository
+          description: "Docker image repository"
+          label: "Image repository"
+          schema:
+            type: string
+            default: "nextcloud"
+            required: true
+        - variable: tag
+          description: "Tag to use for specified image"
+          label: "Image Tag"
+          schema:
+            type: string
+            default: "latest"
+        - variable: pullPolicy
+          description: "Docker Image Pull Policy"
+          label: "Image Pull Policy"
+          schema:
+            type: string
+            default: "IfNotPresent"
+            enum:
+              - value: "IfNotPresent"
+                description: "Only pull image if not present on host"
+              - value: "Always"
+                description: "Always pull image even if present on host"
+              - value: "Never"
+                description: "Never pull image even if it's not present on host"
+
+  - variable: nextcloud
+    description: "Nextcloud configuration details"
+    label: "Nextcloud Configuration"
+    group: "Nextcloud Configuration"
+    schema:
+      type: dict
+      required: true
+      additional_attrs: true
+      attrs:
+        - variable: host
+          description: "Nextcloud host to create application URLs"
+          label: "Nextcloud host"
+          schema:
+            type: string
+            $ref:
+              - "definitions/nodeIP"
+        - variable: username
+          label: "Username"
+          description: "Name of the Nextcloud admin user"
+          schema:
+            type: string
+            default: "admin"
+            required: true
+        - variable: password
+          label: "Password"
+          description: "Password for the Nextcloud admin user"
+          schema:
+            type: string
+            private: true
+            default: "changeme"
+            required: true
+        - variable: datadir
+          label: "Nextcloud data directory"
+          description: "Configures the data directory where nextcloud stores all files from the users"
+          schema:
+            type: path
+            default: "/var/www/html/data"
+            required: true
+
+  # Update strategy
+  - variable: updateStrategy
+    description: "Upgrade Policy"
+    label: "Update Strategy"
+    group: "Scaling/Upgrade Policy"
+    schema:
+      type: string
+      default: "Recreate"
+      enum:
+        - value: "RollingUpdate"
+          description: "Create new pods and then kill old ones"
+        - value: "Recreate"
+          description: "Kill existing pods before creating new ones"
+
+  - variable: service
+    description: "Nextcloud Service Configuration"
+    label: "Nextcloud Service Configuration"
+    group: "Nextcloud Configuration"
+    schema:
+      type: dict
+      required: true
+      attrs:
+        - variable: nodePort
+          label: "Node Port to use for Nextcloud"
+          schema:
+            type: int
+            min: 9000
+            max: 65535
+            default: 9001
+            required: true
+
+  - variable: appVolumeMounts
+    label: "Nextcloud Storage"
+    group: "Storage"
+    schema:
+      type: dict
+      attrs:
+        - variable: nextcloud-data
+          label: "Nextcloud Data Volume"
+          schema:
+            type: dict
+            attrs:
+              - variable: datasetName
+                label: "Nextcloud Data Volume Name"
+                schema:
+                  type: string
+                  hidden: true
+                  $ref:
+                    - "normalize/ixVolume"
+                  show_if: [["hostPathEnabled", "=", false]]
+                  default: "ix-nextcloud_data"
+                  editable: false
+              - variable: mountPath
+                label: "Nextcloud Data Mount Path"
+                description: "Path where the volume will be mounted inside the pod"
+                schema:
+                  type: path
+                  hidden: true
+                  editable: false
+                  default: "/var/www"
+              - variable: hostPathEnabled
+                label: "Enable Host Path for Nextcloud Data Volume"
+                schema:
+                  type: boolean
+                  default: false
+                  show_subquestions_if: true
+                  subquestions:
+                    - variable: hostPath
+                      label: "Host Path for Nextcloud Data Volume"
+                      schema:
+                        type: hostpath
+                        required: true
+
+  - variable: postgresAppVolumeMounts
+    label: "Postgres Storage"
+    group: "Storage"
+    schema:
+      type: dict
+      hidden: true
+      attrs:
+        - variable: postgres-data
+          label: "Postgres Data Volume"
+          schema:
+            type: dict
+            attrs:
+              - variable: datasetName
+                label: "Postgres Data Volume Name"
+                schema:
+                  type: string
+                  $ref:
+                    - "normalize/ixVolume"
+                  default: "ix-postgres_data"
+                  editable: false
+              - variable: mountPath
+                label: "Postgresql Data Mount Path"
+                description: "Path where the volume will be mounted inside the pod"
+                schema:
+                  type: path
+                  editable: false
+                  default: "/var/lib/postgresql/data"
+        - variable: postgres-backup
+          label: "Postgres Backup Volume"
+          schema:
+            type: dict
+            attrs:
+              - variable: datasetName
+                label: "Postgres Backup Volume Name"
+                schema:
+                  type: string
+                  $ref:
+                    - "normalize/ixVolume"
+                  default: "ix-postgres_backups"
+                  editable: false
+              - variable: mountPath
+                label: "Postgresql Backup Mount Path"
+                description: "Path where the volume will be mounted inside the pod"
+                schema:
+                  type: path
+                  editable: false
+                  default: "/postgres_backups"

+ 0 - 0
charts/nextcloud/1.1.0/templates/NOTES.txt → charts/nextcloud/1.2.0/templates/NOTES.txt


+ 49 - 0
charts/nextcloud/1.2.0/templates/_postgres.tpl

@@ -0,0 +1,49 @@
+{{/*
+Get Nextloud Postgres Database Name
+*/}}
+{{- define "postgres.DatabaseName" -}}
+{{- print "nextcloud" -}}
+{{- end -}}
+
+
+{{- define "postgres.imageName" -}}
+{{- print "postgres:13.1" -}}
+{{- end -}}
+
+
+{{/*
+Retrieve postgres backup name
+This will return a unique name based on revision and chart numbers specified.
+*/}}
+{{- define "postgres.backupName" -}}
+{{- $upgradeDict := .Values.ixChartContext.upgradeMetadata -}}
+{{- printf "postgres-backup-from-%s-to-%s-revision-%d" $upgradeDict.oldChartVersion $upgradeDict.newChartVersion (int64 $upgradeDict.preUpgradeRevision) -}}
+{{- end }}
+
+
+{{/*
+Retrieve postgres credentials for environment variables configuration
+*/}}
+{{- define "postgres.envVariableConfiguration" -}}
+{{ $envList := list }}
+{{ $envList = mustAppend $envList (dict "name" "POSTGRES_USER" "valueFromSecret" true "secretName" "db-details" "secretKey" "db-user") }}
+{{ $envList = mustAppend $envList (dict "name" "POSTGRES_PASSWORD" "valueFromSecret" true "secretName" "db-details" "secretKey" "db-password") }}
+{{ include "common.containers.environmentVariables" (dict "environmentVariables" $envList) }}
+{{- end -}}
+
+
+{{/*
+Retrieve postgres volume configuration
+*/}}
+{{- define "postgres.volumeConfiguration" -}}
+{{ include "common.storage.configureAppVolumes" (dict "appVolumeMounts" .Values.postgresAppVolumeMounts "emptyDirVolumes" .Values.emptyDirVolumes "ixVolumes" .Values.ixVolumes) | nindent 0 }}
+{{- end -}}
+
+
+{{/*
+Retrieve postgres volume mounts configuration
+*/}}
+{{- define "postgres.volumeMountsConfiguration" -}}
+{{ include "common.storage.configureAppVolumeMountsInContainer" (dict "appVolumeMounts" .Values.postgresAppVolumeMounts ) | nindent 0 }}
+{{- end -}}
+

+ 0 - 0
charts/nextcloud/1.1.0/templates/backup-postgres-config.yaml → charts/nextcloud/1.2.0/templates/backup-postgres-config.yaml


+ 39 - 0
charts/nextcloud/1.2.0/templates/backup-postgres-hook.yaml

@@ -0,0 +1,39 @@
+{{- if .Values.ixChartContext.isUpgrade -}}
+{{ $values := (. | mustDeepCopy) }}
+{{ $_ := set $values "common" (dict "nameSuffix" "postgres") }}
+apiVersion: batch/v1
+kind: Job
+metadata:
+  name: "pre-upgrade-hook2"
+  annotations:
+    "helm.sh/hook": pre-upgrade
+    "helm.sh/hook-weight": "1"
+    "helm.sh/hook-delete-policy": hook-succeeded
+    rollme: {{ randAlphaNum 5 | quote }}
+spec:
+  template:
+    metadata:
+      name: "pre-upgrade-hook2"
+    spec:
+      restartPolicy: Never
+      serviceAccountName: "{{ template "common.names.serviceAccountName" . }}"
+      containers:
+      - name: {{ .Chart.Name }}-postgres-backup
+        image: {{ template "postgres.imageName" . }}
+        imagePullPolicy: {{ .Values.image.pullPolicy }}
+        env: {{ include "postgres.envVariableConfiguration" $values | nindent 10 }}
+          - name: BACKUP_NAME
+            value: {{ template "postgres.backupName" . }}
+        volumeMounts: {{ include "postgres.volumeMountsConfiguration" $values | nindent 10 }}
+          - name: backup-script-configmap
+            mountPath: /bin/backup_entrypoint.sh
+            readOnly: true
+            subPath: entrypoint.sh
+        command:
+          - "/bin/backup_entrypoint.sh"
+      volumes: {{ include "postgres.volumeConfiguration" $values | nindent 8 }}
+        - name: backup-script-configmap
+          configMap:
+            defaultMode: 0700
+            name: "postgres-backup-hook-config-map"
+{{- end -}}

+ 54 - 0
charts/nextcloud/1.2.0/templates/deployment.yaml

@@ -0,0 +1,54 @@
+{{ $postgres_values := (. | mustDeepCopy) }}
+{{ $_ := set $postgres_values "common" (dict "nameSuffix" "postgres") }}
+{{ include "common.deployment.common_config" . | nindent 0 }}
+spec: {{ include "common.deployment.common_spec" . | nindent 2 }}
+  template: {{ include "common.deployment.pod.metadata" . | nindent 4 }}
+    spec:
+      initContainers:
+        - name: init-postgresdb
+          image: {{ template "postgres.imageName" . }}
+          command: ['sh', '-c', "until pg_isready -h {{ template "common.names.fullname" $postgres_values }}; do echo waiting for postgres; sleep 2; done"]
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
+      containers:
+      - name: {{ .Chart.Name }}
+        {{ include "common.containers.imageConfig" .Values.image | nindent 8 }}
+        env: {{ include "postgres.envVariableConfiguration" $postgres_values | nindent 10 }}
+        {{ $envList := list }}
+        {{ $secretName := (include "common.names.fullname" .) }}
+        {{ $envList = mustAppend $envList (dict "name" "POSTGRES_HOST" "value" (printf "%s:5432" (include "common.names.fullname" $postgres_values))) }}
+        {{ $envList = mustAppend $envList (dict "name" "POSTGRES_DB" "value" (include "postgres.DatabaseName" .)) }}
+        {{ $envList = mustAppend $envList (dict "name" "NEXTCLOUD_DATA_DIR" "value" .Values.nextcloud.datadir) }}
+        {{ $envList = mustAppend $envList (dict "name" "NEXTCLOUD_TRUSTED_DOMAINS" "value" .Values.nextcloud.host) }}
+        {{ $envList = mustAppend $envList (dict "name" "NEXTCLOUD_ADMIN_USER" "valueFromSecret" true "secretName" $secretName "secretKey" "nextcloud-username") }}
+        {{ $envList = mustAppend $envList (dict "name" "NEXTCLOUD_ADMIN_PASSWORD" "valueFromSecret" true "secretName" $secretName "secretKey" "nextcloud-password") }}
+        {{ include "common.containers.environmentVariables" (dict "environmentVariables" $envList) | nindent 10 }}
+        ports:
+        - name: http
+          containerPort: 80
+          protocol: TCP
+        volumeMounts:
+        - name: nextcloud-data
+          mountPath: /var/www/
+          subPath: "root"
+        - name: nextcloud-data
+          mountPath: /var/www/html
+          subPath: "html"
+        - name: nextcloud-data
+          mountPath: {{ .Values.nextcloud.datadir }}
+          subPath: "data"
+        - name: nextcloud-data
+          mountPath: /var/www/html/config
+          subPath: "config"
+        - name: nextcloud-data
+          mountPath: /var/www/html/custom_apps
+          subPath: "custom_apps"
+        - name: nextcloud-data
+          mountPath: /var/www/tmp
+          subPath: "tmp"
+        - name: nextcloud-data
+          mountPath: /var/www/html/themes
+          subPath: "themes"
+{{ include "common.storage.allAppVolumes" .Values | nindent 6 }}
+      # Will mount configuration files as www-data (id: 33) for nextcloud
+      securityContext:
+        fsGroup: 33

+ 4 - 2
charts/nextcloud/1.1.0/templates/nuke-deployments-hook.yaml → charts/nextcloud/1.2.0/templates/nuke-deployments-hook.yaml

@@ -1,4 +1,6 @@
 {{- if .Values.ixChartContext.isUpgrade -}}
+{{ $values := (. | mustDeepCopy) }}
+{{ $_ := set $values "common" (dict "nameSuffix" "postgres") }}
 apiVersion: batch/v1
 kind: Job
 metadata:
@@ -14,9 +16,9 @@ spec:
       name: "pre-upgrade-hook1"
     spec:
       restartPolicy: Never
-      serviceAccountName: "{{ template "nextcloud.serviceAccountName" . }}"
+      serviceAccountName: "{{ template "common.names.serviceAccountName" . }}"
       containers:
       - name: kubectl
         image: "bitnami/kubectl:1.19"
-        command: ["kubectl", "delete" , "deployment", "{{ template "nextcloud.fullname" . }}", "{{ template "nextcloud.fullname" . }}-postgres"]
+        command: ["kubectl", "delete" , "deployment", "{{ template "common.names.fullname" . }}", "{{ template "common.names.fullname" $values }}"]
 {{- end -}}

+ 17 - 0
charts/nextcloud/1.2.0/templates/postgres-deployment.yaml

@@ -0,0 +1,17 @@
+{{ $values := (. | mustDeepCopy) }}
+{{ $_ := set $values "common" (dict "nameSuffix" "postgres") }}
+{{ include "common.deployment.common_config" $values | nindent 0 }}
+spec: {{ include "common.deployment.common_spec" $values | nindent 2 }}
+  template: {{ include "common.deployment.pod.metadata" $values | nindent 4 }}
+    spec:
+      containers:
+      - name: {{ .Chart.Name }}-postgres
+        image: {{ template "postgres.imageName" . }}
+        imagePullPolicy: {{ .Values.image.pullPolicy }}
+        env: {{ include "postgres.envVariableConfiguration" $values | nindent 10 }}
+        volumeMounts: {{ include "postgres.volumeMountsConfiguration" $values | nindent 10 }}
+        ports:
+        - name: postgres-tcp
+          containerPort: 5432
+          protocol: TCP
+      volumes: {{ include "postgres.volumeConfiguration" $values | nindent 8 }}

+ 0 - 0
charts/nextcloud/1.1.0/templates/postgres-secret.yaml → charts/nextcloud/1.2.0/templates/postgres-secret.yaml


+ 6 - 0
charts/nextcloud/1.2.0/templates/postgres-service.yaml

@@ -0,0 +1,6 @@
+{{ $ports := list }}
+{{ $ports = mustAppend $ports (dict "name" "postgres-tcp" "port" 5432 "targetPort" 5432) }}
+{{ $values := (. | mustDeepCopy) }}
+{{ $_ := set $values "common" (dict "nameSuffix" "postgres") }}
+{{ $_1 := set $values "commonService" (dict "type" "ClusterIP" "ports" $ports ) }}
+{{ include "common.classes.service" $values }}

+ 2 - 6
charts/nextcloud/1.1.0/templates/secrets.yaml → charts/nextcloud/1.2.0/templates/secrets.yaml

@@ -1,12 +1,8 @@
 apiVersion: v1
 kind: Secret
 metadata:
-  name: {{ template "nextcloud.fullname" . }}
-  labels:
-    app.kubernetes.io/name: {{ include "nextcloud.name" . }}
-    helm.sh/chart: {{ include "nextcloud.chart" . }}
-    app.kubernetes.io/instance: {{ .Release.Name }}
-    app.kubernetes.io/managed-by: {{ .Release.Service }}
+  name: {{ template "common.names.fullname" . }}
+  labels: {{ include "common.labels" . | nindent 4 }}
 type: Opaque
 data:
   nextcloud-username: {{ .Values.nextcloud.username | b64enc | quote }}

+ 6 - 0
charts/nextcloud/1.2.0/templates/service.yaml

@@ -0,0 +1,6 @@
+{{ $svc := .Values.service }}
+{{ $ports := list }}
+{{ $ports = mustAppend $ports (dict "name" "http" "port" 80 "nodePort" $svc.nodePort) }}
+{{ $params := . }}
+{{ $_ := set $params "commonService" (dict "type" "NodePort" "ports" $ports ) }}
+{{ include "common.classes.service" $params }}

+ 2 - 6
charts/nextcloud/1.1.0/templates/serviceaccount.yaml → charts/nextcloud/1.2.0/templates/serviceaccount.yaml

@@ -1,8 +1,4 @@
-apiVersion: v1
-kind: ServiceAccount
-metadata:
-  name: "{{ template "nextcloud.serviceAccountName" . }}"
-  namespace: {{ .Release.Namespace }}
+{{ include "common.serviceaccount" . | nindent 0 }}
 
 ---
 
@@ -12,7 +8,7 @@ metadata:
   name: "{{ .Release.Name }}-service-account-role-binding"
 subjects:
 - kind: ServiceAccount
-  name: "{{ template "nextcloud.serviceAccountName" . }}"
+  name: "{{ template "common.names.serviceAccountName" . }}"
   namespace: {{ .Release.Namespace }}
 roleRef:
   kind: Role

+ 43 - 0
charts/nextcloud/1.2.0/test_values.yaml

@@ -0,0 +1,43 @@
+## Official nextcloud image version
+## ref: https://hub.docker.com/r/library/nextcloud/tags/
+##
+image:
+  repository: nextcloud
+  tag: 19.0.3-apache
+  pullPolicy: IfNotPresent
+
+nextcloud:
+  host: nextcloud.kube.home
+  username: admin
+  password: changeme
+  datadir: /var/www/html/data
+
+updateStrategy: "Recreate"
+
+postgresql:
+  backupVolume:
+    mountPath: "/postgres_backups"
+    datasetName: "ix-postgres_backups"
+  dataVolume:
+    mountPath: "/var/lib/postgresql/data"
+    datasetName: "ix-postgres_data"
+
+service:
+  nodePort: 31000
+
+emptyDirVolumes: true
+ixChartContext: {}
+environmentVariables: []
+
+appVolumeMounts:
+  nextcloud-data:
+    emptyDir: true
+    mountPath: "/var/www"
+
+postgresAppVolumeMounts:
+  postgres-data:
+    emptyDir: true
+    mountPath: "/var/lib/postgresql/data"
+  postgres-backup:
+    emptyDir: true
+    mountPath: "/postgres_backups"

+ 0 - 0
charts/nextcloud/1.2.0/values.yaml


+ 0 - 274
charts/plex/1.0.0/questions.yaml

@@ -1,274 +0,0 @@
-groups:
-  - name: "Container Images"
-    description: "Image to be used for container"
-  - name: "Container Entrypoint"
-    description: "Configuration of the executable that will be run when the container is started"
-  - name: "Container Environment Variables"
-    description: "Set the environment that will be visible to the container"
-  - name: "Networking"
-    description: "Configure networking for container"
-  - name: "Storage"
-    description: "Persist and share data that is separate from the lifecycle of the container"
-  - name: "Plex Configuration"
-    description: "Configure plex deployment"
-  - name: "Workload Details"
-    description: "Configure how workload should be deployed"
-  - name: "Scaling/Upgrade Policy"
-    description: "Configure how pods are replaced when configuration is upgraded"
-  - name: "Restart Policy"
-    description: "Configure when pod should be restarted in case of failure"
-  - name: "Resource Reservation"
-    description: "Specify resources to be allocated to workload"
-
-portals:
-  web_portal:
-    protocols:
-      - "http"
-    host:
-      - "$node_ip"
-    ports:
-      - "$variable-plexServiceTCP.port"
-    path: "/web"
-
-questions:
-  # Image related
-  - variable: image
-    description: "Docker Image Details"
-    label: "Docker Image"
-    group: "Container Images"
-    schema:
-      type: dict
-      required: true
-      attrs:
-        - variable: repository
-          description: "Docker image repository"
-          label: "Image repository"
-          schema:
-            type: string
-            required: true
-            default: "plexinc/pms-docker"
-        - variable: tag
-          description: "Tag to use for specified image"
-          label: "Image Tag"
-          schema:
-            type: string
-            default: "1.20.2.3402-0fec14d92"
-        - variable: pullPolicy
-          description: "Docker Image Pull Policy"
-          label: "Image Pull Policy"
-          schema:
-            type: string
-            default: "IfNotPresent"
-            enum:
-              - value: "IfNotPresent"
-                description: "Only pull image if not present on host"
-              - value: "Always"
-                description: "Always pull image even if present on host"
-              - value: "Never"
-                description: "Never pull image even if it's not present on host"
-
-  - variable: claimToken
-    label: "Plex Claim Token"
-    group: "Plex Configuration"
-    schema:
-      type: string
-      default: ""
-
-  - variable: advertiseIp
-    label: "Plex Advertise IP"
-    group: "Plex Configuration"
-    schema:
-      type: string
-
-  - variable: extraEnv
-    label: "Environment variables for plex"
-    group: "Plex Configuration"
-    schema:
-      type: dict
-      additional_attrs: true
-      attrs: []
-
-  - variable: proxy
-    label: "Configure Proxy environment variable"
-    group: "Plex Configuration"
-    schema:
-      type: dict
-      attrs:
-        - variable: enabled
-          label: "Enable Proxy"
-          schema:
-            type: boolean
-            default: false
-        - variable: http
-          label: "HTTP Proxy"
-          schema:
-            type: string
-        - variable: https
-          label: "HTTPS Proxy"
-          schema:
-            type: string
-
-  - variable: hostNetwork
-    label: "Configure Host Network"
-    group: "Networking"
-    schema:
-      type: boolean
-      default: false
-
-  - variable: timezone
-    label: "Plex container timezone"
-    group: "Plex Configuration"
-    schema:
-      type: string
-      default: "Etc/UTC"
-      $ref:
-        - "definitions/timezone"
-
-  # Update strategy
-  - variable: strategyType
-    description: "Upgrade Policy"
-    label: "Update Strategy"
-    group: "Scaling/Upgrade Policy"
-    schema:
-      type: string
-      default: "Recreate"
-      enum:
-        - value: "RollingUpdate"
-          description: "Create new pods and then kill old ones"
-        - value: "Recreate"
-          description: "Kill existing pods before creating new ones"
-
-  # Port configuration
-  - variable: plexServiceTCP
-    label: "Configure Plex TCP Service"
-    group: "Networking"
-    schema:
-      type: dict
-      attrs:
-        - variable: port
-          label: "Port to expose for Plex UI"
-          schema:
-            type: int
-            min: 9000
-            max: 65535
-            default: 32400
-
-  - variable: transcodeHostPathEnabled
-    label: "Configure Host Path for Transcode"
-    group: "Storage"
-    schema:
-      type: boolean
-      default: false
-      show_subquestions_if: true
-      subquestions:
-        - variable: transcodeHostPath
-          label: "Specify HostPath for Transcode"
-          schema:
-            type: hostpath
-            required: true
-
-  - variable: transcodeVolume
-    label: "Configure iXVolume"
-    group: "Storage"
-    schema:
-      type: dict
-      show_if: [["transcodeHostPathEnabled", "=", false]]
-      $ref:
-        - "normalize/ixVolume"
-      attrs:
-        - variable: mountPath
-          label: "Mount Path"
-          description: "Path where the volume will be mounted inside the pod"
-          schema:
-            type: path
-            editable: false
-            default: "/transcode"
-        - variable: datasetName
-          label: "Dataset Name"
-          schema:
-            type: string
-            default: "ix-plex_transcode"
-            editable: false
-
-  - variable: dataHostPathEnabled
-    label: "Configure Host Path for Data"
-    group: "Storage"
-    schema:
-      type: boolean
-      default: false
-      show_subquestions_if: true
-      subquestions:
-        - variable: dataHostPath
-          label: "Specify HostPath for Data"
-          schema:
-            type: hostpath
-            required: true
-
-  - variable: dataVolume
-    label: "Configure data iXVolume"
-    group: "Storage"
-    schema:
-      type: dict
-      show_if: [["dataHostPathEnabled", "=", false]]
-      $ref:
-        - "normalize/ixVolume"
-      attrs:
-        - variable: mountPath
-          label: "Mount Path"
-          description: "Path where the volume will be mounted inside the pod"
-          schema:
-            type: path
-            editable: false
-            default: "/data"
-        - variable: datasetName
-          label: "Dataset Name"
-          schema:
-            type: string
-            default: "ix-plex_data"
-            editable: false
-
-  - variable: configHostPathEnabled
-    label: "Configure Host Path for Config"
-    group: "Storage"
-    schema:
-      type: boolean
-      default: false
-      show_subquestions_if: true
-      subquestions:
-        - variable: configHostPath
-          label: "Specify HostPath for Config"
-          schema:
-            type: hostpath
-            required: true
-
-  - variable: configVolume
-    label: "Configure iXVolume"
-    group: "Storage"
-    schema:
-      type: dict
-      show_if: [["configHostPathEnabled", "=", false]]
-      $ref:
-        - "normalize/ixVolume"
-      attrs:
-        - variable: mountPath
-          label: "Mount Path"
-          description: "Path where the volume will be mounted inside the pod"
-          schema:
-            type: path
-            editable: false
-            default: "/config"
-        - variable: datasetName
-          label: "Dataset Name"
-          schema:
-            type: string
-            default: "ix-plex_config"
-            editable: false
-
-  # Specify GPU configuration
-  - variable: gpuConfiguration
-    label: "GPU Configuration"
-    group: "Resource Reservation"
-    schema:
-      type: dict
-      $ref:
-        - "definitions/gpuConfiguration"

+ 0 - 81
charts/plex/1.0.0/templates/_helpers.tpl

@@ -1,81 +0,0 @@
-{{/* vim: set filetype=mustache: */}}
-{{/*
-Expand the name of the chart.
-*/}}
-{{- define "plex.name" -}}
-{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-
-{{/*
-Create a default fully qualified app name.
-We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
-If release name contains chart name it will be used as a full name.
-*/}}
-{{- define "plex.fullname" -}}
-{{- if .Values.fullnameOverride -}}
-{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
-{{- else -}}
-{{- $name := default .Chart.Name .Values.nameOverride -}}
-{{- if contains $name .Release.Name -}}
-{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
-{{- else -}}
-{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Create chart name and version as used by the chart label.
-*/}}
-{{- define "plex.chart" -}}
-{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-
-{{/*
-Common labels
-*/}}
-{{- define "plex.labels" -}}
-helm.sh/chart: {{ include "plex.chart" . }}
-{{ include "plex.selectorLabels" . }}
-{{- if .Chart.AppVersion }}
-app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
-{{- end }}
-app.kubernetes.io/managed-by: {{ .Release.Service }}
-{{- end -}}
-
-{{/*
-Selector labels
-*/}}
-{{- define "plex.selectorLabels" -}}
-app.kubernetes.io/name: {{ include "plex.name" . }}
-app.kubernetes.io/instance: {{ .Release.Name }}
-{{- end -}}
-
-{{/*
-Create the name of the service account to use
-*/}}
-{{- define "plex.serviceAccountName" -}}
-{{- if .Values.serviceAccount.create -}}
-    {{ default (include "plex.fullname" .) .Values.serviceAccount.name }}
-{{- else -}}
-    {{ default "default" .Values.serviceAccount.name }}
-{{- end -}}
-{{- end -}}
-
-{{/*
-abstract: |
-  Joins a list of values into a comma separated string
-values: |
-  test:
-    - foo
-    - bar
-usage: |
-  {{ include "joinListWithComma" .Values.test }}
-return: |
-  foo,bar
-*/}}
-
-{{- define "joinListWithComma" -}}
-{{- $local := dict "first" true -}}
-{{- range $k, $v := . -}}{{- if not $local.first -}},{{- end -}}{{- $v -}}{{- $_ := set $local "first" false -}}{{- end -}}
-{{- end -}}

+ 0 - 50
charts/plex/1.0.0/templates/_storage.tpl

@@ -1,50 +0,0 @@
-{{/*
-Retrieve host path from ix volumes based on dataset name
-*/}}
-{{- define "retrieveHostPathFromiXVolume" -}}
-{{- range $index, $hostPathConfiguration := $.ixVolumes }}
-{{- $dsName := base $hostPathConfiguration.hostPath -}}
-{{- if eq $.datasetName $dsName -}}
-{{- $hostPathConfiguration.hostPath -}}
-{{- end -}}
-{{- end }}
-{{- end -}}
-
-{{/*
-Retrieve host path for transcode
-Let's please remove the redundancy
-*/}}
-{{- define "configuredHostPathTranscode" -}}
-{{- if .Values.transcodeHostPathEnabled -}}
-{{- .Values.transcodeHostPath -}}
-{{- else -}}
-{{- $volDict := dict "datasetName" $.Values.transcodeVolume.datasetName "ixVolumes" $.Values.ixVolumes -}}
-{{- include "retrieveHostPathFromiXVolume" $volDict -}}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Retrieve host path for data
-Let's please remove the redundancy
-*/}}
-{{- define "configuredHostPathData" -}}
-{{- if .Values.dataHostPathEnabled -}}
-{{- .Values.dataHostPath -}}
-{{- else -}}
-{{- $volDict := dict "datasetName" $.Values.dataVolume.datasetName "ixVolumes" $.Values.ixVolumes -}}
-{{- include "retrieveHostPathFromiXVolume" $volDict -}}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Retrieve host path for transcode
-Let's please remove the redundancy
-*/}}
-{{- define "configuredHostPathConfig" -}}
-{{- if .Values.configHostPathEnabled -}}
-{{- .Values.configHostPath -}}
-{{- else -}}
-{{- $volDict := dict "datasetName" $.Values.configVolume.datasetName "ixVolumes" $.Values.ixVolumes -}}
-{{- include "retrieveHostPathFromiXVolume" $volDict -}}
-{{- end -}}
-{{- end -}}

+ 0 - 153
charts/plex/1.0.0/templates/deployment.yaml

@@ -1,153 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  name: {{ include "plex.fullname" . }}
-  labels:
-    {{- include "plex.labels" . | nindent 4 }}
-spec:
-  replicas: 1
-  revisionHistoryLimit: 3
-  strategy:
-    type: {{ .Values.strategyType }}
-  selector:
-    matchLabels:
-      {{- include "plex.selectorLabels" . | nindent 6 }}
-  template:
-    metadata:
-      labels:
-        {{- include "plex.selectorLabels" . | nindent 8 }}
-      annotations:
-        rollme: {{ randAlphaNum 5 | quote }}
-    spec:
-    {{- if .Values.hostNetwork }}
-      hostNetwork: {{ .Values.hostNetwork }}
-      dnsPolicy: ClusterFirstWithHostNet
-    {{- end }}
-      containers:
-        - name: {{ .Chart.Name }}
-          image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
-          imagePullPolicy: {{ .Values.image.pullPolicy }}
-          ports:
-          - name: pms
-            protocol: TCP
-            containerPort: 32400
-          {{- if .Values.hostNetwork }}
-            hostPort: {{ .Values.plexServiceTCP.port }}
-          {{- end }}
-          - name: plex-dlna
-            protocol: TCP
-            containerPort: 32469
-          - name: plex-dlna-udp
-            protocol: UDP
-            containerPort: 1900
-          - name: plex-gdm1
-            protocol: UDP
-            containerPort: 32410
-          - name: plex-gdm2
-            protocol: UDP
-            containerPort: 32412
-          - name: plex-gdm3
-            protocol: UDP
-            containerPort: 32413
-          - name: plex-gdm4
-            protocol: UDP
-            containerPort: 32414
-          env:
-          - name: TZ
-            value: "{{ .Values.timezone }}"
-          # TODO: move this to a secret?
-          - name: PLEX_CLAIM
-            value: "{{ .Values.claimToken }}"
-          # plex env vars
-          - name: PMS_INTERNAL_ADDRESS
-            value: http://{{ template "plex.fullname" . }}:32400
-          - name: PMS_IMAGE
-            value: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
-          - name: KUBE_NAMESPACE
-            valueFrom:
-              fieldRef:
-                fieldPath: metadata.namespace
-  {{- if .Values.proxy.enabled }}
-    {{- if .Values.proxy.http }}
-          - name: "HTTP_PROXY"
-            value: "{{.Values.proxy.http}}"
-    {{- end }}
-    {{- if .Values.proxy.https }}
-          - name: "HTTPS_PROXY"
-            value: "{{.Values.proxy.https}}"
-    {{- end }}
-  {{- end }}
-  {{- if .Values.advertiseIp }}
-          - name: "ADVERTISE_IP"
-            value: "{{.Values.advertiseIp}}"
-{{- end }}
-{{- if .Values.allowedNetworks }}
-          - name: "ALLOWED_NETWORKS"
-            value: "{{include "joinListWithComma" .Values.allowedNetworks}}"
-{{- end }}
-# Extra ENV Values supplied by user
-{{- range $key, $value := .Values.extraEnv }}
-          - name: {{ $key }}
-            value: {{ $value }}
-{{- end }}
-          readinessProbe:
-            httpGet:
-              path: /identity
-              port: 32400
-            failureThreshold: 5
-            periodSeconds: 15
-          livenessProbe:
-            httpGet:
-              path: /identity
-              port: 32400
-            failureThreshold: 5
-            periodSeconds: 15
-          startupProbe:
-            httpGet:
-              path: /identity
-              port: 32400
-            initialDelaySeconds: 5
-            failureThreshold: 40
-            periodSeconds: 15
-          volumeMounts:
-          - name: data
-            mountPath: /data
-          - name: config
-            mountPath: /config
-          - name: transcode
-            mountPath: /transcode
-          - name: shared
-            mountPath: /shared
-          - name: shared-logs
-            mountPath: "/config/Library/Application Support/Plex Media Server/Logs"
-          {{- if .Values.gpuConfiguration }}
-          resources:
-            limits:
-              {{- toYaml .Values.gpuConfiguration | nindent 14 }}
-          {{- end }}
-      volumes:
-      - name: data
-        {{- if .Values.emptyDirVolumes }}
-        emptyDir: {}
-        {{- else }}
-        hostPath:
-          path: {{ template "configuredHostPathData" . }}
-        {{- end }}
-      - name: config
-        {{- if .Values.emptyDirVolumes }}
-        emptyDir: {}
-        {{- else }}
-        hostPath:
-          path: {{ template "configuredHostPathConfig" . }}
-        {{- end }}
-      - name: transcode
-        {{- if .Values.emptyDirVolumes }}
-        emptyDir: {}
-        {{- else }}
-        hostPath:
-          path: {{ template "configuredHostPathTranscode" . }}
-        {{- end }}
-      - name: shared
-        emptyDir: {}
-      - name: shared-logs
-        emptyDir: {}

+ 0 - 35
charts/plex/1.0.0/templates/service-tcp.yaml

@@ -1,35 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
-  {{- if .Values.hostNetwork }}
-  name: {{ include "plex.fullname" . }}-tcp-cluster-ip
-  {{- else }}
-  name: {{ include "plex.fullname" . }}-tcp
-  {{- end }}
-  labels:
-    {{- include "plex.labels" . | nindent 4 }}
-spec:
-  {{- if .Values.hostNetwork }}
-  type: ClusterIP
-  {{- else }}
-  type: NodePort
-  {{- end }}
-  ports:
-    - name: pms
-      port: {{ .Values.plexServiceTCP.port }}
-      protocol: TCP
-      targetPort: pms
-      {{- if eq .Values.hostNetwork false }}
-      nodePort: {{.Values.plexServiceTCP.port}}
-      {{- end }}
-    - name: http
-      port: 80
-      targetPort: pms
-    - name: https
-      port: 443
-      targetPort: pms
-    - name: plex-dlna
-      port: 1900
-      targetPort: plex-dlna
-  selector:
-    {{- include "plex.selectorLabels" . | nindent 4 }}

+ 0 - 31
charts/plex/1.0.0/templates/service-udp.yaml

@@ -1,31 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
-  name: {{ include "plex.fullname" . }}-udp
-  labels:
-    {{- include "plex.labels" . | nindent 4 }}
-spec:
-  type: ClusterIP
-  ports:
-    - name: plex-dlna-udp
-      port: 1900
-      protocol: UDP
-      targetPort: plex-dlna-udp
-    - name: plex-gdm1
-      port: 32410
-      protocol: UDP
-      targetPort: plex-gdm1
-    - name: plex-gdm2
-      port: 32412
-      protocol: UDP
-      targetPort: plex-gdm2
-    - name: plex-gdm3
-      port: 32413
-      protocol: UDP
-      targetPort: plex-gdm3
-    - name: plex-gdm4
-      port: 32414
-      protocol: UDP
-      targetPort: plex-gdm4
-  selector:
-    {{- include "plex.selectorLabels" . | nindent 4 }}

+ 0 - 0
charts/plex/1.0.0/.helmignore → charts/plex/1.1.0/.helmignore


+ 6 - 0
charts/plex/1.1.0/Chart.lock

@@ -0,0 +1,6 @@
+dependencies:
+- name: common
+  repository: file://../../../library/common/2101.0.0
+  version: 2101.0.0
+digest: sha256:6ab46f958de11ae6a24d8f7e18417aa9852a8d968d5b0cc94ffa4700449931d6
+generated: "2021-02-04T01:15:55.470042+05:00"

+ 6 - 1
charts/plex/1.0.0/Chart.yaml → charts/plex/1.1.0/Chart.yaml

@@ -2,7 +2,7 @@ apiVersion: v2
 appVersion: 1.20.2.3402
 description: Plex Media Server
 name: plex
-version: 1.0.0
+version: 1.1.0
 keywords:
   - plex
 home: https://plex.tv/
@@ -11,3 +11,8 @@ sources:
   - https://hub.docker.com/r/plexinc/pms-docker/
   - https://github.com/k8s-at-home/charts/tree/master/charts/plex
 upstream_version: 2.1.0
+dependencies:
+  - name: common
+    repository: file://../../../library/common/2101.0.0
+    version: 2101.0.0
+

+ 0 - 0
charts/plex/1.0.0/README.md → charts/plex/1.1.0/README.md


Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini