From eb9934c451c9d9f862fde384ccb4ed26f4a45e11 Mon Sep 17 00:00:00 2001 From: Micah Nagel Date: Mon, 17 May 2021 21:01:14 +0000 Subject: [PATCH] Update to Minio 4.0 --- CHANGELOG.md | 4 + chart/Chart.lock | 6 +- chart/Chart.yaml | 4 +- chart/charts/minio-instance-2.0.9-bb.9.tgz | Bin 4725 -> 0 bytes chart/charts/minio-instance-4.0.4-bb.4.tgz | Bin 0 -> 8241 bytes chart/charts/postgresql-10.3.5.tgz | Bin 40043 -> 40039 bytes chart/deps/minio/Chart.lock | 6 + chart/deps/minio/Chart.yaml | 5 +- chart/deps/minio/Kptfile | 4 +- chart/deps/minio/charts/bb-test-lib-0.5.0.tgz | Bin 0 -> 2464 bytes chart/deps/minio/templates/_helpers.tpl | 25 +- .../deps/minio/templates/console-secret.yaml | 16 ++ .../deps/minio/templates/default-secret.yaml | 10 - chart/deps/minio/templates/minio-vs.yaml | 7 +- chart/deps/minio/templates/minioinstance.yaml | 119 ---------- chart/deps/minio/templates/role.yaml | 23 -- chart/deps/minio/templates/rolebinding.yaml | 20 -- .../deps/minio/templates/service-account.yaml | 2 - chart/deps/minio/templates/service.yaml | 15 -- chart/deps/minio/templates/tenant-secret.yaml | 12 + chart/deps/minio/templates/tenant.yaml | 222 ++++++++++++++++++ chart/deps/minio/values.yaml | 174 ++++++++++++-- chart/templates/mattermost.yaml | 4 +- .../templates/objectstorage-credentials.yaml | 14 -- chart/values.yaml | 18 +- tests/dependencies.yaml | 4 +- 26 files changed, 455 insertions(+), 259 deletions(-) delete mode 100644 chart/charts/minio-instance-2.0.9-bb.9.tgz create mode 100644 chart/charts/minio-instance-4.0.4-bb.4.tgz create mode 100644 chart/deps/minio/Chart.lock create mode 100644 chart/deps/minio/charts/bb-test-lib-0.5.0.tgz create mode 100644 chart/deps/minio/templates/console-secret.yaml delete mode 100644 chart/deps/minio/templates/default-secret.yaml delete mode 100644 chart/deps/minio/templates/minioinstance.yaml delete mode 100644 chart/deps/minio/templates/role.yaml delete mode 100644 chart/deps/minio/templates/rolebinding.yaml delete mode 100644 chart/deps/minio/templates/service.yaml create mode 100644 chart/deps/minio/templates/tenant-secret.yaml create mode 100644 chart/deps/minio/templates/tenant.yaml delete mode 100644 chart/templates/objectstorage-credentials.yaml diff --git a/CHANGELOG.md b/CHANGELOG.md index 805368e..1252c6e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), --- +## [0.1.7-bb.0] - 2021-05-17 +### Changed +- Updated to latest Minio package as dependency + ## [0.1.6-bb.0] - 2021-05-11 ### Changed - Migrated Cypress tests to Helm tests diff --git a/chart/Chart.lock b/chart/Chart.lock index 042b232..4365439 100644 --- a/chart/Chart.lock +++ b/chart/Chart.lock @@ -4,9 +4,9 @@ dependencies: version: 10.3.5 - name: minio-instance repository: file://./deps/minio - version: 2.0.9-bb.9 + version: 4.0.4-bb.4 - name: bb-test-lib repository: oci://registry.dso.mil/platform-one/big-bang/pipeline-templates/pipeline-templates version: 0.5.2 -digest: sha256:0a15fa5bcd2dafdc621740c7cd177210b2c875337f32fe78755af8806bba735a -generated: "2021-05-13T10:38:37.154607-06:00" +digest: sha256:3ca344e6b6e62dc508c2599518d638e424477cf8de51a53cf795c8481d6c2b32 +generated: "2021-05-17T13:29:55.74089-06:00" diff --git a/chart/Chart.yaml b/chart/Chart.yaml index 54b8cbe..4de4aab 100644 --- a/chart/Chart.yaml +++ b/chart/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: mattermost type: application -version: "0.1.6-bb.0" +version: "0.1.7-bb.0" appVersion: "5.34.2" description: "Deployment of mattermost" keywords: @@ -17,7 +17,7 @@ dependencies: condition: postgresql.install repository: file://./deps/postgresql - name: minio-instance - version: 2.0.9-bb.9 + version: 4.0.4-bb.4 alias: minio condition: minio.install repository: file://./deps/minio diff --git a/chart/charts/minio-instance-2.0.9-bb.9.tgz b/chart/charts/minio-instance-2.0.9-bb.9.tgz deleted file mode 100644 index bbfa7b0d3abe6d2381694e9538bf214d1dbb934b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4725 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 P_ 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 diff --git a/chart/deps/minio/Chart.lock b/chart/deps/minio/Chart.lock new file mode 100644 index 0000000..df1fa9a --- /dev/null +++ b/chart/deps/minio/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: bb-test-lib + repository: oci://registry.dso.mil/platform-one/big-bang/pipeline-templates/pipeline-templates + version: 0.5.0 +digest: sha256:ec47e1f5de8d2060a2e7b93a756bb34c21b62069f04237c915adf8619ac03698 +generated: "2021-05-12T14:29:40.198378-06:00" diff --git a/chart/deps/minio/Chart.yaml b/chart/deps/minio/Chart.yaml index 42df286..677b4ce 100644 --- a/chart/deps/minio/Chart.yaml +++ b/chart/deps/minio/Chart.yaml @@ -9,7 +9,7 @@ description: |- type: application -version: 2.0.9-bb.9 +version: 4.0.4-bb.4 appVersion: RELEASE.2020-11-19T23-48-16Z @@ -24,3 +24,6 @@ maintainers: email: dependencies: + - name: bb-test-lib + version: "0.5.0" + repository: "oci://registry.dso.mil/platform-one/big-bang/pipeline-templates/pipeline-templates" diff --git a/chart/deps/minio/Kptfile b/chart/deps/minio/Kptfile index 521d916..5111a05 100644 --- a/chart/deps/minio/Kptfile +++ b/chart/deps/minio/Kptfile @@ -5,7 +5,7 @@ metadata: upstream: type: git git: - commit: a8ef3702468317396a58ed94bb1823f9d4ae59cf + commit: 3da8ff8e918a5f0fbff1e9a14e2f00a4cba3f925 repo: https://repo1.dso.mil/platform-one/big-bang/apps/application-utilities/minio directory: /chart - ref: 2.0.9-bb.9 + ref: 4.0.4-bb.4 diff --git a/chart/deps/minio/charts/bb-test-lib-0.5.0.tgz b/chart/deps/minio/charts/bb-test-lib-0.5.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..ca0adf9edaa4f6f8a56ee22c14af94e432b150b8 GIT binary patch literal 2464 zcmV;R319XfiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0PH($Z`(N1{j6Uxj~XnTJS$30>}27^?xENA_7->B4cbL5|3UZS^hviD^e%#KKj@!73A$&e7Z*<;*zYu&A=8GcC&9hPT4wHl z1Zc|MqS8!?0ZdOFnx?bYF6o|=z==^uilruRdj@|;o65^DY|am0q3-_%lay0~+J7J2qzbi;q!_YMLeqOig$@4S z4f_2h|G&8C2M7Ou2)MoVAjTmR2yV?5NNE7x+yX+X(S=W+oQ06lbtX*219+a}{X$bG zK|^C|=)eIeLV|mH3#3?FUeN^M(DeLvKLl)wHl+oal;=UF2=^G^!|SR8tn=vnZ08 zFt2hcuNShWyZhMKOFq8>YCCgr^!*&(sr~oXXBOHLj5z|K9kXTESFz(w}GL$Ou zq(DDpBQK<49iaY5;z1u8~XVfNrO!y(yV|U)>Me~=t^2v(dfQPf!CSuQV!%#!4m#o;OAs zbNl_9Zvd}TsSLdQ*U!JbfBx%>mp>f+SU`b5`j`3h905 zgXayEOuQlExUCRt6KOV%DT`5VWfuizvq==+)>y-0#|A@KK-i}Zl+1lW^{+6#Kh2ku zZ&Lbtfz^gzSgm$x!fR&W=yn$2sxMQ?vjl&!3#lH=u&Z^izRJ}Fl34spYQ}>+R3#R%bO@+}-qVemuyI5n1QiIbJ((FBeb zr98EC=HI8ejQ^cUgNy8~$gP;sE-cyEl;fqulwm zjVGNUQ`%Uq&t*}5UN6pOga)a$BYu`}tGVA>#5FRT*3df=)SZ3%V8f&4U*$)99l}1B3d|h z0BV-DrG4ov{D6_kmEGvSd-U3!be`uI+hig(7A+)s?RiV?y}RMhY;QT~d+ad%#bC|) zUtIaw&-IUu_doi*-tzk2KR?|6dJtIWorM83UH{m5*H@6*0)ymx*L__vS>WJLeZ!;_ z-?leQHa@Nm*(*lzV0+wE8)`?Ko6>zYqRmdQycga0_}D()2CeabKi5At#s6Oa;%sIA z*E>DL|A&ALuD)>O=RHvLzuzU3a^{b9$D|wV`;y7_mosXtFW${4%K+_?uT?7cc*Uam zlEubBR< zEd6=4Y_;uq)3#u>?&bZ7HwE>~=y+=x)}J3c^~+&R{-4WXU%v$0^!vYy{_^kt`e*&# zA^(2}umRPncN=P!WU7Oqv-mW3*vEc?$etY1Q>C}12r zCw}RBP2sEV^HspI6C3;hWw4qx&nIF(Dw*V=yHkadjt$<|K%je^lQ@PuJ0i`vflkaK z1IP0bQoe!6=|&>u($Oh2RGXcpzFo<@?*GJYLfA-1g?qKJP5$3MTmJpuSwA?O|2_yj zg-dD-DxtwhD3lLZV-yf(jK_8xl+tKIN2rPO6ms9zS(-{^H0UvM4kIo@NT`X%OpLw- zg`65TMM$X`*V?Iwou?phlshkUQiVfyjd77d{ogTxUj@GbDe|6nN|2%g&IA&Nym<5e zjgbnSr|?`Ri4^em`5TCt(heCh.minio.default.svc.cluster.local` + s3: + ## This feature is turned off by default + bucketDNS: {{ .Values.tenants.s3.bucketDNS }} + + ## This field is used only when "requestAutoCert" is set to true. Use this field to set CommonName + ## for the auto-generated certificate. Internal DNS name for the pod will be used if CommonName is + ## not provided. DNS name format is *.minio.default.svc.cluster.local + {{- with .Values.tenants.certificate.certConfig }} + certConfig: + {{ toYaml . | nindent 4 }} + {{- end }} + + ## PodManagement policy for MinIO Tenant Pods. Can be "OrderedReady" or "Parallel" + ## Refer https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#pod-management-policy + ## for details. + podManagementPolicy: {{ .Values.tenants.podManagementPolicy }} + + ## serviceMetadata allows passing additional labels and annotations to MinIO and Console specific + ## services created by the operator. + {{- with .Values.tenants.serviceMetadata }} + serviceMetadata: + {{ toYaml . | nindent 4 }} + {{- end }} + {{- with .env }} + {{ toYaml . | nindent 4 }} + {{- end }} + + ## Add environment variables to be set in MinIO container (https://github.com/minio/minio/tree/master/docs/config) + # env: + # - name: MINIO_BROWSER + # value: "off" # to turn-off browser + # - name: MINIO_STORAGE_CLASS_STANDARD + # value: "EC:2" + # ## For secure env vars like passwords, create an opaque Kubernetes secret and specify the secret in + # ## the `valueFrom` field. The `valueFrom` object must contain the following fields: + # ## `name` - the secret from which MinIO extracts the password, `key` - the data field + # ## within secret, whose value will be set to the env variable's value + # - name: MINIO_IDENTITY_LDAP_LOOKUP_BIND_PASSWORD + # valueFrom: + # secretKeyRef: + # name: ldap-minio-secret + # key: MINIO_IDENTITY_LDAP_LOOKUP_BIND_PASSWORD + + ## PriorityClassName indicates the Pod priority and hence importance of a Pod relative to other Pods. + ## This is applied to MinIO pods only. + ## Refer Kubernetes documentation for details https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass/ + {{- if .Values.tenants.priorityClassName }} + priorityClassName: {{ .Values.tenants.priorityClassName }} + {{- end }} + + ## Define configuration for Console (Graphical user interface for MinIO) + ## Refer https://github.com/minio/console + {{- if .Values.tenants.console.enabled }} + console: + image: {{ .Values.tenants.console.image.repository }}:{{ .Values.tenants.console.image.tag }} + replicas: {{ .Values.tenants.console.replicaCount }} + consoleSecret: + name: {{ .Values.tenants.console.secrets.name }} + {{- with .Values.tenants.securityContext }} + securityContext: + {{ toYaml . | nindent 6 }} + {{ end }} + {{- end }} diff --git a/chart/deps/minio/values.yaml b/chart/deps/minio/values.yaml index e51cc84..97f048b 100644 --- a/chart/deps/minio/values.yaml +++ b/chart/deps/minio/values.yaml @@ -3,33 +3,31 @@ ## This is a YAML-formatted file. ## Declare variables to be passed into your templates. ## Configure number of MinIO Operator Deployment Replicas -replicas: - count: 1 +#replicas: +# count: 1 hostname: bigbang.dev -nameOverride: "" -fullnameOverride: "" +#nameOverride: "" +#fullnameOverride: "" # Configure repo and tag of MinIO Operator Image -image: - name: registry1.dso.mil/ironbank/opensource/minio/minio - tag: RELEASE.2020-11-19T23-48-16Z - imagePullPolicy: IfNotPresent +#image: +# name: registry1.dso.mil/ironbank/opensource/minio/minio +# tag: RELEASE.2020-11-19T23-48-16Z +# imagePullPolicy: IfNotPresent -zones: +#zones: # refer to documentation for number of servers versus volumes per server # https://docs.min.io/docs/minio-server-limits-per-tenant.html - servers: 3 # scale to 3 for dev +# servers: 3 # scale to 3 for dev +#volumesPerServer: 2 # 2 is minimum volumes with 3 servers -volumesPerServer: 2 # 2 is minimum volumes with 3 servers +#volumeClaimTemplate: +# accessModes: ReadWriteOnce +# storage: 1Gi # scale down for dev -volumeClaimTemplate: - accessModes: ReadWriteOnce - storage: 1Gi # scale down for dev - -minioRootCreds: default-minio-creds-secret - -imagePullSecrets: [ ] +imagePullSecrets: + - name: private-registry serviceAccount: # Specifies whether a service account should be created @@ -67,4 +65,142 @@ monitoring: enabled: false namespace: monitoring -mcImage: registry1.dso.mil/ironbank/opensource/minio/mc:RELEASE.2021-03-23T05-46-11Z \ No newline at end of file + +## MinIO Tenant Definition +tenants: + # Tenant name + name: minio + ## Registry location and Tag to download MinIO Server image +# Configure repo and tag of MinIO Operator Image + image: + repository: registry1.dso.mil/ironbank/opensource/minio/minio + tag: RELEASE.2020-11-19T23-48-16Z + pullPolicy: "IfNotPresent" + imagePullSecret: + name: private-registry + ## If a scheduler is specified here, Tenant pods will be dispatched by specified scheduler. + ## If not specified, the Tenant pods will be dispatched by default scheduler. + ##scheduler: + ## name: + scheduler: {} + + ## Used to specify a toleration for a pod + tolerations: {} + ## nodeSelector parameters for MinIO Pods. It specifies a map of key-value pairs. For the pod to be + ## eligible to run on a node, the node must have each of the + ## indicated key-value pairs as labels. + ## Read more here: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ + nodeSelector: {} + ## Affinity settings for MinIO pods. Read more about affinity + ## here: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity. + affinity: {} + ## Configure resource requests and limits for MinIO containers + resources: {} + ## Configure security context + ## BB Note: Defaults for Ironbank image are 1001 for user, group, and fsGroup + securityContext: + runAsUser: 1001 + runAsGroup: 1001 + fsGroup: 1001 + secrets: + name: minio-creds-secret + accessKey: ThisIsAVeryLongPasswordForExample + secretKey: ThisIsAVeryLongPasswordForExample + metrics: + enabled: false + port: 9000 + ## Specification for MinIO Pool(s) in this Tenant. + pools: + ## Servers specifies the number of MinIO Tenant Pods / Servers in this pool. + ## For standalone mode, supply 1. For distributed mode, supply 4 or more. + ## Note that the operator does not support upgrading from standalone to distributed mode. + - servers: 4 + ## volumesPerServer specifies the number of volumes attached per MinIO Tenant Pod / Server. + volumesPerServer: 4 + ## size specifies the capacity per volume + size: 1Gi + ## storageClass specifies the storage class name to be used for this pool + storageClassName: standard + ## Used to specify a toleration for a pod + tolerations: {} + ## nodeSelector parameters for MinIO Pods. It specifies a map of key-value pairs. For the pod to be + ## eligible to run on a node, the node must have each of the + ## indicated key-value pairs as labels. + ## Read more here: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ + nodeSelector: {} + ## Affinity settings for MinIO pods. Read more about affinity + ## here: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity. + affinity: {} + ## Configure resource requests and limits for MinIO containers + resources: {} + ## Configure security context + ## BB Note: Defaults for Ironbank image are 1001 for user, group, and fsGroup + securityContext: + runAsUser: 1001 + runAsGroup: 1001 + fsGroup: 1001 + ## Mount path where PV will be mounted inside container(s). + mountPath: /export + ## Sub path inside Mount path where MinIO stores data. + subPath: /data + certificate: + ## Use this field to provide a list of Secrets with external certificates. This can be used to to configure + ## TLS for MinIO Tenant pods. Create secrets as explained here: + ## https://github.com/minio/minio/tree/master/docs/tls/kubernetes#2-create-kubernetes-secret + externalCertSecret: {} + ## Enable automatic Kubernetes based certificate generation and signing as explained in + ## https://kubernetes.io/docs/tasks/tls/managing-tls-in-a-cluster + ## false = disabled TLS endpoints at the tenants + requestAutoCert: false + ## This field is used only when "requestAutoCert" is set to true. Use this field to set CommonName + ## for the auto-generated certificate. Internal DNS name for the pod will be used if CommonName is + ## not provided. DNS name format is *.minio.default.svc.cluster.local + ##certConfig: + ## commonName: "" + ## organizationName: [] + ## dnsNames: [] + certConfig: {} + ## Enable S3 specific features such as Bucket DNS which would allow `buckets` to be + ## accessible as DNS entries of form `.minio.default.svc.cluster.local` + s3: + ## This feature is turned off by default + bucketDNS: false + ## PodManagement policy for MinIO Tenant Pods. Can be "OrderedReady" or "Parallel" + ## Refer https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#pod-management-policy + ## for details. + podManagementPolicy: Parallel + ## serviceMetadata allows passing additional labels and annotations to MinIO and Console specific + ## services created by the operator. + ##serviceMetadata: {} + serviceMetadata: + minioServiceLabels: + label: minio-svc + minioServiceAnnotations: + v2.min.io: minio-svc + # consoleServiceLabels: + # label: console-svc + # consoleServiceAnnotations: + # v2.min.io: console-svc + + ## Add environment variables to be set in MinIO container (https://github.com/minio/minio/tree/master/docs/config) + env: {} + ## PriorityClassName indicates the Pod priority and hence importance of a Pod relative to other Pods. + ## This is applied to MinIO pods only. + ## Refer Kubernetes documentation for details https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass/ + # e.g., priorityClassName: high-priority + priorityClassName : "" + ## Define configuration for Console (Graphical user interface for MinIO) + ## Refer https://github.com/minio/console + console: + enabled: false + image: + repository: minio/console + tag: v0.6.3 + pullPolicy: IfNotPresent + replicaCount: 1 + secrets: + name: minio-console-secret + passphrase: ThisIsAVeryLongConsolePasswordForExample + salt: ThisIsAVeryLongConsolePasswordForExample + accessKey: ThisIsAVeryLongConsolePasswordForExample + secretKey: ThisIsAVeryLongConsolePasswordForExample diff --git a/chart/templates/mattermost.yaml b/chart/templates/mattermost.yaml index 190ebeb..524b26d 100644 --- a/chart/templates/mattermost.yaml +++ b/chart/templates/mattermost.yaml @@ -155,6 +155,6 @@ spec: fileStore: external: - url: {{ .Values.fileStore.url | default (printf "%s:9000" .Values.minio.service.nameOverride) }} + url: {{ .Values.fileStore.url | default "minio:80" }} bucket: {{ .Values.fileStore.bucket | default "mattermost" }} - secret: {{ .Values.fileStore.secret | default "mattermost-objstore-creds" }} + secret: {{ .Values.fileStore.secret | default .Values.minio.tenants.secrets.name }} diff --git a/chart/templates/objectstorage-credentials.yaml b/chart/templates/objectstorage-credentials.yaml deleted file mode 100644 index 00acf7e..0000000 --- a/chart/templates/objectstorage-credentials.yaml +++ /dev/null @@ -1,14 +0,0 @@ -{{- if and (not .Values.fileStore.secret) .Values.minio.install }} -apiVersion: v1 -kind: Secret -type: Opaque -metadata: - name: mattermost-objstore-creds - namespace: {{ .Release.Namespace }} - labels: - {{ include "mattermost.labels" . | nindent 4 }} - app.kubernetes.io/component: "objectstorage" -data: - accesskey: {{ .Values.minio.accessKey | b64enc }} - secretkey: {{ .Values.minio.secretKey | b64enc }} -{{- end }} diff --git a/chart/values.yaml b/chart/values.yaml index 67ed032..81d5481 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -98,19 +98,11 @@ existingSecretEnvs: {} minio: install: false - # Override the minio service name for easier connection setup - service: - nameOverride: "minio-mattermost-service" - - # Specify the secret to the Mattermost created secret - minioRootCreds: mattermost-objstore-creds - - # Credentials to populate the secret with - accessKey: minio - secretKey: minio#123 # default key, change this! - - imagePullSecrets: - - name: private-registry + tenants: + secrets: + name: "mattermost-objstore-creds" + accessKey: "minio" + secretKey: "minio#123" # default key, change this! postgresql: install: false diff --git a/tests/dependencies.yaml b/tests/dependencies.yaml index 3b18fbc..0199dcd 100644 --- a/tests/dependencies.yaml +++ b/tests/dependencies.yaml @@ -1,9 +1,9 @@ mattermostoperator: git: "https://repo1.dso.mil/platform-one/big-bang/apps/collaboration-tools/mattermost-operator.git" namespace: "mattermost-operator" - branch: "1.12.0-bb.0" + branch: "1.13.0-bb.2" miniooperator: git: "https://repo1.dso.mil/platform-one/big-bang/apps/application-utilities/minio-operator.git" namespace: "minio-operator" - branch: "2.0.9-bb.1" + branch: "4.0.4-bb.1" -- GitLab