From e84d6f658d63ff7aeeea2eb5c1416ecff10c88ea Mon Sep 17 00:00:00 2001 From: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com> Date: Thu, 12 Oct 2023 10:54:55 -0700 Subject: [PATCH] Release v5.0.10 Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com> --- api/consts.go | 2 +- bundle.Dockerfile | 4 +- .../manifests/console-env_v1_configmap.yaml | 11 + .../console-sa-secret_v1_secret.yaml | 10 + .../5.0.10/manifests/console_v1_service.yaml | 26 + .../minio-operator.clusterserviceversion.yaml | 765 +++ .../manifests/minio.min.io_tenants.yaml | 5004 +++++++++++++++++ .../5.0.10/manifests/operator_v1_service.yaml | 24 + .../manifests/sts.min.io_policybindings.yaml | 84 + .../5.0.10/manifests/sts_v1_service.yaml | 22 + .../5.0.10/metadata/annotations.yaml | 12 + .../manifests/console-env_v1_configmap.yaml | 11 + .../console-sa-secret_v1_secret.yaml | 10 + .../5.0.10/manifests/console_v1_service.yaml | 26 + .../minio-operator.clusterserviceversion.yaml | 765 +++ .../manifests/minio.min.io_tenants.yaml | 5004 +++++++++++++++++ .../5.0.10/manifests/operator_v1_service.yaml | 24 + .../manifests/sts.min.io_policybindings.yaml | 84 + .../5.0.10/manifests/sts_v1_service.yaml | 22 + .../5.0.10/metadata/annotations.yaml | 12 + .../manifests/console-env_v1_configmap.yaml | 11 + .../console-sa-secret_v1_secret.yaml | 10 + .../5.0.10/manifests/console_v1_service.yaml | 26 + ...o-operator-rhmp.clusterserviceversion.yaml | 767 +++ .../manifests/minio.min.io_tenants.yaml | 5004 +++++++++++++++++ .../5.0.10/manifests/operator_v1_service.yaml | 24 + .../manifests/sts.min.io_policybindings.yaml | 84 + .../5.0.10/manifests/sts_v1_service.yaml | 22 + .../5.0.10/metadata/annotations.yaml | 12 + .../minio-operator.clusterserviceversion.yaml | 25 +- certified-operators/metadata/annotations.yaml | 2 +- .../minio-operator.clusterserviceversion.yaml | 23 +- community-operators/metadata/annotations.yaml | 2 +- docs/policybinding_crd.adoc | 4 +- docs/templates/asciidoctor/gv_list.tpl | 4 +- docs/tenant_crd.adoc | 4 +- examples/kustomization/base/tenant.yaml | 4 +- .../tenant-certmanager-kes/tenant.yaml | 2 +- .../tenant-kes-encryption/tenant.yaml | 2 +- helm-releases/operator-5.0.10.tgz | Bin 0 -> 19326 bytes helm-releases/tenant-5.0.10.tgz | Bin 0 -> 12977 bytes helm/operator/Chart.yaml | 4 +- helm/operator/values.yaml | 6 +- helm/tenant/Chart.yaml | 4 +- helm/tenant/values.yaml | 8 +- index.yaml | 322 +- kubectl-minio/README.md | 4 +- kubectl-minio/cmd/helpers/constants.go | 6 +- kubectl-minio/cmd/tenant-upgrade.go | 2 +- ...o-operator-rhmp.clusterserviceversion.yaml | 25 +- pkg/apis/minio.min.io/v2/constants.go | 4 +- pkg/controller/operator.go | 2 +- ...o-operator-rhmp.clusterserviceversion.yaml | 25 +- redhat-marketplace/metadata/annotations.yaml | 2 +- resources/base/console-ui.yaml | 2 +- resources/base/deployment.yaml | 2 +- testing/console-tenant+kes.sh | 2 +- update-operator-krew.py | 2 +- web-app/build/asset-manifest.json | 34 +- web-app/build/index.html | 2 +- web-app/build/static/js/21.01c7d0c4.chunk.js | 2 - web-app/build/static/js/21.53327062.chunk.js | 2 + ....chunk.js.map => 21.53327062.chunk.js.map} | 2 +- web-app/build/static/js/292.5b893eb9.chunk.js | 2 + ...chunk.js.map => 292.5b893eb9.chunk.js.map} | 2 +- web-app/build/static/js/292.82b40208.chunk.js | 2 - ...d72ddac2.chunk.js => 30.80b393c6.chunk.js} | 4 +- ....chunk.js.map => 30.80b393c6.chunk.js.map} | 2 +- web-app/build/static/js/33.8113b137.chunk.js | 2 + .../build/static/js/33.8113b137.chunk.js.map | 1 + web-app/build/static/js/33.a6099543.chunk.js | 2 - .../build/static/js/33.a6099543.chunk.js.map | 1 - web-app/build/static/js/367.2251aaba.chunk.js | 2 + ...chunk.js.map => 367.2251aaba.chunk.js.map} | 2 +- web-app/build/static/js/367.fb267f8e.chunk.js | 2 - web-app/build/static/js/692.173a6fa7.chunk.js | 2 + ...chunk.js.map => 692.173a6fa7.chunk.js.map} | 2 +- web-app/build/static/js/692.8957e493.chunk.js | 2 - web-app/build/static/js/724.1efc027e.chunk.js | 2 - .../build/static/js/724.1efc027e.chunk.js.map | 1 - web-app/build/static/js/724.d8e3a44e.chunk.js | 2 + .../build/static/js/724.d8e3a44e.chunk.js.map | 1 + web-app/build/static/js/main.107f720c.js | 3 + ...CENSE.txt => main.107f720c.js.LICENSE.txt} | 0 web-app/build/static/js/main.107f720c.js.map | 1 + web-app/build/static/js/main.2dac6aae.js | 3 - web-app/build/static/js/main.2dac6aae.js.map | 1 - .../Tenants/AddTenant/Steps/Images.tsx | 4 +- .../TenantDetails/TenantEncryption.tsx | 2 +- 89 files changed, 18195 insertions(+), 273 deletions(-) create mode 100644 bundles/certified-operators/5.0.10/manifests/console-env_v1_configmap.yaml create mode 100644 bundles/certified-operators/5.0.10/manifests/console-sa-secret_v1_secret.yaml create mode 100644 bundles/certified-operators/5.0.10/manifests/console_v1_service.yaml create mode 100644 bundles/certified-operators/5.0.10/manifests/minio-operator.clusterserviceversion.yaml create mode 100644 bundles/certified-operators/5.0.10/manifests/minio.min.io_tenants.yaml create mode 100644 bundles/certified-operators/5.0.10/manifests/operator_v1_service.yaml create mode 100644 bundles/certified-operators/5.0.10/manifests/sts.min.io_policybindings.yaml create mode 100644 bundles/certified-operators/5.0.10/manifests/sts_v1_service.yaml create mode 100644 bundles/certified-operators/5.0.10/metadata/annotations.yaml create mode 100644 bundles/community-operators/5.0.10/manifests/console-env_v1_configmap.yaml create mode 100644 bundles/community-operators/5.0.10/manifests/console-sa-secret_v1_secret.yaml create mode 100644 bundles/community-operators/5.0.10/manifests/console_v1_service.yaml create mode 100644 bundles/community-operators/5.0.10/manifests/minio-operator.clusterserviceversion.yaml create mode 100644 bundles/community-operators/5.0.10/manifests/minio.min.io_tenants.yaml create mode 100644 bundles/community-operators/5.0.10/manifests/operator_v1_service.yaml create mode 100644 bundles/community-operators/5.0.10/manifests/sts.min.io_policybindings.yaml create mode 100644 bundles/community-operators/5.0.10/manifests/sts_v1_service.yaml create mode 100644 bundles/community-operators/5.0.10/metadata/annotations.yaml create mode 100644 bundles/redhat-marketplace/5.0.10/manifests/console-env_v1_configmap.yaml create mode 100644 bundles/redhat-marketplace/5.0.10/manifests/console-sa-secret_v1_secret.yaml create mode 100644 bundles/redhat-marketplace/5.0.10/manifests/console_v1_service.yaml create mode 100644 bundles/redhat-marketplace/5.0.10/manifests/minio-operator-rhmp.clusterserviceversion.yaml create mode 100644 bundles/redhat-marketplace/5.0.10/manifests/minio.min.io_tenants.yaml create mode 100644 bundles/redhat-marketplace/5.0.10/manifests/operator_v1_service.yaml create mode 100644 bundles/redhat-marketplace/5.0.10/manifests/sts.min.io_policybindings.yaml create mode 100644 bundles/redhat-marketplace/5.0.10/manifests/sts_v1_service.yaml create mode 100644 bundles/redhat-marketplace/5.0.10/metadata/annotations.yaml create mode 100644 helm-releases/operator-5.0.10.tgz create mode 100644 helm-releases/tenant-5.0.10.tgz delete mode 100644 web-app/build/static/js/21.01c7d0c4.chunk.js create mode 100644 web-app/build/static/js/21.53327062.chunk.js rename web-app/build/static/js/{21.01c7d0c4.chunk.js.map => 21.53327062.chunk.js.map} (99%) create mode 100644 web-app/build/static/js/292.5b893eb9.chunk.js rename web-app/build/static/js/{292.82b40208.chunk.js.map => 292.5b893eb9.chunk.js.map} (99%) delete mode 100644 web-app/build/static/js/292.82b40208.chunk.js rename web-app/build/static/js/{30.d72ddac2.chunk.js => 30.80b393c6.chunk.js} (99%) rename web-app/build/static/js/{30.d72ddac2.chunk.js.map => 30.80b393c6.chunk.js.map} (99%) create mode 100644 web-app/build/static/js/33.8113b137.chunk.js create mode 100644 web-app/build/static/js/33.8113b137.chunk.js.map delete mode 100644 web-app/build/static/js/33.a6099543.chunk.js delete mode 100644 web-app/build/static/js/33.a6099543.chunk.js.map create mode 100644 web-app/build/static/js/367.2251aaba.chunk.js rename web-app/build/static/js/{367.fb267f8e.chunk.js.map => 367.2251aaba.chunk.js.map} (99%) delete mode 100644 web-app/build/static/js/367.fb267f8e.chunk.js create mode 100644 web-app/build/static/js/692.173a6fa7.chunk.js rename web-app/build/static/js/{692.8957e493.chunk.js.map => 692.173a6fa7.chunk.js.map} (99%) delete mode 100644 web-app/build/static/js/692.8957e493.chunk.js delete mode 100644 web-app/build/static/js/724.1efc027e.chunk.js delete mode 100644 web-app/build/static/js/724.1efc027e.chunk.js.map create mode 100644 web-app/build/static/js/724.d8e3a44e.chunk.js create mode 100644 web-app/build/static/js/724.d8e3a44e.chunk.js.map create mode 100644 web-app/build/static/js/main.107f720c.js rename web-app/build/static/js/{main.2dac6aae.js.LICENSE.txt => main.107f720c.js.LICENSE.txt} (100%) create mode 100644 web-app/build/static/js/main.107f720c.js.map delete mode 100644 web-app/build/static/js/main.2dac6aae.js delete mode 100644 web-app/build/static/js/main.2dac6aae.js.map diff --git a/api/consts.go b/api/consts.go index 44696b8fd09..e40273803c7 100644 --- a/api/consts.go +++ b/api/consts.go @@ -32,7 +32,7 @@ const ( // Image versions - KESImageVersion = "minio/kes:2023-08-19T17-27-47Z" + KESImageVersion = "minio/kes:2023-10-03T00-48-37Z" // Constants for common configuration MinioImage = "OPERATOR_MINIO_IMAGE" diff --git a/bundle.Dockerfile b/bundle.Dockerfile index ec9391d0ff8..4a9a94ebd42 100644 --- a/bundle.Dockerfile +++ b/bundle.Dockerfile @@ -8,5 +8,5 @@ LABEL operators.operatorframework.io.bundle.package.v1=minio-operator LABEL operators.operatorframework.io.bundle.channels.v1=stable # Copy files to locations specified by labels. -COPY bundles/community-operators/5.0.9/manifests /manifests/ -COPY bundles/community-operators/5.0.9/metadata /metadata/ +COPY bundles/community-operators/5.0.10/manifests /manifests/ +COPY bundles/community-operators/5.0.10/metadata /metadata/ diff --git a/bundles/certified-operators/5.0.10/manifests/console-env_v1_configmap.yaml b/bundles/certified-operators/5.0.10/manifests/console-env_v1_configmap.yaml new file mode 100644 index 00000000000..1c276708cd0 --- /dev/null +++ b/bundles/certified-operators/5.0.10/manifests/console-env_v1_configmap.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +data: + CONSOLE_PORT: "9090" + CONSOLE_TLS_PORT: "9443" +kind: ConfigMap +metadata: + annotations: + operator.min.io/authors: MinIO, Inc. + operator.min.io/license: AGPLv3 + operator.min.io/support: https://subnet.min.io + name: console-env diff --git a/bundles/certified-operators/5.0.10/manifests/console-sa-secret_v1_secret.yaml b/bundles/certified-operators/5.0.10/manifests/console-sa-secret_v1_secret.yaml new file mode 100644 index 00000000000..8f7c7e18363 --- /dev/null +++ b/bundles/certified-operators/5.0.10/manifests/console-sa-secret_v1_secret.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Secret +metadata: + annotations: + kubernetes.io/service-account.name: console-sa + operator.min.io/authors: MinIO, Inc. + operator.min.io/license: AGPLv3 + operator.min.io/support: https://subnet.min.io + name: console-sa-secret +type: kubernetes.io/service-account-token diff --git a/bundles/certified-operators/5.0.10/manifests/console_v1_service.yaml b/bundles/certified-operators/5.0.10/manifests/console_v1_service.yaml new file mode 100644 index 00000000000..1d2af3ffb8a --- /dev/null +++ b/bundles/certified-operators/5.0.10/manifests/console_v1_service.yaml @@ -0,0 +1,26 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: + operator.min.io/authors: MinIO, Inc. + operator.min.io/license: AGPLv3 + operator.min.io/support: https://subnet.min.io + service.beta.openshift.io/serving-cert-secret-name: console-tls + creationTimestamp: null + labels: + app.kubernetes.io/instance: minio-operator + app.kubernetes.io/name: operator + name: console + name: console +spec: + ports: + - name: http + port: 9090 + targetPort: 0 + - name: https + port: 9443 + targetPort: 0 + selector: + app: console +status: + loadBalancer: {} diff --git a/bundles/certified-operators/5.0.10/manifests/minio-operator.clusterserviceversion.yaml b/bundles/certified-operators/5.0.10/manifests/minio-operator.clusterserviceversion.yaml new file mode 100644 index 00000000000..0359a8421f7 --- /dev/null +++ b/bundles/certified-operators/5.0.10/manifests/minio-operator.clusterserviceversion.yaml @@ -0,0 +1,765 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [ + { + "apiVersion": "minio.min.io/v2", + "kind": "Tenant", + "metadata": { + "annotations": { + "prometheus.io/path": "/minio/v2/metrics/cluster", + "prometheus.io/port": "9000", + "prometheus.io/scrape": "true" + }, + "labels": { + "app": "minio" + }, + "name": "myminio", + "namespace": "minio-operator" + }, + "spec": { + "certConfig": {}, + "configuration": { + "name": "storage-configuration" + }, + "env": [], + "externalCaCertSecret": [], + "externalCertSecret": [], + "externalClientCertSecrets": [], + "features": { + "bucketDNS": false, + "domains": {} + }, + "image": "quay.io/minio/minio@sha256:7e697b900f60d68e9edd2e8fc0dccd158e98938d924298612c5bbd294f2a1e65", + "imagePullSecret": {}, + "mountPath": "/export", + "podManagementPolicy": "Parallel", + "pools": [ + { + "containerSecurityContext": {}, + "name": "pool-0", + "securityContext": {}, + "servers": 4, + "volumeClaimTemplate": { + "metadata": { + "name": "data" + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "2Gi" + } + } + } + }, + "volumesPerServer": 2 + } + ], + "priorityClassName": "", + "requestAutoCert": true, + "serviceAccountName": "", + "serviceMetadata": { + "consoleServiceAnnotations": {}, + "consoleServiceLabels": {}, + "minioServiceAnnotations": {}, + "minioServiceLabels": {} + }, + "subPath": "", + "users": [ + { + "name": "storage-user" + } + ] + } + } + ] + capabilities: Full Lifecycle + categories: AI/Machine Learning, Big Data, Cloud Provider, Storage + createdAt: "2023-10-12T17:54:20Z" + description: |- + MinIO is a Kubernetes-native high performance object store with an + S3-compatible API. The MinIO Operator supports deploying MinIO Tenants + onto any Kubernetes. + k8sMinVersion: "1.18" + operatorframework.io/suggested-namespace: minio-operator + operators.operatorframework.io/builder: operator-sdk-v1.32.0 + operators.operatorframework.io/project_layout: unknown + repository: https://github.com/minio/operator + containerImage: quay.io/minio/operator:v5.0.10 + name: minio-operator.v5.0.10 + namespace: minio-operator +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - kind: PolicyBinding + name: policybindings.sts.min.io + version: v1alpha1 + - kind: Tenant + name: tenants.minio.min.io + version: v2 + description: |- + ## Overview + + + The MinIO Operator brings native support for deploying and managing MinIO + deployments (“MinIO Tenants”) on a Kubernetes cluster. + + + MinIO is a high performance, Kubernetes native object storage suite. With an + extensive list of enterprise features, it is scalable, secure and resilient + while remaining remarkably simple to deploy and operate at scale. + Software-defined, MinIO can run on any infrastructure and in any cloud - + public, private or edge. MinIO is the world's fastest object storage and can + run the broadest set of workloads in the industry. It is widely considered + to be the leader in compatibility with Amazon's S3 API. + + ## Features + + + The MinIO Operator takes care of the deployment of MinIO Tenant along with: + + * TLS Certificate Management + + * Configuration of the encryption at rest + + * Cluster expansion + + * Hot Updates + + * Users and Buckets bootstrapping + + ## Prerequisites for enabling this Operator + + * At least Kubernetes 1.18 + + * [CSR + Capability](https://kubernetes.io/docs/reference/access-authn-authz/certificate-signing-requests/) + must be enabled + + * Locally attached volumes for performance or some CSI to provision block + storage to the MinIO pods. + displayName: Minio Operator + icon: + - base64data: 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 + mediatype: image/png + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - "" + resources: + - secrets + verbs: + - get + - watch + - create + - list + - patch + - update + - delete + - deletecollection + - apiGroups: + - "" + resources: + - namespaces + - services + - events + - resourcequotas + - nodes + verbs: + - get + - watch + - create + - list + - patch + - apiGroups: + - "" + resources: + - pods + verbs: + - get + - watch + - create + - list + - patch + - delete + - deletecollection + - apiGroups: + - "" + resources: + - persistentvolumeclaims + verbs: + - deletecollection + - list + - get + - watch + - update + - apiGroups: + - storage.k8s.io + resources: + - storageclasses + verbs: + - get + - watch + - create + - list + - patch + - apiGroups: + - apps + resources: + - statefulsets + - deployments + verbs: + - get + - create + - list + - patch + - watch + - update + - delete + - apiGroups: + - batch + resources: + - jobs + verbs: + - get + - create + - list + - patch + - watch + - update + - delete + - apiGroups: + - certificates.k8s.io + resources: + - certificatesigningrequests + - certificatesigningrequests/approval + - certificatesigningrequests/status + verbs: + - update + - create + - get + - delete + - list + - apiGroups: + - minio.min.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - min.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - "" + resources: + - persistentvolumes + verbs: + - get + - list + - watch + - create + - delete + - apiGroups: + - "" + resources: + - persistentvolumeclaims + verbs: + - get + - list + - watch + - update + - apiGroups: + - "" + resources: + - events + verbs: + - create + - list + - watch + - update + - patch + - apiGroups: + - snapshot.storage.k8s.io + resources: + - volumesnapshots + verbs: + - get + - list + - apiGroups: + - snapshot.storage.k8s.io + resources: + - volumesnapshotcontents + verbs: + - get + - list + - apiGroups: + - storage.k8s.io + resources: + - csinodes + verbs: + - get + - list + - watch + - apiGroups: + - storage.k8s.io + resources: + - volumeattachments + verbs: + - get + - list + - watch + - apiGroups: + - "" + resources: + - endpoints + verbs: + - get + - list + - watch + - create + - update + - delete + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - get + - list + - watch + - create + - update + - delete + - apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - get + - list + - watch + - create + - update + - delete + - apiGroups: + - "" + resources: + - pod + - pods/log + verbs: + - get + - list + - watch + serviceAccountName: console-sa + - rules: + - apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - get + - update + - apiGroups: + - "" + resources: + - persistentvolumeclaims + verbs: + - get + - update + - list + - apiGroups: + - "" + resources: + - namespaces + - nodes + verbs: + - get + - watch + - list + - apiGroups: + - "" + resources: + - pods + - services + - events + - configmaps + verbs: + - get + - watch + - create + - list + - delete + - deletecollection + - update + - patch + - apiGroups: + - "" + resources: + - secrets + verbs: + - get + - watch + - create + - update + - list + - delete + - deletecollection + - apiGroups: + - "" + resources: + - serviceaccounts + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - rbac.authorization.k8s.io + resources: + - roles + - rolebindings + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - apps + resources: + - statefulsets + - deployments + - deployments/finalizers + verbs: + - get + - create + - list + - patch + - watch + - update + - delete + - apiGroups: + - batch + resources: + - jobs + verbs: + - get + - create + - list + - patch + - watch + - update + - delete + - apiGroups: + - certificates.k8s.io + resources: + - certificatesigningrequests + - certificatesigningrequests/approval + - certificatesigningrequests/status + verbs: + - update + - create + - get + - delete + - list + - apiGroups: + - certificates.k8s.io + resourceNames: + - kubernetes.io/legacy-unknown + - kubernetes.io/kube-apiserver-client + - kubernetes.io/kubelet-serving + - beta.eks.amazonaws.com/app-serving + resources: + - signers + verbs: + - approve + - sign + - apiGroups: + - authentication.k8s.io + resources: + - tokenreviews + verbs: + - create + - apiGroups: + - minio.min.io + - sts.min.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - min.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - monitoring.coreos.com + resources: + - prometheuses + verbs: + - '*' + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - get + - update + - create + - apiGroups: + - policy + resources: + - poddisruptionbudgets + verbs: + - create + - delete + - get + - list + - patch + - update + - deletecollection + serviceAccountName: minio-operator + deployments: + - label: + app.kubernetes.io/instance: minio-operator + app.kubernetes.io/name: operator + name: console + spec: + replicas: 1 + selector: + matchLabels: + app: console + strategy: {} + template: + metadata: + annotations: + operator.min.io/authors: MinIO, Inc. + operator.min.io/license: AGPLv3 + operator.min.io/support: https://subnet.min.io + labels: + app: console + app.kubernetes.io/instance: minio-operator-console + app.kubernetes.io/name: operator + spec: + containers: + - args: + - ui + - --certs-dir=/tmp/certs + image: quay.io/minio/operator:v5.0.10 + imagePullPolicy: IfNotPresent + name: console + ports: + - containerPort: 9090 + name: http + - containerPort: 9443 + name: https + resources: {} + securityContext: {} + volumeMounts: + - mountPath: /tmp/certs + name: tls-certificates + serviceAccountName: console-sa + volumes: + - name: tls-certificates + projected: + defaultMode: 420 + sources: + - secret: + items: + - key: tls.crt + path: public.crt + - key: tls.key + path: private.key + name: console-tls + optional: true + - configMap: + items: + - key: service-ca.crt + path: CAs/ca.crt + name: openshift-service-ca.crt + optional: true + - label: + app.kubernetes.io/instance: minio-operator + app.kubernetes.io/name: operator + name: minio-operator + spec: + replicas: 1 + selector: + matchLabels: + name: minio-operator + strategy: + type: Recreate + template: + metadata: + annotations: + operator.min.io/authors: MinIO, Inc. + operator.min.io/license: AGPLv3 + operator.min.io/support: https://subnet.min.io + labels: + app.kubernetes.io/instance: minio-operator + app.kubernetes.io/name: operator + name: minio-operator + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: name + operator: In + values: + - minio-operator + topologyKey: kubernetes.io/hostname + containers: + - args: + - controller + env: + - name: MINIO_OPERATOR_RUNTIME + value: OpenShift + - name: MINIO_CONSOLE_TLS_ENABLE + value: "on" + - name: OPERATOR_STS_ENABLED + value: "off" + image: quay.io/minio/operator:v5.0.10 + imagePullPolicy: IfNotPresent + name: minio-operator + resources: + requests: + cpu: 200m + ephemeral-storage: 500Mi + memory: 256Mi + securityContext: {} + volumeMounts: + - mountPath: /tmp/service-ca + name: openshift-service-ca + - mountPath: /tmp/csr-signer-ca + name: openshift-csr-signer-ca + - mountPath: /tmp/sts + name: sts-tls + serviceAccountName: minio-operator + volumes: + - name: sts-tls + projected: + defaultMode: 420 + sources: + - secret: + items: + - key: tls.crt + path: public.crt + - key: tls.key + path: private.key + name: sts-tls + optional: true + - configMap: + items: + - key: service-ca.crt + path: service-ca.crt + name: openshift-service-ca.crt + optional: true + name: openshift-service-ca + - name: openshift-csr-signer-ca + projected: + defaultMode: 420 + sources: + - secret: + items: + - key: tls.crt + path: tls.crt + name: openshift-csr-signer-ca + optional: true + strategy: deployment + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - S3 + - MinIO + - Object Storage + labels: + operatorframework.io/arch.386: supported + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.amd64p32: supported + operatorframework.io/arch.arm: supported + operatorframework.io/arch.arm64: supported + operatorframework.io/arch.arm64be: supported + operatorframework.io/arch.armbe: supported + operatorframework.io/arch.loong64: supported + operatorframework.io/arch.mips: supported + operatorframework.io/arch.mips64: supported + operatorframework.io/arch.mips64le: supported + operatorframework.io/arch.mips64p32: supported + operatorframework.io/arch.mips64p32le: supported + operatorframework.io/arch.mipsle: supported + operatorframework.io/arch.ppc: supported + operatorframework.io/arch.ppc64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.riscv: supported + operatorframework.io/arch.riscv64: supported + operatorframework.io/arch.s390: supported + operatorframework.io/arch.s390x: supported + operatorframework.io/arch.sparc: supported + operatorframework.io/arch.sparc64: supported + operatorframework.io/arch.wasm: supported + operatorframework.io/os.aix: supported + operatorframework.io/os.android: supported + operatorframework.io/os.darwin: supported + operatorframework.io/os.dragonfly: supported + operatorframework.io/os.freebsd: supported + operatorframework.io/os.hurd: supported + operatorframework.io/os.illumos: supported + operatorframework.io/os.ios: supported + operatorframework.io/os.js: supported + operatorframework.io/os.linux: supported + operatorframework.io/os.nacl: supported + operatorframework.io/os.netbsd: supported + operatorframework.io/os.openbsd: supported + operatorframework.io/os.plan9: supported + operatorframework.io/os.solaris: supported + operatorframework.io/os.windows: supported + operatorframework.io/os.zos: supported + links: + - name: Website + url: https://min.io + - name: Support + url: https://subnet.min.io + - name: Github + url: https://github.com/minio/operator + maintainers: + - email: dev@min.io + name: MinIO Team + maturity: stable + provider: + name: MinIO Inc + url: https://min.io + relatedImages: + - image: quay.io/minio/minio@sha256:7e697b900f60d68e9edd2e8fc0dccd158e98938d924298612c5bbd294f2a1e65 + name: minio-7e697b900f60d68e9edd2e8fc0dccd158e98938d924298612c5bbd294f2a1e65-annotation + - image: minio/operator@sha256:170b154d2c61c5a6f9dfbe4137e78815102a99fb9ab3aa6baf68750647e6261a + name: console + - image: minio/operator@sha256:170b154d2c61c5a6f9dfbe4137e78815102a99fb9ab3aa6baf68750647e6261a + name: minio-operator + version: 5.0.10 + replaces: minio-operator.v5.0.9 diff --git a/bundles/certified-operators/5.0.10/manifests/minio.min.io_tenants.yaml b/bundles/certified-operators/5.0.10/manifests/minio.min.io_tenants.yaml new file mode 100644 index 00000000000..d18f067d261 --- /dev/null +++ b/bundles/certified-operators/5.0.10/manifests/minio.min.io_tenants.yaml @@ -0,0 +1,5004 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.11.1 + operator.min.io/authors: MinIO, Inc. + operator.min.io/license: AGPLv3 + operator.min.io/support: https://subnet.min.io + creationTimestamp: null + name: tenants.minio.min.io +spec: + group: minio.min.io + names: + kind: Tenant + listKind: TenantList + plural: tenants + shortNames: + - tenant + singular: tenant + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.currentState + name: State + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v2 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + scheduler: + properties: + name: + type: string + required: + - name + type: object + spec: + properties: + additionalVolumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + additionalVolumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + azureDisk: + properties: + cachingMode: + type: string + diskName: + type: string + diskURI: + type: string + fsType: + type: string + kind: + type: string + readOnly: + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + properties: + readOnly: + type: boolean + secretName: + type: string + shareName: + type: string + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: + type: string + type: array + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - monitors + type: object + cinder: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + required: + - driver + type: object + downwardAPI: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + type: object + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + finalizers: + items: + type: string + type: array + labels: + additionalProperties: + type: string + type: object + name: + type: string + namespace: + type: string + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + format: int32 + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + wwids: + items: + type: string + type: array + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + required: + - driver + type: object + flocker: + properties: + datasetName: + type: string + datasetUUID: + type: string + type: object + gcePersistentDisk: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + pdName: + type: string + readOnly: + type: boolean + required: + - pdName + type: object + gitRepo: + properties: + directory: + type: string + repository: + type: string + revision: + type: string + required: + - repository + type: object + glusterfs: + properties: + endpoints: + type: string + path: + type: string + readOnly: + type: boolean + required: + - endpoints + - path + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + iscsi: + properties: + chapAuthDiscovery: + type: boolean + chapAuthSession: + type: boolean + fsType: + type: string + initiatorName: + type: string + iqn: + type: string + iscsiInterface: + type: string + lun: + format: int32 + type: integer + portals: + items: + type: string + type: array + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + targetPortal: + type: string + required: + - iqn + - lun + - targetPortal + type: object + name: + type: string + nfs: + properties: + path: + type: string + readOnly: + type: boolean + server: + type: string + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: + type: string + readOnly: + type: boolean + required: + - claimName + type: object + photonPersistentDisk: + properties: + fsType: + type: string + pdID: + type: string + required: + - pdID + type: object + portworxVolume: + properties: + fsType: + type: string + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + projected: + properties: + defaultMode: + format: int32 + type: integer + sources: + items: + properties: + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + format: int64 + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + type: object + quobyte: + properties: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + type: string + monitors: + items: + type: string + type: array + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - image + - monitors + type: object + scaleIO: + properties: + fsType: + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + sslEnabled: + type: boolean + storageMode: + type: string + storagePool: + type: string + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system + type: object + secret: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + volumeName: + type: string + volumeNamespace: + type: string + type: object + vsphereVolume: + properties: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath + type: object + required: + - name + type: object + type: array + buckets: + items: + properties: + name: + type: string + objectLock: + type: boolean + region: + type: string + type: object + type: array + certConfig: + properties: + commonName: + type: string + dnsNames: + items: + type: string + type: array + organizationName: + items: + type: string + type: array + type: object + configuration: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + credsSecret: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + exposeServices: + properties: + console: + type: boolean + minio: + type: boolean + type: object + externalCaCertSecret: + items: + properties: + name: + type: string + type: + type: string + required: + - name + type: object + type: array + externalCertSecret: + items: + properties: + name: + type: string + type: + type: string + required: + - name + type: object + type: array + externalClientCertSecret: + properties: + name: + type: string + type: + type: string + required: + - name + type: object + externalClientCertSecrets: + items: + properties: + name: + type: string + type: + type: string + required: + - name + type: object + type: array + features: + properties: + bucketDNS: + type: boolean + domains: + properties: + console: + type: string + minio: + items: + type: string + type: array + type: object + enableSFTP: + type: boolean + type: object + image: + type: string + imagePullPolicy: + type: string + imagePullSecret: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + initContainers: + items: + properties: + args: + items: + type: string + type: array + command: + items: + type: string + type: array + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + prefix: + type: string + secretRef: + properties: + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + type: object + type: array + image: + type: string + imagePullPolicy: + type: string + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + type: object + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + name: + type: string + ports: + items: + properties: + containerPort: + format: int32 + type: integer + hostIP: + type: string + hostPort: + format: int32 + type: integer + name: + type: string + protocol: + default: TCP + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-map-keys: + - containerPort + - protocol + x-kubernetes-list-type: map + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + securityContext: + properties: + allowPrivilegeEscalation: + type: boolean + capabilities: + properties: + add: + items: + type: string + type: array + drop: + items: + type: string + type: array + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + startupProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + stdin: + type: boolean + stdinOnce: + type: boolean + terminationMessagePath: + type: string + terminationMessagePolicy: + type: string + tty: + type: boolean + volumeDevices: + items: + properties: + devicePath: + type: string + name: + type: string + required: + - devicePath + - name + type: object + type: array + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + workingDir: + type: string + required: + - name + type: object + type: array + kes: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + x-kubernetes-map-type: atomic + weight: + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + x-kubernetes-map-type: atomic + type: array + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + type: object + type: object + annotations: + additionalProperties: + type: string + type: object + clientCertSecret: + properties: + name: + type: string + type: + type: string + required: + - name + type: object + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + externalCertSecret: + properties: + name: + type: string + type: + type: string + required: + - name + type: object + gcpCredentialSecretName: + type: string + gcpWorkloadIdentityPool: + type: string + image: + type: string + imagePullPolicy: + type: string + kesSecret: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + keyName: + type: string + labels: + additionalProperties: + type: string + type: object + nodeSelector: + additionalProperties: + type: string + type: object + replicas: + format: int32 + type: integer + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + securityContext: + properties: + fsGroup: + format: int64 + type: integer + fsGroupChangePolicy: + type: string + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + supplementalGroups: + items: + format: int64 + type: integer + type: array + sysctls: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + serviceAccountName: + type: string + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + format: int64 + type: integer + value: + type: string + type: object + type: array + topologySpreadConstraints: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + maxSkew: + format: int32 + type: integer + minDomains: + format: int32 + type: integer + nodeAffinityPolicy: + type: string + nodeTaintsPolicy: + type: string + topologyKey: + type: string + whenUnsatisfiable: + type: string + required: + - maxSkew + - topologyKey + - whenUnsatisfiable + type: object + type: array + required: + - kesSecret + type: object + liveness: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + logging: + properties: + anonymous: + type: boolean + json: + type: boolean + quiet: + type: boolean + type: object + mountPath: + type: string + podManagementPolicy: + type: string + pools: + items: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + x-kubernetes-map-type: atomic + weight: + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + x-kubernetes-map-type: atomic + type: array + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + type: object + type: object + annotations: + additionalProperties: + type: string + type: object + containerSecurityContext: + properties: + allowPrivilegeEscalation: + type: boolean + capabilities: + properties: + add: + items: + type: string + type: array + drop: + items: + type: string + type: array + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + labels: + additionalProperties: + type: string + type: object + name: + type: string + nodeSelector: + additionalProperties: + type: string + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + runtimeClassName: + type: string + securityContext: + properties: + fsGroup: + format: int64 + type: integer + fsGroupChangePolicy: + type: string + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + supplementalGroups: + items: + format: int64 + type: integer + type: array + sysctls: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + servers: + format: int32 + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + format: int64 + type: integer + value: + type: string + type: object + type: array + topologySpreadConstraints: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + maxSkew: + format: int32 + type: integer + minDomains: + format: int32 + type: integer + nodeAffinityPolicy: + type: string + nodeTaintsPolicy: + type: string + topologyKey: + type: string + whenUnsatisfiable: + type: string + required: + - maxSkew + - topologyKey + - whenUnsatisfiable + type: object + type: array + volumeClaimTemplate: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + finalizers: + items: + type: string + type: array + labels: + additionalProperties: + type: string + type: object + name: + type: string + namespace: + type: string + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + status: + properties: + accessModes: + items: + type: string + type: array + allocatedResources: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + capacity: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + conditions: + items: + properties: + lastProbeTime: + format: date-time + type: string + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + type: string + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + phase: + type: string + resizeStatus: + type: string + type: object + type: object + volumesPerServer: + format: int32 + type: integer + required: + - servers + - volumeClaimTemplate + - volumesPerServer + type: object + type: array + priorityClassName: + type: string + prometheusOperator: + type: boolean + readiness: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + requestAutoCert: + type: boolean + serviceAccountName: + type: string + serviceMetadata: + properties: + consoleServiceAnnotations: + additionalProperties: + type: string + type: object + consoleServiceLabels: + additionalProperties: + type: string + type: object + minioServiceAnnotations: + additionalProperties: + type: string + type: object + minioServiceLabels: + additionalProperties: + type: string + type: object + type: object + sideCars: + properties: + containers: + items: + properties: + args: + items: + type: string + type: array + command: + items: + type: string + type: array + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + prefix: + type: string + secretRef: + properties: + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + type: object + type: array + image: + type: string + imagePullPolicy: + type: string + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + type: object + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + name: + type: string + ports: + items: + properties: + containerPort: + format: int32 + type: integer + hostIP: + type: string + hostPort: + format: int32 + type: integer + name: + type: string + protocol: + default: TCP + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-map-keys: + - containerPort + - protocol + x-kubernetes-list-type: map + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + securityContext: + properties: + allowPrivilegeEscalation: + type: boolean + capabilities: + properties: + add: + items: + type: string + type: array + drop: + items: + type: string + type: array + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + startupProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + stdin: + type: boolean + stdinOnce: + type: boolean + terminationMessagePath: + type: string + terminationMessagePolicy: + type: string + tty: + type: boolean + volumeDevices: + items: + properties: + devicePath: + type: string + name: + type: string + required: + - devicePath + - name + type: object + type: array + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + workingDir: + type: string + required: + - name + type: object + type: array + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + volumeClaimTemplates: + items: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + finalizers: + items: + type: string + type: array + labels: + additionalProperties: + type: string + type: object + name: + type: string + namespace: + type: string + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + status: + properties: + accessModes: + items: + type: string + type: array + allocatedResources: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + capacity: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + conditions: + items: + properties: + lastProbeTime: + format: date-time + type: string + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + type: string + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + phase: + type: string + resizeStatus: + type: string + type: object + type: object + type: array + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + azureDisk: + properties: + cachingMode: + type: string + diskName: + type: string + diskURI: + type: string + fsType: + type: string + kind: + type: string + readOnly: + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + properties: + readOnly: + type: boolean + secretName: + type: string + shareName: + type: string + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: + type: string + type: array + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - monitors + type: object + cinder: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + required: + - driver + type: object + downwardAPI: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + type: object + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + finalizers: + items: + type: string + type: array + labels: + additionalProperties: + type: string + type: object + name: + type: string + namespace: + type: string + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + format: int32 + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + wwids: + items: + type: string + type: array + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + required: + - driver + type: object + flocker: + properties: + datasetName: + type: string + datasetUUID: + type: string + type: object + gcePersistentDisk: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + pdName: + type: string + readOnly: + type: boolean + required: + - pdName + type: object + gitRepo: + properties: + directory: + type: string + repository: + type: string + revision: + type: string + required: + - repository + type: object + glusterfs: + properties: + endpoints: + type: string + path: + type: string + readOnly: + type: boolean + required: + - endpoints + - path + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + iscsi: + properties: + chapAuthDiscovery: + type: boolean + chapAuthSession: + type: boolean + fsType: + type: string + initiatorName: + type: string + iqn: + type: string + iscsiInterface: + type: string + lun: + format: int32 + type: integer + portals: + items: + type: string + type: array + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + targetPortal: + type: string + required: + - iqn + - lun + - targetPortal + type: object + name: + type: string + nfs: + properties: + path: + type: string + readOnly: + type: boolean + server: + type: string + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: + type: string + readOnly: + type: boolean + required: + - claimName + type: object + photonPersistentDisk: + properties: + fsType: + type: string + pdID: + type: string + required: + - pdID + type: object + portworxVolume: + properties: + fsType: + type: string + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + projected: + properties: + defaultMode: + format: int32 + type: integer + sources: + items: + properties: + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + format: int64 + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + type: object + quobyte: + properties: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + type: string + monitors: + items: + type: string + type: array + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - image + - monitors + type: object + scaleIO: + properties: + fsType: + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + sslEnabled: + type: boolean + storageMode: + type: string + storagePool: + type: string + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system + type: object + secret: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + volumeName: + type: string + volumeNamespace: + type: string + type: object + vsphereVolume: + properties: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath + type: object + required: + - name + type: object + type: array + required: + - containers + type: object + startup: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + subPath: + type: string + users: + items: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + type: array + required: + - pools + type: object + status: + properties: + availableReplicas: + format: int32 + type: integer + certificates: + nullable: true + properties: + autoCertEnabled: + nullable: true + type: boolean + customCertificates: + nullable: true + properties: + client: + items: + properties: + certName: + type: string + domains: + items: + type: string + type: array + expiresIn: + type: string + expiry: + type: string + serialNo: + type: string + type: object + type: array + minio: + items: + properties: + certName: + type: string + domains: + items: + type: string + type: array + expiresIn: + type: string + expiry: + type: string + serialNo: + type: string + type: object + type: array + minioCAs: + items: + properties: + certName: + type: string + domains: + items: + type: string + type: array + expiresIn: + type: string + expiry: + type: string + serialNo: + type: string + type: object + type: array + type: object + type: object + currentState: + type: string + drivesHealing: + format: int32 + type: integer + drivesOffline: + format: int32 + type: integer + drivesOnline: + format: int32 + type: integer + healthMessage: + type: string + healthStatus: + type: string + pools: + items: + properties: + legacySecurityContext: + type: boolean + ssName: + type: string + state: + type: string + required: + - ssName + - state + type: object + nullable: true + type: array + provisionedBuckets: + type: boolean + provisionedUsers: + type: boolean + revision: + format: int32 + type: integer + syncVersion: + type: string + usage: + properties: + capacity: + format: int64 + type: integer + rawCapacity: + format: int64 + type: integer + rawUsage: + format: int64 + type: integer + tiers: + items: + properties: + Name: + type: string + Type: + type: string + totalSize: + format: int64 + type: integer + required: + - Name + - totalSize + type: object + type: array + usage: + format: int64 + type: integer + type: object + waitingOnReady: + format: date-time + type: string + writeQuorum: + format: int32 + type: integer + required: + - availableReplicas + - certificates + - currentState + - pools + - revision + - syncVersion + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/bundles/certified-operators/5.0.10/manifests/operator_v1_service.yaml b/bundles/certified-operators/5.0.10/manifests/operator_v1_service.yaml new file mode 100644 index 00000000000..011f9599ff8 --- /dev/null +++ b/bundles/certified-operators/5.0.10/manifests/operator_v1_service.yaml @@ -0,0 +1,24 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: + operator.min.io/authors: MinIO, Inc. + operator.min.io/license: AGPLv3 + operator.min.io/support: https://subnet.min.io + creationTimestamp: null + labels: + app.kubernetes.io/instance: minio-operator + app.kubernetes.io/name: operator + name: minio-operator + name: operator +spec: + ports: + - name: http + port: 4221 + targetPort: 0 + selector: + name: minio-operator + operator: leader + type: ClusterIP +status: + loadBalancer: {} diff --git a/bundles/certified-operators/5.0.10/manifests/sts.min.io_policybindings.yaml b/bundles/certified-operators/5.0.10/manifests/sts.min.io_policybindings.yaml new file mode 100644 index 00000000000..fbbf279207d --- /dev/null +++ b/bundles/certified-operators/5.0.10/manifests/sts.min.io_policybindings.yaml @@ -0,0 +1,84 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.11.1 + operator.min.io/authors: MinIO, Inc. + operator.min.io/license: AGPLv3 + operator.min.io/support: https://subnet.min.io + creationTimestamp: null + name: policybindings.sts.min.io +spec: + group: sts.min.io + names: + kind: PolicyBinding + listKind: PolicyBindingList + plural: policybindings + shortNames: + - policybinding + singular: policybinding + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.currentState + name: State + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + properties: + application: + properties: + namespace: + type: string + serviceaccount: + type: string + required: + - namespace + - serviceaccount + type: object + policies: + items: + type: string + type: array + required: + - application + - policies + type: object + status: + properties: + currentState: + type: string + usage: + nullable: true + properties: + authotizations: + format: int64 + type: integer + type: object + required: + - currentState + - usage + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/bundles/certified-operators/5.0.10/manifests/sts_v1_service.yaml b/bundles/certified-operators/5.0.10/manifests/sts_v1_service.yaml new file mode 100644 index 00000000000..cdec8486952 --- /dev/null +++ b/bundles/certified-operators/5.0.10/manifests/sts_v1_service.yaml @@ -0,0 +1,22 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: + operator.min.io/authors: MinIO, Inc. + operator.min.io/license: AGPLv3 + operator.min.io/support: https://subnet.min.io + service.beta.openshift.io/serving-cert-secret-name: sts-tls + creationTimestamp: null + labels: + name: minio-operator + name: sts +spec: + ports: + - name: https + port: 4223 + targetPort: 4223 + selector: + name: minio-operator + type: ClusterIP +status: + loadBalancer: {} diff --git a/bundles/certified-operators/5.0.10/metadata/annotations.yaml b/bundles/certified-operators/5.0.10/metadata/annotations.yaml new file mode 100644 index 00000000000..eb5623e0117 --- /dev/null +++ b/bundles/certified-operators/5.0.10/metadata/annotations.yaml @@ -0,0 +1,12 @@ +annotations: + # Core bundle annotations. + operators.operatorframework.io.bundle.mediatype.v1: registry+v1 + operators.operatorframework.io.bundle.manifests.v1: manifests/ + operators.operatorframework.io.bundle.metadata.v1: metadata/ + operators.operatorframework.io.bundle.package.v1: minio-operator + operators.operatorframework.io.bundle.channels.v1: stable + # Annotations to specify OCP versions compatibility. + com.redhat.openshift.versions: v4.8-v4.13 + # Annotation to add default bundle channel as potential is declared + operators.operatorframework.io.bundle.channel.default.v1: stable + operatorframework.io/suggested-namespace: minio-operator diff --git a/bundles/community-operators/5.0.10/manifests/console-env_v1_configmap.yaml b/bundles/community-operators/5.0.10/manifests/console-env_v1_configmap.yaml new file mode 100644 index 00000000000..1c276708cd0 --- /dev/null +++ b/bundles/community-operators/5.0.10/manifests/console-env_v1_configmap.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +data: + CONSOLE_PORT: "9090" + CONSOLE_TLS_PORT: "9443" +kind: ConfigMap +metadata: + annotations: + operator.min.io/authors: MinIO, Inc. + operator.min.io/license: AGPLv3 + operator.min.io/support: https://subnet.min.io + name: console-env diff --git a/bundles/community-operators/5.0.10/manifests/console-sa-secret_v1_secret.yaml b/bundles/community-operators/5.0.10/manifests/console-sa-secret_v1_secret.yaml new file mode 100644 index 00000000000..8f7c7e18363 --- /dev/null +++ b/bundles/community-operators/5.0.10/manifests/console-sa-secret_v1_secret.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Secret +metadata: + annotations: + kubernetes.io/service-account.name: console-sa + operator.min.io/authors: MinIO, Inc. + operator.min.io/license: AGPLv3 + operator.min.io/support: https://subnet.min.io + name: console-sa-secret +type: kubernetes.io/service-account-token diff --git a/bundles/community-operators/5.0.10/manifests/console_v1_service.yaml b/bundles/community-operators/5.0.10/manifests/console_v1_service.yaml new file mode 100644 index 00000000000..1d2af3ffb8a --- /dev/null +++ b/bundles/community-operators/5.0.10/manifests/console_v1_service.yaml @@ -0,0 +1,26 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: + operator.min.io/authors: MinIO, Inc. + operator.min.io/license: AGPLv3 + operator.min.io/support: https://subnet.min.io + service.beta.openshift.io/serving-cert-secret-name: console-tls + creationTimestamp: null + labels: + app.kubernetes.io/instance: minio-operator + app.kubernetes.io/name: operator + name: console + name: console +spec: + ports: + - name: http + port: 9090 + targetPort: 0 + - name: https + port: 9443 + targetPort: 0 + selector: + app: console +status: + loadBalancer: {} diff --git a/bundles/community-operators/5.0.10/manifests/minio-operator.clusterserviceversion.yaml b/bundles/community-operators/5.0.10/manifests/minio-operator.clusterserviceversion.yaml new file mode 100644 index 00000000000..5c753ab1d8d --- /dev/null +++ b/bundles/community-operators/5.0.10/manifests/minio-operator.clusterserviceversion.yaml @@ -0,0 +1,765 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [ + { + "apiVersion": "minio.min.io/v2", + "kind": "Tenant", + "metadata": { + "annotations": { + "prometheus.io/path": "/minio/v2/metrics/cluster", + "prometheus.io/port": "9000", + "prometheus.io/scrape": "true" + }, + "labels": { + "app": "minio" + }, + "name": "myminio", + "namespace": "minio-operator" + }, + "spec": { + "certConfig": {}, + "configuration": { + "name": "storage-configuration" + }, + "env": [], + "externalCaCertSecret": [], + "externalCertSecret": [], + "externalClientCertSecrets": [], + "features": { + "bucketDNS": false, + "domains": {} + }, + "image": "quay.io/minio/minio@sha256:7e697b900f60d68e9edd2e8fc0dccd158e98938d924298612c5bbd294f2a1e65", + "imagePullSecret": {}, + "mountPath": "/export", + "podManagementPolicy": "Parallel", + "pools": [ + { + "containerSecurityContext": {}, + "name": "pool-0", + "securityContext": {}, + "servers": 4, + "volumeClaimTemplate": { + "metadata": { + "name": "data" + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "2Gi" + } + } + } + }, + "volumesPerServer": 2 + } + ], + "priorityClassName": "", + "requestAutoCert": true, + "serviceAccountName": "", + "serviceMetadata": { + "consoleServiceAnnotations": {}, + "consoleServiceLabels": {}, + "minioServiceAnnotations": {}, + "minioServiceLabels": {} + }, + "subPath": "", + "users": [ + { + "name": "storage-user" + } + ] + } + } + ] + capabilities: Full Lifecycle + categories: AI/Machine Learning, Big Data, Cloud Provider, Storage + createdAt: "2023-10-12T17:54:27Z" + description: |- + MinIO is a Kubernetes-native high performance object store with an + S3-compatible API. The MinIO Operator supports deploying MinIO Tenants + onto any Kubernetes. + k8sMinVersion: "1.18" + operatorframework.io/suggested-namespace: minio-operator + operators.operatorframework.io/builder: operator-sdk-v1.32.0 + operators.operatorframework.io/project_layout: unknown + repository: https://github.com/minio/operator + containerImage: quay.io/minio/operator:v5.0.10 + name: minio-operator.v5.0.10 + namespace: minio-operator +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - kind: PolicyBinding + name: policybindings.sts.min.io + version: v1alpha1 + - kind: Tenant + name: tenants.minio.min.io + version: v2 + description: |- + ## Overview + + + The MinIO Operator brings native support for deploying and managing MinIO + deployments (“MinIO Tenants”) on a Kubernetes cluster. + + + MinIO is a high performance, Kubernetes native object storage suite. With an + extensive list of enterprise features, it is scalable, secure and resilient + while remaining remarkably simple to deploy and operate at scale. + Software-defined, MinIO can run on any infrastructure and in any cloud - + public, private or edge. MinIO is the world's fastest object storage and can + run the broadest set of workloads in the industry. It is widely considered + to be the leader in compatibility with Amazon's S3 API. + + ## Features + + + The MinIO Operator takes care of the deployment of MinIO Tenant along with: + + * TLS Certificate Management + + * Configuration of the encryption at rest + + * Cluster expansion + + * Hot Updates + + * Users and Buckets bootstrapping + + ## Prerequisites for enabling this Operator + + * At least Kubernetes 1.18 + + * [CSR + Capability](https://kubernetes.io/docs/reference/access-authn-authz/certificate-signing-requests/) + must be enabled + + * Locally attached volumes for performance or some CSI to provision block + storage to the MinIO pods. + displayName: Minio Operator + icon: + - base64data: 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 + mediatype: image/png + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - "" + resources: + - secrets + verbs: + - get + - watch + - create + - list + - patch + - update + - delete + - deletecollection + - apiGroups: + - "" + resources: + - namespaces + - services + - events + - resourcequotas + - nodes + verbs: + - get + - watch + - create + - list + - patch + - apiGroups: + - "" + resources: + - pods + verbs: + - get + - watch + - create + - list + - patch + - delete + - deletecollection + - apiGroups: + - "" + resources: + - persistentvolumeclaims + verbs: + - deletecollection + - list + - get + - watch + - update + - apiGroups: + - storage.k8s.io + resources: + - storageclasses + verbs: + - get + - watch + - create + - list + - patch + - apiGroups: + - apps + resources: + - statefulsets + - deployments + verbs: + - get + - create + - list + - patch + - watch + - update + - delete + - apiGroups: + - batch + resources: + - jobs + verbs: + - get + - create + - list + - patch + - watch + - update + - delete + - apiGroups: + - certificates.k8s.io + resources: + - certificatesigningrequests + - certificatesigningrequests/approval + - certificatesigningrequests/status + verbs: + - update + - create + - get + - delete + - list + - apiGroups: + - minio.min.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - min.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - "" + resources: + - persistentvolumes + verbs: + - get + - list + - watch + - create + - delete + - apiGroups: + - "" + resources: + - persistentvolumeclaims + verbs: + - get + - list + - watch + - update + - apiGroups: + - "" + resources: + - events + verbs: + - create + - list + - watch + - update + - patch + - apiGroups: + - snapshot.storage.k8s.io + resources: + - volumesnapshots + verbs: + - get + - list + - apiGroups: + - snapshot.storage.k8s.io + resources: + - volumesnapshotcontents + verbs: + - get + - list + - apiGroups: + - storage.k8s.io + resources: + - csinodes + verbs: + - get + - list + - watch + - apiGroups: + - storage.k8s.io + resources: + - volumeattachments + verbs: + - get + - list + - watch + - apiGroups: + - "" + resources: + - endpoints + verbs: + - get + - list + - watch + - create + - update + - delete + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - get + - list + - watch + - create + - update + - delete + - apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - get + - list + - watch + - create + - update + - delete + - apiGroups: + - "" + resources: + - pod + - pods/log + verbs: + - get + - list + - watch + serviceAccountName: console-sa + - rules: + - apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - get + - update + - apiGroups: + - "" + resources: + - persistentvolumeclaims + verbs: + - get + - update + - list + - apiGroups: + - "" + resources: + - namespaces + - nodes + verbs: + - get + - watch + - list + - apiGroups: + - "" + resources: + - pods + - services + - events + - configmaps + verbs: + - get + - watch + - create + - list + - delete + - deletecollection + - update + - patch + - apiGroups: + - "" + resources: + - secrets + verbs: + - get + - watch + - create + - update + - list + - delete + - deletecollection + - apiGroups: + - "" + resources: + - serviceaccounts + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - rbac.authorization.k8s.io + resources: + - roles + - rolebindings + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - apps + resources: + - statefulsets + - deployments + - deployments/finalizers + verbs: + - get + - create + - list + - patch + - watch + - update + - delete + - apiGroups: + - batch + resources: + - jobs + verbs: + - get + - create + - list + - patch + - watch + - update + - delete + - apiGroups: + - certificates.k8s.io + resources: + - certificatesigningrequests + - certificatesigningrequests/approval + - certificatesigningrequests/status + verbs: + - update + - create + - get + - delete + - list + - apiGroups: + - certificates.k8s.io + resourceNames: + - kubernetes.io/legacy-unknown + - kubernetes.io/kube-apiserver-client + - kubernetes.io/kubelet-serving + - beta.eks.amazonaws.com/app-serving + resources: + - signers + verbs: + - approve + - sign + - apiGroups: + - authentication.k8s.io + resources: + - tokenreviews + verbs: + - create + - apiGroups: + - minio.min.io + - sts.min.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - min.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - monitoring.coreos.com + resources: + - prometheuses + verbs: + - '*' + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - get + - update + - create + - apiGroups: + - policy + resources: + - poddisruptionbudgets + verbs: + - create + - delete + - get + - list + - patch + - update + - deletecollection + serviceAccountName: minio-operator + deployments: + - label: + app.kubernetes.io/instance: minio-operator + app.kubernetes.io/name: operator + name: console + spec: + replicas: 1 + selector: + matchLabels: + app: console + strategy: {} + template: + metadata: + annotations: + operator.min.io/authors: MinIO, Inc. + operator.min.io/license: AGPLv3 + operator.min.io/support: https://subnet.min.io + labels: + app: console + app.kubernetes.io/instance: minio-operator-console + app.kubernetes.io/name: operator + spec: + containers: + - args: + - ui + - --certs-dir=/tmp/certs + image: quay.io/minio/operator:v5.0.10 + imagePullPolicy: IfNotPresent + name: console + ports: + - containerPort: 9090 + name: http + - containerPort: 9443 + name: https + resources: {} + securityContext: {} + volumeMounts: + - mountPath: /tmp/certs + name: tls-certificates + serviceAccountName: console-sa + volumes: + - name: tls-certificates + projected: + defaultMode: 420 + sources: + - secret: + items: + - key: tls.crt + path: public.crt + - key: tls.key + path: private.key + name: console-tls + optional: true + - configMap: + items: + - key: service-ca.crt + path: CAs/ca.crt + name: openshift-service-ca.crt + optional: true + - label: + app.kubernetes.io/instance: minio-operator + app.kubernetes.io/name: operator + name: minio-operator + spec: + replicas: 1 + selector: + matchLabels: + name: minio-operator + strategy: + type: Recreate + template: + metadata: + annotations: + operator.min.io/authors: MinIO, Inc. + operator.min.io/license: AGPLv3 + operator.min.io/support: https://subnet.min.io + labels: + app.kubernetes.io/instance: minio-operator + app.kubernetes.io/name: operator + name: minio-operator + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: name + operator: In + values: + - minio-operator + topologyKey: kubernetes.io/hostname + containers: + - args: + - controller + env: + - name: MINIO_OPERATOR_RUNTIME + value: OpenShift + - name: MINIO_CONSOLE_TLS_ENABLE + value: "on" + - name: OPERATOR_STS_ENABLED + value: "off" + image: quay.io/minio/operator:v5.0.10 + imagePullPolicy: IfNotPresent + name: minio-operator + resources: + requests: + cpu: 200m + ephemeral-storage: 500Mi + memory: 256Mi + securityContext: {} + volumeMounts: + - mountPath: /tmp/service-ca + name: openshift-service-ca + - mountPath: /tmp/csr-signer-ca + name: openshift-csr-signer-ca + - mountPath: /tmp/sts + name: sts-tls + serviceAccountName: minio-operator + volumes: + - name: sts-tls + projected: + defaultMode: 420 + sources: + - secret: + items: + - key: tls.crt + path: public.crt + - key: tls.key + path: private.key + name: sts-tls + optional: true + - configMap: + items: + - key: service-ca.crt + path: service-ca.crt + name: openshift-service-ca.crt + optional: true + name: openshift-service-ca + - name: openshift-csr-signer-ca + projected: + defaultMode: 420 + sources: + - secret: + items: + - key: tls.crt + path: tls.crt + name: openshift-csr-signer-ca + optional: true + strategy: deployment + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - S3 + - MinIO + - Object Storage + labels: + operatorframework.io/arch.386: supported + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.amd64p32: supported + operatorframework.io/arch.arm: supported + operatorframework.io/arch.arm64: supported + operatorframework.io/arch.arm64be: supported + operatorframework.io/arch.armbe: supported + operatorframework.io/arch.loong64: supported + operatorframework.io/arch.mips: supported + operatorframework.io/arch.mips64: supported + operatorframework.io/arch.mips64le: supported + operatorframework.io/arch.mips64p32: supported + operatorframework.io/arch.mips64p32le: supported + operatorframework.io/arch.mipsle: supported + operatorframework.io/arch.ppc: supported + operatorframework.io/arch.ppc64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.riscv: supported + operatorframework.io/arch.riscv64: supported + operatorframework.io/arch.s390: supported + operatorframework.io/arch.s390x: supported + operatorframework.io/arch.sparc: supported + operatorframework.io/arch.sparc64: supported + operatorframework.io/arch.wasm: supported + operatorframework.io/os.aix: supported + operatorframework.io/os.android: supported + operatorframework.io/os.darwin: supported + operatorframework.io/os.dragonfly: supported + operatorframework.io/os.freebsd: supported + operatorframework.io/os.hurd: supported + operatorframework.io/os.illumos: supported + operatorframework.io/os.ios: supported + operatorframework.io/os.js: supported + operatorframework.io/os.linux: supported + operatorframework.io/os.nacl: supported + operatorframework.io/os.netbsd: supported + operatorframework.io/os.openbsd: supported + operatorframework.io/os.plan9: supported + operatorframework.io/os.solaris: supported + operatorframework.io/os.windows: supported + operatorframework.io/os.zos: supported + links: + - name: Website + url: https://min.io + - name: Support + url: https://subnet.min.io + - name: Github + url: https://github.com/minio/operator + maintainers: + - email: dev@min.io + name: MinIO Team + maturity: stable + provider: + name: MinIO Inc + url: https://min.io + relatedImages: + - image: minio/operator@sha256:170b154d2c61c5a6f9dfbe4137e78815102a99fb9ab3aa6baf68750647e6261a + name: console + - image: minio/operator@sha256:170b154d2c61c5a6f9dfbe4137e78815102a99fb9ab3aa6baf68750647e6261a + name: minio-operator + - image: quay.io/minio/minio@sha256:7e697b900f60d68e9edd2e8fc0dccd158e98938d924298612c5bbd294f2a1e65 + name: minio-7e697b900f60d68e9edd2e8fc0dccd158e98938d924298612c5bbd294f2a1e65-annotation + version: 5.0.10 + replaces: "null" diff --git a/bundles/community-operators/5.0.10/manifests/minio.min.io_tenants.yaml b/bundles/community-operators/5.0.10/manifests/minio.min.io_tenants.yaml new file mode 100644 index 00000000000..d18f067d261 --- /dev/null +++ b/bundles/community-operators/5.0.10/manifests/minio.min.io_tenants.yaml @@ -0,0 +1,5004 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.11.1 + operator.min.io/authors: MinIO, Inc. + operator.min.io/license: AGPLv3 + operator.min.io/support: https://subnet.min.io + creationTimestamp: null + name: tenants.minio.min.io +spec: + group: minio.min.io + names: + kind: Tenant + listKind: TenantList + plural: tenants + shortNames: + - tenant + singular: tenant + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.currentState + name: State + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v2 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + scheduler: + properties: + name: + type: string + required: + - name + type: object + spec: + properties: + additionalVolumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + additionalVolumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + azureDisk: + properties: + cachingMode: + type: string + diskName: + type: string + diskURI: + type: string + fsType: + type: string + kind: + type: string + readOnly: + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + properties: + readOnly: + type: boolean + secretName: + type: string + shareName: + type: string + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: + type: string + type: array + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - monitors + type: object + cinder: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + required: + - driver + type: object + downwardAPI: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + type: object + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + finalizers: + items: + type: string + type: array + labels: + additionalProperties: + type: string + type: object + name: + type: string + namespace: + type: string + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + format: int32 + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + wwids: + items: + type: string + type: array + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + required: + - driver + type: object + flocker: + properties: + datasetName: + type: string + datasetUUID: + type: string + type: object + gcePersistentDisk: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + pdName: + type: string + readOnly: + type: boolean + required: + - pdName + type: object + gitRepo: + properties: + directory: + type: string + repository: + type: string + revision: + type: string + required: + - repository + type: object + glusterfs: + properties: + endpoints: + type: string + path: + type: string + readOnly: + type: boolean + required: + - endpoints + - path + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + iscsi: + properties: + chapAuthDiscovery: + type: boolean + chapAuthSession: + type: boolean + fsType: + type: string + initiatorName: + type: string + iqn: + type: string + iscsiInterface: + type: string + lun: + format: int32 + type: integer + portals: + items: + type: string + type: array + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + targetPortal: + type: string + required: + - iqn + - lun + - targetPortal + type: object + name: + type: string + nfs: + properties: + path: + type: string + readOnly: + type: boolean + server: + type: string + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: + type: string + readOnly: + type: boolean + required: + - claimName + type: object + photonPersistentDisk: + properties: + fsType: + type: string + pdID: + type: string + required: + - pdID + type: object + portworxVolume: + properties: + fsType: + type: string + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + projected: + properties: + defaultMode: + format: int32 + type: integer + sources: + items: + properties: + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + format: int64 + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + type: object + quobyte: + properties: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + type: string + monitors: + items: + type: string + type: array + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - image + - monitors + type: object + scaleIO: + properties: + fsType: + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + sslEnabled: + type: boolean + storageMode: + type: string + storagePool: + type: string + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system + type: object + secret: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + volumeName: + type: string + volumeNamespace: + type: string + type: object + vsphereVolume: + properties: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath + type: object + required: + - name + type: object + type: array + buckets: + items: + properties: + name: + type: string + objectLock: + type: boolean + region: + type: string + type: object + type: array + certConfig: + properties: + commonName: + type: string + dnsNames: + items: + type: string + type: array + organizationName: + items: + type: string + type: array + type: object + configuration: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + credsSecret: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + exposeServices: + properties: + console: + type: boolean + minio: + type: boolean + type: object + externalCaCertSecret: + items: + properties: + name: + type: string + type: + type: string + required: + - name + type: object + type: array + externalCertSecret: + items: + properties: + name: + type: string + type: + type: string + required: + - name + type: object + type: array + externalClientCertSecret: + properties: + name: + type: string + type: + type: string + required: + - name + type: object + externalClientCertSecrets: + items: + properties: + name: + type: string + type: + type: string + required: + - name + type: object + type: array + features: + properties: + bucketDNS: + type: boolean + domains: + properties: + console: + type: string + minio: + items: + type: string + type: array + type: object + enableSFTP: + type: boolean + type: object + image: + type: string + imagePullPolicy: + type: string + imagePullSecret: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + initContainers: + items: + properties: + args: + items: + type: string + type: array + command: + items: + type: string + type: array + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + prefix: + type: string + secretRef: + properties: + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + type: object + type: array + image: + type: string + imagePullPolicy: + type: string + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + type: object + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + name: + type: string + ports: + items: + properties: + containerPort: + format: int32 + type: integer + hostIP: + type: string + hostPort: + format: int32 + type: integer + name: + type: string + protocol: + default: TCP + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-map-keys: + - containerPort + - protocol + x-kubernetes-list-type: map + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + securityContext: + properties: + allowPrivilegeEscalation: + type: boolean + capabilities: + properties: + add: + items: + type: string + type: array + drop: + items: + type: string + type: array + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + startupProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + stdin: + type: boolean + stdinOnce: + type: boolean + terminationMessagePath: + type: string + terminationMessagePolicy: + type: string + tty: + type: boolean + volumeDevices: + items: + properties: + devicePath: + type: string + name: + type: string + required: + - devicePath + - name + type: object + type: array + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + workingDir: + type: string + required: + - name + type: object + type: array + kes: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + x-kubernetes-map-type: atomic + weight: + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + x-kubernetes-map-type: atomic + type: array + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + type: object + type: object + annotations: + additionalProperties: + type: string + type: object + clientCertSecret: + properties: + name: + type: string + type: + type: string + required: + - name + type: object + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + externalCertSecret: + properties: + name: + type: string + type: + type: string + required: + - name + type: object + gcpCredentialSecretName: + type: string + gcpWorkloadIdentityPool: + type: string + image: + type: string + imagePullPolicy: + type: string + kesSecret: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + keyName: + type: string + labels: + additionalProperties: + type: string + type: object + nodeSelector: + additionalProperties: + type: string + type: object + replicas: + format: int32 + type: integer + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + securityContext: + properties: + fsGroup: + format: int64 + type: integer + fsGroupChangePolicy: + type: string + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + supplementalGroups: + items: + format: int64 + type: integer + type: array + sysctls: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + serviceAccountName: + type: string + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + format: int64 + type: integer + value: + type: string + type: object + type: array + topologySpreadConstraints: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + maxSkew: + format: int32 + type: integer + minDomains: + format: int32 + type: integer + nodeAffinityPolicy: + type: string + nodeTaintsPolicy: + type: string + topologyKey: + type: string + whenUnsatisfiable: + type: string + required: + - maxSkew + - topologyKey + - whenUnsatisfiable + type: object + type: array + required: + - kesSecret + type: object + liveness: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + logging: + properties: + anonymous: + type: boolean + json: + type: boolean + quiet: + type: boolean + type: object + mountPath: + type: string + podManagementPolicy: + type: string + pools: + items: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + x-kubernetes-map-type: atomic + weight: + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + x-kubernetes-map-type: atomic + type: array + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + type: object + type: object + annotations: + additionalProperties: + type: string + type: object + containerSecurityContext: + properties: + allowPrivilegeEscalation: + type: boolean + capabilities: + properties: + add: + items: + type: string + type: array + drop: + items: + type: string + type: array + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + labels: + additionalProperties: + type: string + type: object + name: + type: string + nodeSelector: + additionalProperties: + type: string + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + runtimeClassName: + type: string + securityContext: + properties: + fsGroup: + format: int64 + type: integer + fsGroupChangePolicy: + type: string + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + supplementalGroups: + items: + format: int64 + type: integer + type: array + sysctls: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + servers: + format: int32 + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + format: int64 + type: integer + value: + type: string + type: object + type: array + topologySpreadConstraints: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + maxSkew: + format: int32 + type: integer + minDomains: + format: int32 + type: integer + nodeAffinityPolicy: + type: string + nodeTaintsPolicy: + type: string + topologyKey: + type: string + whenUnsatisfiable: + type: string + required: + - maxSkew + - topologyKey + - whenUnsatisfiable + type: object + type: array + volumeClaimTemplate: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + finalizers: + items: + type: string + type: array + labels: + additionalProperties: + type: string + type: object + name: + type: string + namespace: + type: string + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + status: + properties: + accessModes: + items: + type: string + type: array + allocatedResources: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + capacity: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + conditions: + items: + properties: + lastProbeTime: + format: date-time + type: string + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + type: string + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + phase: + type: string + resizeStatus: + type: string + type: object + type: object + volumesPerServer: + format: int32 + type: integer + required: + - servers + - volumeClaimTemplate + - volumesPerServer + type: object + type: array + priorityClassName: + type: string + prometheusOperator: + type: boolean + readiness: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + requestAutoCert: + type: boolean + serviceAccountName: + type: string + serviceMetadata: + properties: + consoleServiceAnnotations: + additionalProperties: + type: string + type: object + consoleServiceLabels: + additionalProperties: + type: string + type: object + minioServiceAnnotations: + additionalProperties: + type: string + type: object + minioServiceLabels: + additionalProperties: + type: string + type: object + type: object + sideCars: + properties: + containers: + items: + properties: + args: + items: + type: string + type: array + command: + items: + type: string + type: array + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + prefix: + type: string + secretRef: + properties: + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + type: object + type: array + image: + type: string + imagePullPolicy: + type: string + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + type: object + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + name: + type: string + ports: + items: + properties: + containerPort: + format: int32 + type: integer + hostIP: + type: string + hostPort: + format: int32 + type: integer + name: + type: string + protocol: + default: TCP + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-map-keys: + - containerPort + - protocol + x-kubernetes-list-type: map + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + securityContext: + properties: + allowPrivilegeEscalation: + type: boolean + capabilities: + properties: + add: + items: + type: string + type: array + drop: + items: + type: string + type: array + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + startupProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + stdin: + type: boolean + stdinOnce: + type: boolean + terminationMessagePath: + type: string + terminationMessagePolicy: + type: string + tty: + type: boolean + volumeDevices: + items: + properties: + devicePath: + type: string + name: + type: string + required: + - devicePath + - name + type: object + type: array + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + workingDir: + type: string + required: + - name + type: object + type: array + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + volumeClaimTemplates: + items: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + finalizers: + items: + type: string + type: array + labels: + additionalProperties: + type: string + type: object + name: + type: string + namespace: + type: string + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + status: + properties: + accessModes: + items: + type: string + type: array + allocatedResources: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + capacity: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + conditions: + items: + properties: + lastProbeTime: + format: date-time + type: string + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + type: string + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + phase: + type: string + resizeStatus: + type: string + type: object + type: object + type: array + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + azureDisk: + properties: + cachingMode: + type: string + diskName: + type: string + diskURI: + type: string + fsType: + type: string + kind: + type: string + readOnly: + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + properties: + readOnly: + type: boolean + secretName: + type: string + shareName: + type: string + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: + type: string + type: array + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - monitors + type: object + cinder: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + required: + - driver + type: object + downwardAPI: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + type: object + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + finalizers: + items: + type: string + type: array + labels: + additionalProperties: + type: string + type: object + name: + type: string + namespace: + type: string + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + format: int32 + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + wwids: + items: + type: string + type: array + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + required: + - driver + type: object + flocker: + properties: + datasetName: + type: string + datasetUUID: + type: string + type: object + gcePersistentDisk: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + pdName: + type: string + readOnly: + type: boolean + required: + - pdName + type: object + gitRepo: + properties: + directory: + type: string + repository: + type: string + revision: + type: string + required: + - repository + type: object + glusterfs: + properties: + endpoints: + type: string + path: + type: string + readOnly: + type: boolean + required: + - endpoints + - path + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + iscsi: + properties: + chapAuthDiscovery: + type: boolean + chapAuthSession: + type: boolean + fsType: + type: string + initiatorName: + type: string + iqn: + type: string + iscsiInterface: + type: string + lun: + format: int32 + type: integer + portals: + items: + type: string + type: array + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + targetPortal: + type: string + required: + - iqn + - lun + - targetPortal + type: object + name: + type: string + nfs: + properties: + path: + type: string + readOnly: + type: boolean + server: + type: string + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: + type: string + readOnly: + type: boolean + required: + - claimName + type: object + photonPersistentDisk: + properties: + fsType: + type: string + pdID: + type: string + required: + - pdID + type: object + portworxVolume: + properties: + fsType: + type: string + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + projected: + properties: + defaultMode: + format: int32 + type: integer + sources: + items: + properties: + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + format: int64 + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + type: object + quobyte: + properties: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + type: string + monitors: + items: + type: string + type: array + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - image + - monitors + type: object + scaleIO: + properties: + fsType: + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + sslEnabled: + type: boolean + storageMode: + type: string + storagePool: + type: string + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system + type: object + secret: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + volumeName: + type: string + volumeNamespace: + type: string + type: object + vsphereVolume: + properties: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath + type: object + required: + - name + type: object + type: array + required: + - containers + type: object + startup: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + subPath: + type: string + users: + items: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + type: array + required: + - pools + type: object + status: + properties: + availableReplicas: + format: int32 + type: integer + certificates: + nullable: true + properties: + autoCertEnabled: + nullable: true + type: boolean + customCertificates: + nullable: true + properties: + client: + items: + properties: + certName: + type: string + domains: + items: + type: string + type: array + expiresIn: + type: string + expiry: + type: string + serialNo: + type: string + type: object + type: array + minio: + items: + properties: + certName: + type: string + domains: + items: + type: string + type: array + expiresIn: + type: string + expiry: + type: string + serialNo: + type: string + type: object + type: array + minioCAs: + items: + properties: + certName: + type: string + domains: + items: + type: string + type: array + expiresIn: + type: string + expiry: + type: string + serialNo: + type: string + type: object + type: array + type: object + type: object + currentState: + type: string + drivesHealing: + format: int32 + type: integer + drivesOffline: + format: int32 + type: integer + drivesOnline: + format: int32 + type: integer + healthMessage: + type: string + healthStatus: + type: string + pools: + items: + properties: + legacySecurityContext: + type: boolean + ssName: + type: string + state: + type: string + required: + - ssName + - state + type: object + nullable: true + type: array + provisionedBuckets: + type: boolean + provisionedUsers: + type: boolean + revision: + format: int32 + type: integer + syncVersion: + type: string + usage: + properties: + capacity: + format: int64 + type: integer + rawCapacity: + format: int64 + type: integer + rawUsage: + format: int64 + type: integer + tiers: + items: + properties: + Name: + type: string + Type: + type: string + totalSize: + format: int64 + type: integer + required: + - Name + - totalSize + type: object + type: array + usage: + format: int64 + type: integer + type: object + waitingOnReady: + format: date-time + type: string + writeQuorum: + format: int32 + type: integer + required: + - availableReplicas + - certificates + - currentState + - pools + - revision + - syncVersion + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/bundles/community-operators/5.0.10/manifests/operator_v1_service.yaml b/bundles/community-operators/5.0.10/manifests/operator_v1_service.yaml new file mode 100644 index 00000000000..011f9599ff8 --- /dev/null +++ b/bundles/community-operators/5.0.10/manifests/operator_v1_service.yaml @@ -0,0 +1,24 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: + operator.min.io/authors: MinIO, Inc. + operator.min.io/license: AGPLv3 + operator.min.io/support: https://subnet.min.io + creationTimestamp: null + labels: + app.kubernetes.io/instance: minio-operator + app.kubernetes.io/name: operator + name: minio-operator + name: operator +spec: + ports: + - name: http + port: 4221 + targetPort: 0 + selector: + name: minio-operator + operator: leader + type: ClusterIP +status: + loadBalancer: {} diff --git a/bundles/community-operators/5.0.10/manifests/sts.min.io_policybindings.yaml b/bundles/community-operators/5.0.10/manifests/sts.min.io_policybindings.yaml new file mode 100644 index 00000000000..fbbf279207d --- /dev/null +++ b/bundles/community-operators/5.0.10/manifests/sts.min.io_policybindings.yaml @@ -0,0 +1,84 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.11.1 + operator.min.io/authors: MinIO, Inc. + operator.min.io/license: AGPLv3 + operator.min.io/support: https://subnet.min.io + creationTimestamp: null + name: policybindings.sts.min.io +spec: + group: sts.min.io + names: + kind: PolicyBinding + listKind: PolicyBindingList + plural: policybindings + shortNames: + - policybinding + singular: policybinding + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.currentState + name: State + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + properties: + application: + properties: + namespace: + type: string + serviceaccount: + type: string + required: + - namespace + - serviceaccount + type: object + policies: + items: + type: string + type: array + required: + - application + - policies + type: object + status: + properties: + currentState: + type: string + usage: + nullable: true + properties: + authotizations: + format: int64 + type: integer + type: object + required: + - currentState + - usage + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/bundles/community-operators/5.0.10/manifests/sts_v1_service.yaml b/bundles/community-operators/5.0.10/manifests/sts_v1_service.yaml new file mode 100644 index 00000000000..cdec8486952 --- /dev/null +++ b/bundles/community-operators/5.0.10/manifests/sts_v1_service.yaml @@ -0,0 +1,22 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: + operator.min.io/authors: MinIO, Inc. + operator.min.io/license: AGPLv3 + operator.min.io/support: https://subnet.min.io + service.beta.openshift.io/serving-cert-secret-name: sts-tls + creationTimestamp: null + labels: + name: minio-operator + name: sts +spec: + ports: + - name: https + port: 4223 + targetPort: 4223 + selector: + name: minio-operator + type: ClusterIP +status: + loadBalancer: {} diff --git a/bundles/community-operators/5.0.10/metadata/annotations.yaml b/bundles/community-operators/5.0.10/metadata/annotations.yaml new file mode 100644 index 00000000000..eb5623e0117 --- /dev/null +++ b/bundles/community-operators/5.0.10/metadata/annotations.yaml @@ -0,0 +1,12 @@ +annotations: + # Core bundle annotations. + operators.operatorframework.io.bundle.mediatype.v1: registry+v1 + operators.operatorframework.io.bundle.manifests.v1: manifests/ + operators.operatorframework.io.bundle.metadata.v1: metadata/ + operators.operatorframework.io.bundle.package.v1: minio-operator + operators.operatorframework.io.bundle.channels.v1: stable + # Annotations to specify OCP versions compatibility. + com.redhat.openshift.versions: v4.8-v4.13 + # Annotation to add default bundle channel as potential is declared + operators.operatorframework.io.bundle.channel.default.v1: stable + operatorframework.io/suggested-namespace: minio-operator diff --git a/bundles/redhat-marketplace/5.0.10/manifests/console-env_v1_configmap.yaml b/bundles/redhat-marketplace/5.0.10/manifests/console-env_v1_configmap.yaml new file mode 100644 index 00000000000..1c276708cd0 --- /dev/null +++ b/bundles/redhat-marketplace/5.0.10/manifests/console-env_v1_configmap.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +data: + CONSOLE_PORT: "9090" + CONSOLE_TLS_PORT: "9443" +kind: ConfigMap +metadata: + annotations: + operator.min.io/authors: MinIO, Inc. + operator.min.io/license: AGPLv3 + operator.min.io/support: https://subnet.min.io + name: console-env diff --git a/bundles/redhat-marketplace/5.0.10/manifests/console-sa-secret_v1_secret.yaml b/bundles/redhat-marketplace/5.0.10/manifests/console-sa-secret_v1_secret.yaml new file mode 100644 index 00000000000..8f7c7e18363 --- /dev/null +++ b/bundles/redhat-marketplace/5.0.10/manifests/console-sa-secret_v1_secret.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Secret +metadata: + annotations: + kubernetes.io/service-account.name: console-sa + operator.min.io/authors: MinIO, Inc. + operator.min.io/license: AGPLv3 + operator.min.io/support: https://subnet.min.io + name: console-sa-secret +type: kubernetes.io/service-account-token diff --git a/bundles/redhat-marketplace/5.0.10/manifests/console_v1_service.yaml b/bundles/redhat-marketplace/5.0.10/manifests/console_v1_service.yaml new file mode 100644 index 00000000000..1d2af3ffb8a --- /dev/null +++ b/bundles/redhat-marketplace/5.0.10/manifests/console_v1_service.yaml @@ -0,0 +1,26 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: + operator.min.io/authors: MinIO, Inc. + operator.min.io/license: AGPLv3 + operator.min.io/support: https://subnet.min.io + service.beta.openshift.io/serving-cert-secret-name: console-tls + creationTimestamp: null + labels: + app.kubernetes.io/instance: minio-operator + app.kubernetes.io/name: operator + name: console + name: console +spec: + ports: + - name: http + port: 9090 + targetPort: 0 + - name: https + port: 9443 + targetPort: 0 + selector: + app: console +status: + loadBalancer: {} diff --git a/bundles/redhat-marketplace/5.0.10/manifests/minio-operator-rhmp.clusterserviceversion.yaml b/bundles/redhat-marketplace/5.0.10/manifests/minio-operator-rhmp.clusterserviceversion.yaml new file mode 100644 index 00000000000..da0bd26a29b --- /dev/null +++ b/bundles/redhat-marketplace/5.0.10/manifests/minio-operator-rhmp.clusterserviceversion.yaml @@ -0,0 +1,767 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [ + { + "apiVersion": "minio.min.io/v2", + "kind": "Tenant", + "metadata": { + "annotations": { + "prometheus.io/path": "/minio/v2/metrics/cluster", + "prometheus.io/port": "9000", + "prometheus.io/scrape": "true" + }, + "labels": { + "app": "minio" + }, + "name": "myminio", + "namespace": "minio-operator" + }, + "spec": { + "certConfig": {}, + "configuration": { + "name": "storage-configuration" + }, + "env": [], + "externalCaCertSecret": [], + "externalCertSecret": [], + "externalClientCertSecrets": [], + "features": { + "bucketDNS": false, + "domains": {} + }, + "image": "quay.io/minio/minio@sha256:7e697b900f60d68e9edd2e8fc0dccd158e98938d924298612c5bbd294f2a1e65", + "imagePullSecret": {}, + "mountPath": "/export", + "podManagementPolicy": "Parallel", + "pools": [ + { + "containerSecurityContext": {}, + "name": "pool-0", + "securityContext": {}, + "servers": 4, + "volumeClaimTemplate": { + "metadata": { + "name": "data" + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "2Gi" + } + } + } + }, + "volumesPerServer": 2 + } + ], + "priorityClassName": "", + "requestAutoCert": true, + "serviceAccountName": "", + "serviceMetadata": { + "consoleServiceAnnotations": {}, + "consoleServiceLabels": {}, + "minioServiceAnnotations": {}, + "minioServiceLabels": {} + }, + "subPath": "", + "users": [ + { + "name": "storage-user" + } + ] + } + } + ] + capabilities: Full Lifecycle + categories: AI/Machine Learning, Big Data, Cloud Provider, Storage + createdAt: "2023-10-12T17:54:23Z" + description: |- + MinIO is a Kubernetes-native high performance object store with an + S3-compatible API. The MinIO Operator supports deploying MinIO Tenants + onto any Kubernetes. + k8sMinVersion: "1.18" + marketplace.openshift.io/remote-workflow: https://marketplace.redhat.com/en-us/operators/minio-operator-rhmp/pricing?utm_source=openshift_console + marketplace.openshift.io/support-workflow: https://marketplace.redhat.com/en-us/operators/minio-operator-rhmp/support?utm_source=openshift_console + operatorframework.io/suggested-namespace: minio-operator + operators.operatorframework.io/builder: operator-sdk-v1.32.0 + operators.operatorframework.io/project_layout: unknown + repository: https://github.com/minio/operator + containerImage: quay.io/minio/operator:v5.0.10 + name: minio-operator-rhmp.v5.0.10 + namespace: minio-operator +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - kind: PolicyBinding + name: policybindings.sts.min.io + version: v1alpha1 + - kind: Tenant + name: tenants.minio.min.io + version: v2 + description: |- + ## Overview + + + The MinIO Operator brings native support for deploying and managing MinIO + deployments (“MinIO Tenants”) on a Kubernetes cluster. + + + MinIO is a high performance, Kubernetes native object storage suite. With an + extensive list of enterprise features, it is scalable, secure and resilient + while remaining remarkably simple to deploy and operate at scale. + Software-defined, MinIO can run on any infrastructure and in any cloud - + public, private or edge. MinIO is the world's fastest object storage and can + run the broadest set of workloads in the industry. It is widely considered + to be the leader in compatibility with Amazon's S3 API. + + ## Features + + + The MinIO Operator takes care of the deployment of MinIO Tenant along with: + + * TLS Certificate Management + + * Configuration of the encryption at rest + + * Cluster expansion + + * Hot Updates + + * Users and Buckets bootstrapping + + ## Prerequisites for enabling this Operator + + * At least Kubernetes 1.18 + + * [CSR + Capability](https://kubernetes.io/docs/reference/access-authn-authz/certificate-signing-requests/) + must be enabled + + * Locally attached volumes for performance or some CSI to provision block + storage to the MinIO pods. + displayName: Minio Operator Rhmp + icon: + - base64data: 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 + mediatype: image/png + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - "" + resources: + - secrets + verbs: + - get + - watch + - create + - list + - patch + - update + - delete + - deletecollection + - apiGroups: + - "" + resources: + - namespaces + - services + - events + - resourcequotas + - nodes + verbs: + - get + - watch + - create + - list + - patch + - apiGroups: + - "" + resources: + - pods + verbs: + - get + - watch + - create + - list + - patch + - delete + - deletecollection + - apiGroups: + - "" + resources: + - persistentvolumeclaims + verbs: + - deletecollection + - list + - get + - watch + - update + - apiGroups: + - storage.k8s.io + resources: + - storageclasses + verbs: + - get + - watch + - create + - list + - patch + - apiGroups: + - apps + resources: + - statefulsets + - deployments + verbs: + - get + - create + - list + - patch + - watch + - update + - delete + - apiGroups: + - batch + resources: + - jobs + verbs: + - get + - create + - list + - patch + - watch + - update + - delete + - apiGroups: + - certificates.k8s.io + resources: + - certificatesigningrequests + - certificatesigningrequests/approval + - certificatesigningrequests/status + verbs: + - update + - create + - get + - delete + - list + - apiGroups: + - minio.min.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - min.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - "" + resources: + - persistentvolumes + verbs: + - get + - list + - watch + - create + - delete + - apiGroups: + - "" + resources: + - persistentvolumeclaims + verbs: + - get + - list + - watch + - update + - apiGroups: + - "" + resources: + - events + verbs: + - create + - list + - watch + - update + - patch + - apiGroups: + - snapshot.storage.k8s.io + resources: + - volumesnapshots + verbs: + - get + - list + - apiGroups: + - snapshot.storage.k8s.io + resources: + - volumesnapshotcontents + verbs: + - get + - list + - apiGroups: + - storage.k8s.io + resources: + - csinodes + verbs: + - get + - list + - watch + - apiGroups: + - storage.k8s.io + resources: + - volumeattachments + verbs: + - get + - list + - watch + - apiGroups: + - "" + resources: + - endpoints + verbs: + - get + - list + - watch + - create + - update + - delete + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - get + - list + - watch + - create + - update + - delete + - apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - get + - list + - watch + - create + - update + - delete + - apiGroups: + - "" + resources: + - pod + - pods/log + verbs: + - get + - list + - watch + serviceAccountName: console-sa + - rules: + - apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - get + - update + - apiGroups: + - "" + resources: + - persistentvolumeclaims + verbs: + - get + - update + - list + - apiGroups: + - "" + resources: + - namespaces + - nodes + verbs: + - get + - watch + - list + - apiGroups: + - "" + resources: + - pods + - services + - events + - configmaps + verbs: + - get + - watch + - create + - list + - delete + - deletecollection + - update + - patch + - apiGroups: + - "" + resources: + - secrets + verbs: + - get + - watch + - create + - update + - list + - delete + - deletecollection + - apiGroups: + - "" + resources: + - serviceaccounts + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - rbac.authorization.k8s.io + resources: + - roles + - rolebindings + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - apps + resources: + - statefulsets + - deployments + - deployments/finalizers + verbs: + - get + - create + - list + - patch + - watch + - update + - delete + - apiGroups: + - batch + resources: + - jobs + verbs: + - get + - create + - list + - patch + - watch + - update + - delete + - apiGroups: + - certificates.k8s.io + resources: + - certificatesigningrequests + - certificatesigningrequests/approval + - certificatesigningrequests/status + verbs: + - update + - create + - get + - delete + - list + - apiGroups: + - certificates.k8s.io + resourceNames: + - kubernetes.io/legacy-unknown + - kubernetes.io/kube-apiserver-client + - kubernetes.io/kubelet-serving + - beta.eks.amazonaws.com/app-serving + resources: + - signers + verbs: + - approve + - sign + - apiGroups: + - authentication.k8s.io + resources: + - tokenreviews + verbs: + - create + - apiGroups: + - minio.min.io + - sts.min.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - min.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - monitoring.coreos.com + resources: + - prometheuses + verbs: + - '*' + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - get + - update + - create + - apiGroups: + - policy + resources: + - poddisruptionbudgets + verbs: + - create + - delete + - get + - list + - patch + - update + - deletecollection + serviceAccountName: minio-operator + deployments: + - label: + app.kubernetes.io/instance: minio-operator + app.kubernetes.io/name: operator + name: console + spec: + replicas: 1 + selector: + matchLabels: + app: console + strategy: {} + template: + metadata: + annotations: + operator.min.io/authors: MinIO, Inc. + operator.min.io/license: AGPLv3 + operator.min.io/support: https://subnet.min.io + labels: + app: console + app.kubernetes.io/instance: minio-operator-console + app.kubernetes.io/name: operator + spec: + containers: + - args: + - ui + - --certs-dir=/tmp/certs + image: quay.io/minio/operator:v5.0.10 + imagePullPolicy: IfNotPresent + name: console + ports: + - containerPort: 9090 + name: http + - containerPort: 9443 + name: https + resources: {} + securityContext: {} + volumeMounts: + - mountPath: /tmp/certs + name: tls-certificates + serviceAccountName: console-sa + volumes: + - name: tls-certificates + projected: + defaultMode: 420 + sources: + - secret: + items: + - key: tls.crt + path: public.crt + - key: tls.key + path: private.key + name: console-tls + optional: true + - configMap: + items: + - key: service-ca.crt + path: CAs/ca.crt + name: openshift-service-ca.crt + optional: true + - label: + app.kubernetes.io/instance: minio-operator + app.kubernetes.io/name: operator + name: minio-operator + spec: + replicas: 1 + selector: + matchLabels: + name: minio-operator + strategy: + type: Recreate + template: + metadata: + annotations: + operator.min.io/authors: MinIO, Inc. + operator.min.io/license: AGPLv3 + operator.min.io/support: https://subnet.min.io + labels: + app.kubernetes.io/instance: minio-operator + app.kubernetes.io/name: operator + name: minio-operator + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: name + operator: In + values: + - minio-operator + topologyKey: kubernetes.io/hostname + containers: + - args: + - controller + env: + - name: MINIO_OPERATOR_RUNTIME + value: OpenShift + - name: MINIO_CONSOLE_TLS_ENABLE + value: "on" + - name: OPERATOR_STS_ENABLED + value: "off" + image: quay.io/minio/operator:v5.0.10 + imagePullPolicy: IfNotPresent + name: minio-operator + resources: + requests: + cpu: 200m + ephemeral-storage: 500Mi + memory: 256Mi + securityContext: {} + volumeMounts: + - mountPath: /tmp/service-ca + name: openshift-service-ca + - mountPath: /tmp/csr-signer-ca + name: openshift-csr-signer-ca + - mountPath: /tmp/sts + name: sts-tls + serviceAccountName: minio-operator + volumes: + - name: sts-tls + projected: + defaultMode: 420 + sources: + - secret: + items: + - key: tls.crt + path: public.crt + - key: tls.key + path: private.key + name: sts-tls + optional: true + - configMap: + items: + - key: service-ca.crt + path: service-ca.crt + name: openshift-service-ca.crt + optional: true + name: openshift-service-ca + - name: openshift-csr-signer-ca + projected: + defaultMode: 420 + sources: + - secret: + items: + - key: tls.crt + path: tls.crt + name: openshift-csr-signer-ca + optional: true + strategy: deployment + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - S3 + - MinIO + - Object Storage + labels: + operatorframework.io/arch.386: supported + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.amd64p32: supported + operatorframework.io/arch.arm: supported + operatorframework.io/arch.arm64: supported + operatorframework.io/arch.arm64be: supported + operatorframework.io/arch.armbe: supported + operatorframework.io/arch.loong64: supported + operatorframework.io/arch.mips: supported + operatorframework.io/arch.mips64: supported + operatorframework.io/arch.mips64le: supported + operatorframework.io/arch.mips64p32: supported + operatorframework.io/arch.mips64p32le: supported + operatorframework.io/arch.mipsle: supported + operatorframework.io/arch.ppc: supported + operatorframework.io/arch.ppc64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.riscv: supported + operatorframework.io/arch.riscv64: supported + operatorframework.io/arch.s390: supported + operatorframework.io/arch.s390x: supported + operatorframework.io/arch.sparc: supported + operatorframework.io/arch.sparc64: supported + operatorframework.io/arch.wasm: supported + operatorframework.io/os.aix: supported + operatorframework.io/os.android: supported + operatorframework.io/os.darwin: supported + operatorframework.io/os.dragonfly: supported + operatorframework.io/os.freebsd: supported + operatorframework.io/os.hurd: supported + operatorframework.io/os.illumos: supported + operatorframework.io/os.ios: supported + operatorframework.io/os.js: supported + operatorframework.io/os.linux: supported + operatorframework.io/os.nacl: supported + operatorframework.io/os.netbsd: supported + operatorframework.io/os.openbsd: supported + operatorframework.io/os.plan9: supported + operatorframework.io/os.solaris: supported + operatorframework.io/os.windows: supported + operatorframework.io/os.zos: supported + links: + - name: Website + url: https://min.io + - name: Support + url: https://subnet.min.io + - name: Github + url: https://github.com/minio/operator + maintainers: + - email: dev@min.io + name: MinIO Team + maturity: stable + provider: + name: MinIO Inc + url: https://min.io + relatedImages: + - image: minio/operator@sha256:170b154d2c61c5a6f9dfbe4137e78815102a99fb9ab3aa6baf68750647e6261a + name: console + - image: minio/operator@sha256:170b154d2c61c5a6f9dfbe4137e78815102a99fb9ab3aa6baf68750647e6261a + name: minio-operator + - image: quay.io/minio/minio@sha256:7e697b900f60d68e9edd2e8fc0dccd158e98938d924298612c5bbd294f2a1e65 + name: minio-7e697b900f60d68e9edd2e8fc0dccd158e98938d924298612c5bbd294f2a1e65-annotation + version: 5.0.10 + replaces: minio-operator-rhmp.v5.0.9 diff --git a/bundles/redhat-marketplace/5.0.10/manifests/minio.min.io_tenants.yaml b/bundles/redhat-marketplace/5.0.10/manifests/minio.min.io_tenants.yaml new file mode 100644 index 00000000000..d18f067d261 --- /dev/null +++ b/bundles/redhat-marketplace/5.0.10/manifests/minio.min.io_tenants.yaml @@ -0,0 +1,5004 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.11.1 + operator.min.io/authors: MinIO, Inc. + operator.min.io/license: AGPLv3 + operator.min.io/support: https://subnet.min.io + creationTimestamp: null + name: tenants.minio.min.io +spec: + group: minio.min.io + names: + kind: Tenant + listKind: TenantList + plural: tenants + shortNames: + - tenant + singular: tenant + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.currentState + name: State + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v2 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + scheduler: + properties: + name: + type: string + required: + - name + type: object + spec: + properties: + additionalVolumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + additionalVolumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + azureDisk: + properties: + cachingMode: + type: string + diskName: + type: string + diskURI: + type: string + fsType: + type: string + kind: + type: string + readOnly: + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + properties: + readOnly: + type: boolean + secretName: + type: string + shareName: + type: string + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: + type: string + type: array + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - monitors + type: object + cinder: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + required: + - driver + type: object + downwardAPI: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + type: object + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + finalizers: + items: + type: string + type: array + labels: + additionalProperties: + type: string + type: object + name: + type: string + namespace: + type: string + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + format: int32 + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + wwids: + items: + type: string + type: array + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + required: + - driver + type: object + flocker: + properties: + datasetName: + type: string + datasetUUID: + type: string + type: object + gcePersistentDisk: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + pdName: + type: string + readOnly: + type: boolean + required: + - pdName + type: object + gitRepo: + properties: + directory: + type: string + repository: + type: string + revision: + type: string + required: + - repository + type: object + glusterfs: + properties: + endpoints: + type: string + path: + type: string + readOnly: + type: boolean + required: + - endpoints + - path + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + iscsi: + properties: + chapAuthDiscovery: + type: boolean + chapAuthSession: + type: boolean + fsType: + type: string + initiatorName: + type: string + iqn: + type: string + iscsiInterface: + type: string + lun: + format: int32 + type: integer + portals: + items: + type: string + type: array + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + targetPortal: + type: string + required: + - iqn + - lun + - targetPortal + type: object + name: + type: string + nfs: + properties: + path: + type: string + readOnly: + type: boolean + server: + type: string + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: + type: string + readOnly: + type: boolean + required: + - claimName + type: object + photonPersistentDisk: + properties: + fsType: + type: string + pdID: + type: string + required: + - pdID + type: object + portworxVolume: + properties: + fsType: + type: string + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + projected: + properties: + defaultMode: + format: int32 + type: integer + sources: + items: + properties: + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + format: int64 + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + type: object + quobyte: + properties: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + type: string + monitors: + items: + type: string + type: array + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - image + - monitors + type: object + scaleIO: + properties: + fsType: + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + sslEnabled: + type: boolean + storageMode: + type: string + storagePool: + type: string + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system + type: object + secret: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + volumeName: + type: string + volumeNamespace: + type: string + type: object + vsphereVolume: + properties: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath + type: object + required: + - name + type: object + type: array + buckets: + items: + properties: + name: + type: string + objectLock: + type: boolean + region: + type: string + type: object + type: array + certConfig: + properties: + commonName: + type: string + dnsNames: + items: + type: string + type: array + organizationName: + items: + type: string + type: array + type: object + configuration: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + credsSecret: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + exposeServices: + properties: + console: + type: boolean + minio: + type: boolean + type: object + externalCaCertSecret: + items: + properties: + name: + type: string + type: + type: string + required: + - name + type: object + type: array + externalCertSecret: + items: + properties: + name: + type: string + type: + type: string + required: + - name + type: object + type: array + externalClientCertSecret: + properties: + name: + type: string + type: + type: string + required: + - name + type: object + externalClientCertSecrets: + items: + properties: + name: + type: string + type: + type: string + required: + - name + type: object + type: array + features: + properties: + bucketDNS: + type: boolean + domains: + properties: + console: + type: string + minio: + items: + type: string + type: array + type: object + enableSFTP: + type: boolean + type: object + image: + type: string + imagePullPolicy: + type: string + imagePullSecret: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + initContainers: + items: + properties: + args: + items: + type: string + type: array + command: + items: + type: string + type: array + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + prefix: + type: string + secretRef: + properties: + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + type: object + type: array + image: + type: string + imagePullPolicy: + type: string + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + type: object + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + name: + type: string + ports: + items: + properties: + containerPort: + format: int32 + type: integer + hostIP: + type: string + hostPort: + format: int32 + type: integer + name: + type: string + protocol: + default: TCP + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-map-keys: + - containerPort + - protocol + x-kubernetes-list-type: map + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + securityContext: + properties: + allowPrivilegeEscalation: + type: boolean + capabilities: + properties: + add: + items: + type: string + type: array + drop: + items: + type: string + type: array + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + startupProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + stdin: + type: boolean + stdinOnce: + type: boolean + terminationMessagePath: + type: string + terminationMessagePolicy: + type: string + tty: + type: boolean + volumeDevices: + items: + properties: + devicePath: + type: string + name: + type: string + required: + - devicePath + - name + type: object + type: array + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + workingDir: + type: string + required: + - name + type: object + type: array + kes: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + x-kubernetes-map-type: atomic + weight: + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + x-kubernetes-map-type: atomic + type: array + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + type: object + type: object + annotations: + additionalProperties: + type: string + type: object + clientCertSecret: + properties: + name: + type: string + type: + type: string + required: + - name + type: object + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + externalCertSecret: + properties: + name: + type: string + type: + type: string + required: + - name + type: object + gcpCredentialSecretName: + type: string + gcpWorkloadIdentityPool: + type: string + image: + type: string + imagePullPolicy: + type: string + kesSecret: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + keyName: + type: string + labels: + additionalProperties: + type: string + type: object + nodeSelector: + additionalProperties: + type: string + type: object + replicas: + format: int32 + type: integer + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + securityContext: + properties: + fsGroup: + format: int64 + type: integer + fsGroupChangePolicy: + type: string + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + supplementalGroups: + items: + format: int64 + type: integer + type: array + sysctls: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + serviceAccountName: + type: string + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + format: int64 + type: integer + value: + type: string + type: object + type: array + topologySpreadConstraints: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + maxSkew: + format: int32 + type: integer + minDomains: + format: int32 + type: integer + nodeAffinityPolicy: + type: string + nodeTaintsPolicy: + type: string + topologyKey: + type: string + whenUnsatisfiable: + type: string + required: + - maxSkew + - topologyKey + - whenUnsatisfiable + type: object + type: array + required: + - kesSecret + type: object + liveness: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + logging: + properties: + anonymous: + type: boolean + json: + type: boolean + quiet: + type: boolean + type: object + mountPath: + type: string + podManagementPolicy: + type: string + pools: + items: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + x-kubernetes-map-type: atomic + weight: + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + x-kubernetes-map-type: atomic + type: array + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + type: object + type: object + annotations: + additionalProperties: + type: string + type: object + containerSecurityContext: + properties: + allowPrivilegeEscalation: + type: boolean + capabilities: + properties: + add: + items: + type: string + type: array + drop: + items: + type: string + type: array + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + labels: + additionalProperties: + type: string + type: object + name: + type: string + nodeSelector: + additionalProperties: + type: string + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + runtimeClassName: + type: string + securityContext: + properties: + fsGroup: + format: int64 + type: integer + fsGroupChangePolicy: + type: string + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + supplementalGroups: + items: + format: int64 + type: integer + type: array + sysctls: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + servers: + format: int32 + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + format: int64 + type: integer + value: + type: string + type: object + type: array + topologySpreadConstraints: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + maxSkew: + format: int32 + type: integer + minDomains: + format: int32 + type: integer + nodeAffinityPolicy: + type: string + nodeTaintsPolicy: + type: string + topologyKey: + type: string + whenUnsatisfiable: + type: string + required: + - maxSkew + - topologyKey + - whenUnsatisfiable + type: object + type: array + volumeClaimTemplate: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + finalizers: + items: + type: string + type: array + labels: + additionalProperties: + type: string + type: object + name: + type: string + namespace: + type: string + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + status: + properties: + accessModes: + items: + type: string + type: array + allocatedResources: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + capacity: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + conditions: + items: + properties: + lastProbeTime: + format: date-time + type: string + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + type: string + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + phase: + type: string + resizeStatus: + type: string + type: object + type: object + volumesPerServer: + format: int32 + type: integer + required: + - servers + - volumeClaimTemplate + - volumesPerServer + type: object + type: array + priorityClassName: + type: string + prometheusOperator: + type: boolean + readiness: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + requestAutoCert: + type: boolean + serviceAccountName: + type: string + serviceMetadata: + properties: + consoleServiceAnnotations: + additionalProperties: + type: string + type: object + consoleServiceLabels: + additionalProperties: + type: string + type: object + minioServiceAnnotations: + additionalProperties: + type: string + type: object + minioServiceLabels: + additionalProperties: + type: string + type: object + type: object + sideCars: + properties: + containers: + items: + properties: + args: + items: + type: string + type: array + command: + items: + type: string + type: array + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + envFrom: + items: + properties: + configMapRef: + properties: + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + prefix: + type: string + secretRef: + properties: + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + type: object + type: array + image: + type: string + imagePullPolicy: + type: string + lifecycle: + properties: + postStart: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + type: object + livenessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + name: + type: string + ports: + items: + properties: + containerPort: + format: int32 + type: integer + hostIP: + type: string + hostPort: + format: int32 + type: integer + name: + type: string + protocol: + default: TCP + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-map-keys: + - containerPort + - protocol + x-kubernetes-list-type: map + readinessProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + securityContext: + properties: + allowPrivilegeEscalation: + type: boolean + capabilities: + properties: + add: + items: + type: string + type: array + drop: + items: + type: string + type: array + type: object + privileged: + type: boolean + procMount: + type: string + readOnlyRootFilesystem: + type: boolean + runAsGroup: + format: int64 + type: integer + runAsNonRoot: + type: boolean + runAsUser: + format: int64 + type: integer + seLinuxOptions: + properties: + level: + type: string + role: + type: string + type: + type: string + user: + type: string + type: object + seccompProfile: + properties: + localhostProfile: + type: string + type: + type: string + required: + - type + type: object + windowsOptions: + properties: + gmsaCredentialSpec: + type: string + gmsaCredentialSpecName: + type: string + hostProcess: + type: boolean + runAsUserName: + type: string + type: object + type: object + startupProbe: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + stdin: + type: boolean + stdinOnce: + type: boolean + terminationMessagePath: + type: string + terminationMessagePolicy: + type: string + tty: + type: boolean + volumeDevices: + items: + properties: + devicePath: + type: string + name: + type: string + required: + - devicePath + - name + type: object + type: array + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + workingDir: + type: string + required: + - name + type: object + type: array + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + volumeClaimTemplates: + items: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + finalizers: + items: + type: string + type: array + labels: + additionalProperties: + type: string + type: object + name: + type: string + namespace: + type: string + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + status: + properties: + accessModes: + items: + type: string + type: array + allocatedResources: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + capacity: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + conditions: + items: + properties: + lastProbeTime: + format: date-time + type: string + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + type: string + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + phase: + type: string + resizeStatus: + type: string + type: object + type: object + type: array + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + azureDisk: + properties: + cachingMode: + type: string + diskName: + type: string + diskURI: + type: string + fsType: + type: string + kind: + type: string + readOnly: + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + properties: + readOnly: + type: boolean + secretName: + type: string + shareName: + type: string + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: + type: string + type: array + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - monitors + type: object + cinder: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + required: + - driver + type: object + downwardAPI: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + type: object + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + properties: + annotations: + additionalProperties: + type: string + type: object + finalizers: + items: + type: string + type: array + labels: + additionalProperties: + type: string + type: object + name: + type: string + namespace: + type: string + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + format: int32 + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + wwids: + items: + type: string + type: array + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + required: + - driver + type: object + flocker: + properties: + datasetName: + type: string + datasetUUID: + type: string + type: object + gcePersistentDisk: + properties: + fsType: + type: string + partition: + format: int32 + type: integer + pdName: + type: string + readOnly: + type: boolean + required: + - pdName + type: object + gitRepo: + properties: + directory: + type: string + repository: + type: string + revision: + type: string + required: + - repository + type: object + glusterfs: + properties: + endpoints: + type: string + path: + type: string + readOnly: + type: boolean + required: + - endpoints + - path + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + iscsi: + properties: + chapAuthDiscovery: + type: boolean + chapAuthSession: + type: boolean + fsType: + type: string + initiatorName: + type: string + iqn: + type: string + iscsiInterface: + type: string + lun: + format: int32 + type: integer + portals: + items: + type: string + type: array + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + targetPortal: + type: string + required: + - iqn + - lun + - targetPortal + type: object + name: + type: string + nfs: + properties: + path: + type: string + readOnly: + type: boolean + server: + type: string + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: + type: string + readOnly: + type: boolean + required: + - claimName + type: object + photonPersistentDisk: + properties: + fsType: + type: string + pdID: + type: string + required: + - pdID + type: object + portworxVolume: + properties: + fsType: + type: string + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + projected: + properties: + defaultMode: + format: int32 + type: integer + sources: + items: + properties: + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + format: int32 + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + name: + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + format: int64 + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + type: object + quobyte: + properties: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + type: string + monitors: + items: + type: string + type: array + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - image + - monitors + type: object + scaleIO: + properties: + fsType: + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + sslEnabled: + type: boolean + storageMode: + type: string + storagePool: + type: string + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system + type: object + secret: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + volumeName: + type: string + volumeNamespace: + type: string + type: object + vsphereVolume: + properties: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath + type: object + required: + - name + type: object + type: array + required: + - containers + type: object + startup: + properties: + exec: + properties: + command: + items: + type: string + type: array + type: object + failureThreshold: + format: int32 + type: integer + grpc: + properties: + port: + format: int32 + type: integer + service: + type: string + required: + - port + type: object + httpGet: + properties: + host: + type: string + httpHeaders: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + path: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + scheme: + type: string + required: + - port + type: object + initialDelaySeconds: + format: int32 + type: integer + periodSeconds: + format: int32 + type: integer + successThreshold: + format: int32 + type: integer + tcpSocket: + properties: + host: + type: string + port: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + format: int64 + type: integer + timeoutSeconds: + format: int32 + type: integer + type: object + subPath: + type: string + users: + items: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + type: array + required: + - pools + type: object + status: + properties: + availableReplicas: + format: int32 + type: integer + certificates: + nullable: true + properties: + autoCertEnabled: + nullable: true + type: boolean + customCertificates: + nullable: true + properties: + client: + items: + properties: + certName: + type: string + domains: + items: + type: string + type: array + expiresIn: + type: string + expiry: + type: string + serialNo: + type: string + type: object + type: array + minio: + items: + properties: + certName: + type: string + domains: + items: + type: string + type: array + expiresIn: + type: string + expiry: + type: string + serialNo: + type: string + type: object + type: array + minioCAs: + items: + properties: + certName: + type: string + domains: + items: + type: string + type: array + expiresIn: + type: string + expiry: + type: string + serialNo: + type: string + type: object + type: array + type: object + type: object + currentState: + type: string + drivesHealing: + format: int32 + type: integer + drivesOffline: + format: int32 + type: integer + drivesOnline: + format: int32 + type: integer + healthMessage: + type: string + healthStatus: + type: string + pools: + items: + properties: + legacySecurityContext: + type: boolean + ssName: + type: string + state: + type: string + required: + - ssName + - state + type: object + nullable: true + type: array + provisionedBuckets: + type: boolean + provisionedUsers: + type: boolean + revision: + format: int32 + type: integer + syncVersion: + type: string + usage: + properties: + capacity: + format: int64 + type: integer + rawCapacity: + format: int64 + type: integer + rawUsage: + format: int64 + type: integer + tiers: + items: + properties: + Name: + type: string + Type: + type: string + totalSize: + format: int64 + type: integer + required: + - Name + - totalSize + type: object + type: array + usage: + format: int64 + type: integer + type: object + waitingOnReady: + format: date-time + type: string + writeQuorum: + format: int32 + type: integer + required: + - availableReplicas + - certificates + - currentState + - pools + - revision + - syncVersion + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/bundles/redhat-marketplace/5.0.10/manifests/operator_v1_service.yaml b/bundles/redhat-marketplace/5.0.10/manifests/operator_v1_service.yaml new file mode 100644 index 00000000000..011f9599ff8 --- /dev/null +++ b/bundles/redhat-marketplace/5.0.10/manifests/operator_v1_service.yaml @@ -0,0 +1,24 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: + operator.min.io/authors: MinIO, Inc. + operator.min.io/license: AGPLv3 + operator.min.io/support: https://subnet.min.io + creationTimestamp: null + labels: + app.kubernetes.io/instance: minio-operator + app.kubernetes.io/name: operator + name: minio-operator + name: operator +spec: + ports: + - name: http + port: 4221 + targetPort: 0 + selector: + name: minio-operator + operator: leader + type: ClusterIP +status: + loadBalancer: {} diff --git a/bundles/redhat-marketplace/5.0.10/manifests/sts.min.io_policybindings.yaml b/bundles/redhat-marketplace/5.0.10/manifests/sts.min.io_policybindings.yaml new file mode 100644 index 00000000000..fbbf279207d --- /dev/null +++ b/bundles/redhat-marketplace/5.0.10/manifests/sts.min.io_policybindings.yaml @@ -0,0 +1,84 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.11.1 + operator.min.io/authors: MinIO, Inc. + operator.min.io/license: AGPLv3 + operator.min.io/support: https://subnet.min.io + creationTimestamp: null + name: policybindings.sts.min.io +spec: + group: sts.min.io + names: + kind: PolicyBinding + listKind: PolicyBindingList + plural: policybindings + shortNames: + - policybinding + singular: policybinding + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.currentState + name: State + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + properties: + application: + properties: + namespace: + type: string + serviceaccount: + type: string + required: + - namespace + - serviceaccount + type: object + policies: + items: + type: string + type: array + required: + - application + - policies + type: object + status: + properties: + currentState: + type: string + usage: + nullable: true + properties: + authotizations: + format: int64 + type: integer + type: object + required: + - currentState + - usage + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/bundles/redhat-marketplace/5.0.10/manifests/sts_v1_service.yaml b/bundles/redhat-marketplace/5.0.10/manifests/sts_v1_service.yaml new file mode 100644 index 00000000000..cdec8486952 --- /dev/null +++ b/bundles/redhat-marketplace/5.0.10/manifests/sts_v1_service.yaml @@ -0,0 +1,22 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: + operator.min.io/authors: MinIO, Inc. + operator.min.io/license: AGPLv3 + operator.min.io/support: https://subnet.min.io + service.beta.openshift.io/serving-cert-secret-name: sts-tls + creationTimestamp: null + labels: + name: minio-operator + name: sts +spec: + ports: + - name: https + port: 4223 + targetPort: 4223 + selector: + name: minio-operator + type: ClusterIP +status: + loadBalancer: {} diff --git a/bundles/redhat-marketplace/5.0.10/metadata/annotations.yaml b/bundles/redhat-marketplace/5.0.10/metadata/annotations.yaml new file mode 100644 index 00000000000..e00c3b7426c --- /dev/null +++ b/bundles/redhat-marketplace/5.0.10/metadata/annotations.yaml @@ -0,0 +1,12 @@ +annotations: + # Core bundle annotations. + operators.operatorframework.io.bundle.mediatype.v1: registry+v1 + operators.operatorframework.io.bundle.manifests.v1: manifests/ + operators.operatorframework.io.bundle.metadata.v1: metadata/ + operators.operatorframework.io.bundle.package.v1: minio-operator-rhmp + operators.operatorframework.io.bundle.channels.v1: stable + # Annotations to specify OCP versions compatibility. + com.redhat.openshift.versions: v4.8-v4.13 + # Annotation to add default bundle channel as potential is declared + operators.operatorframework.io.bundle.channel.default.v1: stable + operatorframework.io/suggested-namespace: minio-operator diff --git a/certified-operators/manifests/minio-operator.clusterserviceversion.yaml b/certified-operators/manifests/minio-operator.clusterserviceversion.yaml index 7c4f8857910..0359a8421f7 100644 --- a/certified-operators/manifests/minio-operator.clusterserviceversion.yaml +++ b/certified-operators/manifests/minio-operator.clusterserviceversion.yaml @@ -32,7 +32,7 @@ metadata: "bucketDNS": false, "domains": {} }, - "image": "quay.io/minio/minio@sha256:6fce70c2fd719603cb538e25ec3f58d77c12c1f5141e46240a850065c7ce4470", + "image": "quay.io/minio/minio@sha256:7e697b900f60d68e9edd2e8fc0dccd158e98938d924298612c5bbd294f2a1e65", "imagePullSecret": {}, "mountPath": "/export", "podManagementPolicy": "Parallel", @@ -80,17 +80,18 @@ metadata: ] capabilities: Full Lifecycle categories: AI/Machine Learning, Big Data, Cloud Provider, Storage + createdAt: "2023-10-12T17:54:20Z" description: |- MinIO is a Kubernetes-native high performance object store with an S3-compatible API. The MinIO Operator supports deploying MinIO Tenants onto any Kubernetes. k8sMinVersion: "1.18" operatorframework.io/suggested-namespace: minio-operator - operators.operatorframework.io/builder: operator-sdk-v1.22.2 + operators.operatorframework.io/builder: operator-sdk-v1.32.0 operators.operatorframework.io/project_layout: unknown repository: https://github.com/minio/operator - containerImage: quay.io/minio/operator:v5.0.9 - name: minio-operator.v5.0.9 + containerImage: quay.io/minio/operator:v5.0.10 + name: minio-operator.v5.0.10 namespace: minio-operator spec: apiservicedefinitions: {} @@ -561,7 +562,7 @@ spec: - args: - ui - --certs-dir=/tmp/certs - image: quay.io/minio/operator:v5.0.9 + image: quay.io/minio/operator:v5.0.10 imagePullPolicy: IfNotPresent name: console ports: @@ -636,7 +637,7 @@ spec: value: "on" - name: OPERATOR_STS_ENABLED value: "off" - image: quay.io/minio/operator:v5.0.9 + image: quay.io/minio/operator:v5.0.10 imagePullPolicy: IfNotPresent name: minio-operator resources: @@ -754,11 +755,11 @@ spec: name: MinIO Inc url: https://min.io relatedImages: - - image: quay.io/minio/minio@sha256:6fce70c2fd719603cb538e25ec3f58d77c12c1f5141e46240a850065c7ce4470 - name: minio-6fce70c2fd719603cb538e25ec3f58d77c12c1f5141e46240a850065c7ce4470-annotation - - image: minio/operator@sha256:3cde156eab8bdbd012350b21817e360f3d2e330f4c10ff8742cf85bd5c85fed0 + - image: quay.io/minio/minio@sha256:7e697b900f60d68e9edd2e8fc0dccd158e98938d924298612c5bbd294f2a1e65 + name: minio-7e697b900f60d68e9edd2e8fc0dccd158e98938d924298612c5bbd294f2a1e65-annotation + - image: minio/operator@sha256:170b154d2c61c5a6f9dfbe4137e78815102a99fb9ab3aa6baf68750647e6261a name: console - - image: minio/operator@sha256:3cde156eab8bdbd012350b21817e360f3d2e330f4c10ff8742cf85bd5c85fed0 + - image: minio/operator@sha256:170b154d2c61c5a6f9dfbe4137e78815102a99fb9ab3aa6baf68750647e6261a name: minio-operator - version: 5.0.9 - replaces: minio-operator.v5.0.8 + version: 5.0.10 + replaces: minio-operator.v5.0.9 diff --git a/certified-operators/metadata/annotations.yaml b/certified-operators/metadata/annotations.yaml index b4745c091c5..c842f73a8db 100644 --- a/certified-operators/metadata/annotations.yaml +++ b/certified-operators/metadata/annotations.yaml @@ -5,6 +5,6 @@ annotations: operators.operatorframework.io.bundle.metadata.v1: metadata/ operators.operatorframework.io.bundle.package.v1: minio-operator operators.operatorframework.io.bundle.channels.v1: stable - operators.operatorframework.io.metrics.builder: operator-sdk-v1.22.2 + operators.operatorframework.io.metrics.builder: operator-sdk-v1.32.0 operators.operatorframework.io.metrics.mediatype.v1: metrics+v1 operators.operatorframework.io.metrics.project_layout: unknown diff --git a/community-operators/manifests/minio-operator.clusterserviceversion.yaml b/community-operators/manifests/minio-operator.clusterserviceversion.yaml index 458a2e230bd..5c753ab1d8d 100644 --- a/community-operators/manifests/minio-operator.clusterserviceversion.yaml +++ b/community-operators/manifests/minio-operator.clusterserviceversion.yaml @@ -32,7 +32,7 @@ metadata: "bucketDNS": false, "domains": {} }, - "image": "quay.io/minio/minio@sha256:6fce70c2fd719603cb538e25ec3f58d77c12c1f5141e46240a850065c7ce4470", + "image": "quay.io/minio/minio@sha256:7e697b900f60d68e9edd2e8fc0dccd158e98938d924298612c5bbd294f2a1e65", "imagePullSecret": {}, "mountPath": "/export", "podManagementPolicy": "Parallel", @@ -80,17 +80,18 @@ metadata: ] capabilities: Full Lifecycle categories: AI/Machine Learning, Big Data, Cloud Provider, Storage + createdAt: "2023-10-12T17:54:27Z" description: |- MinIO is a Kubernetes-native high performance object store with an S3-compatible API. The MinIO Operator supports deploying MinIO Tenants onto any Kubernetes. k8sMinVersion: "1.18" operatorframework.io/suggested-namespace: minio-operator - operators.operatorframework.io/builder: operator-sdk-v1.22.2 + operators.operatorframework.io/builder: operator-sdk-v1.32.0 operators.operatorframework.io/project_layout: unknown repository: https://github.com/minio/operator - containerImage: quay.io/minio/operator:v5.0.9 - name: minio-operator.v5.0.9 + containerImage: quay.io/minio/operator:v5.0.10 + name: minio-operator.v5.0.10 namespace: minio-operator spec: apiservicedefinitions: {} @@ -561,7 +562,7 @@ spec: - args: - ui - --certs-dir=/tmp/certs - image: quay.io/minio/operator:v5.0.9 + image: quay.io/minio/operator:v5.0.10 imagePullPolicy: IfNotPresent name: console ports: @@ -636,7 +637,7 @@ spec: value: "on" - name: OPERATOR_STS_ENABLED value: "off" - image: quay.io/minio/operator:v5.0.9 + image: quay.io/minio/operator:v5.0.10 imagePullPolicy: IfNotPresent name: minio-operator resources: @@ -754,11 +755,11 @@ spec: name: MinIO Inc url: https://min.io relatedImages: - - image: minio/operator@sha256:3cde156eab8bdbd012350b21817e360f3d2e330f4c10ff8742cf85bd5c85fed0 + - image: minio/operator@sha256:170b154d2c61c5a6f9dfbe4137e78815102a99fb9ab3aa6baf68750647e6261a name: console - - image: minio/operator@sha256:3cde156eab8bdbd012350b21817e360f3d2e330f4c10ff8742cf85bd5c85fed0 + - image: minio/operator@sha256:170b154d2c61c5a6f9dfbe4137e78815102a99fb9ab3aa6baf68750647e6261a name: minio-operator - - image: quay.io/minio/minio@sha256:6fce70c2fd719603cb538e25ec3f58d77c12c1f5141e46240a850065c7ce4470 - name: minio-6fce70c2fd719603cb538e25ec3f58d77c12c1f5141e46240a850065c7ce4470-annotation - version: 5.0.9 + - image: quay.io/minio/minio@sha256:7e697b900f60d68e9edd2e8fc0dccd158e98938d924298612c5bbd294f2a1e65 + name: minio-7e697b900f60d68e9edd2e8fc0dccd158e98938d924298612c5bbd294f2a1e65-annotation + version: 5.0.10 replaces: "null" diff --git a/community-operators/metadata/annotations.yaml b/community-operators/metadata/annotations.yaml index b4745c091c5..c842f73a8db 100644 --- a/community-operators/metadata/annotations.yaml +++ b/community-operators/metadata/annotations.yaml @@ -5,6 +5,6 @@ annotations: operators.operatorframework.io.bundle.metadata.v1: metadata/ operators.operatorframework.io.bundle.package.v1: minio-operator operators.operatorframework.io.bundle.channels.v1: stable - operators.operatorframework.io.metrics.builder: operator-sdk-v1.22.2 + operators.operatorframework.io.metrics.builder: operator-sdk-v1.32.0 operators.operatorframework.io.metrics.mediatype.v1: metrics+v1 operators.operatorframework.io.metrics.project_layout: unknown diff --git a/docs/policybinding_crd.adoc b/docs/policybinding_crd.adoc index ccd2dd07c6a..5e785a93eb1 100644 --- a/docs/policybinding_crd.adoc +++ b/docs/policybinding_crd.adoc @@ -4,8 +4,8 @@ [id="{p}-api-reference"] == API Reference -:minio-image: https://hub.docker.com/r/minio/minio/tags[minio/minio:RELEASE.2023-09-07T02-05-02Z] -:kes-image: https://hub.docker.com/r/minio/kes/tags[minio/kes:2023-08-19T17-27-47Z] +:minio-image: https://hub.docker.com/r/minio/minio/tags[minio/minio:RELEASE.2023-10-07T15-07-38Z] +:kes-image: https://hub.docker.com/r/minio/kes/tags[minio/kes:2023-10-03T00-48-37Z] [id="{anchor_prefix}-sts-min-io-v1alpha1"] diff --git a/docs/templates/asciidoctor/gv_list.tpl b/docs/templates/asciidoctor/gv_list.tpl index e83fde9a425..20b2ad6f9b4 100644 --- a/docs/templates/asciidoctor/gv_list.tpl +++ b/docs/templates/asciidoctor/gv_list.tpl @@ -7,8 +7,8 @@ [id="{p}-api-reference"] == API Reference -:minio-image: https://hub.docker.com/r/minio/minio/tags[minio/minio:RELEASE.2023-09-07T02-05-02Z] -:kes-image: https://hub.docker.com/r/minio/kes/tags[minio/kes:2023-08-19T17-27-47Z] +:minio-image: https://hub.docker.com/r/minio/minio/tags[minio/minio:RELEASE.2023-10-07T15-07-38Z] +:kes-image: https://hub.docker.com/r/minio/kes/tags[minio/kes:2023-10-03T00-48-37Z] {{ range $groupVersions }} {{ template "gvDetails" . }} diff --git a/docs/tenant_crd.adoc b/docs/tenant_crd.adoc index b666916e7fa..2e1466b210b 100644 --- a/docs/tenant_crd.adoc +++ b/docs/tenant_crd.adoc @@ -4,8 +4,8 @@ [id="{p}-api-reference"] == API Reference -:minio-image: https://hub.docker.com/r/minio/minio/tags[minio/minio:RELEASE.2023-09-07T02-05-02Z] -:kes-image: https://hub.docker.com/r/minio/kes/tags[minio/kes:2023-08-19T17-27-47Z] +:minio-image: https://hub.docker.com/r/minio/minio/tags[minio/minio:RELEASE.2023-10-07T15-07-38Z] +:kes-image: https://hub.docker.com/r/minio/kes/tags[minio/kes:2023-10-03T00-48-37Z] [id="{anchor_prefix}-minio-min-io-v2"] diff --git a/examples/kustomization/base/tenant.yaml b/examples/kustomization/base/tenant.yaml index dc96c9f56b2..aae1bc7cc19 100644 --- a/examples/kustomization/base/tenant.yaml +++ b/examples/kustomization/base/tenant.yaml @@ -144,7 +144,7 @@ spec: ## https://github.com/minio/minio/tree/master/docs/tls/kubernetes#2-create-kubernetes-secret externalClientCertSecrets: [ ] ## Registry location and Tag to download MinIO Server image - image: quay.io/minio/minio:RELEASE.2023-09-07T02-05-02Z + image: quay.io/minio/minio:RELEASE.2023-10-07T15-07-38Z imagePullSecret: { } ## Mount path where PV will be mounted inside container(s). mountPath: /export @@ -247,7 +247,7 @@ spec: ## Audit Logs will be deprecated soon, commenting out for now!. ## LogSearch API setup for MinIO Tenant. # log: - # image: "" # defaults to minio/operator:v5.0.9 + # image: "" # defaults to minio/operator:v5.0.10 # env: [ ] # resources: { } # nodeSelector: { } diff --git a/examples/kustomization/tenant-certmanager-kes/tenant.yaml b/examples/kustomization/tenant-certmanager-kes/tenant.yaml index 3aaaf12a9a5..3a6ef5e21bb 100644 --- a/examples/kustomization/tenant-certmanager-kes/tenant.yaml +++ b/examples/kustomization/tenant-certmanager-kes/tenant.yaml @@ -14,7 +14,7 @@ spec: externalCertSecret: name: tenant-certmanager-2-tls type: cert-manager.io/v1 - image: minio/kes:2023-08-19T17-27-47Z + image: minio/kes:2023-10-03T00-48-37Z imagePullPolicy: IfNotPresent kesSecret: name: kes-configuration diff --git a/examples/kustomization/tenant-kes-encryption/tenant.yaml b/examples/kustomization/tenant-kes-encryption/tenant.yaml index 494b16e94b0..266e8f9f16b 100644 --- a/examples/kustomization/tenant-kes-encryption/tenant.yaml +++ b/examples/kustomization/tenant-kes-encryption/tenant.yaml @@ -7,7 +7,7 @@ spec: ## Define configuration for KES (stateless and distributed key-management system) ## Refer https://github.com/minio/kes kes: - image: "" # minio/kes:2023-08-19T17-27-47Z + image: "" # minio/kes:2023-10-03T00-48-37Z env: [ ] replicas: 2 kesSecret: diff --git a/helm-releases/operator-5.0.10.tgz b/helm-releases/operator-5.0.10.tgz new file mode 100644 index 0000000000000000000000000000000000000000..f45879642f2b9942ea9c14df17a70fa4adcf203b GIT binary patch literal 19326 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 jyD{Md-@89br --image ", Short: "Upgrade MinIO image for existing tenant", Long: upgradeDesc, - Example: ` kubectl minio upgrade tenant1 --image quay.io/minio/minio:RELEASE.2023-09-07T02-05-02Z`, + Example: ` kubectl minio upgrade tenant1 --image quay.io/minio/minio:RELEASE.2023-10-07T15-07-38Z`, Args: func(cmd *cobra.Command, args []string) error { return c.validate(args) }, diff --git a/manifests/minio-operator-rhmp.clusterserviceversion.yaml b/manifests/minio-operator-rhmp.clusterserviceversion.yaml index 84739e32fb6..da0bd26a29b 100644 --- a/manifests/minio-operator-rhmp.clusterserviceversion.yaml +++ b/manifests/minio-operator-rhmp.clusterserviceversion.yaml @@ -32,7 +32,7 @@ metadata: "bucketDNS": false, "domains": {} }, - "image": "quay.io/minio/minio@sha256:6fce70c2fd719603cb538e25ec3f58d77c12c1f5141e46240a850065c7ce4470", + "image": "quay.io/minio/minio@sha256:7e697b900f60d68e9edd2e8fc0dccd158e98938d924298612c5bbd294f2a1e65", "imagePullSecret": {}, "mountPath": "/export", "podManagementPolicy": "Parallel", @@ -80,6 +80,7 @@ metadata: ] capabilities: Full Lifecycle categories: AI/Machine Learning, Big Data, Cloud Provider, Storage + createdAt: "2023-10-12T17:54:23Z" description: |- MinIO is a Kubernetes-native high performance object store with an S3-compatible API. The MinIO Operator supports deploying MinIO Tenants @@ -88,11 +89,11 @@ metadata: marketplace.openshift.io/remote-workflow: https://marketplace.redhat.com/en-us/operators/minio-operator-rhmp/pricing?utm_source=openshift_console marketplace.openshift.io/support-workflow: https://marketplace.redhat.com/en-us/operators/minio-operator-rhmp/support?utm_source=openshift_console operatorframework.io/suggested-namespace: minio-operator - operators.operatorframework.io/builder: operator-sdk-v1.22.2 + operators.operatorframework.io/builder: operator-sdk-v1.32.0 operators.operatorframework.io/project_layout: unknown repository: https://github.com/minio/operator - containerImage: quay.io/minio/operator:v5.0.9 - name: minio-operator-rhmp.v5.0.9 + containerImage: quay.io/minio/operator:v5.0.10 + name: minio-operator-rhmp.v5.0.10 namespace: minio-operator spec: apiservicedefinitions: {} @@ -563,7 +564,7 @@ spec: - args: - ui - --certs-dir=/tmp/certs - image: quay.io/minio/operator:v5.0.9 + image: quay.io/minio/operator:v5.0.10 imagePullPolicy: IfNotPresent name: console ports: @@ -638,7 +639,7 @@ spec: value: "on" - name: OPERATOR_STS_ENABLED value: "off" - image: quay.io/minio/operator:v5.0.9 + image: quay.io/minio/operator:v5.0.10 imagePullPolicy: IfNotPresent name: minio-operator resources: @@ -756,11 +757,11 @@ spec: name: MinIO Inc url: https://min.io relatedImages: - - image: quay.io/minio/minio@sha256:6fce70c2fd719603cb538e25ec3f58d77c12c1f5141e46240a850065c7ce4470 - name: minio-6fce70c2fd719603cb538e25ec3f58d77c12c1f5141e46240a850065c7ce4470-annotation - - image: minio/operator@sha256:3cde156eab8bdbd012350b21817e360f3d2e330f4c10ff8742cf85bd5c85fed0 + - image: minio/operator@sha256:170b154d2c61c5a6f9dfbe4137e78815102a99fb9ab3aa6baf68750647e6261a name: console - - image: minio/operator@sha256:3cde156eab8bdbd012350b21817e360f3d2e330f4c10ff8742cf85bd5c85fed0 + - image: minio/operator@sha256:170b154d2c61c5a6f9dfbe4137e78815102a99fb9ab3aa6baf68750647e6261a name: minio-operator - version: 5.0.9 - replaces: minio-operator-rhmp.v5.0.8 + - image: quay.io/minio/minio@sha256:7e697b900f60d68e9edd2e8fc0dccd158e98938d924298612c5bbd294f2a1e65 + name: minio-7e697b900f60d68e9edd2e8fc0dccd158e98938d924298612c5bbd294f2a1e65-annotation + version: 5.0.10 + replaces: minio-operator-rhmp.v5.0.9 diff --git a/pkg/apis/minio.min.io/v2/constants.go b/pkg/apis/minio.min.io/v2/constants.go index aa1bfc1b3ba..2dd348c7210 100644 --- a/pkg/apis/minio.min.io/v2/constants.go +++ b/pkg/apis/minio.min.io/v2/constants.go @@ -97,7 +97,7 @@ const MinIOVolumeMountPath = "/export" const MinIOVolumeSubPath = "" // DefaultMinIOImage specifies the default MinIO Docker hub image -const DefaultMinIOImage = "minio/minio:RELEASE.2023-09-07T02-05-02Z" +const DefaultMinIOImage = "minio/minio:RELEASE.2023-10-07T15-07-38Z" // DefaultMinIOUpdateURL specifies the default MinIO URL where binaries are // pulled from during MinIO upgrades @@ -135,7 +135,7 @@ const ConsoleAdminPolicyName = "consoleAdmin" // KES Related Constants // DefaultKESImage specifies the latest KES Docker hub image -const DefaultKESImage = "minio/kes:2023-08-19T17-27-47Z" +const DefaultKESImage = "minio/kes:2023-10-03T00-48-37Z" // KESInstanceLabel is applied to the KES pods of a Tenant cluster const KESInstanceLabel = "v1.min.io/kes" diff --git a/pkg/controller/operator.go b/pkg/controller/operator.go index 37689f88b16..2c6c09673d4 100644 --- a/pkg/controller/operator.go +++ b/pkg/controller/operator.go @@ -60,7 +60,7 @@ const ( // DefaultDeploymentName is the default name of the operator deployment DefaultDeploymentName = "minio-operator" // DefaultOperatorImage is the version fo the operator being used - DefaultOperatorImage = "minio/operator:v5.0.9" + DefaultOperatorImage = "minio/operator:v5.0.10" ) var serverCertsManager *xcerts.Manager diff --git a/redhat-marketplace/manifests/minio-operator-rhmp.clusterserviceversion.yaml b/redhat-marketplace/manifests/minio-operator-rhmp.clusterserviceversion.yaml index 84739e32fb6..da0bd26a29b 100644 --- a/redhat-marketplace/manifests/minio-operator-rhmp.clusterserviceversion.yaml +++ b/redhat-marketplace/manifests/minio-operator-rhmp.clusterserviceversion.yaml @@ -32,7 +32,7 @@ metadata: "bucketDNS": false, "domains": {} }, - "image": "quay.io/minio/minio@sha256:6fce70c2fd719603cb538e25ec3f58d77c12c1f5141e46240a850065c7ce4470", + "image": "quay.io/minio/minio@sha256:7e697b900f60d68e9edd2e8fc0dccd158e98938d924298612c5bbd294f2a1e65", "imagePullSecret": {}, "mountPath": "/export", "podManagementPolicy": "Parallel", @@ -80,6 +80,7 @@ metadata: ] capabilities: Full Lifecycle categories: AI/Machine Learning, Big Data, Cloud Provider, Storage + createdAt: "2023-10-12T17:54:23Z" description: |- MinIO is a Kubernetes-native high performance object store with an S3-compatible API. The MinIO Operator supports deploying MinIO Tenants @@ -88,11 +89,11 @@ metadata: marketplace.openshift.io/remote-workflow: https://marketplace.redhat.com/en-us/operators/minio-operator-rhmp/pricing?utm_source=openshift_console marketplace.openshift.io/support-workflow: https://marketplace.redhat.com/en-us/operators/minio-operator-rhmp/support?utm_source=openshift_console operatorframework.io/suggested-namespace: minio-operator - operators.operatorframework.io/builder: operator-sdk-v1.22.2 + operators.operatorframework.io/builder: operator-sdk-v1.32.0 operators.operatorframework.io/project_layout: unknown repository: https://github.com/minio/operator - containerImage: quay.io/minio/operator:v5.0.9 - name: minio-operator-rhmp.v5.0.9 + containerImage: quay.io/minio/operator:v5.0.10 + name: minio-operator-rhmp.v5.0.10 namespace: minio-operator spec: apiservicedefinitions: {} @@ -563,7 +564,7 @@ spec: - args: - ui - --certs-dir=/tmp/certs - image: quay.io/minio/operator:v5.0.9 + image: quay.io/minio/operator:v5.0.10 imagePullPolicy: IfNotPresent name: console ports: @@ -638,7 +639,7 @@ spec: value: "on" - name: OPERATOR_STS_ENABLED value: "off" - image: quay.io/minio/operator:v5.0.9 + image: quay.io/minio/operator:v5.0.10 imagePullPolicy: IfNotPresent name: minio-operator resources: @@ -756,11 +757,11 @@ spec: name: MinIO Inc url: https://min.io relatedImages: - - image: quay.io/minio/minio@sha256:6fce70c2fd719603cb538e25ec3f58d77c12c1f5141e46240a850065c7ce4470 - name: minio-6fce70c2fd719603cb538e25ec3f58d77c12c1f5141e46240a850065c7ce4470-annotation - - image: minio/operator@sha256:3cde156eab8bdbd012350b21817e360f3d2e330f4c10ff8742cf85bd5c85fed0 + - image: minio/operator@sha256:170b154d2c61c5a6f9dfbe4137e78815102a99fb9ab3aa6baf68750647e6261a name: console - - image: minio/operator@sha256:3cde156eab8bdbd012350b21817e360f3d2e330f4c10ff8742cf85bd5c85fed0 + - image: minio/operator@sha256:170b154d2c61c5a6f9dfbe4137e78815102a99fb9ab3aa6baf68750647e6261a name: minio-operator - version: 5.0.9 - replaces: minio-operator-rhmp.v5.0.8 + - image: quay.io/minio/minio@sha256:7e697b900f60d68e9edd2e8fc0dccd158e98938d924298612c5bbd294f2a1e65 + name: minio-7e697b900f60d68e9edd2e8fc0dccd158e98938d924298612c5bbd294f2a1e65-annotation + version: 5.0.10 + replaces: minio-operator-rhmp.v5.0.9 diff --git a/redhat-marketplace/metadata/annotations.yaml b/redhat-marketplace/metadata/annotations.yaml index 9d5b0a5a5fd..f3fd77270a2 100644 --- a/redhat-marketplace/metadata/annotations.yaml +++ b/redhat-marketplace/metadata/annotations.yaml @@ -5,6 +5,6 @@ annotations: operators.operatorframework.io.bundle.metadata.v1: metadata/ operators.operatorframework.io.bundle.package.v1: minio-operator-rhmp operators.operatorframework.io.bundle.channels.v1: stable - operators.operatorframework.io.metrics.builder: operator-sdk-v1.22.2 + operators.operatorframework.io.metrics.builder: operator-sdk-v1.32.0 operators.operatorframework.io.metrics.mediatype.v1: metrics+v1 operators.operatorframework.io.metrics.project_layout: unknown diff --git a/resources/base/console-ui.yaml b/resources/base/console-ui.yaml index 6565d448448..7688b48d67d 100644 --- a/resources/base/console-ui.yaml +++ b/resources/base/console-ui.yaml @@ -289,7 +289,7 @@ spec: - args: - ui - --certs-dir=/tmp/certs - image: minio/operator:v5.0.9 + image: minio/operator:v5.0.10 imagePullPolicy: IfNotPresent name: console securityContext: diff --git a/resources/base/deployment.yaml b/resources/base/deployment.yaml index 067220981b2..b4a5ffc2eba 100644 --- a/resources/base/deployment.yaml +++ b/resources/base/deployment.yaml @@ -23,7 +23,7 @@ spec: serviceAccountName: minio-operator containers: - name: minio-operator - image: minio/operator:v5.0.9 + image: minio/operator:v5.0.10 imagePullPolicy: IfNotPresent args: - controller diff --git a/testing/console-tenant+kes.sh b/testing/console-tenant+kes.sh index ccbc9b8023b..4498b25a172 100755 --- a/testing/console-tenant+kes.sh +++ b/testing/console-tenant+kes.sh @@ -120,7 +120,7 @@ function test_kes_tenant() { sed -i -e 's/ROLE_ID/'"$ROLE_ID"'/g' "${SCRIPT_DIR}/kes-config.yaml" sed -i -e 's/SECRET_ID/'"$SECRET_ID"'/g' "${SCRIPT_DIR}/kes-config.yaml" cp "${SCRIPT_DIR}/kes-config.yaml" "${SCRIPT_DIR}/../examples/kustomization/tenant-kes-encryption/kes-configuration-secret.yaml" - yq e -i '.spec.kes.image = "minio/kes:2023-08-19T17-27-47Z"' "${SCRIPT_DIR}/../examples/kustomization/tenant-kes-encryption/tenant.yaml" + yq e -i '.spec.kes.image = "minio/kes:2023-10-03T00-48-37Z"' "${SCRIPT_DIR}/../examples/kustomization/tenant-kes-encryption/tenant.yaml" kubectl apply -k "${SCRIPT_DIR}/../examples/kustomization/tenant-kes-encryption" echo "Check Tenant Status in tenant-kms-encrypted namespace for myminio:" diff --git a/update-operator-krew.py b/update-operator-krew.py index ad19aab00d9..7c8e4639d5b 100644 --- a/update-operator-krew.py +++ b/update-operator-krew.py @@ -1,7 +1,7 @@ #!/usr/bin/env python import subprocess -version = "v5.0.9" +version = "v5.0.10" template = f"""apiVersion: krew.googlecontainertools.github.com/v1alpha2 kind: Plugin diff --git a/web-app/build/asset-manifest.json b/web-app/build/asset-manifest.json index f3ace6f0151..7b4ae551af7 100644 --- a/web-app/build/asset-manifest.json +++ b/web-app/build/asset-manifest.json @@ -1,23 +1,23 @@ { "files": { "main.css": "./static/css/main.49948cf4.css", - "main.js": "./static/js/main.2dac6aae.js", + "main.js": "./static/js/main.107f720c.js", "static/js/260.0a6c9eba.chunk.js": "./static/js/260.0a6c9eba.chunk.js", "static/js/914.4777a096.chunk.js": "./static/js/914.4777a096.chunk.js", "static/js/140.2b6604a2.chunk.js": "./static/js/140.2b6604a2.chunk.js", - "static/js/724.1efc027e.chunk.js": "./static/js/724.1efc027e.chunk.js", + "static/js/724.d8e3a44e.chunk.js": "./static/js/724.d8e3a44e.chunk.js", "static/css/292.41f82bb6.chunk.css": "./static/css/292.41f82bb6.chunk.css", - "static/js/292.82b40208.chunk.js": "./static/js/292.82b40208.chunk.js", - "static/js/33.a6099543.chunk.js": "./static/js/33.a6099543.chunk.js", + "static/js/292.5b893eb9.chunk.js": "./static/js/292.5b893eb9.chunk.js", + "static/js/33.8113b137.chunk.js": "./static/js/33.8113b137.chunk.js", "static/js/637.b61a0787.chunk.js": "./static/js/637.b61a0787.chunk.js", "static/js/779.3f04c094.chunk.js": "./static/js/779.3f04c094.chunk.js", "static/js/902.8e41de37.chunk.js": "./static/js/902.8e41de37.chunk.js", "static/js/847.4f134105.chunk.js": "./static/js/847.4f134105.chunk.js", - "static/js/692.8957e493.chunk.js": "./static/js/692.8957e493.chunk.js", + "static/js/692.173a6fa7.chunk.js": "./static/js/692.173a6fa7.chunk.js", "static/js/798.40660fbe.chunk.js": "./static/js/798.40660fbe.chunk.js", "static/css/881.41f82bb6.chunk.css": "./static/css/881.41f82bb6.chunk.css", "static/js/881.aead2ad2.chunk.js": "./static/js/881.aead2ad2.chunk.js", - "static/js/30.d72ddac2.chunk.js": "./static/js/30.d72ddac2.chunk.js", + "static/js/30.80b393c6.chunk.js": "./static/js/30.80b393c6.chunk.js", "static/js/145.bbbee7ec.chunk.js": "./static/js/145.bbbee7ec.chunk.js", "static/js/379.56027397.chunk.js": "./static/js/379.56027397.chunk.js", "static/js/501.180adea1.chunk.js": "./static/js/501.180adea1.chunk.js", @@ -27,10 +27,10 @@ "static/js/495.4b83392d.chunk.js": "./static/js/495.4b83392d.chunk.js", "static/js/934.662d3ea1.chunk.js": "./static/js/934.662d3ea1.chunk.js", "static/js/942.0b96affd.chunk.js": "./static/js/942.0b96affd.chunk.js", - "static/js/21.01c7d0c4.chunk.js": "./static/js/21.01c7d0c4.chunk.js", + "static/js/21.53327062.chunk.js": "./static/js/21.53327062.chunk.js", "static/js/332.ae2fe11c.chunk.js": "./static/js/332.ae2fe11c.chunk.js", "static/css/367.41f82bb6.chunk.css": "./static/css/367.41f82bb6.chunk.css", - "static/js/367.fb267f8e.chunk.js": "./static/js/367.fb267f8e.chunk.js", + "static/js/367.2251aaba.chunk.js": "./static/js/367.2251aaba.chunk.js", "static/js/32.322d0e88.chunk.js": "./static/js/32.322d0e88.chunk.js", "static/js/873.bed79c0a.chunk.js": "./static/js/873.bed79c0a.chunk.js", "static/js/405.5df626d3.chunk.js": "./static/js/405.5df626d3.chunk.js", @@ -70,23 +70,23 @@ "static/media/Inter-Regular.woff2": "./static/media/Inter-Regular.c8ba52b05a9ef10f4758.woff2", "index.html": "./index.html", "main.49948cf4.css.map": "./static/css/main.49948cf4.css.map", - "main.2dac6aae.js.map": "./static/js/main.2dac6aae.js.map", + "main.107f720c.js.map": "./static/js/main.107f720c.js.map", "260.0a6c9eba.chunk.js.map": "./static/js/260.0a6c9eba.chunk.js.map", "914.4777a096.chunk.js.map": "./static/js/914.4777a096.chunk.js.map", "140.2b6604a2.chunk.js.map": "./static/js/140.2b6604a2.chunk.js.map", - "724.1efc027e.chunk.js.map": "./static/js/724.1efc027e.chunk.js.map", + "724.d8e3a44e.chunk.js.map": "./static/js/724.d8e3a44e.chunk.js.map", "292.41f82bb6.chunk.css.map": "./static/css/292.41f82bb6.chunk.css.map", - "292.82b40208.chunk.js.map": "./static/js/292.82b40208.chunk.js.map", - "33.a6099543.chunk.js.map": "./static/js/33.a6099543.chunk.js.map", + "292.5b893eb9.chunk.js.map": "./static/js/292.5b893eb9.chunk.js.map", + "33.8113b137.chunk.js.map": "./static/js/33.8113b137.chunk.js.map", "637.b61a0787.chunk.js.map": "./static/js/637.b61a0787.chunk.js.map", "779.3f04c094.chunk.js.map": "./static/js/779.3f04c094.chunk.js.map", "902.8e41de37.chunk.js.map": "./static/js/902.8e41de37.chunk.js.map", "847.4f134105.chunk.js.map": "./static/js/847.4f134105.chunk.js.map", - "692.8957e493.chunk.js.map": "./static/js/692.8957e493.chunk.js.map", + "692.173a6fa7.chunk.js.map": "./static/js/692.173a6fa7.chunk.js.map", "798.40660fbe.chunk.js.map": "./static/js/798.40660fbe.chunk.js.map", "881.41f82bb6.chunk.css.map": "./static/css/881.41f82bb6.chunk.css.map", "881.aead2ad2.chunk.js.map": "./static/js/881.aead2ad2.chunk.js.map", - "30.d72ddac2.chunk.js.map": "./static/js/30.d72ddac2.chunk.js.map", + "30.80b393c6.chunk.js.map": "./static/js/30.80b393c6.chunk.js.map", "145.bbbee7ec.chunk.js.map": "./static/js/145.bbbee7ec.chunk.js.map", "379.56027397.chunk.js.map": "./static/js/379.56027397.chunk.js.map", "501.180adea1.chunk.js.map": "./static/js/501.180adea1.chunk.js.map", @@ -96,10 +96,10 @@ "495.4b83392d.chunk.js.map": "./static/js/495.4b83392d.chunk.js.map", "934.662d3ea1.chunk.js.map": "./static/js/934.662d3ea1.chunk.js.map", "942.0b96affd.chunk.js.map": "./static/js/942.0b96affd.chunk.js.map", - "21.01c7d0c4.chunk.js.map": "./static/js/21.01c7d0c4.chunk.js.map", + "21.53327062.chunk.js.map": "./static/js/21.53327062.chunk.js.map", "332.ae2fe11c.chunk.js.map": "./static/js/332.ae2fe11c.chunk.js.map", "367.41f82bb6.chunk.css.map": "./static/css/367.41f82bb6.chunk.css.map", - "367.fb267f8e.chunk.js.map": "./static/js/367.fb267f8e.chunk.js.map", + "367.2251aaba.chunk.js.map": "./static/js/367.2251aaba.chunk.js.map", "32.322d0e88.chunk.js.map": "./static/js/32.322d0e88.chunk.js.map", "873.bed79c0a.chunk.js.map": "./static/js/873.bed79c0a.chunk.js.map", "405.5df626d3.chunk.js.map": "./static/js/405.5df626d3.chunk.js.map", @@ -120,6 +120,6 @@ }, "entrypoints": [ "static/css/main.49948cf4.css", - "static/js/main.2dac6aae.js" + "static/js/main.107f720c.js" ] } \ No newline at end of file diff --git a/web-app/build/index.html b/web-app/build/index.html index b38c8193ebe..1a4f3606249 100644 --- a/web-app/build/index.html +++ b/web-app/build/index.html @@ -1 +1 @@ -MinIO Console
\ No newline at end of file +MinIO Console
\ No newline at end of file diff --git a/web-app/build/static/js/21.01c7d0c4.chunk.js b/web-app/build/static/js/21.01c7d0c4.chunk.js deleted file mode 100644 index 5b7f1e6b789..00000000000 --- a/web-app/build/static/js/21.01c7d0c4.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[21],{68456:function(e,n,a){a.d(n,{QT:function(){return o},YH:function(){return c},mo:function(){return s}});var t=a(61889),i=a(75952),r=a(80184),s=function(){return(0,r.jsxs)(t.ZP,{container:!0,columnGap:1,children:[(0,r.jsx)(t.ZP,{children:(0,r.jsx)(i.gyG,{width:"16px",height:"16px"})}),(0,r.jsx)(t.ZP,{item:!0,children:"Open ID"})]})},o=function(){return(0,r.jsxs)(t.ZP,{container:!0,columnGap:1,children:[(0,r.jsx)(t.ZP,{children:(0,r.jsx)(i.vcZ,{width:"16px",height:"16px"})}),(0,r.jsx)(t.ZP,{item:!0,children:"LDAP / Active Directory"})]})},c=function(){return(0,r.jsxs)(t.ZP,{container:!0,columnGap:1,children:[(0,r.jsx)(t.ZP,{children:(0,r.jsx)(i.oyc,{width:"16px",height:"16px"})}),(0,r.jsx)(t.ZP,{item:!0,children:"Built-in"})]})}},37021:function(e,n,a){a.r(n);var t=a(93433),i=a(29439),r=a(1413),s=a(72791),o=a(78687),c=a(51691),l=a(20890),d=a(96040),u=a(13400),m=a(75952),h=a(61889),p=a(11135),x=a(25787),v=a(20165),f=a(3579),_=a(23814),Z=a(68456),j=a(84741),g=a(40968),D=a(87995),N=a(41320),S=a(83679),b=a(21435),I=a(37516),y=a(40306),k=a(81207),A=a(42419),w=a(27247),C=a(50896),P=a(80184);function R(){return null}var F=(0,o.$j)((function(e){return{loadingTenant:e.tenants.loadingTenant,selectedTenant:e.tenants.currentTenant,tenant:e.tenants.tenantInfo}}),null);n.default=(0,x.Z)((function(e){return(0,p.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)({adUserDnRows:{display:"flex",marginBottom:10},buttonTray:{marginLeft:10,display:"flex",height:38,"& button":{background:"#EAEAEA"}}},_.oZ),_.bK),{},{loaderAlign:{textAlign:"center"}},_.Bz),_.QV),_.DF),_.oO),_.AK))}))(F((function(e){var n=e.classes,a=(0,N.TL)(),r=(0,o.v9)((function(e){return e.tenants.tenantInfo})),p=(0,o.v9)((function(e){return e.tenants.loadingTenant})),x=(0,s.useState)(!1),_=(0,i.Z)(x,2),F=_[0],T=_[1],L=(0,s.useState)(!1),O=(0,i.Z)(L,2),U=O[0],B=O[1],G=(0,s.useState)("Built-in"),q=(0,i.Z)(G,2),z=q[0],K=q[1],E=(0,s.useState)(""),H=(0,i.Z)(E,2),V=H[0],M=H[1],Q=(0,s.useState)(""),Y=(0,i.Z)(Q,2),W=Y[0],$=Y[1],J=(0,s.useState)(""),X=(0,i.Z)(J,2),ee=X[0],ne=X[1],ae=(0,s.useState)(!1),te=(0,i.Z)(ae,2),ie=te[0],re=te[1],se=(0,s.useState)(""),oe=(0,i.Z)(se,2),ce=oe[0],le=oe[1],de=(0,s.useState)(""),ue=(0,i.Z)(de,2),me=ue[0],he=ue[1],pe=(0,s.useState)(""),xe=(0,i.Z)(pe,2),ve=xe[0],fe=xe[1],_e=(0,s.useState)(""),Ze=(0,i.Z)(_e,2),je=Ze[0],ge=Ze[1],De=(0,s.useState)(""),Ne=(0,i.Z)(De,2),Se=Ne[0],be=Ne[1],Ie=(0,s.useState)(""),ye=(0,i.Z)(Ie,2),ke=ye[0],Ae=ye[1],we=(0,s.useState)(!1),Ce=(0,i.Z)(we,2),Pe=Ce[0],Re=Ce[1],Fe=(0,s.useState)(""),Te=(0,i.Z)(Fe,2),Le=Te[0],Oe=Te[1],Ue=(0,s.useState)(""),Be=(0,i.Z)(Ue,2),Ge=Be[0],qe=Be[1],ze=(0,s.useState)(""),Ke=(0,i.Z)(ze,2),Ee=Ke[0],He=Ke[1],Ve=(0,s.useState)(""),Me=(0,i.Z)(Ve,2),Qe=Me[0],Ye=Me[1],We=(0,s.useState)(!1),$e=(0,i.Z)(We,2),Je=$e[0],Xe=$e[1],en=(0,s.useState)(!1),nn=(0,i.Z)(en,2),an=nn[0],tn=nn[1],rn=(0,s.useState)(!1),sn=(0,i.Z)(rn,2),on=sn[0],cn=sn[1],ln=(0,s.useState)([""]),dn=(0,i.Z)(ln,2),un=dn[0],mn=dn[1],hn=(0,s.useState)([""]),pn=(0,i.Z)(hn,2),xn=pn[0],vn=pn[1],fn=(0,s.useState)({}),_n=(0,i.Z)(fn,2),Zn=_n[0],jn=_n[1],gn=function(e){jn((0,j.he)(Zn,e))},Dn=(0,s.useState)(!1),Nn=(0,i.Z)(Dn,2),Sn=Nn[0],bn=Nn[1];(0,s.useEffect)((function(){var e=[];"OpenID"===z&&(e=[].concat((0,t.Z)(e),[{fieldKey:"openID_CONFIGURATION_URL",required:!0,value:V},{fieldKey:"openID_clientID",required:!0,value:W},{fieldKey:"openID_secretID",required:!0,value:ee},{fieldKey:"openID_claimName",required:!1,value:me}])),"AD"===z&&(e=[].concat((0,t.Z)(e),[{fieldKey:"AD_URL",required:!0,value:je},{fieldKey:"ad_lookupBindDN",required:!0,value:Se}]));var n=(0,g.R)(e);bn(0===Object.keys(n).length),jn(n)}),[z,V,W,ee,me,je,Se]);var In=(0,s.useCallback)((function(){k.Z.invoke("GET","/api/v1/namespaces/".concat(null===r||void 0===r?void 0:r.namespace,"/tenants/").concat(null===r||void 0===r?void 0:r.name,"/identity-provider")).then((function(e){e&&(e.oidc?(K("OpenID"),M(e.oidc.configuration_url),$(e.oidc.client_id),ne(e.oidc.secret_id),le(e.oidc.callback_url),he(e.oidc.claim_name),fe(e.oidc.scopes)):e.active_directory&&(K("AD"),ge(e.active_directory.url),be(e.active_directory.lookup_bind_dn),Ae(e.active_directory.lookup_bind_password),Oe(e.active_directory.user_dn_search_base_dn),qe(e.active_directory.user_dn_search_filter),He(e.active_directory.group_search_base_dn),Ye(e.active_directory.group_search_filter),Xe(e.active_directory.skip_tls_verification),tn(e.active_directory.server_insecure),cn(e.active_directory.server_start_tls)))})).catch((function(e){a((0,D.Ih)(e))}))}),[r,a]);(0,s.useEffect)((function(){r&&In()}),[r,In]);return(0,P.jsxs)(s.Fragment,{children:[(0,P.jsx)(y.Z,{title:"Save and Restart",confirmText:"Restart",cancelText:"Cancel",titleIcon:(0,P.jsx)(m.EjK,{}),isLoading:F,onClose:function(){return B(!1)},isOpen:U,onConfirm:function(){T(!0);var e={};switch(z){case"AD":e.active_directory={url:je,lookup_bind_dn:Se,lookup_bind_password:ke,user_dn_search_base_dn:Le,user_dn_search_filter:Ge,group_search_base_dn:Ee,group_search_filter:Qe,skip_tls_verification:Je,server_insecure:an,server_start_tls:on};break;case"OpenID":e.oidc={configuration_url:V,client_id:W,secret_id:ee,callback_url:ce,claim_name:me,scopes:ve}}k.Z.invoke("POST","/api/v1/namespaces/".concat(null===r||void 0===r?void 0:r.namespace,"/tenants/").concat(null===r||void 0===r?void 0:r.name,"/identity-provider"),e).then((function(){T(!1),B(!1),In()})).catch((function(e){a((0,D.Ih)(e)),T(!1)}))},confirmationContent:(0,P.jsx)(c.Z,{children:"Are you sure you want to save the changes and restart the service?"})}),p?(0,P.jsx)("div",{className:n.loaderAlign,children:(0,P.jsx)(m.aNw,{})}):(0,P.jsxs)(s.Fragment,{children:[(0,P.jsxs)(h.ZP,{item:!0,xs:12,children:[(0,P.jsx)("h1",{className:n.sectionTitle,children:"Identity Provider"}),(0,P.jsx)(R,{})]}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.protocolRadioOptions,paddingBottom:1,children:(0,P.jsx)(S.Z,{currentSelection:z,id:"idp-options",name:"idp-options",label:"Protocol",onChange:function(e){K(e.target.value)},selectorOptions:[{label:(0,P.jsx)(Z.YH,{}),value:"Built-in"},{label:(0,P.jsx)(Z.mo,{}),value:"OpenID"},{label:(0,P.jsx)(Z.QT,{}),value:"AD"}]})}),"OpenID"===z&&(0,P.jsxs)(s.Fragment,{children:[(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(b.Z,{id:"openID_CONFIGURATION_URL",name:"openID_CONFIGURATION_URL",onChange:function(e){M(e.target.value),gn("openID_CONFIGURATION_URL")},label:"Configuration URL",value:V,placeholder:"https://your-identity-provider.com/.well-known/openid-configuration",error:Zn.openID_CONFIGURATION_URL||"",required:!0})}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(b.Z,{id:"openID_clientID",name:"openID_clientID",onChange:function(e){$(e.target.value),gn("openID_clientID")},label:"Client ID",value:W,error:Zn.openID_clientID||"",required:!0})}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(b.Z,{type:ie?"text":"password",id:"openID_secretID",name:"openID_secretID",onChange:function(e){ne(e.target.value),gn("openID_secretID")},label:"Secret ID",value:ee,error:Zn.openID_secretID||"",required:!0,overlayIcon:ie?(0,P.jsx)(v.Z,{}):(0,P.jsx)(f.Z,{}),overlayAction:function(){return re(!ie)}})}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(b.Z,{id:"openID_claimName",name:"openID_claimName",onChange:function(e){he(e.target.value),gn("openID_claimName")},label:"Claim Name",value:me,placeholder:"policy",error:Zn.openID_claimName||""})}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(b.Z,{id:"openID_scopes",name:"openID_scopes",onChange:function(e){fe(e.target.value),gn("openID_scopes")},label:"Scopes",value:ve})})]}),"AD"===z&&(0,P.jsxs)(s.Fragment,{children:[(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(b.Z,{id:"AD_URL",name:"AD_URL",onChange:function(e){ge(e.target.value),gn("AD_URL")},label:"LDAP Server Address",value:je,placeholder:"ldap-server:636",error:Zn.AD_URL||"",required:!0})}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(I.Z,{value:"ad_skipTLS",id:"ad_skipTLS",name:"ad_skipTLS",checked:Je,onChange:function(e){var n=e.target.checked;Xe(n)},label:"Skip TLS Verification"})}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(I.Z,{value:"ad_serverInsecure",id:"ad_serverInsecure",name:"ad_serverInsecure",checked:an,onChange:function(e){var n=e.target.checked;tn(n)},label:"Server Insecure"})}),an?(0,P.jsxs)(h.ZP,{item:!0,xs:12,children:[(0,P.jsx)(l.Z,{className:n.error,variant:"caption",display:"block",gutterBottom:!0,children:"Warning: All traffic with Active Directory will be unencrypted"}),(0,P.jsx)("br",{})]}):null,(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(I.Z,{value:"ad_serverStartTLS",id:"ad_serverStartTLS",name:"ad_serverStartTLS",checked:on,onChange:function(e){var n=e.target.checked;cn(n)},label:"Start TLS connection to AD/LDAP server"})}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(b.Z,{id:"ad_lookupBindDN",name:"ad_lookupBindDN",onChange:function(e){be(e.target.value),gn("ad_lookupBindDN")},label:"Lookup Bind DN",value:Se,placeholder:"cn=admin,dc=min,dc=io",error:Zn.ad_lookupBindDN||"",required:!0})}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(b.Z,{type:Pe?"text":"password",id:"ad_lookupBindPassword",name:"ad_lookupBindPassword",onChange:function(e){Ae(e.target.value)},label:"Lookup Bind Password",value:ke,placeholder:"admin",overlayIcon:Pe?(0,P.jsx)(v.Z,{}):(0,P.jsx)(f.Z,{}),overlayAction:function(){return Re(!Pe)}})}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(b.Z,{id:"ad_userDNSearchBaseDN",name:"ad_userDNSearchBaseDN",onChange:function(e){Oe(e.target.value)},label:"User DN Search Base DN",value:Le,placeholder:"dc=min,dc=io"})}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(b.Z,{id:"ad_userDNSearchFilter",name:"ad_userDNSearchFilter",onChange:function(e){qe(e.target.value)},label:"User DN Search Filter",value:Ge,placeholder:"(sAMAcountName=%s)"})}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(b.Z,{id:"ad_groupSearchBaseDN",name:"ad_groupSearchBaseDN",onChange:function(e){He(e.target.value)},label:"Group Search Base DN",value:Ee,placeholder:"ou=hwengg,dc=min,dc=io;ou=swengg,dc=min,dc=io"})}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(b.Z,{id:"ad_groupSearchFilter",name:"ad_groupSearchFilter",onChange:function(e){Ye(e.target.value)},label:"Group Search Filter",value:Qe,placeholder:"(&(objectclass=groupOfNames)(member=%s))"})})]}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.buttonContainer,children:(0,P.jsx)(m.zxk,{id:"save-idp",type:"submit",variant:"callAction",color:"primary",disabled:!Sn||F,onClick:function(){return B(!0)},label:"Save"})}),"AD"===z&&(0,P.jsxs)(s.Fragment,{children:[(0,P.jsx)(C.Z,{children:"User & Group management"}),(0,P.jsx)("br",{}),(0,P.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,P.jsx)("legend",{className:n.descriptionText,children:"List of user DNs (Distinguished Names) to be added as Tenant Administrators"}),(0,P.jsx)(h.ZP,{item:!0,xs:12,children:un.map((function(e,a){return(0,P.jsx)(s.Fragment,{children:(0,P.jsxs)("div",{className:n.adUserDnRows,children:[(0,P.jsx)(b.Z,{id:"ad-userdn-".concat(a.toString()),label:"",placeholder:"",name:"ad-userdn-".concat(a.toString()),value:un[a],onChange:function(e){mn(un.map((function(n,t){return t===a?e.target.value:n})))},index:a,error:Zn["ad-userdn-".concat(a.toString())]||""},"csv-ad-userdn-".concat(a.toString())),(0,P.jsxs)("div",{className:n.buttonTray,children:[(0,P.jsx)(d.Z,{title:"Add User","aria-label":"add",children:(0,P.jsx)(u.Z,{size:"small",onClick:function(){mn([].concat((0,t.Z)(un),[""]))},children:(0,P.jsx)(A.Z,{})})}),(0,P.jsx)(d.Z,{title:"Remove","aria-label":"add",children:(0,P.jsx)(u.Z,{size:"small",style:{marginLeft:16},onClick:function(){un.length>1&&mn(un.filter((function(e,n){return n!==a})))},children:(0,P.jsx)(w.Z,{})})})]})]})},"identityField-".concat(a.toString()))}))})]}),(0,P.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,P.jsx)("legend",{className:n.descriptionText,children:"List of group DNs (Distinguished Names) to be added as Tenant Administrators"}),(0,P.jsx)(h.ZP,{item:!0,xs:12,children:xn.map((function(e,a){return(0,P.jsx)(s.Fragment,{children:(0,P.jsxs)("div",{className:n.adUserDnRows,children:[(0,P.jsx)(b.Z,{id:"ad-groupdn-".concat(a.toString()),label:"",placeholder:"",name:"ad-groupdn-".concat(a.toString()),value:xn[a],onChange:function(e){vn(xn.map((function(n,t){return t===a?e.target.value:n})))},index:a,error:Zn["ad-groupdn-".concat(a.toString())]||""},"csv-ad-groupdn-".concat(a.toString())),(0,P.jsxs)("div",{className:n.buttonTray,children:[(0,P.jsx)(d.Z,{title:"Add Group","aria-label":"add",children:(0,P.jsx)(u.Z,{size:"small",onClick:function(){vn([].concat((0,t.Z)(xn),[""]))},children:(0,P.jsx)(A.Z,{})})}),(0,P.jsx)(d.Z,{title:"Remove","aria-label":"add",children:(0,P.jsx)(u.Z,{size:"small",style:{marginLeft:16},onClick:function(){xn.length>1&&vn(xn.filter((function(e,n){return n!==a})))},children:(0,P.jsx)(w.Z,{})})})]})]})},"identityField-".concat(a.toString()))}))})]}),(0,P.jsx)("br",{}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.buttonContainer,children:(0,P.jsx)(m.zxk,{id:"add-additional-dns",type:"submit",variant:"callAction",disabled:!Sn||F,onClick:function(){return function(){T(!0);var e={};"AD"===z&&(e={user_dns:un.filter((function(e){return""!==e.trim()})),group_dns:xn.filter((function(e){return""!==e.trim()}))});k.Z.invoke("POST","/api/v1/namespaces/".concat(null===r||void 0===r?void 0:r.namespace,"/tenants/").concat(null===r||void 0===r?void 0:r.name,"/set-administrators"),e).then((function(){T(!1),vn([""]),mn([""]),In(),a((0,D.y1)("Administrators added successfully"))})).catch((function(e){a((0,D.Ih)(e)),T(!1)}))}()},label:"Add additional DNs"})})]})]})]})})))},42419:function(e,n,a){var t=a(64836);n.Z=void 0;var i=t(a(45649)),r=a(80184),s=(0,i.default)((0,r.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");n.Z=s},27247:function(e,n,a){var t=a(64836);n.Z=void 0;var i=t(a(45649)),r=a(80184),s=(0,i.default)((0,r.jsx)("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"}),"Delete");n.Z=s}}]); -//# sourceMappingURL=21.01c7d0c4.chunk.js.map \ No newline at end of file diff --git a/web-app/build/static/js/21.53327062.chunk.js b/web-app/build/static/js/21.53327062.chunk.js new file mode 100644 index 00000000000..031a653d700 --- /dev/null +++ b/web-app/build/static/js/21.53327062.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[21],{68456:function(e,n,a){a.d(n,{QT:function(){return o},YH:function(){return c},mo:function(){return s}});var t=a(61889),i=a(75952),r=a(80184),s=function(){return(0,r.jsxs)(t.ZP,{container:!0,columnGap:1,children:[(0,r.jsx)(t.ZP,{children:(0,r.jsx)(i.gyG,{width:"16px",height:"16px"})}),(0,r.jsx)(t.ZP,{item:!0,children:"Open ID"})]})},o=function(){return(0,r.jsxs)(t.ZP,{container:!0,columnGap:1,children:[(0,r.jsx)(t.ZP,{children:(0,r.jsx)(i.vcZ,{width:"16px",height:"16px"})}),(0,r.jsx)(t.ZP,{item:!0,children:"LDAP / Active Directory"})]})},c=function(){return(0,r.jsxs)(t.ZP,{container:!0,columnGap:1,children:[(0,r.jsx)(t.ZP,{children:(0,r.jsx)(i.oyc,{width:"16px",height:"16px"})}),(0,r.jsx)(t.ZP,{item:!0,children:"Built-in"})]})}},37021:function(e,n,a){a.r(n);var t=a(93433),i=a(29439),r=a(1413),s=a(72791),o=a(78687),c=a(51691),l=a(20890),d=a(96040),u=a(13400),m=a(75952),h=a(61889),p=a(11135),x=a(25787),v=a(20165),f=a(3579),_=a(23814),Z=a(68456),j=a(84741),g=a(40968),D=a(87995),N=a(41320),S=a(83679),b=a(21435),I=a(37516),y=a(40306),k=a(81207),A=a(42419),w=a(27247),C=a(50896),P=a(80184);function R(){return null}var F=(0,o.$j)((function(e){return{loadingTenant:e.tenants.loadingTenant,selectedTenant:e.tenants.currentTenant,tenant:e.tenants.tenantInfo}}),null);n.default=(0,x.Z)((function(e){return(0,p.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)({adUserDnRows:{display:"flex",marginBottom:10},buttonTray:{marginLeft:10,display:"flex",height:38,"& button":{background:"#EAEAEA"}}},_.oZ),_.bK),{},{loaderAlign:{textAlign:"center"}},_.Bz),_.QV),_.DF),_.oO),_.AK))}))(F((function(e){var n=e.classes,a=(0,N.TL)(),r=(0,o.v9)((function(e){return e.tenants.tenantInfo})),p=(0,o.v9)((function(e){return e.tenants.loadingTenant})),x=(0,s.useState)(!1),_=(0,i.Z)(x,2),F=_[0],T=_[1],L=(0,s.useState)(!1),O=(0,i.Z)(L,2),U=O[0],B=O[1],G=(0,s.useState)("Built-in"),q=(0,i.Z)(G,2),z=q[0],K=q[1],E=(0,s.useState)(""),H=(0,i.Z)(E,2),V=H[0],M=H[1],Q=(0,s.useState)(""),Y=(0,i.Z)(Q,2),W=Y[0],$=Y[1],J=(0,s.useState)(""),X=(0,i.Z)(J,2),ee=X[0],ne=X[1],ae=(0,s.useState)(!1),te=(0,i.Z)(ae,2),ie=te[0],re=te[1],se=(0,s.useState)(""),oe=(0,i.Z)(se,2),ce=oe[0],le=oe[1],de=(0,s.useState)(""),ue=(0,i.Z)(de,2),me=ue[0],he=ue[1],pe=(0,s.useState)(""),xe=(0,i.Z)(pe,2),ve=xe[0],fe=xe[1],_e=(0,s.useState)(""),Ze=(0,i.Z)(_e,2),je=Ze[0],ge=Ze[1],De=(0,s.useState)(""),Ne=(0,i.Z)(De,2),Se=Ne[0],be=Ne[1],Ie=(0,s.useState)(""),ye=(0,i.Z)(Ie,2),ke=ye[0],Ae=ye[1],we=(0,s.useState)(!1),Ce=(0,i.Z)(we,2),Pe=Ce[0],Re=Ce[1],Fe=(0,s.useState)(""),Te=(0,i.Z)(Fe,2),Le=Te[0],Oe=Te[1],Ue=(0,s.useState)(""),Be=(0,i.Z)(Ue,2),Ge=Be[0],qe=Be[1],ze=(0,s.useState)(""),Ke=(0,i.Z)(ze,2),Ee=Ke[0],He=Ke[1],Ve=(0,s.useState)(""),Me=(0,i.Z)(Ve,2),Qe=Me[0],Ye=Me[1],We=(0,s.useState)(!1),$e=(0,i.Z)(We,2),Je=$e[0],Xe=$e[1],en=(0,s.useState)(!1),nn=(0,i.Z)(en,2),an=nn[0],tn=nn[1],rn=(0,s.useState)(!1),sn=(0,i.Z)(rn,2),on=sn[0],cn=sn[1],ln=(0,s.useState)([""]),dn=(0,i.Z)(ln,2),un=dn[0],mn=dn[1],hn=(0,s.useState)([""]),pn=(0,i.Z)(hn,2),xn=pn[0],vn=pn[1],fn=(0,s.useState)({}),_n=(0,i.Z)(fn,2),Zn=_n[0],jn=_n[1],gn=function(e){jn((0,j.h)(Zn,e))},Dn=(0,s.useState)(!1),Nn=(0,i.Z)(Dn,2),Sn=Nn[0],bn=Nn[1];(0,s.useEffect)((function(){var e=[];"OpenID"===z&&(e=[].concat((0,t.Z)(e),[{fieldKey:"openID_CONFIGURATION_URL",required:!0,value:V},{fieldKey:"openID_clientID",required:!0,value:W},{fieldKey:"openID_secretID",required:!0,value:ee},{fieldKey:"openID_claimName",required:!1,value:me}])),"AD"===z&&(e=[].concat((0,t.Z)(e),[{fieldKey:"AD_URL",required:!0,value:je},{fieldKey:"ad_lookupBindDN",required:!0,value:Se}]));var n=(0,g.R)(e);bn(0===Object.keys(n).length),jn(n)}),[z,V,W,ee,me,je,Se]);var In=(0,s.useCallback)((function(){k.Z.invoke("GET","/api/v1/namespaces/".concat(null===r||void 0===r?void 0:r.namespace,"/tenants/").concat(null===r||void 0===r?void 0:r.name,"/identity-provider")).then((function(e){e&&(e.oidc?(K("OpenID"),M(e.oidc.configuration_url),$(e.oidc.client_id),ne(e.oidc.secret_id),le(e.oidc.callback_url),he(e.oidc.claim_name),fe(e.oidc.scopes)):e.active_directory&&(K("AD"),ge(e.active_directory.url),be(e.active_directory.lookup_bind_dn),Ae(e.active_directory.lookup_bind_password),Oe(e.active_directory.user_dn_search_base_dn),qe(e.active_directory.user_dn_search_filter),He(e.active_directory.group_search_base_dn),Ye(e.active_directory.group_search_filter),Xe(e.active_directory.skip_tls_verification),tn(e.active_directory.server_insecure),cn(e.active_directory.server_start_tls)))})).catch((function(e){a((0,D.Ih)(e))}))}),[r,a]);(0,s.useEffect)((function(){r&&In()}),[r,In]);return(0,P.jsxs)(s.Fragment,{children:[(0,P.jsx)(y.Z,{title:"Save and Restart",confirmText:"Restart",cancelText:"Cancel",titleIcon:(0,P.jsx)(m.EjK,{}),isLoading:F,onClose:function(){return B(!1)},isOpen:U,onConfirm:function(){T(!0);var e={};switch(z){case"AD":e.active_directory={url:je,lookup_bind_dn:Se,lookup_bind_password:ke,user_dn_search_base_dn:Le,user_dn_search_filter:Ge,group_search_base_dn:Ee,group_search_filter:Qe,skip_tls_verification:Je,server_insecure:an,server_start_tls:on};break;case"OpenID":e.oidc={configuration_url:V,client_id:W,secret_id:ee,callback_url:ce,claim_name:me,scopes:ve}}k.Z.invoke("POST","/api/v1/namespaces/".concat(null===r||void 0===r?void 0:r.namespace,"/tenants/").concat(null===r||void 0===r?void 0:r.name,"/identity-provider"),e).then((function(){T(!1),B(!1),In()})).catch((function(e){a((0,D.Ih)(e)),T(!1)}))},confirmationContent:(0,P.jsx)(c.Z,{children:"Are you sure you want to save the changes and restart the service?"})}),p?(0,P.jsx)("div",{className:n.loaderAlign,children:(0,P.jsx)(m.aNw,{})}):(0,P.jsxs)(s.Fragment,{children:[(0,P.jsxs)(h.ZP,{item:!0,xs:12,children:[(0,P.jsx)("h1",{className:n.sectionTitle,children:"Identity Provider"}),(0,P.jsx)(R,{})]}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.protocolRadioOptions,paddingBottom:1,children:(0,P.jsx)(S.Z,{currentSelection:z,id:"idp-options",name:"idp-options",label:"Protocol",onChange:function(e){K(e.target.value)},selectorOptions:[{label:(0,P.jsx)(Z.YH,{}),value:"Built-in"},{label:(0,P.jsx)(Z.mo,{}),value:"OpenID"},{label:(0,P.jsx)(Z.QT,{}),value:"AD"}]})}),"OpenID"===z&&(0,P.jsxs)(s.Fragment,{children:[(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(b.Z,{id:"openID_CONFIGURATION_URL",name:"openID_CONFIGURATION_URL",onChange:function(e){M(e.target.value),gn("openID_CONFIGURATION_URL")},label:"Configuration URL",value:V,placeholder:"https://your-identity-provider.com/.well-known/openid-configuration",error:Zn.openID_CONFIGURATION_URL||"",required:!0})}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(b.Z,{id:"openID_clientID",name:"openID_clientID",onChange:function(e){$(e.target.value),gn("openID_clientID")},label:"Client ID",value:W,error:Zn.openID_clientID||"",required:!0})}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(b.Z,{type:ie?"text":"password",id:"openID_secretID",name:"openID_secretID",onChange:function(e){ne(e.target.value),gn("openID_secretID")},label:"Secret ID",value:ee,error:Zn.openID_secretID||"",required:!0,overlayIcon:ie?(0,P.jsx)(v.Z,{}):(0,P.jsx)(f.Z,{}),overlayAction:function(){return re(!ie)}})}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(b.Z,{id:"openID_claimName",name:"openID_claimName",onChange:function(e){he(e.target.value),gn("openID_claimName")},label:"Claim Name",value:me,placeholder:"policy",error:Zn.openID_claimName||""})}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(b.Z,{id:"openID_scopes",name:"openID_scopes",onChange:function(e){fe(e.target.value),gn("openID_scopes")},label:"Scopes",value:ve})})]}),"AD"===z&&(0,P.jsxs)(s.Fragment,{children:[(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(b.Z,{id:"AD_URL",name:"AD_URL",onChange:function(e){ge(e.target.value),gn("AD_URL")},label:"LDAP Server Address",value:je,placeholder:"ldap-server:636",error:Zn.AD_URL||"",required:!0})}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(I.Z,{value:"ad_skipTLS",id:"ad_skipTLS",name:"ad_skipTLS",checked:Je,onChange:function(e){var n=e.target.checked;Xe(n)},label:"Skip TLS Verification"})}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(I.Z,{value:"ad_serverInsecure",id:"ad_serverInsecure",name:"ad_serverInsecure",checked:an,onChange:function(e){var n=e.target.checked;tn(n)},label:"Server Insecure"})}),an?(0,P.jsxs)(h.ZP,{item:!0,xs:12,children:[(0,P.jsx)(l.Z,{className:n.error,variant:"caption",display:"block",gutterBottom:!0,children:"Warning: All traffic with Active Directory will be unencrypted"}),(0,P.jsx)("br",{})]}):null,(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(I.Z,{value:"ad_serverStartTLS",id:"ad_serverStartTLS",name:"ad_serverStartTLS",checked:on,onChange:function(e){var n=e.target.checked;cn(n)},label:"Start TLS connection to AD/LDAP server"})}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(b.Z,{id:"ad_lookupBindDN",name:"ad_lookupBindDN",onChange:function(e){be(e.target.value),gn("ad_lookupBindDN")},label:"Lookup Bind DN",value:Se,placeholder:"cn=admin,dc=min,dc=io",error:Zn.ad_lookupBindDN||"",required:!0})}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(b.Z,{type:Pe?"text":"password",id:"ad_lookupBindPassword",name:"ad_lookupBindPassword",onChange:function(e){Ae(e.target.value)},label:"Lookup Bind Password",value:ke,placeholder:"admin",overlayIcon:Pe?(0,P.jsx)(v.Z,{}):(0,P.jsx)(f.Z,{}),overlayAction:function(){return Re(!Pe)}})}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(b.Z,{id:"ad_userDNSearchBaseDN",name:"ad_userDNSearchBaseDN",onChange:function(e){Oe(e.target.value)},label:"User DN Search Base DN",value:Le,placeholder:"dc=min,dc=io"})}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(b.Z,{id:"ad_userDNSearchFilter",name:"ad_userDNSearchFilter",onChange:function(e){qe(e.target.value)},label:"User DN Search Filter",value:Ge,placeholder:"(sAMAcountName=%s)"})}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(b.Z,{id:"ad_groupSearchBaseDN",name:"ad_groupSearchBaseDN",onChange:function(e){He(e.target.value)},label:"Group Search Base DN",value:Ee,placeholder:"ou=hwengg,dc=min,dc=io;ou=swengg,dc=min,dc=io"})}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(b.Z,{id:"ad_groupSearchFilter",name:"ad_groupSearchFilter",onChange:function(e){Ye(e.target.value)},label:"Group Search Filter",value:Qe,placeholder:"(&(objectclass=groupOfNames)(member=%s))"})})]}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.buttonContainer,children:(0,P.jsx)(m.zxk,{id:"save-idp",type:"submit",variant:"callAction",color:"primary",disabled:!Sn||F,onClick:function(){return B(!0)},label:"Save"})}),"AD"===z&&(0,P.jsxs)(s.Fragment,{children:[(0,P.jsx)(C.Z,{children:"User & Group management"}),(0,P.jsx)("br",{}),(0,P.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,P.jsx)("legend",{className:n.descriptionText,children:"List of user DNs (Distinguished Names) to be added as Tenant Administrators"}),(0,P.jsx)(h.ZP,{item:!0,xs:12,children:un.map((function(e,a){return(0,P.jsx)(s.Fragment,{children:(0,P.jsxs)("div",{className:n.adUserDnRows,children:[(0,P.jsx)(b.Z,{id:"ad-userdn-".concat(a.toString()),label:"",placeholder:"",name:"ad-userdn-".concat(a.toString()),value:un[a],onChange:function(e){mn(un.map((function(n,t){return t===a?e.target.value:n})))},index:a,error:Zn["ad-userdn-".concat(a.toString())]||""},"csv-ad-userdn-".concat(a.toString())),(0,P.jsxs)("div",{className:n.buttonTray,children:[(0,P.jsx)(d.Z,{title:"Add User","aria-label":"add",children:(0,P.jsx)(u.Z,{size:"small",onClick:function(){mn([].concat((0,t.Z)(un),[""]))},children:(0,P.jsx)(A.Z,{})})}),(0,P.jsx)(d.Z,{title:"Remove","aria-label":"add",children:(0,P.jsx)(u.Z,{size:"small",style:{marginLeft:16},onClick:function(){un.length>1&&mn(un.filter((function(e,n){return n!==a})))},children:(0,P.jsx)(w.Z,{})})})]})]})},"identityField-".concat(a.toString()))}))})]}),(0,P.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,P.jsx)("legend",{className:n.descriptionText,children:"List of group DNs (Distinguished Names) to be added as Tenant Administrators"}),(0,P.jsx)(h.ZP,{item:!0,xs:12,children:xn.map((function(e,a){return(0,P.jsx)(s.Fragment,{children:(0,P.jsxs)("div",{className:n.adUserDnRows,children:[(0,P.jsx)(b.Z,{id:"ad-groupdn-".concat(a.toString()),label:"",placeholder:"",name:"ad-groupdn-".concat(a.toString()),value:xn[a],onChange:function(e){vn(xn.map((function(n,t){return t===a?e.target.value:n})))},index:a,error:Zn["ad-groupdn-".concat(a.toString())]||""},"csv-ad-groupdn-".concat(a.toString())),(0,P.jsxs)("div",{className:n.buttonTray,children:[(0,P.jsx)(d.Z,{title:"Add Group","aria-label":"add",children:(0,P.jsx)(u.Z,{size:"small",onClick:function(){vn([].concat((0,t.Z)(xn),[""]))},children:(0,P.jsx)(A.Z,{})})}),(0,P.jsx)(d.Z,{title:"Remove","aria-label":"add",children:(0,P.jsx)(u.Z,{size:"small",style:{marginLeft:16},onClick:function(){xn.length>1&&vn(xn.filter((function(e,n){return n!==a})))},children:(0,P.jsx)(w.Z,{})})})]})]})},"identityField-".concat(a.toString()))}))})]}),(0,P.jsx)("br",{}),(0,P.jsx)(h.ZP,{item:!0,xs:12,className:n.buttonContainer,children:(0,P.jsx)(m.zxk,{id:"add-additional-dns",type:"submit",variant:"callAction",disabled:!Sn||F,onClick:function(){return function(){T(!0);var e={};"AD"===z&&(e={user_dns:un.filter((function(e){return""!==e.trim()})),group_dns:xn.filter((function(e){return""!==e.trim()}))});k.Z.invoke("POST","/api/v1/namespaces/".concat(null===r||void 0===r?void 0:r.namespace,"/tenants/").concat(null===r||void 0===r?void 0:r.name,"/set-administrators"),e).then((function(){T(!1),vn([""]),mn([""]),In(),a((0,D.y1)("Administrators added successfully"))})).catch((function(e){a((0,D.Ih)(e)),T(!1)}))}()},label:"Add additional DNs"})})]})]})]})})))},42419:function(e,n,a){var t=a(64836);n.Z=void 0;var i=t(a(45649)),r=a(80184),s=(0,i.default)((0,r.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");n.Z=s},27247:function(e,n,a){var t=a(64836);n.Z=void 0;var i=t(a(45649)),r=a(80184),s=(0,i.default)((0,r.jsx)("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"}),"Delete");n.Z=s}}]); +//# sourceMappingURL=21.53327062.chunk.js.map \ No newline at end of file diff --git a/web-app/build/static/js/21.01c7d0c4.chunk.js.map b/web-app/build/static/js/21.53327062.chunk.js.map similarity index 99% rename from web-app/build/static/js/21.01c7d0c4.chunk.js.map rename to web-app/build/static/js/21.53327062.chunk.js.map index 3187c760d91..f6dddeb3aeb 100644 --- a/web-app/build/static/js/21.01c7d0c4.chunk.js.map +++ b/web-app/build/static/js/21.53327062.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/21.01c7d0c4.chunk.js","mappings":"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","sources":["screens/Console/Tenants/LogoComponents.tsx","screens/Console/Tenants/TenantDetails/TenantIdentityProvider.tsx","../node_modules/@mui/icons-material/Add.js","../node_modules/@mui/icons-material/Delete.js"],"sourcesContent":["// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Grid } from \"@mui/material\";\nimport { LDAPIcon, OIDCIcon, UsersIcon } from \"mds\";\n\nexport const OIDCLogoElement = () => {\n return (\n \n \n \n \n Open ID\n \n );\n};\n\nexport const LDAPLogoElement = () => {\n return (\n \n \n \n \n LDAP / Active Directory\n \n );\n};\n\nexport const BuiltInLogoElement = () => {\n return (\n \n \n \n \n Built-in\n \n );\n};\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { connect, useSelector } from \"react-redux\";\nimport {\n DialogContentText,\n IconButton,\n Tooltip,\n Typography,\n} from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport { Button, ConfirmModalIcon, Loader } from \"mds\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\nimport RemoveRedEyeIcon from \"@mui/icons-material/RemoveRedEye\";\nimport {\n containerForHeader,\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n spacingUtils,\n tenantDetailsStyles,\n wizardCommon,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport {\n ITenantIdentityProviderResponse,\n ITenantSetAdministratorsRequest,\n} from \"../types\";\nimport {\n BuiltInLogoElement,\n LDAPLogoElement,\n OIDCLogoElement,\n} from \"../LogoComponents\";\nimport { clearValidationError } from \"../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../utils/validationFunctions\";\nimport {\n setErrorSnackMessage,\n setSnackBarMessage,\n} from \"../../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport RadioGroupSelector from \"../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport api from \"../../../../common/api\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport DeleteIcon from \"@mui/icons-material/Delete\";\nimport SectionTitle from \"../../Common/SectionTitle\";\n\ninterface ITenantIdentityProvider {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n adUserDnRows: {\n display: \"flex\",\n marginBottom: 10,\n },\n buttonTray: {\n marginLeft: 10,\n display: \"flex\",\n height: 38,\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n ...tenantDetailsStyles,\n ...spacingUtils,\n loaderAlign: {\n textAlign: \"center\",\n },\n ...containerForHeader,\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n });\n\nfunction FormHr() {\n return null;\n}\n\nconst TenantIdentityProvider = ({ classes }: ITenantIdentityProvider) => {\n const dispatch = useAppDispatch();\n\n const tenant = useSelector((state: AppState) => state.tenants.tenantInfo);\n const loadingTenant = useSelector(\n (state: AppState) => state.tenants.loadingTenant,\n );\n\n const [isSending, setIsSending] = useState(false);\n const [dialogOpen, setDialogOpen] = useState(false);\n const [idpSelection, setIdpSelection] = useState(\"Built-in\");\n const [openIDConfigurationURL, setOpenIDConfigurationURL] =\n useState(\"\");\n const [openIDClientID, setOpenIDClientID] = useState(\"\");\n const [openIDSecretID, setOpenIDSecretID] = useState(\"\");\n const [showOIDCSecretID, setShowOIDCSecretID] = useState(false);\n const [openIDCallbackURL, setOpenIDCallbackURL] = useState(\"\");\n const [openIDClaimName, setOpenIDClaimName] = useState(\"\");\n const [openIDScopes, setOpenIDScopes] = useState(\"\");\n const [ADURL, setADURL] = useState(\"\");\n const [ADLookupBindDN, setADLookupBindDN] = useState(\"\");\n const [ADLookupBindPassword, setADLookupBindPassword] = useState(\"\");\n const [showADLookupBindPassword, setShowADLookupBindPassword] =\n useState(false);\n const [ADUserDNSearchBaseDN, setADUserDNSearchBaseDN] = useState(\"\");\n const [ADUserDNSearchFilter, setADUserDNSearchFilter] = useState(\"\");\n const [ADGroupSearchBaseDN, setADGroupSearchBaseDN] = useState(\"\");\n const [ADGroupSearchFilter, setADGroupSearchFilter] = useState(\"\");\n const [ADSkipTLS, setADSkipTLS] = useState(false);\n const [ADServerInsecure, setADServerInsecure] = useState(false);\n const [ADServerStartTLS, setADServerStartTLS] = useState(false);\n const [ADUserDNs, setADUserDNs] = useState([\"\"]);\n const [ADGroupDNs, setADGroupDNs] = useState([\"\"]);\n const [validationErrors, setValidationErrors] = useState({});\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n const [isFormValid, setIsFormValid] = useState(false);\n\n // Validation\n useEffect(() => {\n let identityProviderValidation: IValidation[] = [];\n\n if (idpSelection === \"OpenID\") {\n identityProviderValidation = [\n ...identityProviderValidation,\n {\n fieldKey: \"openID_CONFIGURATION_URL\",\n required: true,\n value: openIDConfigurationURL,\n },\n {\n fieldKey: \"openID_clientID\",\n required: true,\n value: openIDClientID,\n },\n {\n fieldKey: \"openID_secretID\",\n required: true,\n value: openIDSecretID,\n },\n {\n fieldKey: \"openID_claimName\",\n required: false,\n value: openIDClaimName,\n },\n ];\n }\n\n if (idpSelection === \"AD\") {\n identityProviderValidation = [\n ...identityProviderValidation,\n {\n fieldKey: \"AD_URL\",\n required: true,\n value: ADURL,\n },\n {\n fieldKey: \"ad_lookupBindDN\",\n required: true,\n value: ADLookupBindDN,\n },\n ];\n }\n\n const commonVal = commonFormValidation(identityProviderValidation);\n\n setIsFormValid(Object.keys(commonVal).length === 0);\n\n setValidationErrors(commonVal);\n }, [\n idpSelection,\n openIDConfigurationURL,\n openIDClientID,\n openIDSecretID,\n openIDClaimName,\n ADURL,\n ADLookupBindDN,\n ]);\n\n const getTenantIdentityProviderInfo = useCallback(() => {\n api\n .invoke(\n \"GET\",\n `/api/v1/namespaces/${tenant?.namespace}/tenants/${tenant?.name}/identity-provider`,\n )\n .then((res: ITenantIdentityProviderResponse) => {\n if (res) {\n if (res.oidc) {\n setIdpSelection(\"OpenID\");\n setOpenIDConfigurationURL(res.oidc.configuration_url);\n setOpenIDClientID(res.oidc.client_id);\n setOpenIDSecretID(res.oidc.secret_id);\n setOpenIDCallbackURL(res.oidc.callback_url);\n setOpenIDClaimName(res.oidc.claim_name);\n setOpenIDScopes(res.oidc.scopes);\n } else if (res.active_directory) {\n setIdpSelection(\"AD\");\n setADURL(res.active_directory.url);\n setADLookupBindDN(res.active_directory.lookup_bind_dn);\n setADLookupBindPassword(res.active_directory.lookup_bind_password);\n setADUserDNSearchBaseDN(\n res.active_directory.user_dn_search_base_dn,\n );\n setADUserDNSearchFilter(res.active_directory.user_dn_search_filter);\n setADGroupSearchBaseDN(res.active_directory.group_search_base_dn);\n setADGroupSearchFilter(res.active_directory.group_search_filter);\n setADSkipTLS(res.active_directory.skip_tls_verification);\n setADServerInsecure(res.active_directory.server_insecure);\n setADServerStartTLS(res.active_directory.server_start_tls);\n }\n }\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n });\n }, [tenant, dispatch]);\n\n useEffect(() => {\n if (tenant) {\n getTenantIdentityProviderInfo();\n }\n }, [tenant, getTenantIdentityProviderInfo]);\n\n const updateTenantIdentityProvider = () => {\n setIsSending(true);\n let payload: ITenantIdentityProviderResponse = {};\n switch (idpSelection) {\n case \"AD\":\n payload.active_directory = {\n url: ADURL,\n lookup_bind_dn: ADLookupBindDN,\n lookup_bind_password: ADLookupBindPassword,\n user_dn_search_base_dn: ADUserDNSearchBaseDN,\n user_dn_search_filter: ADUserDNSearchFilter,\n group_search_base_dn: ADGroupSearchBaseDN,\n group_search_filter: ADGroupSearchFilter,\n skip_tls_verification: ADSkipTLS,\n server_insecure: ADServerInsecure,\n server_start_tls: ADServerStartTLS,\n };\n break;\n case \"OpenID\":\n payload.oidc = {\n configuration_url: openIDConfigurationURL,\n client_id: openIDClientID,\n secret_id: openIDSecretID,\n callback_url: openIDCallbackURL,\n claim_name: openIDClaimName,\n scopes: openIDScopes,\n };\n break;\n default:\n // Built-in IDP will be used by default\n }\n\n api\n .invoke(\n \"POST\",\n `/api/v1/namespaces/${tenant?.namespace}/tenants/${tenant?.name}/identity-provider`,\n payload,\n )\n .then(() => {\n setIsSending(false);\n // Close confirmation modal\n setDialogOpen(false);\n getTenantIdentityProviderInfo();\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setIsSending(false);\n });\n };\n\n const setAdministrators = () => {\n setIsSending(true);\n let payload: ITenantSetAdministratorsRequest = {};\n switch (idpSelection) {\n case \"AD\":\n payload = {\n user_dns: ADUserDNs.filter((user) => user.trim() !== \"\"),\n group_dns: ADGroupDNs.filter((group) => group.trim() !== \"\"),\n };\n break;\n default:\n // Built-in IDP will be used by default\n }\n\n api\n .invoke(\n \"POST\",\n `/api/v1/namespaces/${tenant?.namespace}/tenants/${tenant?.name}/set-administrators`,\n payload,\n )\n .then(() => {\n setIsSending(false);\n setADGroupDNs([\"\"]);\n setADUserDNs([\"\"]);\n getTenantIdentityProviderInfo();\n dispatch(setSnackBarMessage(`Administrators added successfully`));\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setIsSending(false);\n });\n };\n\n return (\n \n }\n isLoading={isSending}\n onClose={() => setDialogOpen(false)}\n isOpen={dialogOpen}\n onConfirm={updateTenantIdentityProvider}\n confirmationContent={\n \n Are you sure you want to save the changes and restart the service?\n \n }\n />\n {loadingTenant ? (\n
\n \n
\n ) : (\n \n \n

Identity Provider

\n \n
\n \n {\n setIdpSelection(e.target.value);\n }}\n selectorOptions={[\n { label: , value: \"Built-in\" },\n { label: , value: \"OpenID\" },\n { label: , value: \"AD\" },\n ]}\n />\n \n\n {idpSelection === \"OpenID\" && (\n \n \n ) => {\n setOpenIDConfigurationURL(e.target.value);\n cleanValidation(\"openID_CONFIGURATION_URL\");\n }}\n label=\"Configuration URL\"\n value={openIDConfigurationURL}\n placeholder=\"https://your-identity-provider.com/.well-known/openid-configuration\"\n error={validationErrors[\"openID_CONFIGURATION_URL\"] || \"\"}\n required\n />\n \n \n ) => {\n setOpenIDClientID(e.target.value);\n cleanValidation(\"openID_clientID\");\n }}\n label=\"Client ID\"\n value={openIDClientID}\n error={validationErrors[\"openID_clientID\"] || \"\"}\n required\n />\n \n \n ) => {\n setOpenIDSecretID(e.target.value);\n cleanValidation(\"openID_secretID\");\n }}\n label=\"Secret ID\"\n value={openIDSecretID}\n error={validationErrors[\"openID_secretID\"] || \"\"}\n required\n overlayIcon={\n showOIDCSecretID ? (\n \n ) : (\n \n )\n }\n overlayAction={() => setShowOIDCSecretID(!showOIDCSecretID)}\n />\n \n \n ) => {\n setOpenIDClaimName(e.target.value);\n cleanValidation(\"openID_claimName\");\n }}\n label=\"Claim Name\"\n value={openIDClaimName}\n placeholder=\"policy\"\n error={validationErrors[\"openID_claimName\"] || \"\"}\n />\n \n \n ) => {\n setOpenIDScopes(e.target.value);\n cleanValidation(\"openID_scopes\");\n }}\n label=\"Scopes\"\n value={openIDScopes}\n />\n \n \n )}\n\n {idpSelection === \"AD\" && (\n \n \n ) => {\n setADURL(e.target.value);\n cleanValidation(\"AD_URL\");\n }}\n label=\"LDAP Server Address\"\n value={ADURL}\n placeholder=\"ldap-server:636\"\n error={validationErrors[\"AD_URL\"] || \"\"}\n required\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n setADSkipTLS(checked);\n }}\n label={\"Skip TLS Verification\"}\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n setADServerInsecure(checked);\n }}\n label={\"Server Insecure\"}\n />\n \n {ADServerInsecure ? (\n \n \n Warning: All traffic with Active Directory will be\n unencrypted\n \n
\n
\n ) : null}\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n setADServerStartTLS(checked);\n }}\n label={\"Start TLS connection to AD/LDAP server\"}\n />\n \n \n ) => {\n setADLookupBindDN(e.target.value);\n cleanValidation(\"ad_lookupBindDN\");\n }}\n label=\"Lookup Bind DN\"\n value={ADLookupBindDN}\n placeholder=\"cn=admin,dc=min,dc=io\"\n error={validationErrors[\"ad_lookupBindDN\"] || \"\"}\n required\n />\n \n \n ) => {\n setADLookupBindPassword(e.target.value);\n }}\n label=\"Lookup Bind Password\"\n value={ADLookupBindPassword}\n placeholder=\"admin\"\n overlayIcon={\n showADLookupBindPassword ? (\n \n ) : (\n \n )\n }\n overlayAction={() =>\n setShowADLookupBindPassword(!showADLookupBindPassword)\n }\n />\n \n \n ) => {\n setADUserDNSearchBaseDN(e.target.value);\n }}\n label=\"User DN Search Base DN\"\n value={ADUserDNSearchBaseDN}\n placeholder=\"dc=min,dc=io\"\n />\n \n \n ) => {\n setADUserDNSearchFilter(e.target.value);\n }}\n label=\"User DN Search Filter\"\n value={ADUserDNSearchFilter}\n placeholder=\"(sAMAcountName=%s)\"\n />\n \n \n ) => {\n setADGroupSearchBaseDN(e.target.value);\n }}\n label=\"Group Search Base DN\"\n value={ADGroupSearchBaseDN}\n placeholder=\"ou=hwengg,dc=min,dc=io;ou=swengg,dc=min,dc=io\"\n />\n \n \n ) => {\n setADGroupSearchFilter(e.target.value);\n }}\n label=\"Group Search Filter\"\n value={ADGroupSearchFilter}\n placeholder=\"(&(objectclass=groupOfNames)(member=%s))\"\n />\n \n
\n )}\n\n \n setDialogOpen(true)}\n label={\"Save\"}\n />\n \n\n {idpSelection === \"AD\" && (\n \n User & Group management\n
\n
\n \n List of user DNs (Distinguished Names) to be added as Tenant\n Administrators\n \n \n {ADUserDNs.map((_, index) => {\n return (\n \n
\n ,\n ) => {\n setADUserDNs(\n ADUserDNs.map((group, i) =>\n i === index ? e.target.value : group,\n ),\n );\n }}\n index={index}\n key={`csv-ad-userdn-${index.toString()}`}\n error={\n validationErrors[\n `ad-userdn-${index.toString()}`\n ] || \"\"\n }\n />\n
\n \n {\n setADUserDNs([...ADUserDNs, \"\"]);\n }}\n >\n \n \n \n \n {\n if (ADUserDNs.length > 1) {\n setADUserDNs(\n ADUserDNs.filter((_, i) => i !== index),\n );\n }\n }}\n >\n \n \n \n
\n
\n
\n );\n })}\n
\n
\n
\n \n List of group DNs (Distinguished Names) to be added as Tenant\n Administrators\n \n \n {ADGroupDNs.map((_, index) => {\n return (\n \n
\n ,\n ) => {\n setADGroupDNs(\n ADGroupDNs.map((group, i) =>\n i === index ? e.target.value : group,\n ),\n );\n }}\n index={index}\n key={`csv-ad-groupdn-${index.toString()}`}\n error={\n validationErrors[\n `ad-groupdn-${index.toString()}`\n ] || \"\"\n }\n />\n
\n \n {\n setADGroupDNs([...ADGroupDNs, \"\"]);\n }}\n >\n \n \n \n \n {\n if (ADGroupDNs.length > 1) {\n setADGroupDNs(\n ADGroupDNs.filter((_, i) => i !== index),\n );\n }\n }}\n >\n \n \n \n
\n
\n
\n );\n })}\n
\n
\n
\n \n setAdministrators()}\n label={\"Add additional DNs\"}\n />\n \n
\n )}\n
\n )}\n
\n );\n};\n\nconst mapState = (state: AppState) => ({\n loadingTenant: state.tenants.loadingTenant,\n selectedTenant: state.tenants.currentTenant,\n tenant: state.tenants.tenantInfo,\n});\n\nconst connector = connect(mapState, null);\n\nexport default withStyles(styles)(connector(TenantIdentityProvider));\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"\n}), 'Add');\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\"\n}), 'Delete');\nexports.default = _default;"],"names":["OIDCLogoElement","_jsxs","Grid","container","columnGap","children","_jsx","OIDCIcon","width","height","item","LDAPLogoElement","LDAPIcon","BuiltInLogoElement","UsersIcon","FormHr","connector","connect","state","loadingTenant","tenants","selectedTenant","currentTenant","tenant","tenantInfo","withStyles","theme","createStyles","_objectSpread","adUserDnRows","display","marginBottom","buttonTray","marginLeft","background","tenantDetailsStyles","spacingUtils","loaderAlign","textAlign","containerForHeader","createTenantCommon","formFieldStyles","modalBasic","wizardCommon","_ref","classes","dispatch","useAppDispatch","useSelector","_useState","useState","_useState2","_slicedToArray","isSending","setIsSending","_useState3","_useState4","dialogOpen","setDialogOpen","_useState5","_useState6","idpSelection","setIdpSelection","_useState7","_useState8","openIDConfigurationURL","setOpenIDConfigurationURL","_useState9","_useState10","openIDClientID","setOpenIDClientID","_useState11","_useState12","openIDSecretID","setOpenIDSecretID","_useState13","_useState14","showOIDCSecretID","setShowOIDCSecretID","_useState15","_useState16","openIDCallbackURL","setOpenIDCallbackURL","_useState17","_useState18","openIDClaimName","setOpenIDClaimName","_useState19","_useState20","openIDScopes","setOpenIDScopes","_useState21","_useState22","ADURL","setADURL","_useState23","_useState24","ADLookupBindDN","setADLookupBindDN","_useState25","_useState26","ADLookupBindPassword","setADLookupBindPassword","_useState27","_useState28","showADLookupBindPassword","setShowADLookupBindPassword","_useState29","_useState30","ADUserDNSearchBaseDN","setADUserDNSearchBaseDN","_useState31","_useState32","ADUserDNSearchFilter","setADUserDNSearchFilter","_useState33","_useState34","ADGroupSearchBaseDN","setADGroupSearchBaseDN","_useState35","_useState36","ADGroupSearchFilter","setADGroupSearchFilter","_useState37","_useState38","ADSkipTLS","setADSkipTLS","_useState39","_useState40","ADServerInsecure","setADServerInsecure","_useState41","_useState42","ADServerStartTLS","setADServerStartTLS","_useState43","_useState44","ADUserDNs","setADUserDNs","_useState45","_useState46","ADGroupDNs","setADGroupDNs","_useState47","_useState48","validationErrors","setValidationErrors","cleanValidation","fieldName","clearValidationError","_useState49","_useState50","isFormValid","setIsFormValid","useEffect","identityProviderValidation","concat","_toConsumableArray","fieldKey","required","value","commonVal","commonFormValidation","Object","keys","length","getTenantIdentityProviderInfo","useCallback","api","invoke","namespace","name","then","res","oidc","configuration_url","client_id","secret_id","callback_url","claim_name","scopes","active_directory","url","lookup_bind_dn","lookup_bind_password","user_dn_search_base_dn","user_dn_search_filter","group_search_base_dn","group_search_filter","skip_tls_verification","server_insecure","server_start_tls","catch","err","setErrorSnackMessage","React","ConfirmDialog","title","confirmText","cancelText","titleIcon","ConfirmModalIcon","isLoading","onClose","isOpen","onConfirm","payload","confirmationContent","DialogContentText","className","Loader","Fragment","xs","sectionTitle","protocolRadioOptions","paddingBottom","RadioGroupSelector","currentSelection","id","label","onChange","e","target","selectorOptions","formFieldRow","InputBoxWrapper","placeholder","error","type","overlayIcon","VisibilityOffIcon","RemoveRedEyeIcon","overlayAction","FormSwitchWrapper","checked","Typography","variant","gutterBottom","buttonContainer","Button","color","disabled","onClick","SectionTitle","fieldGroup","descriptionText","map","_","index","toString","group","i","Tooltip","IconButton","size","AddIcon","style","filter","DeleteIcon","user_dns","user","trim","group_dns","setSnackBarMessage","setAdministrators","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/21.53327062.chunk.js","mappings":"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","sources":["screens/Console/Tenants/LogoComponents.tsx","screens/Console/Tenants/TenantDetails/TenantIdentityProvider.tsx","../node_modules/@mui/icons-material/Add.js","../node_modules/@mui/icons-material/Delete.js"],"sourcesContent":["// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Grid } from \"@mui/material\";\nimport { LDAPIcon, OIDCIcon, UsersIcon } from \"mds\";\n\nexport const OIDCLogoElement = () => {\n return (\n \n \n \n \n Open ID\n \n );\n};\n\nexport const LDAPLogoElement = () => {\n return (\n \n \n \n \n LDAP / Active Directory\n \n );\n};\n\nexport const BuiltInLogoElement = () => {\n return (\n \n \n \n \n Built-in\n \n );\n};\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { connect, useSelector } from \"react-redux\";\nimport {\n DialogContentText,\n IconButton,\n Tooltip,\n Typography,\n} from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport { Button, ConfirmModalIcon, Loader } from \"mds\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\nimport RemoveRedEyeIcon from \"@mui/icons-material/RemoveRedEye\";\nimport {\n containerForHeader,\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n spacingUtils,\n tenantDetailsStyles,\n wizardCommon,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport {\n ITenantIdentityProviderResponse,\n ITenantSetAdministratorsRequest,\n} from \"../types\";\nimport {\n BuiltInLogoElement,\n LDAPLogoElement,\n OIDCLogoElement,\n} from \"../LogoComponents\";\nimport { clearValidationError } from \"../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../utils/validationFunctions\";\nimport {\n setErrorSnackMessage,\n setSnackBarMessage,\n} from \"../../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport RadioGroupSelector from \"../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport api from \"../../../../common/api\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport DeleteIcon from \"@mui/icons-material/Delete\";\nimport SectionTitle from \"../../Common/SectionTitle\";\n\ninterface ITenantIdentityProvider {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n adUserDnRows: {\n display: \"flex\",\n marginBottom: 10,\n },\n buttonTray: {\n marginLeft: 10,\n display: \"flex\",\n height: 38,\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n ...tenantDetailsStyles,\n ...spacingUtils,\n loaderAlign: {\n textAlign: \"center\",\n },\n ...containerForHeader,\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n });\n\nfunction FormHr() {\n return null;\n}\n\nconst TenantIdentityProvider = ({ classes }: ITenantIdentityProvider) => {\n const dispatch = useAppDispatch();\n\n const tenant = useSelector((state: AppState) => state.tenants.tenantInfo);\n const loadingTenant = useSelector(\n (state: AppState) => state.tenants.loadingTenant,\n );\n\n const [isSending, setIsSending] = useState(false);\n const [dialogOpen, setDialogOpen] = useState(false);\n const [idpSelection, setIdpSelection] = useState(\"Built-in\");\n const [openIDConfigurationURL, setOpenIDConfigurationURL] =\n useState(\"\");\n const [openIDClientID, setOpenIDClientID] = useState(\"\");\n const [openIDSecretID, setOpenIDSecretID] = useState(\"\");\n const [showOIDCSecretID, setShowOIDCSecretID] = useState(false);\n const [openIDCallbackURL, setOpenIDCallbackURL] = useState(\"\");\n const [openIDClaimName, setOpenIDClaimName] = useState(\"\");\n const [openIDScopes, setOpenIDScopes] = useState(\"\");\n const [ADURL, setADURL] = useState(\"\");\n const [ADLookupBindDN, setADLookupBindDN] = useState(\"\");\n const [ADLookupBindPassword, setADLookupBindPassword] = useState(\"\");\n const [showADLookupBindPassword, setShowADLookupBindPassword] =\n useState(false);\n const [ADUserDNSearchBaseDN, setADUserDNSearchBaseDN] = useState(\"\");\n const [ADUserDNSearchFilter, setADUserDNSearchFilter] = useState(\"\");\n const [ADGroupSearchBaseDN, setADGroupSearchBaseDN] = useState(\"\");\n const [ADGroupSearchFilter, setADGroupSearchFilter] = useState(\"\");\n const [ADSkipTLS, setADSkipTLS] = useState(false);\n const [ADServerInsecure, setADServerInsecure] = useState(false);\n const [ADServerStartTLS, setADServerStartTLS] = useState(false);\n const [ADUserDNs, setADUserDNs] = useState([\"\"]);\n const [ADGroupDNs, setADGroupDNs] = useState([\"\"]);\n const [validationErrors, setValidationErrors] = useState({});\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n const [isFormValid, setIsFormValid] = useState(false);\n\n // Validation\n useEffect(() => {\n let identityProviderValidation: IValidation[] = [];\n\n if (idpSelection === \"OpenID\") {\n identityProviderValidation = [\n ...identityProviderValidation,\n {\n fieldKey: \"openID_CONFIGURATION_URL\",\n required: true,\n value: openIDConfigurationURL,\n },\n {\n fieldKey: \"openID_clientID\",\n required: true,\n value: openIDClientID,\n },\n {\n fieldKey: \"openID_secretID\",\n required: true,\n value: openIDSecretID,\n },\n {\n fieldKey: \"openID_claimName\",\n required: false,\n value: openIDClaimName,\n },\n ];\n }\n\n if (idpSelection === \"AD\") {\n identityProviderValidation = [\n ...identityProviderValidation,\n {\n fieldKey: \"AD_URL\",\n required: true,\n value: ADURL,\n },\n {\n fieldKey: \"ad_lookupBindDN\",\n required: true,\n value: ADLookupBindDN,\n },\n ];\n }\n\n const commonVal = commonFormValidation(identityProviderValidation);\n\n setIsFormValid(Object.keys(commonVal).length === 0);\n\n setValidationErrors(commonVal);\n }, [\n idpSelection,\n openIDConfigurationURL,\n openIDClientID,\n openIDSecretID,\n openIDClaimName,\n ADURL,\n ADLookupBindDN,\n ]);\n\n const getTenantIdentityProviderInfo = useCallback(() => {\n api\n .invoke(\n \"GET\",\n `/api/v1/namespaces/${tenant?.namespace}/tenants/${tenant?.name}/identity-provider`,\n )\n .then((res: ITenantIdentityProviderResponse) => {\n if (res) {\n if (res.oidc) {\n setIdpSelection(\"OpenID\");\n setOpenIDConfigurationURL(res.oidc.configuration_url);\n setOpenIDClientID(res.oidc.client_id);\n setOpenIDSecretID(res.oidc.secret_id);\n setOpenIDCallbackURL(res.oidc.callback_url);\n setOpenIDClaimName(res.oidc.claim_name);\n setOpenIDScopes(res.oidc.scopes);\n } else if (res.active_directory) {\n setIdpSelection(\"AD\");\n setADURL(res.active_directory.url);\n setADLookupBindDN(res.active_directory.lookup_bind_dn);\n setADLookupBindPassword(res.active_directory.lookup_bind_password);\n setADUserDNSearchBaseDN(\n res.active_directory.user_dn_search_base_dn,\n );\n setADUserDNSearchFilter(res.active_directory.user_dn_search_filter);\n setADGroupSearchBaseDN(res.active_directory.group_search_base_dn);\n setADGroupSearchFilter(res.active_directory.group_search_filter);\n setADSkipTLS(res.active_directory.skip_tls_verification);\n setADServerInsecure(res.active_directory.server_insecure);\n setADServerStartTLS(res.active_directory.server_start_tls);\n }\n }\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n });\n }, [tenant, dispatch]);\n\n useEffect(() => {\n if (tenant) {\n getTenantIdentityProviderInfo();\n }\n }, [tenant, getTenantIdentityProviderInfo]);\n\n const updateTenantIdentityProvider = () => {\n setIsSending(true);\n let payload: ITenantIdentityProviderResponse = {};\n switch (idpSelection) {\n case \"AD\":\n payload.active_directory = {\n url: ADURL,\n lookup_bind_dn: ADLookupBindDN,\n lookup_bind_password: ADLookupBindPassword,\n user_dn_search_base_dn: ADUserDNSearchBaseDN,\n user_dn_search_filter: ADUserDNSearchFilter,\n group_search_base_dn: ADGroupSearchBaseDN,\n group_search_filter: ADGroupSearchFilter,\n skip_tls_verification: ADSkipTLS,\n server_insecure: ADServerInsecure,\n server_start_tls: ADServerStartTLS,\n };\n break;\n case \"OpenID\":\n payload.oidc = {\n configuration_url: openIDConfigurationURL,\n client_id: openIDClientID,\n secret_id: openIDSecretID,\n callback_url: openIDCallbackURL,\n claim_name: openIDClaimName,\n scopes: openIDScopes,\n };\n break;\n default:\n // Built-in IDP will be used by default\n }\n\n api\n .invoke(\n \"POST\",\n `/api/v1/namespaces/${tenant?.namespace}/tenants/${tenant?.name}/identity-provider`,\n payload,\n )\n .then(() => {\n setIsSending(false);\n // Close confirmation modal\n setDialogOpen(false);\n getTenantIdentityProviderInfo();\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setIsSending(false);\n });\n };\n\n const setAdministrators = () => {\n setIsSending(true);\n let payload: ITenantSetAdministratorsRequest = {};\n switch (idpSelection) {\n case \"AD\":\n payload = {\n user_dns: ADUserDNs.filter((user) => user.trim() !== \"\"),\n group_dns: ADGroupDNs.filter((group) => group.trim() !== \"\"),\n };\n break;\n default:\n // Built-in IDP will be used by default\n }\n\n api\n .invoke(\n \"POST\",\n `/api/v1/namespaces/${tenant?.namespace}/tenants/${tenant?.name}/set-administrators`,\n payload,\n )\n .then(() => {\n setIsSending(false);\n setADGroupDNs([\"\"]);\n setADUserDNs([\"\"]);\n getTenantIdentityProviderInfo();\n dispatch(setSnackBarMessage(`Administrators added successfully`));\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setIsSending(false);\n });\n };\n\n return (\n \n }\n isLoading={isSending}\n onClose={() => setDialogOpen(false)}\n isOpen={dialogOpen}\n onConfirm={updateTenantIdentityProvider}\n confirmationContent={\n \n Are you sure you want to save the changes and restart the service?\n \n }\n />\n {loadingTenant ? (\n
\n \n
\n ) : (\n \n \n

Identity Provider

\n \n
\n \n {\n setIdpSelection(e.target.value);\n }}\n selectorOptions={[\n { label: , value: \"Built-in\" },\n { label: , value: \"OpenID\" },\n { label: , value: \"AD\" },\n ]}\n />\n \n\n {idpSelection === \"OpenID\" && (\n \n \n ) => {\n setOpenIDConfigurationURL(e.target.value);\n cleanValidation(\"openID_CONFIGURATION_URL\");\n }}\n label=\"Configuration URL\"\n value={openIDConfigurationURL}\n placeholder=\"https://your-identity-provider.com/.well-known/openid-configuration\"\n error={validationErrors[\"openID_CONFIGURATION_URL\"] || \"\"}\n required\n />\n \n \n ) => {\n setOpenIDClientID(e.target.value);\n cleanValidation(\"openID_clientID\");\n }}\n label=\"Client ID\"\n value={openIDClientID}\n error={validationErrors[\"openID_clientID\"] || \"\"}\n required\n />\n \n \n ) => {\n setOpenIDSecretID(e.target.value);\n cleanValidation(\"openID_secretID\");\n }}\n label=\"Secret ID\"\n value={openIDSecretID}\n error={validationErrors[\"openID_secretID\"] || \"\"}\n required\n overlayIcon={\n showOIDCSecretID ? (\n \n ) : (\n \n )\n }\n overlayAction={() => setShowOIDCSecretID(!showOIDCSecretID)}\n />\n \n \n ) => {\n setOpenIDClaimName(e.target.value);\n cleanValidation(\"openID_claimName\");\n }}\n label=\"Claim Name\"\n value={openIDClaimName}\n placeholder=\"policy\"\n error={validationErrors[\"openID_claimName\"] || \"\"}\n />\n \n \n ) => {\n setOpenIDScopes(e.target.value);\n cleanValidation(\"openID_scopes\");\n }}\n label=\"Scopes\"\n value={openIDScopes}\n />\n \n \n )}\n\n {idpSelection === \"AD\" && (\n \n \n ) => {\n setADURL(e.target.value);\n cleanValidation(\"AD_URL\");\n }}\n label=\"LDAP Server Address\"\n value={ADURL}\n placeholder=\"ldap-server:636\"\n error={validationErrors[\"AD_URL\"] || \"\"}\n required\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n setADSkipTLS(checked);\n }}\n label={\"Skip TLS Verification\"}\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n setADServerInsecure(checked);\n }}\n label={\"Server Insecure\"}\n />\n \n {ADServerInsecure ? (\n \n \n Warning: All traffic with Active Directory will be\n unencrypted\n \n
\n
\n ) : null}\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n setADServerStartTLS(checked);\n }}\n label={\"Start TLS connection to AD/LDAP server\"}\n />\n \n \n ) => {\n setADLookupBindDN(e.target.value);\n cleanValidation(\"ad_lookupBindDN\");\n }}\n label=\"Lookup Bind DN\"\n value={ADLookupBindDN}\n placeholder=\"cn=admin,dc=min,dc=io\"\n error={validationErrors[\"ad_lookupBindDN\"] || \"\"}\n required\n />\n \n \n ) => {\n setADLookupBindPassword(e.target.value);\n }}\n label=\"Lookup Bind Password\"\n value={ADLookupBindPassword}\n placeholder=\"admin\"\n overlayIcon={\n showADLookupBindPassword ? (\n \n ) : (\n \n )\n }\n overlayAction={() =>\n setShowADLookupBindPassword(!showADLookupBindPassword)\n }\n />\n \n \n ) => {\n setADUserDNSearchBaseDN(e.target.value);\n }}\n label=\"User DN Search Base DN\"\n value={ADUserDNSearchBaseDN}\n placeholder=\"dc=min,dc=io\"\n />\n \n \n ) => {\n setADUserDNSearchFilter(e.target.value);\n }}\n label=\"User DN Search Filter\"\n value={ADUserDNSearchFilter}\n placeholder=\"(sAMAcountName=%s)\"\n />\n \n \n ) => {\n setADGroupSearchBaseDN(e.target.value);\n }}\n label=\"Group Search Base DN\"\n value={ADGroupSearchBaseDN}\n placeholder=\"ou=hwengg,dc=min,dc=io;ou=swengg,dc=min,dc=io\"\n />\n \n \n ) => {\n setADGroupSearchFilter(e.target.value);\n }}\n label=\"Group Search Filter\"\n value={ADGroupSearchFilter}\n placeholder=\"(&(objectclass=groupOfNames)(member=%s))\"\n />\n \n
\n )}\n\n \n setDialogOpen(true)}\n label={\"Save\"}\n />\n \n\n {idpSelection === \"AD\" && (\n \n User & Group management\n
\n
\n \n List of user DNs (Distinguished Names) to be added as Tenant\n Administrators\n \n \n {ADUserDNs.map((_, index) => {\n return (\n \n
\n ,\n ) => {\n setADUserDNs(\n ADUserDNs.map((group, i) =>\n i === index ? e.target.value : group,\n ),\n );\n }}\n index={index}\n key={`csv-ad-userdn-${index.toString()}`}\n error={\n validationErrors[\n `ad-userdn-${index.toString()}`\n ] || \"\"\n }\n />\n
\n \n {\n setADUserDNs([...ADUserDNs, \"\"]);\n }}\n >\n \n \n \n \n {\n if (ADUserDNs.length > 1) {\n setADUserDNs(\n ADUserDNs.filter((_, i) => i !== index),\n );\n }\n }}\n >\n \n \n \n
\n
\n
\n );\n })}\n
\n
\n
\n \n List of group DNs (Distinguished Names) to be added as Tenant\n Administrators\n \n \n {ADGroupDNs.map((_, index) => {\n return (\n \n
\n ,\n ) => {\n setADGroupDNs(\n ADGroupDNs.map((group, i) =>\n i === index ? e.target.value : group,\n ),\n );\n }}\n index={index}\n key={`csv-ad-groupdn-${index.toString()}`}\n error={\n validationErrors[\n `ad-groupdn-${index.toString()}`\n ] || \"\"\n }\n />\n
\n \n {\n setADGroupDNs([...ADGroupDNs, \"\"]);\n }}\n >\n \n \n \n \n {\n if (ADGroupDNs.length > 1) {\n setADGroupDNs(\n ADGroupDNs.filter((_, i) => i !== index),\n );\n }\n }}\n >\n \n \n \n
\n
\n
\n );\n })}\n
\n
\n
\n \n setAdministrators()}\n label={\"Add additional DNs\"}\n />\n \n
\n )}\n
\n )}\n
\n );\n};\n\nconst mapState = (state: AppState) => ({\n loadingTenant: state.tenants.loadingTenant,\n selectedTenant: state.tenants.currentTenant,\n tenant: state.tenants.tenantInfo,\n});\n\nconst connector = connect(mapState, null);\n\nexport default withStyles(styles)(connector(TenantIdentityProvider));\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"\n}), 'Add');\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\"\n}), 'Delete');\nexports.default = _default;"],"names":["OIDCLogoElement","_jsxs","Grid","container","columnGap","children","_jsx","OIDCIcon","width","height","item","LDAPLogoElement","LDAPIcon","BuiltInLogoElement","UsersIcon","FormHr","connector","connect","state","loadingTenant","tenants","selectedTenant","currentTenant","tenant","tenantInfo","withStyles","theme","createStyles","_objectSpread","adUserDnRows","display","marginBottom","buttonTray","marginLeft","background","tenantDetailsStyles","spacingUtils","loaderAlign","textAlign","containerForHeader","createTenantCommon","formFieldStyles","modalBasic","wizardCommon","_ref","classes","dispatch","useAppDispatch","useSelector","_useState","useState","_useState2","_slicedToArray","isSending","setIsSending","_useState3","_useState4","dialogOpen","setDialogOpen","_useState5","_useState6","idpSelection","setIdpSelection","_useState7","_useState8","openIDConfigurationURL","setOpenIDConfigurationURL","_useState9","_useState10","openIDClientID","setOpenIDClientID","_useState11","_useState12","openIDSecretID","setOpenIDSecretID","_useState13","_useState14","showOIDCSecretID","setShowOIDCSecretID","_useState15","_useState16","openIDCallbackURL","setOpenIDCallbackURL","_useState17","_useState18","openIDClaimName","setOpenIDClaimName","_useState19","_useState20","openIDScopes","setOpenIDScopes","_useState21","_useState22","ADURL","setADURL","_useState23","_useState24","ADLookupBindDN","setADLookupBindDN","_useState25","_useState26","ADLookupBindPassword","setADLookupBindPassword","_useState27","_useState28","showADLookupBindPassword","setShowADLookupBindPassword","_useState29","_useState30","ADUserDNSearchBaseDN","setADUserDNSearchBaseDN","_useState31","_useState32","ADUserDNSearchFilter","setADUserDNSearchFilter","_useState33","_useState34","ADGroupSearchBaseDN","setADGroupSearchBaseDN","_useState35","_useState36","ADGroupSearchFilter","setADGroupSearchFilter","_useState37","_useState38","ADSkipTLS","setADSkipTLS","_useState39","_useState40","ADServerInsecure","setADServerInsecure","_useState41","_useState42","ADServerStartTLS","setADServerStartTLS","_useState43","_useState44","ADUserDNs","setADUserDNs","_useState45","_useState46","ADGroupDNs","setADGroupDNs","_useState47","_useState48","validationErrors","setValidationErrors","cleanValidation","fieldName","clearValidationError","_useState49","_useState50","isFormValid","setIsFormValid","useEffect","identityProviderValidation","concat","_toConsumableArray","fieldKey","required","value","commonVal","commonFormValidation","Object","keys","length","getTenantIdentityProviderInfo","useCallback","api","invoke","namespace","name","then","res","oidc","configuration_url","client_id","secret_id","callback_url","claim_name","scopes","active_directory","url","lookup_bind_dn","lookup_bind_password","user_dn_search_base_dn","user_dn_search_filter","group_search_base_dn","group_search_filter","skip_tls_verification","server_insecure","server_start_tls","catch","err","setErrorSnackMessage","React","ConfirmDialog","title","confirmText","cancelText","titleIcon","ConfirmModalIcon","isLoading","onClose","isOpen","onConfirm","payload","confirmationContent","DialogContentText","className","Loader","Fragment","xs","sectionTitle","protocolRadioOptions","paddingBottom","RadioGroupSelector","currentSelection","id","label","onChange","e","target","selectorOptions","formFieldRow","InputBoxWrapper","placeholder","error","type","overlayIcon","VisibilityOffIcon","RemoveRedEyeIcon","overlayAction","FormSwitchWrapper","checked","Typography","variant","gutterBottom","buttonContainer","Button","color","disabled","onClick","SectionTitle","fieldGroup","descriptionText","map","_","index","toString","group","i","Tooltip","IconButton","size","AddIcon","style","filter","DeleteIcon","user_dns","user","trim","group_dns","setSnackBarMessage","setAdministrators","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file diff --git a/web-app/build/static/js/292.5b893eb9.chunk.js b/web-app/build/static/js/292.5b893eb9.chunk.js new file mode 100644 index 00000000000..d33139169a1 --- /dev/null +++ b/web-app/build/static/js/292.5b893eb9.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[292],{37798:function(e,n,t){t.r(n),t.d(n,{default:function(){return Z}});var i=t(1413),a=t(72791),r=t(26181),s=t.n(r),o=t(75952),l=t(11135),c=t(25787),d=t(56028),u=t(61889),m=t(28029),f=t(63466),p=t(78029),x=t.n(p),h=t(23814),v=t(27454),g=t(80184),y=(0,c.Z)((function(e){return(0,l.Z)({container:{display:"flex",flexFlow:"column",padding:"20px 0 8px 0"},inputWithCopy:{"& .MuiInputBase-root ":{width:"100%",background:"#FBFAFA","& .MuiInputBase-input":{height:".8rem"},"& .MuiInputAdornment-positionEnd":{marginRight:".5rem","& .MuiButtonBase-root":{height:"2rem"}}},"& .MuiButtonBase-root .min-icon":{width:".8rem",height:".8rem"}},inputLabel:(0,i.Z)((0,i.Z)({},h.YI.inputLabel),{},{fontSize:".8rem"})})}))((function(e){var n=e.label,t=void 0===n?"":n,i=e.value,a=void 0===i?"":i,r=e.classes,s=void 0===r?{}:r;return(0,g.jsxs)("div",{className:s.container,children:[(0,g.jsxs)("div",{className:s.inputLabel,children:[t,":"]}),(0,g.jsx)("div",{className:s.inputWithCopy,children:(0,g.jsx)(m.Z,{value:a,readOnly:!0,endAdornment:(0,g.jsx)(f.Z,{position:"end",children:(0,g.jsx)(v.Z,{tooltip:"Copy",children:(0,g.jsx)(x(),{text:a,children:(0,g.jsx)(o.zxk,{id:"copy-clipboard","aria-label":"copy",onClick:function(){},onMouseDown:function(){},style:{width:"28px",height:"28px",padding:"0px"},icon:(0,g.jsx)(o.TIy,{})})})})})})})]})})),j=function(e,n){var t=document.createElement("a");t.setAttribute("href","data:text/plain;charset=utf-8,"+n),t.setAttribute("download",e),t.style.display="none",document.body.appendChild(t),t.click(),document.body.removeChild(t)},Z=(0,c.Z)((function(e){return(0,l.Z)({warningBlock:{color:"red",fontSize:".85rem",margin:".5rem 0 .5rem 0",display:"flex",alignItems:"center","& svg ":{marginRight:".3rem",height:16,width:16}},credentialTitle:{padding:".8rem 0 0 0",fontWeight:600,fontSize:".9rem"},buttonContainer:{display:"flex",justifyContent:"flex-end",marginTop:"1rem"},credentialsPanel:{overflowY:"auto",maxHeight:350},promptTitle:{display:"flex",alignItems:"center"},buttonSpacer:{marginRight:".9rem"}})}))((function(e){var n=e.classes,t=e.newServiceAccount,r=e.open,l=e.closeModal,c=e.entity;if(!t)return null;var m=s()(t,"console",null),f=s()(t,"idp",!1);return(0,g.jsx)(d.Z,{modalOpen:r,onClose:function(){l()},title:(0,g.jsx)("div",{className:n.promptTitle,children:(0,g.jsxs)("div",{children:["New ",c," Created"]})}),titleIcon:(0,g.jsx)(o.tVY,{}),children:(0,g.jsxs)(u.ZP,{container:!0,children:[(0,g.jsxs)(u.ZP,{item:!0,xs:12,className:n.formScrollable,children:["A new ",c," has been created with the following details:",!f&&m&&(0,g.jsx)(a.Fragment,{children:(0,g.jsxs)(u.ZP,{item:!0,xs:12,className:n.credentialsPanel,children:[(0,g.jsx)("div",{className:n.credentialTitle,children:"Console Credentials"}),Array.isArray(m)&&m.map((function(e,n){return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(y,{label:"Access Key",value:e.accessKey}),(0,g.jsx)(y,{label:"Secret Key",value:e.secretKey})]})})),!Array.isArray(m)&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(y,{label:"Access Key",value:m.accessKey}),(0,g.jsx)(y,{label:"Secret Key",value:m.secretKey})]})]})}),(null===m||void 0===m)&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(y,{label:"Access Key",value:t.accessKey||""}),(0,g.jsx)(y,{label:"Secret Key",value:t.secretKey||""})]}),f?(0,g.jsx)("div",{className:n.warningBlock,children:"Please Login via the configured external identity provider."}):(0,g.jsxs)("div",{className:n.warningBlock,children:[(0,g.jsx)(o.e6P,{}),(0,g.jsx)("span",{children:"Write these down, as this is the only time the secret will be displayed."})]})]}),(0,g.jsx)(u.ZP,{item:!0,xs:12,className:n.buttonContainer,children:!f&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(v.Z,{tooltip:"Download credentials in a JSON file formatted for import using mc alias import. This will only include the default login credentials.",children:(0,g.jsx)(o.zxk,{id:"download-button",label:"Download for import",className:n.buttonSpacer,onClick:function(){var e={};m?e=Array.isArray(m)?m.map((function(e){return{url:e.url,accessKey:e.accessKey,secretKey:e.secretKey,api:"s3v4",path:"auto"}}))[0]:{url:m.url,accessKey:m.accessKey,secretKey:m.secretKey,api:"s3v4",path:"auto"}:e={url:t.url,accessKey:t.accessKey,secretKey:t.secretKey,api:"s3v4",path:"auto"};j("credentials.json",JSON.stringify((0,i.Z)({},e)))},icon:(0,g.jsx)(o._8t,{}),variant:"callAction"})}),Array.isArray(m)&&m.length>1&&(0,g.jsx)(v.Z,{tooltip:"Download all access credentials to a JSON file. NOTE: This file is not formatted for import using mc alias import. If you plan to import this alias from the file, please use the Download for Import button. ",children:(0,g.jsx)(o.zxk,{id:"download-all-button",label:"Download all access credentials",className:n.buttonSpacer,onClick:function(){var e={};m&&Array.isArray(m)&&m.length>1&&(e=m.map((function(e){return{accessKey:e.accessKey,secretKey:e.secretKey}})));j("all_credentials.json",JSON.stringify((0,i.Z)({},e)))},icon:(0,g.jsx)(o._8t,{}),variant:"callAction",color:"primary"})})]})})]})})}))},92217:function(e,n,t){var i=t(1413),a=t(72791),r=t(61889),s=t(30829),o=t(96040),l=t(64554),c=t(11135),d=t(25787),u=t(75952),m=t(23814),f=t(78029),p=t.n(f),x=t(9534),h=t(27454),v=t(80184);n.Z=(0,d.Z)((function(e){return(0,c.Z)((0,i.Z)({},m.YI))}))((function(e){var n=e.value,t=e.label,i=void 0===t?"":t,c=e.tooltip,d=void 0===c?"":c,m=e.mode,f=void 0===m?"json":m,g=e.classes,y=e.onBeforeChange,j=(e.readOnly,e.editorHeight),Z=void 0===j?"250px":j;return(0,v.jsxs)(a.Fragment,{children:[(0,v.jsx)(r.ZP,{item:!0,xs:12,sx:{marginBottom:"10px"},children:(0,v.jsxs)(s.Z,{className:g.inputLabel,children:[(0,v.jsx)("span",{children:i}),""!==d&&(0,v.jsx)("div",{className:g.tooltipContainer,children:(0,v.jsx)(o.Z,{title:d,placement:"top-start",children:(0,v.jsx)("div",{className:g.tooltip,children:(0,v.jsx)(u.byK,{})})})})]})}),(0,v.jsx)(r.ZP,{item:!0,xs:12,style:{maxHeight:Z,overflow:"auto",border:"1px solid #eaeaea"},children:(0,v.jsx)(x.Z,{value:n,language:f,onChange:function(e){y(null,null,e.target.value)},id:"code_wrapper",padding:15,style:{fontSize:12,backgroundColor:"#fefefe",fontFamily:"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace",minHeight:Z||"initial",color:"#000000"}})}),(0,v.jsx)(r.ZP,{item:!0,xs:12,sx:{background:"#f7f7f7",border:"1px solid #eaeaea",borderTop:0},children:(0,v.jsx)(l.Z,{sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}}},children:(0,v.jsx)(h.Z,{tooltip:"Copy to Clipboard",children:(0,v.jsx)(p(),{text:n,children:(0,v.jsx)(u.zxk,{type:"button",id:"copy-code-mirror",icon:(0,v.jsx)(u.TIy,{}),color:"primary",variant:"regular"})})})})})]})}))},54639:function(e,n,t){t.d(n,{Z:function(){return j}});var i=t(29439),a=t(1413),r=t(72791),s=t(26181),o=t.n(s),l=t(61889),c=t(30829),d=t(96040),u=t(13400),m=t(99663),f=t(86711),p=t(11135),x=t(25787),h=t(23814),v=t(75952),g=t(22512),y=t(80184),j=(0,x.Z)((function(e){return(0,p.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},h.YI),h.Hr),{},{valueString:{maxWidth:350,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",marginTop:2},fileInputField:{margin:"13px 0","@media (max-width: 900px)":{flexFlow:"column"}}},h.bV),{},{inputLabel:(0,a.Z)((0,a.Z)({},h.YI.inputLabel),{},{fontWeight:"normal"}),textBoxContainer:(0,a.Z)((0,a.Z)({},h.YI.textBoxContainer),{},{maxWidth:"100%",border:"1px solid #eaeaea",paddingLeft:"15px"})}))}))((function(e){var n=e.label,t=e.classes,a=e.onChange,s=e.id,p=e.name,x=e.disabled,h=void 0!==x&&x,j=e.tooltip,Z=void 0===j?"":j,b=e.required,C=e.error,N=void 0===C?"":C,S=e.accept,_=void 0===S?"":S,T=e.value,A=void 0===T?"":T,k=(0,r.useState)(!1),w=(0,i.Z)(k,2),P=w[0],I=w[1];return(0,y.jsx)(r.Fragment,{children:(0,y.jsxs)(l.ZP,{item:!0,xs:12,className:"".concat(t.fileInputField," ").concat(t.fieldBottom," ").concat(t.fieldContainer," ").concat(""!==N?t.errorInField:""),children:[""!==n&&(0,y.jsxs)(c.Z,{htmlFor:s,className:"".concat(""!==N?t.fieldLabelError:""," ").concat(t.inputLabel),children:[(0,y.jsxs)("span",{children:[n,b?"*":""]}),""!==Z&&(0,y.jsx)("div",{className:t.tooltipContainer,children:(0,y.jsx)(d.Z,{title:Z,placement:"top-start",children:(0,y.jsx)("div",{className:t.tooltip,children:(0,y.jsx)(v.byK,{})})})})]}),P||""===A?(0,y.jsxs)("div",{className:t.textBoxContainer,children:[(0,y.jsx)("input",{type:"file",name:p,onChange:function(e){var n=o()(e,"target.files[0].name","");!function(e,n){var t=e.target.files[0],i=new FileReader;i.readAsDataURL(t),i.onload=function(){var e=i.result;if(e){var t=e.toString().split("base64,");2===t.length&&n(t[1])}}}(e,(function(e){a(e,n)}))},accept:_,required:b,disabled:h,className:t.fileInputField}),""!==A&&(0,y.jsx)(u.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){I(!1)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,y.jsx)(f.Z,{})}),""!==N&&(0,y.jsx)(g.Z,{errorMessage:N})]}):(0,y.jsxs)("div",{className:t.fileReselect,children:[(0,y.jsx)("div",{className:t.valueString,children:A}),(0,y.jsx)(u.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){I(!0)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,y.jsx)(m.Z,{})})]})]})})}))},13871:function(e,n,t){var i,a=t(30168),r=(0,t(26088).Z)("hr")(i||(i=(0,a.Z)(["\n border-top: 0;\n border-left: 0;\n border-right: 0;\n border-color: #999999;\n background-color: transparent;\n"])));n.Z=r},56028:function(e,n,t){var i=t(29439),a=t(1413),r=t(72791),s=t(78687),o=t(13400),l=t(48888),c=t(5289),d=t(65661),u=t(39157),m=t(11135),f=t(25787),p=t(23814),x=t(41320),h=t(29823),v=t(86352),g=t(87995),y=t(80184);n.Z=(0,f.Z)((function(e){return(0,m.Z)((0,a.Z)((0,a.Z)({},p.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},p.sN))}))((function(e){var n=e.onClose,t=e.modalOpen,m=e.title,f=e.children,p=e.classes,j=e.wideLimit,Z=void 0===j||j,b=e.noContentPadding,C=e.titleIcon,N=void 0===C?null:C,S=(0,x.TL)(),_=(0,r.useState)(!1),T=(0,i.Z)(_,2),A=T[0],k=T[1],w=(0,s.v9)((function(e){return e.system.modalSnackBar}));(0,r.useEffect)((function(){S((0,g.MK)(""))}),[S]),(0,r.useEffect)((function(){if(w){if(""===w.message)return void k(!1);"error"!==w.type&&k(!0)}}),[w]);var P=Z?{classes:{paper:p.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},I="";return w&&(I=w.detailedErrorMsg,(""===w.detailedErrorMsg||w.detailedErrorMsg.length<5)&&(I=w.message)),(0,y.jsxs)(c.Z,(0,a.Z)((0,a.Z)({open:t,classes:p},P),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:p.root,children:[(0,y.jsxs)(d.Z,{className:p.title,children:[(0,y.jsxs)("div",{className:p.titleText,children:[N," ",m]}),(0,y.jsx)("div",{className:p.closeContainer,children:(0,y.jsx)(o.Z,{"aria-label":"close",id:"close",className:p.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,y.jsx)(h.Z,{})})})]}),(0,y.jsx)(v.Z,{isModal:!0}),(0,y.jsx)(l.Z,{open:A,className:p.snackBarModal,onClose:function(){k(!1),S((0,g.MK)(""))},message:I,ContentProps:{className:"".concat(p.snackBar," ").concat(w&&"error"===w.type?p.errorSnackBar:"")},autoHideDuration:w&&"error"===w.type?1e4:5e3}),(0,y.jsx)(u.Z,{className:b?"":p.content,children:f})]}))}))},27454:function(e,n,t){var i=t(1413),a=t(72791),r=t(96040),s=t(80184);n.Z=function(e){var n=e.tooltip,t=e.children,o=e.errorProps,l=void 0===o?null:o,c=e.placement;return(0,s.jsx)(r.Z,{title:n,placement:c,children:(0,s.jsx)("span",{children:l?(0,a.cloneElement)(t,(0,i.Z)({},l)):t})})}},80505:function(e,n,t){t.r(n),t.d(n,{default:function(){return Ue}});var i=t(29439),a=t(1413),r=t(72791),s=t(26181),o=t.n(s),l=t(78687),c=t(61889),d=t(57482),u=t(11135),m=t(23814),f=t(28371),p=t(41320),x=t(93433),h=t(25787),v=t(35527),g=t(13400),y=t(94721),j=t(84741),Z=t(40968),b=t(37516),C=t(21435),N=t(42419),S=t(75952),_=t(76773),T=t(90673),A=t(80007),k=t(80184),w=(0,h.Z)((function(e){return(0,u.Z)((0,a.Z)((0,a.Z)((0,a.Z)({configSectionItem:{marginRight:15,marginBottom:15,"& .multiContainer":{border:"1px solid red"}},tenantCustomizationFields:{marginLeft:30,width:"88%",margin:"auto"},containerItem:{marginRight:15},fieldGroup:(0,a.Z)((0,a.Z)({},m.QV.fieldGroup),{},{paddingTop:15,marginBottom:25}),responsiveSectionItem:{"@media (max-width: 900px)":{flexFlow:"column",alignItems:"flex-start","& div > div":{marginBottom:5,marginRight:0}}},wrapperContainer:{display:"flex",marginBottom:15},envVarRow:{display:"flex",alignItems:"center",justifyContent:"flex-start","&:last-child":{borderBottom:0},"@media (max-width: 900px)":{flex:1,"& div label":{minWidth:50}}},fileItem:{marginRight:10,display:"flex","& div label":{minWidth:50},"@media (max-width: 900px)":{flexFlow:"column"}},rowActions:{display:"flex",justifyContent:"flex-end","@media (max-width: 900px)":{flex:1}},overlayAction:{marginLeft:10,"& svg":{maxWidth:15,maxHeight:15},"& button":{background:"#EAEAEA"}}},m.oO),m.AK),m.DF))}))((function(e){var n=e.classes,t=(0,p.TL)(),s=(0,l.v9)((function(e){return e.createTenant.fields.configure.exposeMinIO})),o=(0,l.v9)((function(e){return e.createTenant.fields.configure.exposeConsole})),d=(0,l.v9)((function(e){return e.createTenant.fields.configure.exposeSFTP})),u=(0,l.v9)((function(e){return e.createTenant.fields.configure.setDomains})),m=(0,l.v9)((function(e){return e.createTenant.fields.configure.consoleDomain})),f=(0,l.v9)((function(e){return e.createTenant.fields.configure.minioDomains})),h=(0,l.v9)((function(e){return e.createTenant.fields.configure.tenantCustom})),w=(0,l.v9)((function(e){return e.createTenant.fields.configure.envVars})),P=(0,l.v9)((function(e){return e.createTenant.fields.configure.tenantSecurityContext})),I=(0,l.v9)((function(e){return e.createTenant.fields.configure.customRuntime})),R=(0,l.v9)((function(e){return e.createTenant.fields.configure.runtimeClassName})),D=(0,r.useState)({}),F=(0,i.Z)(D,2),K=F[0],E=F[1],L=(0,r.useCallback)((function(e,n){t((0,_.HM)({pageName:"configure",field:e,value:n}))}),[t]);(0,r.useEffect)((function(){var e=[];if(h&&(e=[{fieldKey:"tenant_securityContext_runAsUser",required:!0,value:P.runAsUser,customValidation:""===P.runAsUser||parseInt(P.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"tenant_securityContext_runAsGroup",required:!0,value:P.runAsGroup,customValidation:""===P.runAsGroup||parseInt(P.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"tenant_securityContext_fsGroup",required:!0,value:P.fsGroup,customValidation:""===P.fsGroup||parseInt(P.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"}]),u){var n=f.map((function(e,n){return{fieldKey:"minio-domain-".concat(n.toString()),required:!1,value:e,pattern:/^(https?):\/\/([a-zA-Z0-9\-.]+)(:[0-9]+)?$/,customPatternMessage:"MinIO domain is not in the form of http|https://subdomain.domain"}}));e=[].concat((0,x.Z)(e),(0,x.Z)(n),[{fieldKey:"console_domain",required:!1,value:m,pattern:/^(https?):\/\/([a-zA-Z0-9\-.]+)(:[0-9]+)?(\/[a-zA-Z0-9\-./]*)?$/,customPatternMessage:"Console domain is not in the form of http|https://subdomain.domain:port/subpath1/subpath2"}])}var i=(0,Z.R)(e);t((0,_.NO)({pageName:"configure",valid:0===Object.keys(i).length})),E(i)}),[t,h,P,u,m,f]);var z=function(e){E((0,j.h)(K,e))};return(0,k.jsxs)(v.Z,{className:n.paperWrapper,children:[(0,k.jsxs)("div",{className:n.headerElement,children:[(0,k.jsx)(A.Z,{children:"Configure"}),(0,k.jsx)("span",{className:n.descriptionText,children:"Basic configurations for tenant management"})]}),(0,k.jsxs)("div",{className:n.headerElement,children:[(0,k.jsx)("h4",{className:n.h3Section,children:"Services"}),(0,k.jsx)("span",{className:n.descriptionText,children:"Whether the tenant's services should request an external IP via LoadBalancer service type."})]}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,k.jsx)(b.Z,{value:"expose_minio",id:"expose_minio",name:"expose_minio",checked:s,onChange:function(e){var n=e.target.checked;L("exposeMinIO",n)},label:"Expose MinIO Service"})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,k.jsx)(b.Z,{value:"expose_console",id:"expose_console",name:"expose_console",checked:o,onChange:function(e){var n=e.target.checked;L("exposeConsole",n)},label:"Expose Console Service"})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,k.jsx)(b.Z,{value:"expose_sftp",id:"expose_sftp",name:"expose_sftp",checked:d,onChange:function(e){var n=e.target.checked;L("exposeSFTP",n)},label:"Expose SFTP Service"})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,k.jsx)(b.Z,{value:"custom_domains",id:"custom_domains",name:"custom_domains",checked:u,onChange:function(e){var n=e.target.checked;L("setDomains",n)},label:"Set Custom Domains"})}),u&&(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.tenantCustomizationFields,children:(0,k.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,k.jsx)("legend",{className:n.descriptionText,children:"Custom Domains for MinIO"}),(0,k.jsxs)(c.ZP,{item:!0,xs:12,className:"".concat(n.configSectionItem),children:[(0,k.jsx)("div",{className:n.containerItem,children:(0,k.jsx)(C.Z,{id:"console_domain",name:"console_domain",onChange:function(e){L("consoleDomain",e.target.value),z("tenant_securityContext_runAsUser")},label:"Console Domain",value:m,placeholder:"Eg. http://subdomain.domain:port/subpath1/subpath2",error:K.console_domain||""})}),(0,k.jsxs)("div",{children:[(0,k.jsx)("h4",{children:"MinIO Domains"}),(0,k.jsx)("div",{className:"".concat(n.responsiveSectionItem),children:f.map((function(e,i){return(0,k.jsxs)("div",{className:"".concat(n.containerItem," ").concat(n.wrapperContainer),children:[(0,k.jsx)(C.Z,{id:"minio-domain-".concat(i.toString()),name:"minio-domain-".concat(i.toString()),onChange:function(e){!function(e,n){var t=(0,x.Z)(f);t[n]=e,L("minioDomains",t)}(e.target.value,i)},label:"MinIO Domain ".concat(i+1),value:e,placeholder:"Eg. http://subdomain.domain",error:K["minio-domain-".concat(i.toString())]||""}),(0,k.jsx)("div",{className:n.overlayAction,children:(0,k.jsx)(g.Z,{size:"small",onClick:function(){return t((0,_.x_)())},disabled:i!==f.length-1,children:(0,k.jsx)(N.Z,{})})}),(0,k.jsx)("div",{className:n.overlayAction,children:(0,k.jsx)(g.Z,{size:"small",onClick:function(){return t((0,_.JL)(i))},disabled:f.length<=1,children:(0,k.jsx)(S.HFL,{})})})]},"minio-domain-key-".concat(i.toString()))}))})]})]})]})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,k.jsx)(b.Z,{value:"tenantConfig",id:"tenant_configuration",name:"tenant_configuration",checked:h,onChange:function(e){var n=e.target.checked;L("tenantCustom",n)},label:"Security Context"})}),h&&(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.tenantCustomizationFields,children:(0,k.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,k.jsx)("legend",{className:n.descriptionText,children:"SecurityContext for MinIO"}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:"".concat(n.configSectionItem),children:(0,k.jsxs)("div",{className:"".concat(n.multiContainer," ").concat(n.responsiveSectionItem),children:[(0,k.jsx)("div",{className:n.containerItem,children:(0,k.jsx)(C.Z,{type:"number",id:"tenant_securityContext_runAsUser",name:"tenant_securityContext_runAsUser",onChange:function(e){L("tenantSecurityContext",(0,a.Z)((0,a.Z)({},P),{},{runAsUser:e.target.value})),z("tenant_securityContext_runAsUser")},label:"Run As User",value:P.runAsUser,required:!0,error:K.tenant_securityContext_runAsUser||"",min:"0"})}),(0,k.jsx)("div",{className:n.containerItem,children:(0,k.jsx)(C.Z,{type:"number",id:"tenant_securityContext_runAsGroup",name:"tenant_securityContext_runAsGroup",onChange:function(e){L("tenantSecurityContext",(0,a.Z)((0,a.Z)({},P),{},{runAsGroup:e.target.value})),z("tenant_securityContext_runAsGroup")},label:"Run As Group",value:P.runAsGroup,required:!0,error:K.tenant_securityContext_runAsGroup||"",min:"0"})})]})}),(0,k.jsx)("br",{}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:"".concat(n.configSectionItem),children:(0,k.jsxs)("div",{className:"".concat(n.multiContainer," ").concat(n.responsiveSectionItem),children:[(0,k.jsx)("div",{className:n.containerItem,children:(0,k.jsx)(C.Z,{type:"number",id:"tenant_securityContext_fsGroup",name:"tenant_securityContext_fsGroup",onChange:function(e){L("tenantSecurityContext",(0,a.Z)((0,a.Z)({},P),{},{fsGroup:e.target.value})),z("tenant_securityContext_fsGroup")},label:"FsGroup",value:P.fsGroup,required:!0,error:K.tenant_securityContext_fsGroup||"",min:"0"})}),(0,k.jsx)("div",{className:n.containerItem,children:(0,k.jsx)("div",{className:n.configSectionItem,children:(0,k.jsx)(T.Z,{label:"FsGroupChangePolicy",id:"securityContext_fsGroupChangePolicy",name:"securityContext_fsGroupChangePolicy",value:P.fsGroupChangePolicy,onChange:function(e){L("tenantSecurityContext",(0,a.Z)((0,a.Z)({},P),{},{fsGroupChangePolicy:e.target.value}))},options:[{label:"Always",value:"Always"},{label:"OnRootMismatch",value:"OnRootMismatch"}]})})})]})}),(0,k.jsx)("br",{}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,k.jsx)("div",{className:n.multiContainer,children:(0,k.jsx)(b.Z,{value:"tenantSecurityContextRunAsNonRoot",id:"tenant_securityContext_runAsNonRoot",name:"tenant_securityContext_runAsNonRoot",checked:P.runAsNonRoot,onChange:function(e){var n=e.target.checked;L("tenantSecurityContext",(0,a.Z)((0,a.Z)({},P),{},{runAsNonRoot:n}))},label:"Do not run as Root"})})})]})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,k.jsx)(b.Z,{value:"customRuntime",id:"tenant_custom_runtime",name:"tenant_custom_runtime",checked:I,onChange:function(e){var n=e.target.checked;L("customRuntime",n)},label:"Custom Runtime Configurations"})}),I&&(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.tenantCustomizationFields,children:(0,k.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,k.jsx)("legend",{className:n.descriptionText,children:"Custom Runtime Configurations"}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:"".concat(n.configSectionItem),children:(0,k.jsx)("div",{className:n.containerItem,children:(0,k.jsx)(C.Z,{id:"tenant_runtime_runtimeClassName",name:"tenant_runtime_runtimeClassName",onChange:function(e){L("runtimeClassName",e.target.value),z("tenant_runtime_runtimeClassName")},label:"Runtime Class Name",value:R,error:K.tenant_runtime_runtimeClassName||""})})})]})}),(0,k.jsx)(y.Z,{}),(0,k.jsxs)("div",{className:n.headerElement,children:[(0,k.jsx)(A.Z,{children:"Additional Environment Variables"}),(0,k.jsx)("span",{className:n.descriptionText,children:"Define additional environment variables to be used by your MinIO pods"})]}),(0,k.jsx)(c.ZP,{container:!0,children:w.map((function(e,i){return(0,k.jsxs)(c.ZP,{item:!0,xs:12,className:"".concat(n.formFieldRow," ").concat(n.envVarRow),children:[(0,k.jsx)(c.ZP,{item:!0,xs:5,className:n.fileItem,children:(0,k.jsx)(C.Z,{id:"env_var_key",name:"env_var_key",label:"Key",value:e.key,onChange:function(e){var n=(0,x.Z)(w);t((0,_.Ct)(n.map((function(n,t){return t===i?{key:e.target.value,value:n.value}:n}))))},index:i},"env_var_key_".concat(i.toString()))}),(0,k.jsx)(c.ZP,{item:!0,xs:5,className:n.fileItem,children:(0,k.jsx)(C.Z,{id:"env_var_value",name:"env_var_value",label:"Value",value:e.value,onChange:function(e){var n=(0,x.Z)(w);t((0,_.Ct)(n.map((function(n,t){return t===i?{key:n.key,value:e.target.value}:n}))))},index:i},"env_var_value_".concat(i.toString()))}),(0,k.jsxs)(c.ZP,{item:!0,xs:2,className:n.rowActions,children:[(0,k.jsx)("div",{className:n.overlayAction,children:(0,k.jsx)(g.Z,{size:"small",onClick:function(){var e=(0,x.Z)(w);e.push({key:"",value:""}),t((0,_.Ct)(e))},disabled:i!==w.length-1,children:(0,k.jsx)(N.Z,{})})}),(0,k.jsx)("div",{className:n.overlayAction,children:(0,k.jsx)(g.Z,{size:"small",onClick:function(){var e=w.filter((function(e,n){return n!==i}));t((0,_.Ct)(e))},disabled:w.length<=1,children:(0,k.jsx)(S.HFL,{})})})]})]},"tenant-envVar-".concat(i.toString()))}))})]})})),P=t(83679),I=t(20890),R=t(96040),D=t(72455),F=t(27247),K=(0,D.Z)((function(e){return(0,u.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({adUserDnRows:{display:"flex",marginBottom:10},buttonTray:{marginLeft:10,display:"flex",height:38,"& button":{background:"#EAEAEA"}},overlayAction:{marginLeft:10,"& svg":{maxWidth:15,maxHeight:15},"& button":{background:"#EAEAEA"}}},m.QV),m.DF),m.oO),m.AK))})),E=function(){var e=(0,p.TL)(),n=K(),t=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.idpSelection})),a=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADURL})),s=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADSkipTLS})),o=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADServerInsecure})),d=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADGroupSearchBaseDN})),u=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADGroupSearchFilter})),m=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADUserDNs})),f=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADGroupDNs})),h=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADLookupBindDN})),v=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADLookupBindPassword})),y=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADUserDNSearchBaseDN})),S=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADUserDNSearchFilter})),T=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADServerStartTLS})),A=(0,r.useState)({}),w=(0,i.Z)(A,2),P=w[0],D=w[1],E=(0,r.useCallback)((function(n,t){e((0,_.HM)({pageName:"identityProvider",field:n,value:t}))}),[e]),L=function(e){D((0,j.h)(P,e))};return(0,r.useEffect)((function(){var n=[];"AD"===t&&(n=[].concat((0,x.Z)(n),[{fieldKey:"AD_URL",required:!0,value:a},{fieldKey:"ad_lookupBindDN",required:!0,value:h}]));var i=(0,Z.R)(n);e((0,_.NO)({pageName:"identityProvider",valid:0===Object.keys(i).length})),D(i)}),[h,t,a,d,u,m,f,e]),(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"AD_URL",name:"AD_URL",onChange:function(e){E("ADURL",e.target.value),L("AD_URL")},label:"LDAP Server Address",value:a,placeholder:"ldap-server:636",error:P.AD_URL||"",required:!0})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(b.Z,{value:"ad_skipTLS",id:"ad_skipTLS",name:"ad_skipTLS",checked:s,onChange:function(e){var n=e.target.checked;E("ADSkipTLS",n)},label:"Skip TLS Verification"})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(b.Z,{value:"ad_serverInsecure",id:"ad_serverInsecure",name:"ad_serverInsecure",checked:o,onChange:function(e){var n=e.target.checked;E("ADServerInsecure",n)},label:"Server Insecure"})}),o?(0,k.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,k.jsx)(I.Z,{className:n.error,variant:"caption",display:"block",gutterBottom:!0,children:"Warning: All traffic with Active Directory will be unencrypted"}),(0,k.jsx)("br",{})]}):null,(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(b.Z,{value:"ad_serverStartTLS",id:"ad_serverStartTLS",name:"ad_serverStartTLS",checked:T,onChange:function(e){var n=e.target.checked;E("ADServerStartTLS",n)},label:"Start TLS connection to AD/LDAP server"})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"ad_lookupBindDN",name:"ad_lookupBindDN",onChange:function(e){E("ADLookupBindDN",e.target.value),L("ad_lookupBindDN")},label:"Lookup Bind DN",value:h,placeholder:"cn=admin,dc=min,dc=io",error:P.ad_lookupBindDN||"",required:!0})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"ad_lookupBindPassword",name:"ad_lookupBindPassword",onChange:function(e){E("ADLookupBindPassword",e.target.value)},label:"Lookup Bind Password",value:v,placeholder:"admin"})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"ad_userDNSearchBaseDN",name:"ad_userDNSearchBaseDN",onChange:function(e){E("ADUserDNSearchBaseDN",e.target.value)},label:"User DN Search Base DN",value:y,placeholder:"dc=min,dc=io"})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"ad_userDNSearchFilter",name:"ad_userDNSearchFilter",onChange:function(e){E("ADUserDNSearchFilter",e.target.value)},label:"User DN Search Filter",value:S,placeholder:"(sAMAcountName=%s)"})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"ad_groupSearchBaseDN",name:"ad_groupSearchBaseDN",onChange:function(e){E("ADGroupSearchBaseDN",e.target.value)},label:"Group Search Base DN",value:d,placeholder:"ou=hwengg,dc=min,dc=io;ou=swengg,dc=min,dc=io"})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"ad_groupSearchFilter",name:"ad_groupSearchFilter",onChange:function(e){E("ADGroupSearchFilter",e.target.value)},label:"Group Search Filter",value:u,placeholder:"(&(objectclass=groupOfNames)(member=%s))"})}),(0,k.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,k.jsx)("legend",{className:n.descriptionText,children:"List of user DNs (Distinguished Names) to be Tenant Administrators"}),(0,k.jsx)(c.ZP,{item:!0,xs:12,children:m.map((function(t,i){return(0,k.jsx)(r.Fragment,{children:(0,k.jsxs)("div",{className:n.adUserDnRows,children:[(0,k.jsx)(C.Z,{id:"ad-userdn-".concat(i.toString()),label:"",placeholder:"",name:"ad-userdn-".concat(i.toString()),value:m[i],onChange:function(n){e((0,_.hK)({index:i,userDN:n.target.value})),L("ad-userdn-".concat(i.toString()))},index:i,error:P["ad-userdn-".concat(i.toString())]||""},"csv-ad-userdn-".concat(i.toString())),(0,k.jsxs)("div",{className:n.buttonTray,children:[(0,k.jsx)(R.Z,{title:"Add User","aria-label":"add",children:(0,k.jsx)(g.Z,{size:"small",onClick:function(){e((0,_.Y$)())},children:(0,k.jsx)(N.Z,{})})}),(0,k.jsx)(R.Z,{title:"Remove","aria-label":"add",children:(0,k.jsx)(g.Z,{size:"small",style:{marginLeft:16},onClick:function(){m.length>1&&e((0,_.GU)(i))},children:(0,k.jsx)(F.Z,{})})})]})]})},"identityField-".concat(i.toString()))}))})]}),(0,k.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,k.jsx)("legend",{className:n.descriptionText,children:"List of group DNs (Distinguished Names) to be Tenant Administrators"}),(0,k.jsx)(c.ZP,{item:!0,xs:12,children:f.map((function(t,i){return(0,k.jsx)(r.Fragment,{children:(0,k.jsxs)("div",{className:n.adUserDnRows,children:[(0,k.jsx)(C.Z,{id:"ad-groupdn-".concat(i.toString()),label:"",placeholder:"",name:"ad-groupdn-".concat(i.toString()),value:f[i],onChange:function(n){e((0,_.in)({index:i,userDN:n.target.value})),L("ad-groupdn-".concat(i.toString()))},index:i,error:P["ad-groupdn-".concat(i.toString())]||""},"csv-ad-groupdn-".concat(i.toString())),(0,k.jsxs)("div",{className:n.buttonTray,children:[(0,k.jsx)(R.Z,{title:"Add Group","aria-label":"add",children:(0,k.jsx)(g.Z,{size:"small",onClick:function(){e((0,_.Fe)())},children:(0,k.jsx)(N.Z,{})})}),(0,k.jsx)(R.Z,{title:"Remove","aria-label":"add",children:(0,k.jsx)(g.Z,{size:"small",style:{marginLeft:16},onClick:function(){f.length>1&&e((0,_.Hu)(i))},children:(0,k.jsx)(F.Z,{})})})]})]})},"identityField-".concat(i.toString()))}))})]})]})},L=(0,D.Z)((function(e){return(0,u.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({buttonTray:{marginLeft:10,display:"flex",height:38,"& button":{background:"#EAEAEA"}},overlayAction:{marginLeft:10,"& svg":{maxWidth:15,maxHeight:15},"& button":{background:"#EAEAEA"}}},m.QV),m.DF),m.oO),m.AK))})),z=function(){var e=(0,p.TL)(),n=L(),t=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.idpSelection})),a=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.openIDConfigurationURL})),s=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.openIDClientID})),o=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.openIDSecretID})),d=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.openIDClaimName})),u=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.openIDScopes})),m=(0,r.useState)({}),f=(0,i.Z)(m,2),h=f[0],v=f[1],g=(0,r.useCallback)((function(n,t){e((0,_.HM)({pageName:"identityProvider",field:n,value:t}))}),[e]),y=function(e){v((0,j.h)(h,e))};return(0,r.useEffect)((function(){var n=[];"OpenID"===t&&(n=[].concat((0,x.Z)(n),[{fieldKey:"openID_CONFIGURATION_URL",required:!0,value:a},{fieldKey:"openID_clientID",required:!0,value:s},{fieldKey:"openID_secretID",required:!0,value:o},{fieldKey:"openID_claimName",required:!1,value:d}]));var i=(0,Z.R)(n);e((0,_.NO)({pageName:"identityProvider",valid:0===Object.keys(i).length})),v(i)}),[t,s,o,a,d,e]),(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"openID_CONFIGURATION_URL",name:"openID_CONFIGURATION_URL",onChange:function(e){g("openIDConfigurationURL",e.target.value),y("openID_CONFIGURATION_URL")},label:"Configuration URL",value:a,placeholder:"https://your-identity-provider.com/.well-known/openid-configuration",error:h.openID_CONFIGURATION_URL||"",required:!0})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"openID_clientID",name:"openID_clientID",onChange:function(e){g("openIDClientID",e.target.value),y("openID_clientID")},label:"Client ID",value:s,error:h.openID_clientID||"",required:!0})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"openID_secretID",name:"openID_secretID",onChange:function(e){g("openIDSecretID",e.target.value),y("openID_secretID")},label:"Secret ID",value:o,error:h.openID_secretID||"",required:!0})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"openID_claimName",name:"openID_claimName",onChange:function(e){g("openIDClaimName",e.target.value),y("openID_claimName")},label:"Claim Name",value:d,placeholder:"policy",error:h.openID_claimName||""})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"openID_scopes",name:"openID_scopes",onChange:function(e){g("openIDScopes",e.target.value),y("openID_scopes")},label:"Scopes",value:u})})]})},O=t(22918),M=(0,D.Z)((function(e){return(0,u.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({buttonTray:{marginLeft:10,display:"flex",height:38,"& button":{background:"#EAEAEA"}},overlayAction:{marginLeft:10,"& svg":{maxWidth:15,maxHeight:15},"& button":{background:"#EAEAEA"}},shortened:{gridTemplateColumns:"auto auto 50px 50px",display:"grid",gridGap:15,marginBottom:10,"& input":{fontWeight:400}}},m.QV),m.DF),m.oO),m.AK))})),G=function(){var e=(0,p.TL)(),n=M(),t=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.idpSelection})),a=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.accessKeys})),s=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.secretKeys})),o=(0,r.useState)({}),c=(0,i.Z)(o,2),d=c[0],u=c[1],m=function(e){u((0,j.h)(d,e))};return(0,r.useEffect)((function(){var n=[];if("Built-in"===t){n=(0,x.Z)(n);for(var i=0;i.amanzonaws.com",value:a,error:v.aws_endpoint||"",required:!0})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"aws_region",name:"aws_region",onChange:function(e){y("awsRegion",e.target.value),b("aws_region")},label:"Region",tooltip:"Region is the AWS region the SecretsManager is located",value:s,error:v.aws_region||"",required:!0})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"aws_kmsKey",name:"aws_kmsKey",onChange:function(e){y("awsKMSKey",e.target.value)},label:"KMS Key",tooltip:"KMSKey is the AWS-KMS key ID (CMK-ID) used to en/decrypt secrets managed by the SecretsManager. If empty, the default AWS KMS key is used",value:o})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,children:(0,k.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,k.jsx)("legend",{className:n.descriptionText,children:"Credentials"}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"aws_accessKey",name:"aws_accessKey",onChange:function(e){y("awsAccessKey",e.target.value),b("aws_accessKey")},label:"Access Key",tooltip:"AccessKey is the access key for authenticating to AWS",value:d,error:v.aws_accessKey||"",required:!0})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"aws_secretKey",name:"aws_secretKey",onChange:function(e){y("awsSecretKey",e.target.value),b("aws_secretKey")},label:"Secret Key",tooltip:"SecretKey is the secret key for authenticating to AWS",value:u,error:v.aws_secretKey||"",required:!0})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"aws_token",name:"aws_token",tooltip:"SessionToken is an optional session token for authenticating to AWS when using STS",onChange:function(e){y("awsToken",e.target.value)},label:"Token",value:m})})]})})]})},se=t(25228),oe=t(43896),le=t(92217),ce=t(13871),de=(0,h.Z)((function(e){return(0,u.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({encryptionTypeOptions:{marginBottom:15},mutualTlsConfig:{marginTop:15,"& fieldset":{flex:1}},rightSpacer:{marginRight:15},responsiveContainer:{"@media (max-width: 900px)":{display:"flex",flexFlow:"column"}}},m.QV),m.DF),m.oO),m.AK))}))((function(e){var n=e.classes,t=(0,p.TL)(),s=(0,l.v9)((function(e){return e.createTenant.fields.encryption.replicas})),o=(0,l.v9)((function(e){return e.createTenant.fields.encryption.rawConfiguration})),d=(0,l.v9)((function(e){return e.createTenant.fields.encryption.encryptionTab})),u=(0,l.v9)((function(e){return e.createTenant.fields.encryption.enableEncryption})),m=(0,l.v9)((function(e){return e.createTenant.fields.encryption.encryptionType})),f=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpProjectID})),h=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpEndpoint})),g=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpClientEmail})),y=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpClientID})),N=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpPrivateKeyID})),S=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpPrivateKey})),A=(0,l.v9)((function(e){return e.createTenant.fields.encryption.enableCustomCertsForKES})),w=(0,l.v9)((function(e){return e.createTenant.fields.security.enableAutoCert})),I=(0,l.v9)((function(e){return e.createTenant.fields.security.enableTLS})),R=(0,l.v9)((function(e){return e.createTenant.certificates.minioServerCertificates})),D=(0,l.v9)((function(e){return e.createTenant.certificates.kesServerCertificate})),F=(0,l.v9)((function(e){return e.createTenant.certificates.minioMTLSCertificate})),K=(0,l.v9)((function(e){return e.createTenant.certificates.kmsMTLSCertificate})),E=(0,l.v9)((function(e){return e.createTenant.certificates.kmsCA})),L=(0,l.v9)((function(e){return e.createTenant.fields.security.enableCustomCerts})),z=(0,l.v9)((function(e){return e.createTenant.fields.encryption.kesSecurityContext})),O=(0,r.useState)({}),M=(0,i.Z)(O,2),G=M[0],B=M[1],V=!1;I&&(w||R&&R.filter((function(e){return e.encoded_key&&e.encoded_cert})).length>0)&&(V=!0);var q=(0,r.useCallback)((function(e,n){t((0,_.HM)({pageName:"encryption",field:e,value:n}))}),[t]),H=function(e){B((0,j.h)(G,e))};return(0,r.useEffect)((function(){var e=[];u&&(e=[{fieldKey:"rawConfiguration",required:d>0,value:o},{fieldKey:"replicas",required:!0,value:s,customValidation:parseInt(s)<1,customValidationMessage:"Replicas needs to be 1 or greater"},{fieldKey:"kes_securityContext_runAsUser",required:!0,value:z.runAsUser,customValidation:""===z.runAsUser||parseInt(z.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"kes_securityContext_runAsGroup",required:!0,value:z.runAsGroup,customValidation:""===z.runAsGroup||parseInt(z.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"kes_securityContext_fsGroup",required:!0,value:z.fsGroup,customValidation:""===z.fsGroup||parseInt(z.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"}],L&&(e=[].concat((0,x.Z)(e),[{fieldKey:"serverKey",required:!w,value:D.encoded_key},{fieldKey:"serverCert",required:!w,value:D.encoded_cert},{fieldKey:"clientKey",required:!w,value:F.encoded_key},{fieldKey:"clientCert",required:!w,value:F.encoded_cert}])));var n=(0,Z.R)(e);t((0,_.NO)({pageName:"encryption",valid:0===Object.keys(n).length})),B(n)}),[o,d,u,m,f,h,g,y,N,S,t,w,L,D.encoded_key,D.encoded_cert,F.encoded_key,F.encoded_cert,z,s]),(0,k.jsxs)(v.Z,{className:n.paperWrapper,children:[(0,k.jsxs)(c.ZP,{container:!0,alignItems:"center",children:[(0,k.jsx)(c.ZP,{item:!0,xs:!0,children:(0,k.jsx)(Q,{children:"Encryption"})}),(0,k.jsx)(c.ZP,{item:!0,xs:4,justifyContent:"end",textAlign:"right",children:(0,k.jsx)(b.Z,{label:"",indicatorLabels:["Enabled","Disabled"],checked:u,value:"tenant_encryption",id:"tenant-encryption",name:"tenant-encryption",onChange:function(e){var n=e.target.checked;q("enableEncryption",n)},description:"",disabled:!V})})]}),(0,k.jsxs)(c.ZP,{container:!0,spacing:1,children:[(0,k.jsx)(c.ZP,{item:!0,xs:12,children:(0,k.jsx)("span",{className:n.descriptionText,children:"MinIO Server-Side Encryption (SSE) protects objects as part of write operations, allowing clients to take advantage of server processing power to secure objects at the storage layer (encryption-at-rest). SSE also provides key functionality to regulatory and compliance requirements around secure locking and erasure."})}),(0,k.jsx)(c.ZP,{xs:12,children:(0,k.jsx)(ce.Z,{})}),u&&(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)(c.ZP,{item:!0,xs:12,children:(0,k.jsxs)(se.Z,{value:d,onChange:function(e,n){q("encryptionTab",n)},indicatorColor:"primary",textColor:"primary","aria-label":"cluster-tabs",variant:"scrollable",scrollButtons:"auto",children:[(0,k.jsx)(oe.Z,{id:"kms-options",label:"Options"}),(0,k.jsx)(oe.Z,{id:"kms-raw-configuration",label:"Raw Edit"})]})}),d?(0,k.jsx)(r.Fragment,{children:(0,k.jsx)(c.ZP,{item:!0,xs:12,children:(0,k.jsx)(le.Z,{value:o,mode:"yaml",onBeforeChange:function(e,n,t){q("rawConfiguration",t)},editorHeight:"550px"})})}):(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.encryptionTypeOptions,children:(0,k.jsx)(P.Z,{currentSelection:m,id:"encryptionType",name:"encryptionType",label:"KMS",onChange:function(e){q("encryptionType",e.target.value)},selectorOptions:[{label:"Vault",value:"vault"},{label:"AWS",value:"aws"},{label:"Gemalto",value:"gemalto"},{label:"GCP",value:"gcp"},{label:"Azure",value:"azure"}]})}),"vault"===m&&(0,k.jsx)(Y,{}),"azure"===m&&(0,k.jsx)(X,{}),"gcp"===m&&(0,k.jsx)(ne,{}),"aws"===m&&(0,k.jsx)(re,{}),"gemalto"===m&&(0,k.jsx)(ie,{})]}),(0,k.jsx)("div",{className:n.headerElement,children:(0,k.jsx)("h4",{className:n.h3Section,children:"Additional Configurations"})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,children:(0,k.jsx)(b.Z,{value:"enableCustomCertsForKES",id:"enableCustomCertsForKES",name:"enableCustomCertsForKES",checked:A||!w,onChange:function(e){var n=e.target.checked;q("enableCustomCertsForKES",n)},label:"Custom Certificates",disabled:!w})}),(A||!w)&&(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)(c.ZP,{container:!0,children:(0,k.jsx)(c.ZP,{item:!0,xs:12,style:{marginBottom:15},children:(0,k.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,k.jsx)("legend",{className:n.descriptionText,children:"Encryption server certificates"}),(0,k.jsx)(U.Z,{onChange:function(e,n){t((0,_.uN)({key:"key",fileName:n,value:e})),H("serverKey")},accept:".key,.pem",id:"serverKey",name:"serverKey",label:"Key",error:G.serverKey||"",value:D.key,required:!w}),(0,k.jsx)(U.Z,{onChange:function(e,n){t((0,_.uN)({key:"cert",fileName:n,value:e})),H("serverCert")},accept:".cer,.crt,.cert,.pem",id:"serverCert",name:"serverCert",label:"Cert",error:G.serverCert||"",value:D.cert,required:!w})]})})}),(0,k.jsx)(c.ZP,{container:!0,style:{marginBottom:15},children:(0,k.jsx)(c.ZP,{item:!0,xs:12,children:(0,k.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,k.jsx)("legend",{className:n.descriptionText,children:"MinIO mTLS certificates (connection between MinIO and the Encryption server)"}),(0,k.jsx)(U.Z,{onChange:function(e,n){t((0,_.Ud)({key:"key",fileName:n,value:e})),H("clientKey")},accept:".key,.pem",id:"clientKey",name:"clientKey",label:"Key",error:G.clientKey||"",value:F.key,required:!w}),(0,k.jsx)(U.Z,{onChange:function(e,n){t((0,_.Ud)({key:"cert",fileName:n,value:e})),H("clientCert")},accept:".cer,.crt,.cert,.pem",id:"clientCert",name:"clientCert",label:"Cert",error:G.clientCert||"",value:F.cert,required:!w})]})})}),(0,k.jsx)(c.ZP,{container:!0,className:n.mutualTlsConfig,children:(0,k.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,k.jsx)("legend",{className:n.descriptionText,children:"KMS mTLS certificates (connection between the Encryption server and the KMS)"}),(0,k.jsx)(U.Z,{onChange:function(e,n){t((0,_.Tr)({key:"key",fileName:n,value:e})),H("vault_key")},accept:".key,.pem",id:"vault_key",name:"vault_key",label:"Key",value:K.key}),(0,k.jsx)(U.Z,{onChange:function(e,n){t((0,_.Tr)({key:"cert",fileName:n,value:e})),H("vault_cert")},accept:".cer,.crt,.cert,.pem",id:"vault_cert",name:"vault_cert",label:"Cert",value:K.cert}),(0,k.jsx)(U.Z,{onChange:function(e,n){t((0,_.b9)({fileName:n,value:e})),H("vault_ca")},accept:".cer,.crt,.cert,.pem",id:"vault_ca",name:"vault_ca",label:"CA",value:E.cert})]})})]}),(0,k.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,k.jsx)(c.ZP,{item:!0,xs:12,classes:n.formFieldRow,children:(0,k.jsx)(C.Z,{type:"number",min:"1",id:"replicas",name:"replicas",onChange:function(e){q("replicas",e.target.value),H("replicas")},label:"Replicas",value:s,required:!0,error:G.replicas||""})}),(0,k.jsxs)("fieldset",{className:n.fieldGroup,style:{marginTop:15},children:[(0,k.jsx)("legend",{className:n.descriptionText,children:"SecurityContext for KES pods"}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.kesSecurityContext,children:(0,k.jsxs)("div",{className:"".concat(n.multiContainer," ").concat(n.responsiveContainer),children:[(0,k.jsx)("div",{className:"".concat(n.formFieldRow," ").concat(n.rightSpacer),children:(0,k.jsx)(C.Z,{type:"number",id:"kes_securityContext_runAsUser",name:"kes_securityContext_runAsUser",onChange:function(e){q("kesSecurityContext",(0,a.Z)((0,a.Z)({},z),{},{runAsUser:e.target.value})),H("kes_securityContext_runAsUser")},label:"Run As User",value:z.runAsUser,required:!0,error:G.kes_securityContext_runAsUser||"",min:"0"})}),(0,k.jsx)("div",{className:"".concat(n.formFieldRow," ").concat(n.rightSpacer),children:(0,k.jsx)(C.Z,{type:"number",id:"kes_securityContext_runAsGroup",name:"kes_securityContext_runAsGroup",onChange:function(e){q("kesSecurityContext",(0,a.Z)((0,a.Z)({},z),{},{runAsGroup:e.target.value})),H("kes_securityContext_runAsGroup")},label:"Run As Group",value:z.runAsGroup,required:!0,error:G.kes_securityContext_runAsGroup||"",min:"0"})})]})}),(0,k.jsx)("br",{}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.kesSecurityContext,children:(0,k.jsxs)("div",{className:"".concat(n.multiContainer," ").concat(n.responsiveContainer),children:[(0,k.jsx)("div",{className:"".concat(n.formFieldRow," ").concat(n.rightSpacer),children:(0,k.jsx)(C.Z,{type:"number",id:"kes_securityContext_fsGroup",name:"kes_securityContext_fsGroup",onChange:function(e){q("kesSecurityContext",(0,a.Z)((0,a.Z)({},z),{},{fsGroup:e.target.value})),H("kes_securityContext_fsGroup")},label:"FsGroup",value:z.fsGroup,required:!0,error:G.kes_securityContext_fsGroup||"",min:"0"})}),(0,k.jsx)("div",{className:"".concat(n.formFieldRow," ").concat(n.rightSpacer),children:(0,k.jsx)(T.Z,{label:"FsGroupChangePolicy",id:"securityContext_fsGroupChangePolicy",name:"securityContext_fsGroupChangePolicy",value:z.fsGroupChangePolicy,onChange:function(e){q("kesSecurityContext",(0,a.Z)((0,a.Z)({},z),{},{fsGroupChangePolicy:e.target.value}))},options:[{label:"Always",value:"Always"},{label:"OnRootMismatch",value:"OnRootMismatch"}]})})]})}),(0,k.jsx)("br",{}),(0,k.jsx)(c.ZP,{item:!0,xs:12,children:(0,k.jsx)("div",{className:n.multiContainer,children:(0,k.jsx)(b.Z,{value:"kesSecurityContextRunAsNonRoot",id:"kes_securityContext_runAsNonRoot",name:"kes_securityContext_runAsNonRoot",checked:z.runAsNonRoot,onChange:function(e){var n=e.target.checked;q("kesSecurityContext",(0,a.Z)((0,a.Z)({},z),{},{runAsNonRoot:n}))},label:"Do not run as Root"})})})]})]})]})]})]})})),ue=t(4942),me=t(81207),fe=t(45660),pe=t(87995),xe=(0,h.Z)((function(e){return(0,u.Z)((0,a.Z)((0,a.Z)({overlayAction:{marginLeft:10,display:"flex",alignItems:"center","& svg":{maxWidth:15,maxHeight:15},"& button":{background:"#EAEAEA"}},affinityConfigField:{display:"flex"},affinityFieldLabel:{display:"flex",flexFlow:"column",flex:1},radioField:{display:"flex",alignItems:"flex-start",marginTop:10,"& div:first-child":{display:"flex",flexFlow:"column",alignItems:"baseline",textAlign:"left !important"}},affinityLabelKey:{"& div:first-child":{marginBottom:0}},affinityLabelValue:{marginLeft:10,"& div:first-child":{marginBottom:0}},rowActions:{display:"flex",alignItems:"center"},affinityRow:{marginBottom:10,display:"flex"}},m.oO),m.AK))}))((function(e){var n=e.classes,t=(0,p.TL)(),s=(0,l.v9)((function(e){return e.createTenant.fields.affinity.podAffinity})),o=(0,l.v9)((function(e){return e.createTenant.fields.affinity.nodeSelectorLabels})),d=(0,l.v9)((function(e){return e.createTenant.fields.affinity.withPodAntiAffinity})),u=(0,l.v9)((function(e){return e.createTenant.nodeSelectorPairs})),m=(0,l.v9)((function(e){return e.createTenant.tolerations})),f=(0,r.useState)({}),h=(0,i.Z)(f,2),y=h[0],j=h[1],N=(0,r.useState)(!0),w=(0,i.Z)(N,2),I=w[0],R=w[1],D=(0,r.useState)({}),F=(0,i.Z)(D,2),K=F[0],E=F[1],L=(0,r.useState)([]),z=(0,i.Z)(L,2),O=z[0],M=z[1],G=(0,r.useCallback)((function(e,n){t((0,_.HM)({pageName:"affinity",field:e,value:n}))}),[t]);(0,r.useEffect)((function(){I&&me.Z.invoke("GET","/api/v1/nodes/labels").then((function(e){R(!1),E(e);var n=[];for(var t in e)n.push({label:t,value:t});M(n)})).catch((function(e){R(!1),t((0,pe.zb)(e)),E({})}))}),[t,I]),(0,r.useEffect)((function(){if(u){var e=u.filter((function(e){return""!==e.key})).map((function(e){return"".concat(e.key,"=").concat(e.value)})).filter((function(e,n,t){return t.indexOf(e)===n})).join("&");G("nodeSelectorLabels",e)}}),[u,G]),(0,r.useEffect)((function(){var e=[];if("nodeSelector"===s){var n=!0,i=o.split("&");1===i.length&&""===i[0]&&(n=!1),i.forEach((function(e,t){var a=e.split("=");2!==a.length&&(n=!1),t+1!==i.length&&(""!==a[0]&&""!==a[1]||(n=!1))})),e=[].concat((0,x.Z)(e),[{fieldKey:"labels",required:!0,value:o,customValidation:!n,customValidationMessage:"You need to add at least one label key-pair"}])}var a=(0,Z.R)(e);t((0,_.NO)({pageName:"affinity",valid:0===Object.keys(a).length})),j(a)}),[t,s,o]);var B=function(e,n,i){var r=(0,a.Z)((0,a.Z)({},m[e]),{},(0,ue.Z)({},n,i));t((0,_.iU)({index:e,tolerationValue:r}))};return(0,k.jsxs)(v.Z,{className:n.paperWrapper,children:[(0,k.jsxs)("div",{className:n.headerElement,children:[(0,k.jsx)(A.Z,{children:"Pod Placement"}),(0,k.jsx)("span",{className:n.descriptionText,children:"Configure how pods will be assigned to nodes"})]}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.affinityConfigField,children:(0,k.jsxs)(c.ZP,{item:!0,className:n.affinityFieldLabel,children:[(0,k.jsx)("div",{className:n.label,children:"Type"}),(0,k.jsx)("div",{className:"".concat(n.descriptionText," ").concat(n.affinityHelpText),children:"MinIO supports multiple configurations for Pod Affinity"}),(0,k.jsx)(c.ZP,{item:!0,className:n.radioField,children:(0,k.jsx)(P.Z,{currentSelection:s,id:"affinity-options",name:"affinity-options",label:" ",onChange:function(e){G("podAffinity",e.target.value)},selectorOptions:[{label:"None",value:"none"},{label:"Default (Pod Anti-Affinity)",value:"default"},{label:"Node Selector",value:"nodeSelector"}]})})]})}),"nodeSelector"===s&&(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)("br",{}),(0,k.jsx)(c.ZP,{item:!0,xs:12,children:(0,k.jsx)(b.Z,{value:"with_pod_anti_affinity",id:"with_pod_anti_affinity",name:"with_pod_anti_affinity",checked:d,onChange:function(e){var n=e.target.checked;G("withPodAntiAffinity",n)},label:"With Pod Anti-Affinity"})}),(0,k.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,k.jsx)("h3",{children:"Labels"}),(0,k.jsx)("span",{className:n.error,children:y.labels}),(0,k.jsx)(c.ZP,{container:!0,children:u&&u.map((function(e,i){return(0,k.jsxs)(c.ZP,{item:!0,xs:12,className:n.affinityRow,children:[(0,k.jsxs)(c.ZP,{item:!0,xs:5,className:n.affinityLabelKey,children:[O.length>0&&(0,k.jsx)(T.Z,{onChange:function(e){var n=e.target.value,a={key:n,value:K[n][0]},r=(0,x.Z)(u);r[i]=a,t((0,_.i$)(r))},id:"select-access-policy",name:"select-access-policy",label:"",value:e.key,options:O}),0===O.length&&(0,k.jsx)(C.Z,{id:"nodeselector-key-".concat(i.toString()),label:"",name:"nodeselector-".concat(i.toString()),value:e.key,onChange:function(e){var n=(0,x.Z)(u);n[i]={key:n[i].key,value:e.target.value},t((0,_.i$)(n))},index:i,placeholder:"Key"})]}),(0,k.jsxs)(c.ZP,{item:!0,xs:5,className:n.affinityLabelValue,children:[O.length>0&&(0,k.jsx)(T.Z,{onChange:function(e){var n=(0,x.Z)(u);n[i]={key:n[i].key,value:e.target.value},t((0,_.i$)(n))},id:"select-access-policy",name:"select-access-policy",label:"",value:e.value,options:K[e.key]?K[e.key].map((function(e){return{label:e,value:e}})):[]}),0===O.length&&(0,k.jsx)(C.Z,{id:"nodeselector-value-".concat(i.toString()),label:"",name:"nodeselector-".concat(i.toString()),value:e.value,onChange:function(e){var n=(0,x.Z)(u);n[i]={key:n[i].key,value:e.target.value},t((0,_.i$)(n))},index:i,placeholder:"value"})]}),(0,k.jsxs)(c.ZP,{item:!0,xs:2,className:n.rowActions,children:[(0,k.jsx)("div",{className:n.overlayAction,children:(0,k.jsx)(g.Z,{size:"small",onClick:function(){var e=(0,x.Z)(u);O.length>0?e.push({key:O[0].value,value:K[O[0].value][0]}):e.push({key:"",value:""}),t((0,_.i$)(e))},disabled:i!==u.length-1,children:(0,k.jsx)(S.dtP,{})})}),(0,k.jsx)("div",{className:n.overlayAction,children:(0,k.jsx)(g.Z,{size:"small",onClick:function(){var e=u.filter((function(e,n){return n!==i}));t((0,_.i$)(e))},disabled:u.length<=1,children:(0,k.jsx)(S.HFL,{})})})]})]},"affinity-keyVal-".concat(i.toString()))}))})]})]}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.affinityConfigField,children:(0,k.jsxs)(c.ZP,{item:!0,className:n.affinityFieldLabel,children:[(0,k.jsx)("h3",{children:"Tolerations"}),(0,k.jsx)("span",{className:n.error,children:y.tolerations}),(0,k.jsx)(c.ZP,{container:!0,children:m&&m.map((function(e,i){var a;return(0,k.jsxs)(c.ZP,{item:!0,xs:12,className:n.affinityRow,children:[(0,k.jsx)(fe.Z,{effect:e.effect,onEffectChange:function(e){B(i,"effect",e)},tolerationKey:e.key,onTolerationKeyChange:function(e){B(i,"key",e)},operator:e.operator,onOperatorChange:function(e){B(i,"operator",e)},value:e.value,onValueChange:function(e){B(i,"value",e)},tolerationSeconds:(null===(a=e.tolerationSeconds)||void 0===a?void 0:a.seconds)||0,onSecondsChange:function(e){B(i,"tolerationSeconds",{seconds:e})},index:i}),(0,k.jsx)("div",{className:n.overlayAction,children:(0,k.jsx)(g.Z,{size:"small",onClick:function(){t((0,_.ly)())},disabled:i!==m.length-1,children:(0,k.jsx)(S.dtP,{})})}),(0,k.jsx)("div",{className:n.overlayAction,children:(0,k.jsx)(g.Z,{size:"small",onClick:function(){return t((0,_.JX)(i))},disabled:m.length<=1,children:(0,k.jsx)(S.HFL,{})})})]},"affinity-keyVal-".concat(i.toString()))}))})]})})]})})),he=(0,h.Z)((function(e){return(0,u.Z)((0,a.Z)((0,a.Z)({},m.DF),m.AK))}))((function(e){var n=e.classes,t=(0,p.TL)(),a=(0,l.v9)((function(e){return e.createTenant.fields.configure.customImage})),s=(0,l.v9)((function(e){return e.createTenant.fields.configure.imageName})),o=(0,l.v9)((function(e){return e.createTenant.fields.configure.customDockerhub})),d=(0,l.v9)((function(e){return e.createTenant.fields.configure.imageRegistry})),u=(0,l.v9)((function(e){return e.createTenant.fields.configure.imageRegistryUsername})),m=(0,l.v9)((function(e){return e.createTenant.fields.configure.imageRegistryPassword})),f=(0,l.v9)((function(e){return e.createTenant.fields.configure.tenantCustom})),h=(0,l.v9)((function(e){return e.createTenant.fields.configure.kesImage})),g=(0,r.useState)({}),y=(0,i.Z)(g,2),N=y[0],S=y[1],T=(0,r.useCallback)((function(e,n){t((0,_.HM)({pageName:"configure",field:e,value:n}))}),[t]);(0,r.useEffect)((function(){var e=[];a&&(e=[].concat((0,x.Z)(e),[{fieldKey:"image",required:!1,value:s,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'minio/minio:VERSION'"},{fieldKey:"kesImage",required:!1,value:h,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'minio/kes:VERSION'"}]),o&&(e=[].concat((0,x.Z)(e),[{fieldKey:"registry",required:!0,value:d},{fieldKey:"registryUsername",required:!0,value:u},{fieldKey:"registryPassword",required:!0,value:m}])));var n=(0,Z.R)(e);t((0,_.NO)({pageName:"configure",valid:0===Object.keys(n).length})),S(n)}),[a,s,h,o,d,u,m,t,f]);var w=function(e){S((0,j.h)(N,e))};return(0,k.jsxs)(v.Z,{className:n.paperWrapper,children:[(0,k.jsxs)("div",{className:n.headerElement,children:[(0,k.jsx)(A.Z,{children:"Container Images"}),(0,k.jsx)("span",{className:n.descriptionText,children:"Specify the container images used by the Tenant and its features."})]}),(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"image",name:"image",onChange:function(e){T("imageName",e.target.value),w("image")},label:"MinIO",value:s,error:N.image||"",placeholder:"minio/minio:RELEASE.2023-09-07T02-05-02Z"})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"kesImage",name:"kesImage",onChange:function(e){T("kesImage",e.target.value),w("kesImage")},label:"KES",value:h,error:N.kesImage||"",placeholder:"minio/kes:2023-08-19T17-27-47Z"})})]}),a&&(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)("h4",{children:"Custom Container Registry"})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(b.Z,{value:"custom_docker_hub",id:"custom_docker_hub",name:"custom_docker_hub",checked:o,onChange:function(e){var n=e.target.checked;T("customDockerhub",n)},label:"Use a private container registry"})})]}),o&&(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"registry",name:"registry",onChange:function(e){T("imageRegistry",e.target.value)},label:"Endpoint",value:d,error:N.registry||"",placeholder:"https://index.docker.io/v1/",required:!0})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"registryUsername",name:"registryUsername",onChange:function(e){T("imageRegistryUsername",e.target.value)},label:"Username",value:u,error:N.registryUsername||"",required:!0})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"registryPassword",name:"registryPassword",onChange:function(e){T("imageRegistryPassword",e.target.value)},label:"Password",value:m,error:N.registryPassword||"",required:!0})})]})]})})),ve=t(74794),ge=t(79836),ye=t(53382),je=t(53994),Ze=t(35855),be=t(45248),Ce=(0,h.Z)((function(e){return(0,u.Z)((0,a.Z)((0,a.Z)({root:{margin:4},table:{"& .MuiTableCell-root":{fontSize:13}}},m.oO),m.AK))}))((function(e){var n=e.classes,t=(0,l.v9)((function(e){return e.createTenant.fields.tenantSize.nodes})),i=(0,l.v9)((function(e){return e.createTenant.fields.tenantSize.resourcesMemoryRequest})),a=(0,l.v9)((function(e){return e.createTenant.fields.tenantSize.ecParity})),s=(0,l.v9)((function(e){return e.createTenant.fields.tenantSize.distribution})),o=(0,l.v9)((function(e){return e.createTenant.fields.tenantSize.ecParityCalc})),c=(0,l.v9)((function(e){return e.createTenant.fields.tenantSize.resourcesCPURequest})),d=(0,l.v9)((function(e){return e.createTenant.fields.tenantSize.integrationSelection})),u=o.storageFactors.find((function(e){return e.erasureCode===a}));return(0,k.jsxs)("div",{className:n.root,children:[(0,k.jsx)("h4",{children:"Resource Allocation"}),(0,k.jsx)(y.Z,{}),(0,k.jsx)(ge.Z,{className:n.table,"aria-label":"simple table",size:"small",children:(0,k.jsxs)(ye.Z,{children:[(0,k.jsxs)(Ze.Z,{children:[(0,k.jsx)(je.Z,{scope:"row",children:"Number of Servers"}),(0,k.jsx)(je.Z,{align:"right",children:parseInt(t)>0?t:"-"})]}),""===d.typeSelection&&""===d.storageClass&&(0,k.jsxs)(r.Fragment,{children:[(0,k.jsxs)(Ze.Z,{children:[(0,k.jsx)(je.Z,{scope:"row",children:"Drives per Server"}),(0,k.jsx)(je.Z,{align:"right",children:s?s.disks:"-"})]}),(0,k.jsxs)(Ze.Z,{children:[(0,k.jsx)(je.Z,{scope:"row",children:"Drive Capacity"}),(0,k.jsx)(je.Z,{align:"right",children:s?(0,be.ae)(s.pvSize):"-"})]})]}),(0,k.jsxs)(Ze.Z,{children:[(0,k.jsx)(je.Z,{scope:"row",children:"Total Volumes"}),(0,k.jsx)(je.Z,{align:"right",children:s?s.persistentVolumes:"-"})]}),""===d.typeSelection&&""===d.storageClass&&(0,k.jsxs)(r.Fragment,{children:[(0,k.jsxs)(Ze.Z,{children:[(0,k.jsx)(je.Z,{scope:"row",children:"Memory per Node"}),(0,k.jsxs)(je.Z,{align:"right",children:[i," Gi"]})]}),(0,k.jsxs)(Ze.Z,{children:[(0,k.jsx)(je.Z,{style:{borderBottom:0},scope:"row",children:"CPU Selection"}),(0,k.jsx)(je.Z,{style:{borderBottom:0},align:"right",children:c})]})]})]})}),0===o.error&&u&&(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)("h4",{children:"Erasure Code Configuration"}),(0,k.jsx)(y.Z,{}),(0,k.jsx)(ge.Z,{className:n.table,"aria-label":"simple table",size:"small",children:(0,k.jsxs)(ye.Z,{children:[(0,k.jsxs)(Ze.Z,{children:[(0,k.jsx)(je.Z,{scope:"row",children:"EC Parity"}),(0,k.jsx)(je.Z,{align:"right",children:""!==a?a:"-"})]}),(0,k.jsxs)(Ze.Z,{children:[(0,k.jsx)(je.Z,{scope:"row",children:"Raw Capacity"}),(0,k.jsx)(je.Z,{align:"right",children:(0,be.ae)(o.rawCapacity)})]}),(0,k.jsxs)(Ze.Z,{children:[(0,k.jsx)(je.Z,{scope:"row",children:"Usable Capacity"}),(0,k.jsx)(je.Z,{align:"right",children:(0,be.ae)(u.maxCapacity)})]}),(0,k.jsxs)(Ze.Z,{children:[(0,k.jsx)(je.Z,{style:{borderBottom:0},scope:"row",children:"Server Failures Tolerated"}),(0,k.jsx)(je.Z,{style:{borderBottom:0},align:"right",children:s?Math.floor(u.maxFailureTolerations/s.disks):"-"})]})]})})]}),""!==d.typeSelection&&""!==d.storageClass&&(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)("h4",{children:"Single Instance Configuration"}),(0,k.jsx)(y.Z,{}),(0,k.jsx)(ge.Z,{className:n.table,"aria-label":"simple table",size:"small",children:(0,k.jsxs)(ye.Z,{children:[(0,k.jsxs)(Ze.Z,{children:[(0,k.jsx)(je.Z,{scope:"row",children:"CPU"}),(0,k.jsx)(je.Z,{align:"right",children:0!==d.CPU?d.CPU:"-"})]}),(0,k.jsxs)(Ze.Z,{children:[(0,k.jsx)(je.Z,{scope:"row",children:"Memory"}),(0,k.jsx)(je.Z,{align:"right",children:0!==d.memory?"".concat(d.memory," Gi"):"-"})]}),(0,k.jsxs)(Ze.Z,{children:[(0,k.jsx)(je.Z,{scope:"row",children:"Drives per Server"}),(0,k.jsx)(je.Z,{align:"right",children:0!==d.drivesPerServer?"".concat(d.drivesPerServer):"-"})]}),(0,k.jsxs)(Ze.Z,{children:[(0,k.jsx)(je.Z,{style:{borderBottom:0},scope:"row",children:"Drive Size"}),(0,k.jsxs)(je.Z,{style:{borderBottom:0},align:"right",children:[d.driveSize.driveSize,d.driveSize.sizeUnit]})]})]})})]})]})})),Ne=t(19720),Se=t(45884),_e=t(46078),Te=t(51691),Ae=t(40306),ke=t(98222),we=(0,D.Z)((function(e){return(0,u.Z)((0,a.Z)((0,a.Z)({wrapText:{maxWidth:"200px",whiteSpace:"normal",wordWrap:"break-word"}},m.oO),m.Qw))})),Pe=function(){var e=(0,p.TL)(),n=we(),t=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.namespace})),i=(0,l.v9)((function(e){return e.createTenant.addNSLoading})),a=(0,l.v9)((function(e){return e.createTenant.addNSOpen}));return(0,k.jsx)(Ae.Z,{title:"New namespace",confirmText:"Create",confirmButtonProps:{variant:"callAction"},isOpen:a,titleIcon:(0,k.jsx)(S.EjK,{}),isLoading:i,onConfirm:function(){e((0,ke.QD)())},onClose:function(){e((0,_.pb)())},confirmationContent:(0,k.jsxs)(r.Fragment,{children:[i&&(0,k.jsx)(d.Z,{}),(0,k.jsxs)(Te.Z,{children:["Are you sure you want to add a namespace called",(0,k.jsx)("br",{}),(0,k.jsx)("b",{className:n.wrapText,children:t}),"?"]})]})})},Ie=t(48573),Re=t.n(Ie),De=function(e){e.formToRender;var n=(0,p.TL)(),t=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.namespace})),i=(0,l.v9)((function(e){return e.createTenant.showNSCreateButton})),a=(0,l.v9)((function(e){return e.createTenant.validationErrors.namespace})),s=(0,l.v9)((function(e){return e.createTenant.addNSOpen})),o=(0,r.useMemo)((function(){return Re()((function(){n((0,ke.IO)())}),500)}),[n]);(0,r.useEffect)((function(){if(""!==t)return o(),o.cancel}),[o,t]);return(0,k.jsxs)(r.Fragment,{children:[s&&(0,k.jsx)(Pe,{}),(0,k.jsx)(C.Z,{id:"namespace",name:"namespace",onChange:function(e){n((0,_.Zx)(e.target.value))},label:"Namespace",value:t,error:a||"",overlayId:"add-namespace",overlayIcon:i?(0,k.jsx)(S.dtP,{}):null,overlayAction:function(){n((0,_.Oj)())},required:!0})]})},Fe=function(){var e=(0,p.TL)(),n=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.tenantName})),t=(0,l.v9)((function(e){return e.createTenant.validationErrors["tenant-name"]}));return(0,k.jsx)(C.Z,{id:"tenant-name",name:"tenant-name",onChange:function(n){e((0,_.V7)(n.target.value))},label:"Name",value:n,required:!0,error:t||""})},Ke=(0,h.Z)((function(e){return(0,u.Z)((0,a.Z)((0,a.Z)((0,a.Z)({sizePreview:{marginLeft:10,background:"#FFFFFF",border:"1px solid #EAEAEA",padding:2,marginTop:20}},m.DF),m.oO),m.AK))}))((function(e){var n=e.classes,t=e.formToRender,i=(0,p.TL)(),a=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.selectedStorageClass})),s=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.selectedStorageType})),d=(0,l.v9)((function(e){return e.createTenant.storageClasses})),u=(0,l.v9)(_e.$4),m=(0,r.useCallback)((function(e,n){i((0,_.HM)({pageName:"nameTenant",field:e,value:n}))}),[i]);return(0,r.useEffect)((function(){var e=t===Se.cy.default&&d.length>0||t!==Se.cy.default&&""!==s;i((0,_.NO)({pageName:"nameTenant",valid:e}))}),[d,i,s,t]),(0,k.jsx)(r.Fragment,{children:(0,k.jsxs)(c.ZP,{container:!0,children:[(0,k.jsx)(c.ZP,{item:!0,sx:{width:"calc(100% - 320px)"},children:(0,k.jsx)(v.Z,{className:n.paperWrapper,sx:{minHeight:550},children:(0,k.jsxs)(c.ZP,{container:!0,children:[(0,k.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,k.jsxs)("div",{className:n.headerElement,children:[(0,k.jsx)(A.Z,{children:"Name"}),(0,k.jsx)("span",{className:n.descriptionText,children:"How would you like to name this new tenant?"})]}),(0,k.jsx)("div",{className:n.formFieldRow,children:(0,k.jsx)(Fe,{})})]}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(De,{formToRender:t})}),t===Se.cy.default?(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(T.Z,{id:"storage_class",name:"storage_class",onChange:function(e){m("selectedStorageClass",e.target.value)},label:"Storage Class",value:a,options:d,disabled:d.length<1})}):(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(T.Z,{id:"storage_type",name:"storage_type",onChange:function(e){i((0,_.Qy)({storageType:e.target.value,features:u}))},label:o()(Se.Hd,"".concat(t,".variantSelectorLabel"),"Storage Type"),value:s,options:o()(Se.Hd,"".concat(t,".variantSelectorValues"),[])})}),t===Se.cy.default?(0,k.jsx)(Ne.Z,{}):o()(Se.Hd,"".concat(t,".sizingComponent"),null)]})})}),(0,k.jsx)(c.ZP,{item:!0,children:(0,k.jsx)("div",{className:n.sizePreview,children:(0,k.jsx)(Ce,{})})})]})})})),Ee=function(){var e=(0,l.v9)(_e.$4),n=(0,r.useState)(null),t=(0,i.Z)(n,2),a=t[0],s=t[1];return(0,r.useEffect)((function(){var n=Se.cy.default;e&&0!==e.length&&Object.keys(Se.I8).forEach((function(t){e.includes(t)&&(n=o()(Se.I8,t,Se.cy.default))}));s(n)}),[e]),null===a?null:(0,k.jsx)(Ke,{formToRender:a})},Le=["nameTenant","tenantSize","configure","affinity","identityProvider","security","encryption"],ze=t(84218),Oe=function(){var e=(0,p.TL)(),n=(0,l.v9)((function(e){return e.createTenant.addingTenant})),t=(0,l.v9)((function(e){return e.createTenant.validPages})),i=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.selectedStorageClass})),a=!n&&""!==i&&Le.every((function(e){return t.includes(e)}));return(0,k.jsx)(S.zxk,{id:"wizard-button-Create",variant:"callAction",color:"primary",onClick:function(){e((0,ze.e)())},disabled:!a,label:"Create"},"button-AddTenant-Create")},Me=t(37798),Ge=t(57689),Be=function(){var e=(0,p.TL)(),n=(0,Ge.s0)(),t=(0,l.v9)((function(e){return e.createTenant.showNewCredentials})),i=(0,l.v9)((function(e){return e.createTenant.createdAccount}));return(0,k.jsx)(r.Fragment,{children:t&&(0,k.jsx)(Me.default,{newServiceAccount:i,open:t,closeModal:function(){e((0,_.dS)()),n("/tenants")},entity:"Tenant"})})},Ve=t(47974),qe=(0,D.Z)((function(e){return(0,u.Z)((0,a.Z)((0,a.Z)((0,a.Z)({pageBox:{border:"1px solid #EAEAEA"}},m.oO),m.AK),m.Je))})),Ue=function(){var e=(0,p.TL)(),n=(0,Ge.s0)(),t=qe(),a=(0,l.v9)(_e.$4),s=(0,l.v9)((function(e){return e.createTenant.addingTenant})),u=(0,r.useState)(null),m=(0,i.Z)(u,2),x=m[0],h=m[1];(0,r.useEffect)((function(){var e=Se.cy.default;a&&0!==a.length&&Object.keys(Se.I8).forEach((function(n){a.includes(n)&&(e=o()(Se.I8,n,Se.cy.default))}));h(e)}),[a]);var v={label:"Cancel",type:"other",enabled:!0,action:function(){e((0,_.dS)()),n("/tenants")}},g={componentRender:(0,k.jsx)(Oe,{},"create-tenant")},y=[{label:"Setup",componentRender:(0,k.jsx)(Ee,{}),buttons:[v,g]},{label:"Configure",advancedOnly:!0,componentRender:(0,k.jsx)(w,{}),buttons:[v,g]},{label:"Images",advancedOnly:!0,componentRender:(0,k.jsx)(he,{}),buttons:[v,g]},{label:"Pod Placement",advancedOnly:!0,componentRender:(0,k.jsx)(xe,{}),buttons:[v,g]},{label:"Identity Provider",advancedOnly:!0,componentRender:(0,k.jsx)(q,{}),buttons:[v,g]},{label:"Security",advancedOnly:!0,componentRender:(0,k.jsx)(W,{}),buttons:[v,g]},{label:"Encryption",advancedOnly:!0,componentRender:(0,k.jsx)(de,{}),buttons:[v,g]}];return(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)(Be,{}),(0,k.jsx)(Ve.Z,{label:(0,k.jsx)(S.hbI,{onClick:function(){e((0,_.dS)()),n("/tenants")},label:"Tenants"})}),(0,k.jsxs)(ve.Z,{children:[s&&(0,k.jsx)(c.ZP,{item:!0,xs:12,children:(0,k.jsx)(d.Z,{})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:t.pageBox,children:(0,k.jsx)(f.Z,{wizardSteps:y})}),x===Se.cy.aws&&(0,k.jsx)(c.ZP,{item:!0,xs:12,style:{marginTop:16},children:(0,k.jsx)(S.KfX,{title:"EBS Volume Configuration.",iconComponent:(0,k.jsx)(S.idV,{}),help:(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)("b",{children:"Performance Optimized"}),": Uses the ",(0,k.jsx)("i",{children:"gp3"})," EBS storage class class configured at 1,000Mi/s throughput and 16,000 IOPS, however the minimum volume size for this type of EBS volume is ",(0,k.jsx)("b",{children:"32Gi"}),".",(0,k.jsx)("br",{}),(0,k.jsx)("br",{}),(0,k.jsx)("b",{children:"Storage Optimized"}),": Uses the ",(0,k.jsx)("i",{children:"sc1"})," EBS storage class, however the minimum volume size for this type of EBS volume is \xa0",(0,k.jsx)("b",{children:"16Ti"})," to unlock their maximum throughput speed of 250Mi/s."]})})})]})]})}},88070:function(e,n,t){t(72791);var i=t(78687),a=t(64554),r=t(75952),s=t(57689),o=t(80184),l=function(e){var n=e.icon,t=e.description;return(0,o.jsxs)(a.Z,{sx:{display:"flex","& .min-icon":{marginRight:"10px",height:"23px",width:"23px",marginBottom:"10px"}},children:[n," ",(0,o.jsx)("div",{style:{fontSize:"14px",fontStyle:"italic",color:"#5E5E5E"},children:t})]})};n.Z=function(){var e=(0,s.UO)(),n=e.tenantName||"",t=e.tenantNamespace||"",c=(0,i.v9)((function(e){return""!==t?t:""!==e.createTenant.fields.nameTenant.namespace?e.createTenant.fields.nameTenant.namespace:""})),d=(0,i.v9)((function(e){return""!==n?n:""!==e.createTenant.fields.nameTenant.tenantName?e.createTenant.fields.nameTenant.tenantName:""}));return(0,o.jsx)(a.Z,{sx:{flex:1,border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",flexFlow:"column",padding:"20px",marginTop:{xs:"0px"}},children:(0,o.jsxs)(a.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,o.jsx)(l,{icon:(0,o.jsx)(r.Baz,{}),description:"TLS Certificates Warning"}),(0,o.jsxs)(a.Z,{sx:{fontSize:"14px",marginBottom:"15px"},children:["Automatic certificate generation is not enabled.",(0,o.jsx)("br",{}),(0,o.jsx)("br",{}),"If you wish to continue only with ",(0,o.jsx)("b",{children:"custom certificates"})," make sure they are valid for the following internode hostnames, i.e.:",(0,o.jsx)("br",{}),(0,o.jsx)("br",{}),(0,o.jsxs)("div",{style:{fontSize:"14px",fontStyle:"italic",color:"#5E5E5E"},children:["minio.",c,(0,o.jsx)("br",{}),"minio.",c,".svc",(0,o.jsx)("br",{}),"minio.",c,".svc.",(0,o.jsx)("br",{}),"*.",d,"-hl.",c,".svc.",(0,o.jsx)("br",{}),"*.",c,".svc."]}),(0,o.jsx)("br",{}),"Replace ",(0,o.jsx)("em",{children:""}),","," ",(0,o.jsx)("em",{children:""})," and",(0,o.jsx)("em",{children:""})," with the actual values for your MinIO tenant.",(0,o.jsx)("br",{}),(0,o.jsx)("br",{}),"You can learn more at our"," ",(0,o.jsx)("a",{href:"https://min.io/docs/minio/kubernetes/upstream/operations/network-encryption.html?ref=op#id5",target:"_blank",rel:"noopener",children:"documentation"}),"."]})]})})}},68456:function(e,n,t){t.d(n,{QT:function(){return o},YH:function(){return l},mo:function(){return s}});var i=t(61889),a=t(75952),r=t(80184),s=function(){return(0,r.jsxs)(i.ZP,{container:!0,columnGap:1,children:[(0,r.jsx)(i.ZP,{children:(0,r.jsx)(a.gyG,{width:"16px",height:"16px"})}),(0,r.jsx)(i.ZP,{item:!0,children:"Open ID"})]})},o=function(){return(0,r.jsxs)(i.ZP,{container:!0,columnGap:1,children:[(0,r.jsx)(i.ZP,{children:(0,r.jsx)(a.vcZ,{width:"16px",height:"16px"})}),(0,r.jsx)(i.ZP,{item:!0,children:"LDAP / Active Directory"})]})},l=function(){return(0,r.jsxs)(i.ZP,{container:!0,columnGap:1,children:[(0,r.jsx)(i.ZP,{children:(0,r.jsx)(a.oyc,{width:"16px",height:"16px"})}),(0,r.jsx)(i.ZP,{item:!0,children:"Built-in"})]})}},22512:function(e,n,t){var i=t(72791),a=t(20890),r=t(11135),s=t(25787),o=t(80184);n.Z=(0,s.Z)((function(e){var n;return(0,r.Z)({errorBlock:{color:(null===(n=e.palette)||void 0===n?void 0:n.error.main)||"#C83B51"}})}))((function(e){var n=e.classes,t=e.errorMessage,r=e.withBreak,s=void 0===r||r;return(0,o.jsxs)(i.Fragment,{children:[s&&(0,o.jsx)("br",{}),(0,o.jsx)(a.Z,{component:"p",variant:"body1",className:n.errorBlock,children:t})]})}))},42419:function(e,n,t){var i=t(64836);n.Z=void 0;var a=i(t(45649)),r=t(80184),s=(0,a.default)((0,r.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");n.Z=s},99663:function(e,n,t){var i=t(64836);n.Z=void 0;var a=i(t(45649)),r=t(80184),s=(0,a.default)((0,r.jsx)("path",{d:"M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z"}),"AttachFile");n.Z=s},86711:function(e,n,t){var i=t(64836);n.Z=void 0;var a=i(t(45649)),r=t(80184),s=(0,a.default)((0,r.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}),"Cancel");n.Z=s},22918:function(e,n,t){var i=t(64836);n.Z=void 0;var a=i(t(45649)),r=t(80184),s=(0,a.default)((0,r.jsx)("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM7.5 18c-.83 0-1.5-.67-1.5-1.5S6.67 15 7.5 15s1.5.67 1.5 1.5S8.33 18 7.5 18zm0-9C6.67 9 6 8.33 6 7.5S6.67 6 7.5 6 9 6.67 9 7.5 8.33 9 7.5 9zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm0-9c-.83 0-1.5-.67-1.5-1.5S15.67 6 16.5 6s1.5.67 1.5 1.5S17.33 9 16.5 9z"}),"Casino");n.Z=s},27247:function(e,n,t){var i=t(64836);n.Z=void 0;var a=i(t(45649)),r=t(80184),s=(0,a.default)((0,r.jsx)("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"}),"Delete");n.Z=s},94721:function(e,n,t){var i=t(63366),a=t(87462),r=t(72791),s=t(28182),o=t(94419),l=t(12065),c=t(66934),d=t(31402),u=t(90133),m=t(80184),f=["absolute","children","className","component","flexItem","light","orientation","role","textAlign","variant"],p=(0,c.ZP)("div",{name:"MuiDivider",slot:"Root",overridesResolver:function(e,n){var t=e.ownerState;return[n.root,t.absolute&&n.absolute,n[t.variant],t.light&&n.light,"vertical"===t.orientation&&n.vertical,t.flexItem&&n.flexItem,t.children&&n.withChildren,t.children&&"vertical"===t.orientation&&n.withChildrenVertical,"right"===t.textAlign&&"vertical"!==t.orientation&&n.textAlignRight,"left"===t.textAlign&&"vertical"!==t.orientation&&n.textAlignLeft]}})((function(e){var n=e.theme,t=e.ownerState;return(0,a.Z)({margin:0,flexShrink:0,borderWidth:0,borderStyle:"solid",borderColor:(n.vars||n).palette.divider,borderBottomWidth:"thin"},t.absolute&&{position:"absolute",bottom:0,left:0,width:"100%"},t.light&&{borderColor:n.vars?"rgba(".concat(n.vars.palette.dividerChannel," / 0.08)"):(0,l.Fq)(n.palette.divider,.08)},"inset"===t.variant&&{marginLeft:72},"middle"===t.variant&&"horizontal"===t.orientation&&{marginLeft:n.spacing(2),marginRight:n.spacing(2)},"middle"===t.variant&&"vertical"===t.orientation&&{marginTop:n.spacing(1),marginBottom:n.spacing(1)},"vertical"===t.orientation&&{height:"100%",borderBottomWidth:0,borderRightWidth:"thin"},t.flexItem&&{alignSelf:"stretch",height:"auto"})}),(function(e){var n=e.ownerState;return(0,a.Z)({},n.children&&{display:"flex",whiteSpace:"nowrap",textAlign:"center",border:0,"&::before, &::after":{content:'""',alignSelf:"center"}})}),(function(e){var n=e.theme,t=e.ownerState;return(0,a.Z)({},t.children&&"vertical"!==t.orientation&&{"&::before, &::after":{width:"100%",borderTop:"thin solid ".concat((n.vars||n).palette.divider)}})}),(function(e){var n=e.theme,t=e.ownerState;return(0,a.Z)({},t.children&&"vertical"===t.orientation&&{flexDirection:"column","&::before, &::after":{height:"100%",borderLeft:"thin solid ".concat((n.vars||n).palette.divider)}})}),(function(e){var n=e.ownerState;return(0,a.Z)({},"right"===n.textAlign&&"vertical"!==n.orientation&&{"&::before":{width:"90%"},"&::after":{width:"10%"}},"left"===n.textAlign&&"vertical"!==n.orientation&&{"&::before":{width:"10%"},"&::after":{width:"90%"}})})),x=(0,c.ZP)("span",{name:"MuiDivider",slot:"Wrapper",overridesResolver:function(e,n){var t=e.ownerState;return[n.wrapper,"vertical"===t.orientation&&n.wrapperVertical]}})((function(e){var n=e.theme,t=e.ownerState;return(0,a.Z)({display:"inline-block",paddingLeft:"calc(".concat(n.spacing(1)," * 1.2)"),paddingRight:"calc(".concat(n.spacing(1)," * 1.2)")},"vertical"===t.orientation&&{paddingTop:"calc(".concat(n.spacing(1)," * 1.2)"),paddingBottom:"calc(".concat(n.spacing(1)," * 1.2)")})})),h=r.forwardRef((function(e,n){var t=(0,d.Z)({props:e,name:"MuiDivider"}),r=t.absolute,l=void 0!==r&&r,c=t.children,h=t.className,v=t.component,g=void 0===v?c?"div":"hr":v,y=t.flexItem,j=void 0!==y&&y,Z=t.light,b=void 0!==Z&&Z,C=t.orientation,N=void 0===C?"horizontal":C,S=t.role,_=void 0===S?"hr"!==g?"separator":void 0:S,T=t.textAlign,A=void 0===T?"center":T,k=t.variant,w=void 0===k?"fullWidth":k,P=(0,i.Z)(t,f),I=(0,a.Z)({},t,{absolute:l,component:g,flexItem:j,light:b,orientation:N,role:_,textAlign:A,variant:w}),R=function(e){var n=e.absolute,t=e.children,i=e.classes,a=e.flexItem,r=e.light,s=e.orientation,l=e.textAlign,c={root:["root",n&&"absolute",e.variant,r&&"light","vertical"===s&&"vertical",a&&"flexItem",t&&"withChildren",t&&"vertical"===s&&"withChildrenVertical","right"===l&&"vertical"!==s&&"textAlignRight","left"===l&&"vertical"!==s&&"textAlignLeft"],wrapper:["wrapper","vertical"===s&&"wrapperVertical"]};return(0,o.Z)(c,u.V,i)}(I);return(0,m.jsx)(p,(0,a.Z)({as:g,className:(0,s.Z)(R.root,h),role:_,ref:n,ownerState:I},P,{children:c?(0,m.jsx)(x,{className:R.wrapper,ownerState:I,children:c}):null}))}));n.Z=h},63466:function(e,n,t){t.d(n,{Z:function(){return C}});var i=t(4942),a=t(63366),r=t(87462),s=t(72791),o=t(28182),l=t(94419),c=t(14036),d=t(20890),u=t(93840),m=t(52930),f=t(66934),p=t(75878),x=t(21217);function h(e){return(0,x.Z)("MuiInputAdornment",e)}var v,g=(0,p.Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),y=t(31402),j=t(80184),Z=["children","className","component","disablePointerEvents","disableTypography","position","variant"],b=(0,f.ZP)("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:function(e,n){var t=e.ownerState;return[n.root,n["position".concat((0,c.Z)(t.position))],!0===t.disablePointerEvents&&n.disablePointerEvents,n[t.variant]]}})((function(e){var n=e.theme,t=e.ownerState;return(0,r.Z)({display:"flex",height:"0.01em",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:(n.vars||n).palette.action.active},"filled"===t.variant&&(0,i.Z)({},"&.".concat(g.positionStart,"&:not(.").concat(g.hiddenLabel,")"),{marginTop:16}),"start"===t.position&&{marginRight:8},"end"===t.position&&{marginLeft:8},!0===t.disablePointerEvents&&{pointerEvents:"none"})})),C=s.forwardRef((function(e,n){var t=(0,y.Z)({props:e,name:"MuiInputAdornment"}),i=t.children,f=t.className,p=t.component,x=void 0===p?"div":p,g=t.disablePointerEvents,C=void 0!==g&&g,N=t.disableTypography,S=void 0!==N&&N,_=t.position,T=t.variant,A=(0,a.Z)(t,Z),k=(0,m.Z)()||{},w=T;T&&k.variant,k&&!w&&(w=k.variant);var P=(0,r.Z)({},t,{hiddenLabel:k.hiddenLabel,size:k.size,disablePointerEvents:C,position:_,variant:w}),I=function(e){var n=e.classes,t=e.disablePointerEvents,i=e.hiddenLabel,a=e.position,r=e.size,s=e.variant,o={root:["root",t&&"disablePointerEvents",a&&"position".concat((0,c.Z)(a)),s,i&&"hiddenLabel",r&&"size".concat((0,c.Z)(r))]};return(0,l.Z)(o,h,n)}(P);return(0,j.jsx)(u.Z.Provider,{value:null,children:(0,j.jsx)(b,(0,r.Z)({as:x,ownerState:P,className:(0,o.Z)(I.root,f),ref:n},A,{children:"string"!==typeof i||S?(0,j.jsxs)(s.Fragment,{children:["start"===_?v||(v=(0,j.jsx)("span",{className:"notranslate",children:"\u200b"})):null,i]}):(0,j.jsx)(d.Z,{color:"text.secondary",children:i})}))})}))}}]); +//# sourceMappingURL=292.5b893eb9.chunk.js.map \ No newline at end of file diff --git a/web-app/build/static/js/292.82b40208.chunk.js.map b/web-app/build/static/js/292.5b893eb9.chunk.js.map similarity index 99% rename from web-app/build/static/js/292.82b40208.chunk.js.map rename to web-app/build/static/js/292.5b893eb9.chunk.js.map index 85d56202a52..6b7541e9703 100644 --- a/web-app/build/static/js/292.82b40208.chunk.js.map +++ b/web-app/build/static/js/292.5b893eb9.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/292.82b40208.chunk.js","mappings":"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","sources":["screens/Console/Common/CredentialsPrompt/CredentialItem.tsx","screens/Console/Common/CredentialsPrompt/CredentialsPrompt.tsx","screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.tsx","screens/Console/Common/FormComponents/FileSelector/FileSelector.tsx","screens/Console/Common/FormComponents/FileSelector/utils.ts","screens/Console/Common/FormHr.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Common/TooltipWrapper/TooltipWrapper.tsx","screens/Console/Tenants/AddTenant/Steps/Configure.tsx","screens/Console/Tenants/AddTenant/Steps/IdentityProvider/IDPActiveDirectory.tsx","screens/Console/Tenants/AddTenant/Steps/IdentityProvider/IDPOpenID.tsx","screens/Console/Tenants/AddTenant/Steps/IdentityProvider/IDPBuiltIn.tsx","screens/Console/Tenants/AddTenant/Steps/IdentityProvider.tsx","screens/Console/Tenants/AddTenant/Steps/Security.tsx","screens/Console/Common/SectionH1.tsx","screens/Console/Tenants/AddTenant/Steps/Encryption/VaultKMSAdd.tsx","screens/Console/Tenants/AddTenant/Steps/Encryption/AzureKMSAdd.tsx","screens/Console/Tenants/AddTenant/Steps/Encryption/GCPKMSAdd.tsx","screens/Console/Tenants/AddTenant/Steps/Encryption/GemaltoKMSAdd.tsx","screens/Console/Tenants/AddTenant/Steps/Encryption/AWSKMSAdd.tsx","screens/Console/Tenants/AddTenant/Steps/Encryption.tsx","screens/Console/Tenants/AddTenant/Steps/Affinity.tsx","screens/Console/Tenants/AddTenant/Steps/Images.tsx","screens/Console/Tenants/AddTenant/Steps/SizePreview.tsx","screens/Console/Tenants/AddTenant/Steps/helpers/AddNamespaceModal.tsx","screens/Console/Tenants/AddTenant/Steps/TenantResources/NamespaceSelector.tsx","screens/Console/Tenants/AddTenant/Steps/TenantResources/NameTenantMain.tsx","screens/Console/Tenants/AddTenant/Steps/TenantResources/TenantResources.tsx","screens/Console/Tenants/AddTenant/common.ts","screens/Console/Tenants/AddTenant/CreateTenantButton.tsx","screens/Console/Tenants/AddTenant/NewTenantCredentials.tsx","screens/Console/Tenants/AddTenant/AddTenant.tsx","screens/Console/Tenants/HelpBox/TLSHelpBox.tsx","screens/Console/Tenants/LogoComponents.tsx","screens/shared/ErrorBlock.tsx","../node_modules/@mui/icons-material/Add.js","../node_modules/@mui/icons-material/AttachFile.js","../node_modules/@mui/icons-material/Cancel.js","../node_modules/@mui/icons-material/Casino.js","../node_modules/@mui/icons-material/Delete.js","../node_modules/@mui/material/Divider/Divider.js","../node_modules/@mui/material/InputAdornment/inputAdornmentClasses.js","../node_modules/@mui/material/InputAdornment/InputAdornment.js"],"sourcesContent":["// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { InputAdornment, OutlinedInput } from \"@mui/material\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport { Button, CopyIcon } from \"mds\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport { fieldBasic } from \"../FormComponents/common/styleLibrary\";\nimport TooltipWrapper from \"../TooltipWrapper/TooltipWrapper\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n container: {\n display: \"flex\",\n flexFlow: \"column\",\n padding: \"20px 0 8px 0\",\n },\n inputWithCopy: {\n \"& .MuiInputBase-root \": {\n width: \"100%\",\n background: \"#FBFAFA\",\n \"& .MuiInputBase-input\": {\n height: \".8rem\",\n },\n \"& .MuiInputAdornment-positionEnd\": {\n marginRight: \".5rem\",\n \"& .MuiButtonBase-root\": {\n height: \"2rem\",\n },\n },\n },\n \"& .MuiButtonBase-root .min-icon\": {\n width: \".8rem\",\n height: \".8rem\",\n },\n },\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontSize: \".8rem\",\n },\n });\n\nconst CredentialItem = ({\n label = \"\",\n value = \"\",\n classes = {},\n}: {\n label: string;\n value: string;\n classes: any;\n}) => {\n return (\n
\n
{label}:
\n
\n \n \n \n {}}\n onMouseDown={() => {}}\n style={{\n width: \"28px\",\n height: \"28px\",\n padding: \"0px\",\n }}\n icon={}\n />\n \n \n \n }\n />\n
\n
\n );\n};\n\nexport default withStyles(styles)(CredentialItem);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport {\n Button,\n DownloadIcon,\n ServiceAccountCredentialsIcon,\n WarnIcon,\n} from \"mds\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { NewServiceAccount } from \"./types\";\nimport ModalWrapper from \"../ModalWrapper/ModalWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport CredentialItem from \"./CredentialItem\";\nimport TooltipWrapper from \"../TooltipWrapper/TooltipWrapper\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n warningBlock: {\n color: \"red\",\n fontSize: \".85rem\",\n margin: \".5rem 0 .5rem 0\",\n display: \"flex\",\n alignItems: \"center\",\n \"& svg \": {\n marginRight: \".3rem\",\n height: 16,\n width: 16,\n },\n },\n credentialTitle: {\n padding: \".8rem 0 0 0\",\n fontWeight: 600,\n fontSize: \".9rem\",\n },\n buttonContainer: {\n display: \"flex\",\n justifyContent: \"flex-end\",\n marginTop: \"1rem\",\n },\n credentialsPanel: {\n overflowY: \"auto\",\n maxHeight: 350,\n },\n promptTitle: {\n display: \"flex\",\n alignItems: \"center\",\n },\n buttonSpacer: {\n marginRight: \".9rem\",\n },\n });\n\ninterface ICredentialsPromptProps {\n classes: any;\n newServiceAccount: NewServiceAccount | null;\n open: boolean;\n entity: string;\n closeModal: () => void;\n}\n\nconst download = (filename: string, text: string) => {\n let element = document.createElement(\"a\");\n element.setAttribute(\"href\", \"data:text/plain;charset=utf-8,\" + text);\n element.setAttribute(\"download\", filename);\n\n element.style.display = \"none\";\n document.body.appendChild(element);\n\n element.click();\n document.body.removeChild(element);\n};\n\nconst CredentialsPrompt = ({\n classes,\n newServiceAccount,\n open,\n closeModal,\n entity,\n}: ICredentialsPromptProps) => {\n if (!newServiceAccount) {\n return null;\n }\n const consoleCreds = get(newServiceAccount, \"console\", null);\n const idp = get(newServiceAccount, \"idp\", false);\n\n const downloadImport = () => {\n let consoleExtras = {};\n\n if (consoleCreds) {\n if (!Array.isArray(consoleCreds)) {\n consoleExtras = {\n url: consoleCreds.url,\n accessKey: consoleCreds.accessKey,\n secretKey: consoleCreds.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n } else {\n const cCreds = consoleCreds.map((itemMap) => {\n return {\n url: itemMap.url,\n accessKey: itemMap.accessKey,\n secretKey: itemMap.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n });\n consoleExtras = cCreds[0];\n }\n } else {\n consoleExtras = {\n url: newServiceAccount.url,\n accessKey: newServiceAccount.accessKey,\n secretKey: newServiceAccount.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n }\n\n download(\n \"credentials.json\",\n JSON.stringify({\n ...consoleExtras,\n }),\n );\n };\n\n const downloaddAllCredentials = () => {\n let allCredentials = {};\n if (\n consoleCreds &&\n Array.isArray(consoleCreds) &&\n consoleCreds.length > 1\n ) {\n const cCreds = consoleCreds.map((itemMap) => {\n return {\n accessKey: itemMap.accessKey,\n secretKey: itemMap.secretKey,\n };\n });\n allCredentials = cCreds;\n }\n download(\n \"all_credentials.json\",\n JSON.stringify({\n ...allCredentials,\n }),\n );\n };\n\n return (\n {\n closeModal();\n }}\n title={\n
\n
New {entity} Created
\n
\n }\n titleIcon={}\n >\n \n \n A new {entity} has been created with the following details:\n {!idp && consoleCreds && (\n \n \n
\n Console Credentials\n
\n {Array.isArray(consoleCreds) &&\n consoleCreds.map((credentialsPair, index) => {\n return (\n <>\n \n \n \n );\n })}\n {!Array.isArray(consoleCreds) && (\n <>\n \n \n \n )}\n
\n
\n )}\n {(consoleCreds === null || consoleCreds === undefined) && (\n <>\n \n \n \n )}\n {idp ? (\n
\n Please Login via the configured external identity provider.\n
\n ) : (\n
\n \n \n Write these down, as this is the only time the secret will be\n displayed.\n \n
\n )}\n
\n \n {!idp && (\n <>\n \n }\n variant=\"callAction\"\n />\n \n\n {Array.isArray(consoleCreds) && consoleCreds.length > 1 && (\n \n }\n variant=\"callAction\"\n color=\"primary\"\n />\n \n )}\n \n )}\n \n
\n \n );\n};\n\nexport default withStyles(styles)(CredentialsPrompt);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Box, InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Button, CopyIcon, HelpIcon } from \"mds\";\nimport { fieldBasic } from \"../common/styleLibrary\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport CodeEditor from \"@uiw/react-textarea-code-editor\";\nimport TooltipWrapper from \"../../TooltipWrapper/TooltipWrapper\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n classes: any;\n onChange?: (editor: any, data: any, value: string) => any;\n onBeforeChange: (editor: any, data: any, value: string) => any;\n readOnly?: boolean;\n editorHeight?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n });\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n classes,\n onBeforeChange,\n readOnly = false,\n editorHeight = \"250px\",\n}: ICodeWrapper) => {\n return (\n \n \n \n {label}\n {tooltip !== \"\" && (\n
\n \n
\n \n
\n
\n
\n )}\n
\n
\n\n \n {\n onBeforeChange(null, null, evn.target.value);\n }}\n id={\"code_wrapper\"}\n padding={15}\n style={{\n fontSize: 12,\n backgroundColor: \"#fefefe\",\n fontFamily:\n \"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace\",\n minHeight: editorHeight || \"initial\",\n color: \"#000000\",\n }}\n />\n \n \n \n \n \n }\n color={\"primary\"}\n variant={\"regular\"}\n />\n \n \n \n \n
\n );\n};\n\nexport default withStyles(styles)(CodeMirrorWrapper);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useState } from \"react\";\nimport get from \"lodash/get\";\nimport { Grid, InputLabel, Tooltip } from \"@mui/material\";\nimport IconButton from \"@mui/material/IconButton\";\nimport AttachFileIcon from \"@mui/icons-material/AttachFile\";\nimport CancelIcon from \"@mui/icons-material/Cancel\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n fieldBasic,\n fileInputStyles,\n tooltipHelper,\n} from \"../common/styleLibrary\";\nimport { fileProcess } from \"./utils\";\nimport { HelpIcon } from \"mds\";\nimport ErrorBlock from \"../../../../shared/ErrorBlock\";\n\ninterface InputBoxProps {\n label: string;\n classes: any;\n onChange: (e: string, i: string) => void;\n id: string;\n name: string;\n disabled?: boolean;\n tooltip?: string;\n required?: boolean;\n error?: string;\n accept?: string;\n value?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n valueString: {\n maxWidth: 350,\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n marginTop: 2,\n },\n fileInputField: {\n margin: \"13px 0\",\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n ...fileInputStyles,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n textBoxContainer: {\n ...fieldBasic.textBoxContainer,\n maxWidth: \"100%\",\n border: \"1px solid #eaeaea\",\n paddingLeft: \"15px\",\n },\n });\n\nconst FileSelector = ({\n label,\n classes,\n onChange,\n id,\n name,\n disabled = false,\n tooltip = \"\",\n required,\n error = \"\",\n accept = \"\",\n value = \"\",\n}: InputBoxProps) => {\n const [showFileSelector, setShowSelector] = useState(false);\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n
\n \n
\n \n
\n
\n
\n )}\n \n )}\n\n {showFileSelector || value === \"\" ? (\n
\n {\n const fileName = get(e, \"target.files[0].name\", \"\");\n fileProcess(e, (data: any) => {\n onChange(data, fileName);\n });\n }}\n accept={accept}\n required={required}\n disabled={disabled}\n className={classes.fileInputField}\n />\n\n {value !== \"\" && (\n {\n setShowSelector(false);\n }}\n disableRipple={false}\n disableFocusRipple={false}\n size=\"small\"\n >\n \n \n )}\n\n {error !== \"\" && }\n
\n ) : (\n
\n
{value}
\n {\n setShowSelector(true);\n }}\n disableRipple={false}\n disableFocusRipple={false}\n size=\"small\"\n >\n \n \n
\n )}\n \n
\n );\n};\n\nexport default withStyles(styles)(FileSelector);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nexport const fileProcess = (evt: any, callback: any) => {\n const file = evt.target.files[0];\n const reader = new FileReader();\n reader.readAsDataURL(file);\n\n reader.onload = () => {\n // reader.readAsDataURL(file) output will be something like: data:application/x-x509-ca-cert;base64,LS0tLS1CRUdJTiBDRVJUSU\n // we care only about the actual base64 part (everything after \"data:application/x-x509-ca-cert;base64,\")\n const fileBase64 = reader.result;\n if (fileBase64) {\n const fileArray = fileBase64.toString().split(\"base64,\");\n\n if (fileArray.length === 2) {\n callback(fileArray[1]);\n }\n }\n };\n};\n","// This file is part of MinIO Operator\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport styled from \"@emotion/styled\";\n\nconst FormHr = styled(\"hr\")`\n border-top: 0;\n border-left: 0;\n border-right: 0;\n border-color: #999999;\n background-color: transparent;\n`;\n\nexport default FormHr;\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\nimport { setModalSnackMessage } from \"../../../../systemSlice\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n noContentPadding?: boolean;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n noContentPadding,\n titleIcon = null,\n}: IModalProps) => {\n const dispatch = useAppDispatch();\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n const modalSnackMessage = useSelector(\n (state: AppState) => state.system.modalSnackBar,\n );\n\n useEffect(() => {\n dispatch(setModalSnackMessage(\"\"));\n }, [dispatch]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n dispatch(setModalSnackMessage(\"\"));\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
\n {titleIcon} {title}\n
\n
\n \n \n \n
\n
\n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nexport default withStyles(styles)(ModalWrapper);\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { cloneElement } from \"react\";\nimport { Tooltip } from \"@mui/material\";\n\ninterface ITooltipWrapperProps {\n tooltip: string;\n children: any;\n errorProps?: any;\n placement?:\n | \"bottom-end\"\n | \"bottom-start\"\n | \"bottom\"\n | \"left-end\"\n | \"left-start\"\n | \"left\"\n | \"right-end\"\n | \"right-start\"\n | \"right\"\n | \"top-end\"\n | \"top-start\"\n | \"top\";\n}\n\nconst TooltipWrapper = ({\n tooltip,\n children,\n errorProps = null,\n placement,\n}: ITooltipWrapperProps) => {\n return (\n \n \n {errorProps ? cloneElement(children, { ...errorProps }) : children}\n \n \n );\n};\n\nexport default TooltipWrapper;\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useCallback, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n Divider,\n Grid,\n IconButton,\n Paper,\n SelectChangeEvent,\n} from \"@mui/material\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\n\nimport { AppState, useAppDispatch } from \"../../../../../store\";\nimport { clearValidationError } from \"../../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport { RemoveIcon } from \"mds\";\nimport {\n addNewMinIODomain,\n isPageValid,\n removeMinIODomain,\n setEnvVars,\n updateAddField,\n} from \"../createTenantSlice\";\nimport SelectWrapper from \"../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport H3Section from \"../../../Common/H3Section\";\n\ninterface IConfigureProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n configSectionItem: {\n marginRight: 15,\n marginBottom: 15,\n\n \"& .multiContainer\": {\n border: \"1px solid red\",\n },\n },\n tenantCustomizationFields: {\n marginLeft: 30, // 2nd Level(15+15)\n width: \"88%\",\n margin: \"auto\",\n },\n containerItem: {\n marginRight: 15,\n },\n fieldGroup: {\n ...createTenantCommon.fieldGroup,\n paddingTop: 15,\n marginBottom: 25,\n },\n responsiveSectionItem: {\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n\n \"& div > div\": {\n marginBottom: 5,\n marginRight: 0,\n },\n },\n },\n wrapperContainer: {\n display: \"flex\",\n marginBottom: 15,\n },\n envVarRow: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n \"&:last-child\": {\n borderBottom: 0,\n },\n \"@media (max-width: 900px)\": {\n flex: 1,\n\n \"& div label\": {\n minWidth: 50,\n },\n },\n },\n fileItem: {\n marginRight: 10,\n display: \"flex\",\n \"& div label\": {\n minWidth: 50,\n },\n\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n rowActions: {\n display: \"flex\",\n justifyContent: \"flex-end\",\n \"@media (max-width: 900px)\": {\n flex: 1,\n },\n },\n overlayAction: {\n marginLeft: 10,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n ...modalBasic,\n ...wizardCommon,\n ...formFieldStyles,\n });\n\nconst Configure = ({ classes }: IConfigureProps) => {\n const dispatch = useAppDispatch();\n\n const exposeMinIO = useSelector(\n (state: AppState) => state.createTenant.fields.configure.exposeMinIO,\n );\n const exposeConsole = useSelector(\n (state: AppState) => state.createTenant.fields.configure.exposeConsole,\n );\n const exposeSFTP = useSelector(\n (state: AppState) => state.createTenant.fields.configure.exposeSFTP,\n );\n const setDomains = useSelector(\n (state: AppState) => state.createTenant.fields.configure.setDomains,\n );\n const consoleDomain = useSelector(\n (state: AppState) => state.createTenant.fields.configure.consoleDomain,\n );\n const minioDomains = useSelector(\n (state: AppState) => state.createTenant.fields.configure.minioDomains,\n );\n const tenantCustom = useSelector(\n (state: AppState) => state.createTenant.fields.configure.tenantCustom,\n );\n const tenantEnvVars = useSelector(\n (state: AppState) => state.createTenant.fields.configure.envVars,\n );\n const tenantSecurityContext = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.tenantSecurityContext,\n );\n const customRuntime = useSelector(\n (state: AppState) => state.createTenant.fields.configure.customRuntime,\n );\n const runtimeClassName = useSelector(\n (state: AppState) => state.createTenant.fields.configure.runtimeClassName,\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"configure\", field: field, value: value }),\n );\n },\n [dispatch],\n );\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n if (tenantCustom) {\n customAccountValidation = [\n {\n fieldKey: \"tenant_securityContext_runAsUser\",\n required: true,\n value: tenantSecurityContext.runAsUser,\n customValidation:\n tenantSecurityContext.runAsUser === \"\" ||\n parseInt(tenantSecurityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"tenant_securityContext_runAsGroup\",\n required: true,\n value: tenantSecurityContext.runAsGroup,\n customValidation:\n tenantSecurityContext.runAsGroup === \"\" ||\n parseInt(tenantSecurityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"tenant_securityContext_fsGroup\",\n required: true,\n value: tenantSecurityContext.fsGroup!,\n customValidation:\n tenantSecurityContext.fsGroup === \"\" ||\n parseInt(tenantSecurityContext.fsGroup!) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n ];\n }\n\n if (setDomains) {\n const minioExtraValidations = minioDomains.map((validation, index) => {\n return {\n fieldKey: `minio-domain-${index.toString()}`,\n required: false,\n value: validation,\n pattern: /^(https?):\\/\\/([a-zA-Z0-9\\-.]+)(:[0-9]+)?$/,\n customPatternMessage:\n \"MinIO domain is not in the form of http|https://subdomain.domain\",\n };\n });\n\n customAccountValidation = [\n ...customAccountValidation,\n ...minioExtraValidations,\n {\n fieldKey: \"console_domain\",\n required: false,\n value: consoleDomain,\n pattern:\n /^(https?):\\/\\/([a-zA-Z0-9\\-.]+)(:[0-9]+)?(\\/[a-zA-Z0-9\\-./]*)?$/,\n customPatternMessage:\n \"Console domain is not in the form of http|https://subdomain.domain:port/subpath1/subpath2\",\n },\n ];\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n dispatch(\n isPageValid({\n pageName: \"configure\",\n valid: Object.keys(commonVal).length === 0,\n }),\n );\n\n setValidationErrors(commonVal);\n }, [\n dispatch,\n tenantCustom,\n tenantSecurityContext,\n setDomains,\n consoleDomain,\n minioDomains,\n ]);\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n const updateMinIODomain = (value: string, index: number) => {\n const copyDomains = [...minioDomains];\n copyDomains[index] = value;\n\n updateField(\"minioDomains\", copyDomains);\n };\n\n return (\n \n
\n Configure\n \n Basic configurations for tenant management\n \n
\n
\n

Services

\n \n Whether the tenant's services should request an external IP via\n LoadBalancer service type.\n \n
\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"exposeMinIO\", checked);\n }}\n label={\"Expose MinIO Service\"}\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"exposeConsole\", checked);\n }}\n label={\"Expose Console Service\"}\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"exposeSFTP\", checked);\n }}\n label={\"Expose SFTP Service\"}\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"setDomains\", checked);\n }}\n label={\"Set Custom Domains\"}\n />\n \n {setDomains && (\n \n
\n \n Custom Domains for MinIO\n \n \n
\n ) => {\n updateField(\"consoleDomain\", e.target.value);\n cleanValidation(\"tenant_securityContext_runAsUser\");\n }}\n label=\"Console Domain\"\n value={consoleDomain}\n placeholder={\n \"Eg. http://subdomain.domain:port/subpath1/subpath2\"\n }\n error={validationErrors[\"console_domain\"] || \"\"}\n />\n
\n
\n

MinIO Domains

\n
\n {minioDomains.map((domain, index) => {\n return (\n \n ,\n ) => {\n updateMinIODomain(e.target.value, index);\n }}\n label={`MinIO Domain ${index + 1}`}\n value={domain}\n placeholder={\"Eg. http://subdomain.domain\"}\n error={\n validationErrors[\n `minio-domain-${index.toString()}`\n ] || \"\"\n }\n />\n
\n dispatch(addNewMinIODomain())}\n disabled={index !== minioDomains.length - 1}\n >\n \n \n
\n\n
\n dispatch(removeMinIODomain(index))}\n disabled={minioDomains.length <= 1}\n >\n \n \n
\n
\n );\n })}\n
\n \n
\n
\n
\n )}\n\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"tenantCustom\", checked);\n }}\n label={\"Security Context\"}\n />\n \n {tenantCustom && (\n \n
\n \n SecurityContext for MinIO\n \n \n \n
\n ) => {\n updateField(\"tenantSecurityContext\", {\n ...tenantSecurityContext,\n runAsUser: e.target.value,\n });\n cleanValidation(\"tenant_securityContext_runAsUser\");\n }}\n label=\"Run As User\"\n value={tenantSecurityContext.runAsUser}\n required\n error={\n validationErrors[\"tenant_securityContext_runAsUser\"] || \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"tenantSecurityContext\", {\n ...tenantSecurityContext,\n runAsGroup: e.target.value,\n });\n cleanValidation(\"tenant_securityContext_runAsGroup\");\n }}\n label=\"Run As Group\"\n value={tenantSecurityContext.runAsGroup}\n required\n error={\n validationErrors[\"tenant_securityContext_runAsGroup\"] ||\n \"\"\n }\n min=\"0\"\n />\n
\n \n
\n
\n \n \n
\n ) => {\n updateField(\"tenantSecurityContext\", {\n ...tenantSecurityContext,\n fsGroup: e.target.value,\n });\n cleanValidation(\"tenant_securityContext_fsGroup\");\n }}\n label=\"FsGroup\"\n value={tenantSecurityContext.fsGroup!}\n required\n error={\n validationErrors[\"tenant_securityContext_fsGroup\"] || \"\"\n }\n min=\"0\"\n />\n
\n
\n
\n ) => {\n updateField(\"tenantSecurityContext\", {\n ...tenantSecurityContext,\n fsGroupChangePolicy: e.target.value,\n });\n }}\n options={[\n {\n label: \"Always\",\n value: \"Always\",\n },\n {\n label: \"OnRootMismatch\",\n value: \"OnRootMismatch\",\n },\n ]}\n />\n
\n
\n \n
\n
\n \n
\n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"tenantSecurityContext\", {\n ...tenantSecurityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n
\n
\n
\n
\n )}\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"customRuntime\", checked);\n }}\n label={\"Custom Runtime Configurations\"}\n />\n \n {customRuntime && (\n \n
\n \n Custom Runtime Configurations\n \n \n
\n ) => {\n updateField(\"runtimeClassName\", e.target.value);\n cleanValidation(\"tenant_runtime_runtimeClassName\");\n }}\n label=\"Runtime Class Name\"\n value={runtimeClassName}\n error={\n validationErrors[\"tenant_runtime_runtimeClassName\"] || \"\"\n }\n />\n
\n
\n
\n
\n )}\n \n\n
\n Additional Environment Variables\n \n Define additional environment variables to be used by your MinIO pods\n \n
\n \n {tenantEnvVars.map((envVar, index) => (\n \n \n ) => {\n const existingEnvVars = [...tenantEnvVars];\n dispatch(\n setEnvVars(\n existingEnvVars.map((keyPair, i) =>\n i === index\n ? { key: e.target.value, value: keyPair.value }\n : keyPair,\n ),\n ),\n );\n }}\n index={index}\n key={`env_var_key_${index.toString()}`}\n />\n \n \n ) => {\n const existingEnvVars = [...tenantEnvVars];\n dispatch(\n setEnvVars(\n existingEnvVars.map((keyPair, i) =>\n i === index\n ? { key: keyPair.key, value: e.target.value }\n : keyPair,\n ),\n ),\n );\n }}\n index={index}\n key={`env_var_value_${index.toString()}`}\n />\n \n \n
\n {\n const existingEnvVars = [...tenantEnvVars];\n existingEnvVars.push({ key: \"\", value: \"\" });\n\n dispatch(setEnvVars(existingEnvVars));\n }}\n disabled={index !== tenantEnvVars.length - 1}\n >\n \n \n
\n
\n {\n const existingEnvVars = tenantEnvVars.filter(\n (item, fIndex) => fIndex !== index,\n );\n dispatch(setEnvVars(existingEnvVars));\n }}\n disabled={tenantEnvVars.length <= 1}\n >\n \n \n
\n
\n
\n ))}\n \n
\n );\n};\n\nexport default withStyles(styles)(Configure);\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Grid, IconButton, Tooltip, Typography } from \"@mui/material\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport FormSwitchWrapper from \"../../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport {\n addIDPADGroupAtIndex,\n addIDPADUsrAtIndex,\n isPageValid,\n removeIDPADGroupAtIndex,\n removeIDPADUsrAtIndex,\n setIDPADGroupAtIndex,\n setIDPADUsrAtIndex,\n updateAddField,\n} from \"../../createTenantSlice\";\nimport { useSelector } from \"react-redux\";\nimport { clearValidationError } from \"../../../utils\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport DeleteIcon from \"@mui/icons-material/Delete\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n adUserDnRows: {\n display: \"flex\",\n marginBottom: 10,\n },\n buttonTray: {\n marginLeft: 10,\n display: \"flex\",\n height: 38,\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n overlayAction: {\n marginLeft: 10,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n }),\n);\n\nconst IDPActiveDirectory = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const idpSelection = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.idpSelection,\n );\n const ADURL = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.ADURL,\n );\n const ADSkipTLS = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.ADSkipTLS,\n );\n const ADServerInsecure = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADServerInsecure,\n );\n const ADGroupSearchBaseDN = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADGroupSearchBaseDN,\n );\n const ADGroupSearchFilter = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADGroupSearchFilter,\n );\n const ADUserDNs = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.ADUserDNs,\n );\n const ADGroupDNs = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.ADGroupDNs,\n );\n const ADLookupBindDN = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADLookupBindDN,\n );\n const ADLookupBindPassword = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADLookupBindPassword,\n );\n const ADUserDNSearchBaseDN = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADUserDNSearchBaseDN,\n );\n const ADUserDNSearchFilter = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADUserDNSearchFilter,\n );\n const ADServerStartTLS = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADServerStartTLS,\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({\n pageName: \"identityProvider\",\n field: field,\n value: value,\n }),\n );\n },\n [dispatch],\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n // Validation\n useEffect(() => {\n let customIDPValidation: IValidation[] = [];\n\n if (idpSelection === \"AD\") {\n customIDPValidation = [\n ...customIDPValidation,\n {\n fieldKey: \"AD_URL\",\n required: true,\n value: ADURL,\n },\n {\n fieldKey: \"ad_lookupBindDN\",\n required: true,\n value: ADLookupBindDN,\n },\n ];\n }\n\n const commonVal = commonFormValidation(customIDPValidation);\n\n dispatch(\n isPageValid({\n pageName: \"identityProvider\",\n valid: Object.keys(commonVal).length === 0,\n }),\n );\n\n setValidationErrors(commonVal);\n }, [\n ADLookupBindDN,\n idpSelection,\n ADURL,\n ADGroupSearchBaseDN,\n ADGroupSearchFilter,\n ADUserDNs,\n ADGroupDNs,\n dispatch,\n ]);\n\n return (\n \n \n ) => {\n updateField(\"ADURL\", e.target.value);\n cleanValidation(\"AD_URL\");\n }}\n label=\"LDAP Server Address\"\n value={ADURL}\n placeholder=\"ldap-server:636\"\n error={validationErrors[\"AD_URL\"] || \"\"}\n required\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"ADSkipTLS\", checked);\n }}\n label={\"Skip TLS Verification\"}\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"ADServerInsecure\", checked);\n }}\n label={\"Server Insecure\"}\n />\n \n {ADServerInsecure ? (\n \n \n Warning: All traffic with Active Directory will be unencrypted\n \n
\n
\n ) : null}\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"ADServerStartTLS\", checked);\n }}\n label={\"Start TLS connection to AD/LDAP server\"}\n />\n \n \n ) => {\n updateField(\"ADLookupBindDN\", e.target.value);\n cleanValidation(\"ad_lookupBindDN\");\n }}\n label=\"Lookup Bind DN\"\n value={ADLookupBindDN}\n placeholder=\"cn=admin,dc=min,dc=io\"\n error={validationErrors[\"ad_lookupBindDN\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"ADLookupBindPassword\", e.target.value);\n }}\n label=\"Lookup Bind Password\"\n value={ADLookupBindPassword}\n placeholder=\"admin\"\n />\n \n \n ) => {\n updateField(\"ADUserDNSearchBaseDN\", e.target.value);\n }}\n label=\"User DN Search Base DN\"\n value={ADUserDNSearchBaseDN}\n placeholder=\"dc=min,dc=io\"\n />\n \n \n ) => {\n updateField(\"ADUserDNSearchFilter\", e.target.value);\n }}\n label=\"User DN Search Filter\"\n value={ADUserDNSearchFilter}\n placeholder=\"(sAMAcountName=%s)\"\n />\n \n \n ) => {\n updateField(\"ADGroupSearchBaseDN\", e.target.value);\n }}\n label=\"Group Search Base DN\"\n value={ADGroupSearchBaseDN}\n placeholder=\"ou=hwengg,dc=min,dc=io;ou=swengg,dc=min,dc=io\"\n />\n \n \n ) => {\n updateField(\"ADGroupSearchFilter\", e.target.value);\n }}\n label=\"Group Search Filter\"\n value={ADGroupSearchFilter}\n placeholder=\"(&(objectclass=groupOfNames)(member=%s))\"\n />\n \n
\n \n List of user DNs (Distinguished Names) to be Tenant Administrators\n \n \n {ADUserDNs.map((_, index) => {\n return (\n \n
\n ) => {\n dispatch(\n setIDPADUsrAtIndex({\n index: index,\n userDN: e.target.value,\n }),\n );\n cleanValidation(`ad-userdn-${index.toString()}`);\n }}\n index={index}\n key={`csv-ad-userdn-${index.toString()}`}\n error={\n validationErrors[`ad-userdn-${index.toString()}`] || \"\"\n }\n />\n
\n \n {\n dispatch(addIDPADUsrAtIndex());\n }}\n >\n \n \n \n \n {\n if (ADUserDNs.length > 1) {\n dispatch(removeIDPADUsrAtIndex(index));\n }\n }}\n >\n \n \n \n
\n
\n
\n );\n })}\n
\n
\n
\n \n List of group DNs (Distinguished Names) to be Tenant Administrators\n \n \n {ADGroupDNs.map((_, index) => {\n return (\n \n
\n ) => {\n dispatch(\n setIDPADGroupAtIndex({\n index: index,\n userDN: e.target.value,\n }),\n );\n cleanValidation(`ad-groupdn-${index.toString()}`);\n }}\n index={index}\n key={`csv-ad-groupdn-${index.toString()}`}\n error={\n validationErrors[`ad-groupdn-${index.toString()}`] || \"\"\n }\n />\n
\n \n {\n dispatch(addIDPADGroupAtIndex());\n }}\n >\n \n \n \n \n {\n if (ADGroupDNs.length > 1) {\n dispatch(removeIDPADGroupAtIndex(index));\n }\n }}\n >\n \n \n \n
\n
\n
\n );\n })}\n
\n
\n
\n );\n};\n\nexport default IDPActiveDirectory;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Grid } from \"@mui/material\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { isPageValid, updateAddField } from \"../../createTenantSlice\";\nimport { clearValidationError } from \"../../../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n buttonTray: {\n marginLeft: 10,\n display: \"flex\",\n height: 38,\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n overlayAction: {\n marginLeft: 10,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n }),\n);\n\nconst IDPOpenID = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const idpSelection = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.idpSelection,\n );\n const openIDConfigurationURL = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.openIDConfigurationURL,\n );\n const openIDClientID = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.openIDClientID,\n );\n const openIDSecretID = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.openIDSecretID,\n );\n const openIDClaimName = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.openIDClaimName,\n );\n const openIDScopes = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.openIDScopes,\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({\n pageName: \"identityProvider\",\n field: field,\n value: value,\n }),\n );\n },\n [dispatch],\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n // Validation\n useEffect(() => {\n let customIDPValidation: IValidation[] = [];\n\n if (idpSelection === \"OpenID\") {\n customIDPValidation = [\n ...customIDPValidation,\n {\n fieldKey: \"openID_CONFIGURATION_URL\",\n required: true,\n value: openIDConfigurationURL,\n },\n {\n fieldKey: \"openID_clientID\",\n required: true,\n value: openIDClientID,\n },\n {\n fieldKey: \"openID_secretID\",\n required: true,\n value: openIDSecretID,\n },\n {\n fieldKey: \"openID_claimName\",\n required: false,\n value: openIDClaimName,\n },\n ];\n }\n\n const commonVal = commonFormValidation(customIDPValidation);\n\n dispatch(\n isPageValid({\n pageName: \"identityProvider\",\n valid: Object.keys(commonVal).length === 0,\n }),\n );\n\n setValidationErrors(commonVal);\n }, [\n idpSelection,\n openIDClientID,\n openIDSecretID,\n openIDConfigurationURL,\n openIDClaimName,\n dispatch,\n ]);\n\n return (\n \n \n ) => {\n updateField(\"openIDConfigurationURL\", e.target.value);\n cleanValidation(\"openID_CONFIGURATION_URL\");\n }}\n label=\"Configuration URL\"\n value={openIDConfigurationURL}\n placeholder=\"https://your-identity-provider.com/.well-known/openid-configuration\"\n error={validationErrors[\"openID_CONFIGURATION_URL\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"openIDClientID\", e.target.value);\n cleanValidation(\"openID_clientID\");\n }}\n label=\"Client ID\"\n value={openIDClientID}\n error={validationErrors[\"openID_clientID\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"openIDSecretID\", e.target.value);\n cleanValidation(\"openID_secretID\");\n }}\n label=\"Secret ID\"\n value={openIDSecretID}\n error={validationErrors[\"openID_secretID\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"openIDClaimName\", e.target.value);\n cleanValidation(\"openID_claimName\");\n }}\n label=\"Claim Name\"\n value={openIDClaimName}\n placeholder=\"policy\"\n error={validationErrors[\"openID_claimName\"] || \"\"}\n />\n \n \n ) => {\n updateField(\"openIDScopes\", e.target.value);\n cleanValidation(\"openID_scopes\");\n }}\n label=\"Scopes\"\n value={openIDScopes}\n />\n \n \n );\n};\n\nexport default IDPOpenID;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport {\n addIDPNewKeyPair,\n isPageValid,\n removeIDPKeyPairAtIndex,\n setIDPPwdAtIndex,\n setIDPUsrAtIndex,\n} from \"../../createTenantSlice\";\nimport { IconButton, Tooltip } from \"@mui/material\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport { RemoveIcon } from \"mds\";\nimport { clearValidationError, getRandomString } from \"../../../utils\";\nimport CasinoIcon from \"@mui/icons-material/Casino\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n buttonTray: {\n marginLeft: 10,\n display: \"flex\",\n height: 38,\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n overlayAction: {\n marginLeft: 10,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n shortened: {\n gridTemplateColumns: \"auto auto 50px 50px\",\n display: \"grid\",\n gridGap: 15,\n marginBottom: 10,\n \"& input\": {\n fontWeight: 400,\n },\n },\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n }),\n);\n\nconst IDPBuiltIn = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const idpSelection = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.idpSelection,\n );\n const accessKeys = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.accessKeys,\n );\n const secretKeys = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.secretKeys,\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n // Validation\n useEffect(() => {\n let customIDPValidation: IValidation[] = [];\n\n if (idpSelection === \"Built-in\") {\n customIDPValidation = [...customIDPValidation];\n for (var i = 0; i < accessKeys.length; i++) {\n customIDPValidation.push({\n fieldKey: `accesskey-${i.toString()}`,\n required: true,\n value: accessKeys[i],\n pattern: /^[a-zA-Z0-9-]{8,63}$/,\n customPatternMessage: \"Keys must be at least length 8\",\n });\n customIDPValidation.push({\n fieldKey: `secretkey-${i.toString()}`,\n required: true,\n value: secretKeys[i],\n pattern: /^[a-zA-Z0-9-]{8,63}$/,\n customPatternMessage: \"Keys must be at least length 8\",\n });\n }\n }\n\n const commonVal = commonFormValidation(customIDPValidation);\n\n dispatch(\n isPageValid({\n pageName: \"identityProvider\",\n valid: Object.keys(commonVal).length === 0,\n }),\n );\n\n setValidationErrors(commonVal);\n }, [idpSelection, accessKeys, secretKeys, dispatch]);\n\n return (\n \n Add additional users\n {accessKeys.map((_, index) => {\n return (\n \n
\n ) => {\n dispatch(\n setIDPUsrAtIndex({\n index,\n accessKey: e.target.value,\n }),\n );\n cleanValidation(`accesskey-${index.toString()}`);\n }}\n index={index}\n key={`csv-accesskey-${index.toString()}`}\n error={validationErrors[`accesskey-${index.toString()}`] || \"\"}\n />\n ) => {\n dispatch(\n setIDPPwdAtIndex({\n index,\n secretKey: e.target.value,\n }),\n );\n cleanValidation(`secretkey-${index.toString()}`);\n }}\n index={index}\n key={`csv-secretkey-${index.toString()}`}\n error={validationErrors[`secretkey-${index.toString()}`] || \"\"}\n />\n
\n
\n {\n dispatch(addIDPNewKeyPair());\n }}\n disabled={index !== accessKeys.length - 1}\n >\n \n \n
\n
\n {\n dispatch(removeIDPKeyPairAtIndex(index));\n }}\n disabled={accessKeys.length <= 1}\n >\n \n \n
\n \n
\n {\n dispatch(\n setIDPUsrAtIndex({\n index,\n accessKey: getRandomString(16),\n }),\n );\n dispatch(\n setIDPPwdAtIndex({\n index,\n secretKey: getRandomString(16),\n }),\n );\n }}\n size={\"small\"}\n >\n \n \n
\n
\n
\n
\n
\n );\n })}\n
\n );\n};\n\nexport default IDPBuiltIn;\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { Grid, Paper } from \"@mui/material\";\nimport {\n createTenantCommon,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../../store\";\nimport RadioGroupSelector from \"../../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport { setIDP } from \"../createTenantSlice\";\nimport IDPActiveDirectory from \"./IdentityProvider/IDPActiveDirectory\";\nimport IDPOpenID from \"./IdentityProvider/IDPOpenID\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport IDPBuiltIn from \"./IdentityProvider/IDPBuiltIn\";\nimport {\n BuiltInLogoElement,\n LDAPLogoElement,\n OIDCLogoElement,\n} from \"../../LogoComponents\";\nimport H3Section from \"../../../Common/H3Section\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n protocolRadioOptions: {\n display: \"flex\",\n flexFlow: \"column\",\n marginBottom: 10,\n\n \"& label\": {\n fontSize: 16,\n fontWeight: 600,\n },\n \"& div\": {\n display: \"flex\",\n flexFlow: \"row\",\n alignItems: \"top\",\n },\n },\n ...createTenantCommon,\n ...modalBasic,\n ...wizardCommon,\n }),\n);\n\nconst IdentityProvider = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const idpSelection = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.idpSelection,\n );\n\n return (\n \n
\n Identity Provider\n \n Access to the tenant can be controlled via an external Identity\n Manager.\n \n
\n \n {\n dispatch(setIDP(e.target.value));\n }}\n selectorOptions={[\n { label: , value: \"Built-in\" },\n { label: , value: \"OpenID\" },\n { label: , value: \"AD\" },\n ]}\n />\n \n {idpSelection === \"Built-in\" && }\n {idpSelection === \"OpenID\" && }\n {idpSelection === \"AD\" && }\n
\n );\n};\n\nexport default IdentityProvider;\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, IconButton, Paper } from \"@mui/material\";\nimport {\n createTenantCommon,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\n\nimport { AppState, useAppDispatch } from \"../../../../../store\";\nimport { KeyPair } from \"../../ListTenants/utils\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport FileSelector from \"../../../Common/FormComponents/FileSelector/FileSelector\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport { RemoveIcon } from \"mds\";\nimport {\n addCaCertificate,\n addClientKeyPair,\n addFileToCaCertificates,\n addFileToClientKeyPair,\n addFileToKeyPair,\n addKeyPair,\n deleteCaCertificate,\n deleteClientKeyPair,\n deleteKeyPair,\n isPageValid,\n updateAddField,\n} from \"../createTenantSlice\";\nimport TLSHelpBox from \"../../HelpBox/TLSHelpBox\";\nimport H3Section from \"../../../Common/H3Section\";\n\ninterface ISecurityProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n minioCertificateRows: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n borderBottom: \"1px solid #EAEAEA\",\n \"&:last-child\": {\n borderBottom: 0,\n },\n \"@media (max-width: 900px)\": {\n flex: 1,\n },\n },\n fileItem: {\n marginRight: 10,\n display: \"flex\",\n \"& div label\": {\n minWidth: 50,\n },\n\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n minioCertsContainer: {\n marginBottom: 15,\n },\n minioCACertsRow: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n\n borderBottom: \"1px solid #EAEAEA\",\n \"&:last-child\": {\n borderBottom: 0,\n },\n \"@media (max-width: 900px)\": {\n flex: 1,\n\n \"& div label\": {\n minWidth: 50,\n },\n },\n },\n rowActions: {\n display: \"flex\",\n justifyContent: \"flex-end\",\n \"@media (max-width: 900px)\": {\n flex: 1,\n },\n },\n overlayAction: {\n marginLeft: 10,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n\n ...createTenantCommon,\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst Security = ({ classes }: ISecurityProps) => {\n const dispatch = useAppDispatch();\n\n const enableTLS = useSelector(\n (state: AppState) => state.createTenant.fields.security.enableTLS,\n );\n const enableAutoCert = useSelector(\n (state: AppState) => state.createTenant.fields.security.enableAutoCert,\n );\n const enableCustomCerts = useSelector(\n (state: AppState) => state.createTenant.fields.security.enableCustomCerts,\n );\n const minioCertificates = useSelector(\n (state: AppState) =>\n state.createTenant.certificates.minioServerCertificates,\n );\n const minioClientCertificates = useSelector(\n (state: AppState) =>\n state.createTenant.certificates.minioClientCertificates,\n );\n const caCertificates = useSelector(\n (state: AppState) => state.createTenant.certificates.minioCAsCertificates,\n );\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"security\", field: field, value: value }),\n );\n },\n [dispatch],\n );\n\n // Validation\n\n useEffect(() => {\n if (!enableTLS) {\n dispatch(isPageValid({ pageName: \"security\", valid: true }));\n return;\n }\n if (enableAutoCert) {\n dispatch(isPageValid({ pageName: \"security\", valid: true }));\n return;\n }\n if (enableCustomCerts) {\n dispatch(isPageValid({ pageName: \"security\", valid: true }));\n return;\n }\n dispatch(isPageValid({ pageName: \"security\", valid: false }));\n }, [enableTLS, enableAutoCert, enableCustomCerts, dispatch]);\n\n return (\n \n
\n Security\n
\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"enableTLS\", checked);\n }}\n label={\"TLS\"}\n description={\n \"Securing all the traffic using TLS. This is required for Encryption Configuration\"\n }\n />\n \n {enableTLS && (\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"enableAutoCert\", checked);\n }}\n label={\"AutoCert\"}\n description={\n \"The internode certificates will be generated and managed by MinIO Operator\"\n }\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"enableCustomCerts\", checked);\n }}\n label={\"Custom Certificates\"}\n description={\"Certificates used to terminated TLS at MinIO\"}\n />\n \n {enableCustomCerts && (\n \n {!enableAutoCert && (\n \n \n \n )}\n \n
MinIO Server Certificates
\n {minioCertificates.map((keyPair: KeyPair, index) => (\n \n \n {\n dispatch(\n addFileToKeyPair({\n id: keyPair.id,\n key: \"cert\",\n fileName: fileName,\n value: encodedValue,\n }),\n );\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"tlsCert\"\n name=\"tlsCert\"\n label=\"Cert\"\n value={keyPair.cert}\n />\n {\n dispatch(\n addFileToKeyPair({\n id: keyPair.id,\n key: \"key\",\n fileName: fileName,\n value: encodedValue,\n }),\n );\n }}\n accept=\".key,.pem\"\n id=\"tlsKey\"\n name=\"tlsKey\"\n label=\"Key\"\n value={keyPair.key}\n />\n \n\n \n
\n {\n dispatch(addKeyPair());\n }}\n disabled={index !== minioCertificates.length - 1}\n >\n \n \n
\n
\n {\n dispatch(deleteKeyPair(keyPair.id));\n }}\n disabled={minioCertificates.length <= 1}\n >\n \n \n
\n
\n
\n ))}\n
\n \n
MinIO Client Certificates
\n {minioClientCertificates.map((keyPair: KeyPair, index) => (\n \n \n {\n dispatch(\n addFileToClientKeyPair({\n id: keyPair.id,\n key: \"cert\",\n fileName: fileName,\n value: encodedValue,\n }),\n );\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"tlsCert\"\n name=\"tlsCert\"\n label=\"Cert\"\n value={keyPair.cert}\n />\n {\n dispatch(\n addFileToClientKeyPair({\n id: keyPair.id,\n key: \"key\",\n fileName: fileName,\n value: encodedValue,\n }),\n );\n }}\n accept=\".key,.pem\"\n id=\"tlsKey\"\n name=\"tlsKey\"\n label=\"Key\"\n value={keyPair.key}\n />\n \n\n \n
\n {\n dispatch(addClientKeyPair());\n }}\n disabled={\n index !== minioClientCertificates.length - 1\n }\n >\n \n \n
\n
\n {\n dispatch(deleteClientKeyPair(keyPair.id));\n }}\n disabled={minioClientCertificates.length <= 1}\n >\n \n \n
\n
\n
\n ))}\n \n \n
MinIO CA Certificates
\n {caCertificates.map((keyPair: KeyPair, index) => (\n \n \n {\n dispatch(\n addFileToCaCertificates({\n id: keyPair.id,\n key: \"cert\",\n fileName: fileName,\n value: encodedValue,\n }),\n );\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"tlsCert\"\n name=\"tlsCert\"\n label=\"Cert\"\n value={keyPair.cert}\n />\n \n \n
\n
\n {\n dispatch(addCaCertificate());\n }}\n disabled={index !== caCertificates.length - 1}\n >\n \n \n
\n
\n {\n dispatch(deleteCaCertificate(keyPair.id));\n }}\n disabled={caCertificates.length <= 1}\n >\n \n \n
\n
\n
\n
\n ))}\n \n \n )}\n \n )}\n \n
\n );\n};\n\nexport default withStyles(styles)(Security);\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\n\ntype Props = {\n children: string;\n};\n\nconst SectionH1: React.FC = ({ children }) => {\n return (\n

\n {children}\n

\n );\n};\n\nexport default SectionH1;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\n\nimport { isPageValid, updateAddField } from \"../../createTenantSlice\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\nimport { clearValidationError } from \"../../../utils\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n }),\n);\n\nconst VaultKMSAdd = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const encryptionTab = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.encryptionTab,\n );\n const vaultEndpoint = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultEndpoint,\n );\n const vaultEngine = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultEngine,\n );\n const vaultNamespace = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultNamespace,\n );\n const vaultPrefix = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultPrefix,\n );\n const vaultAppRoleEngine = useSelector(\n (state: AppState) =>\n state.createTenant.fields.encryption.vaultAppRoleEngine,\n );\n const vaultId = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultId,\n );\n const vaultSecret = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultSecret,\n );\n const vaultRetry = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultRetry,\n );\n const vaultPing = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultPing,\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n // Validation\n useEffect(() => {\n let encryptionValidation: IValidation[] = [];\n\n if (!encryptionTab) {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"vault_endpoint\",\n required: true,\n value: vaultEndpoint,\n },\n {\n fieldKey: \"vault_id\",\n required: true,\n value: vaultId,\n },\n {\n fieldKey: \"vault_secret\",\n required: true,\n value: vaultSecret,\n },\n {\n fieldKey: \"vault_ping\",\n required: false,\n value: vaultPing,\n customValidation: parseInt(vaultPing) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n {\n fieldKey: \"vault_retry\",\n required: false,\n value: vaultRetry,\n customValidation: parseInt(vaultRetry) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n ];\n }\n\n const commonVal = commonFormValidation(encryptionValidation);\n\n dispatch(\n isPageValid({\n pageName: \"encryption\",\n valid: Object.keys(commonVal).length === 0,\n }),\n );\n\n setValidationErrors(commonVal);\n }, [\n encryptionTab,\n vaultEndpoint,\n vaultEngine,\n vaultId,\n vaultSecret,\n vaultPing,\n vaultRetry,\n dispatch,\n ]);\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"encryption\", field: field, value: value }),\n );\n },\n [dispatch],\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n \n ) => {\n updateField(\"vaultEndpoint\", e.target.value);\n cleanValidation(\"vault_endpoint\");\n }}\n label=\"Endpoint\"\n tooltip=\"Endpoint is the Hashicorp Vault endpoint\"\n value={vaultEndpoint}\n error={validationErrors[\"vault_endpoint\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"vaultEngine\", e.target.value);\n cleanValidation(\"vault_engine\");\n }}\n label=\"Engine\"\n tooltip=\"Engine is the Hashicorp Vault K/V engine path. If empty, defaults to 'kv'\"\n value={vaultEngine}\n />\n \n \n ) => {\n updateField(\"vaultNamespace\", e.target.value);\n }}\n label=\"Namespace\"\n tooltip=\"Namespace is an optional Hashicorp Vault namespace. An empty namespace means no particular namespace is used.\"\n value={vaultNamespace}\n />\n \n \n ) => {\n updateField(\"vaultPrefix\", e.target.value);\n }}\n label=\"Prefix\"\n tooltip=\"Prefix is an optional prefix / directory within the K/V engine. If empty, keys will be stored at the K/V engine top level\"\n value={vaultPrefix}\n />\n \n\n \n
\n App Role\n \n ) => {\n updateField(\"vaultAppRoleEngine\", e.target.value);\n }}\n label=\"Engine\"\n tooltip=\"AppRoleEngine is the AppRole authentication engine path. If empty, defaults to 'approle'\"\n value={vaultAppRoleEngine}\n />\n \n \n ) => {\n updateField(\"vaultId\", e.target.value);\n cleanValidation(\"vault_id\");\n }}\n label=\"AppRole ID\"\n tooltip=\"AppRoleSecret is the AppRole access secret for authenticating to Hashicorp Vault via the AppRole method\"\n value={vaultId}\n error={validationErrors[\"vault_id\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"vaultSecret\", e.target.value);\n cleanValidation(\"vault_secret\");\n }}\n label=\"AppRole Secret\"\n tooltip=\"AppRoleSecret is the AppRole access secret for authenticating to Hashicorp Vault via the AppRole method\"\n value={vaultSecret}\n error={validationErrors[\"vault_secret\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"vaultRetry\", e.target.value);\n cleanValidation(\"vault_retry\");\n }}\n label=\"Retry (Seconds)\"\n value={vaultRetry}\n error={validationErrors[\"vault_retry\"] || \"\"}\n />\n \n
\n
\n \n
\n Status\n ) => {\n updateField(\"vaultPing\", e.target.value);\n cleanValidation(\"vault_ping\");\n }}\n label=\"Ping (Seconds)\"\n value={vaultPing}\n error={validationErrors[\"vault_ping\"] || \"\"}\n />\n
\n \n
\n );\n};\n\nexport default VaultKMSAdd;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\nimport { isPageValid, updateAddField } from \"../../createTenantSlice\";\nimport { clearValidationError } from \"../../../utils\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n }),\n);\n\nconst AzureKMSAdd = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const encryptionTab = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.encryptionTab,\n );\n const azureEndpoint = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.azureEndpoint,\n );\n const azureTenantID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.azureTenantID,\n );\n const azureClientID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.azureClientID,\n );\n const azureClientSecret = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.azureClientSecret,\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n // Validation\n useEffect(() => {\n let encryptionValidation: IValidation[] = [];\n\n if (!encryptionTab) {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"azure_endpoint\",\n required: true,\n value: azureEndpoint,\n },\n {\n fieldKey: \"azure_tenant_id\",\n required: true,\n value: azureTenantID,\n },\n {\n fieldKey: \"azure_client_id\",\n required: true,\n value: azureClientID,\n },\n {\n fieldKey: \"azure_client_secret\",\n required: true,\n value: azureClientSecret,\n },\n ];\n }\n\n const commonVal = commonFormValidation(encryptionValidation);\n\n dispatch(\n isPageValid({\n pageName: \"encryption\",\n valid: Object.keys(commonVal).length === 0,\n }),\n );\n\n setValidationErrors(commonVal);\n }, [\n encryptionTab,\n azureEndpoint,\n azureTenantID,\n azureClientID,\n azureClientSecret,\n dispatch,\n ]);\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"encryption\", field: field, value: value }),\n );\n },\n [dispatch],\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n \n ) => {\n updateField(\"azureEndpoint\", e.target.value);\n cleanValidation(\"azure_endpoint\");\n }}\n label=\"Endpoint\"\n tooltip=\"Endpoint is the Azure KeyVault endpoint\"\n value={azureEndpoint}\n error={validationErrors[\"azure_endpoint\"] || \"\"}\n />\n \n \n
\n Credentials\n \n ) => {\n updateField(\"azureTenantID\", e.target.value);\n cleanValidation(\"azure_tenant_id\");\n }}\n label=\"Tenant ID\"\n tooltip=\"TenantID is the ID of the Azure KeyVault tenant\"\n value={azureTenantID}\n error={validationErrors[\"azure_tenant_id\"] || \"\"}\n />\n \n \n ) => {\n updateField(\"azureClientID\", e.target.value);\n cleanValidation(\"azure_client_id\");\n }}\n label=\"Client ID\"\n tooltip=\"ClientID is the ID of the client accessing Azure KeyVault\"\n value={azureClientID}\n error={validationErrors[\"azure_client_id\"] || \"\"}\n />\n \n \n ) => {\n updateField(\"azureClientSecret\", e.target.value);\n cleanValidation(\"azure_client_secret\");\n }}\n label=\"Client Secret\"\n tooltip=\"ClientSecret is the client secret accessing the Azure KeyVault\"\n value={azureClientSecret}\n error={validationErrors[\"azure_client_secret\"] || \"\"}\n />\n \n
\n
\n
\n );\n};\n\nexport default AzureKMSAdd;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { updateAddField } from \"../../createTenantSlice\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n }),\n);\n\nconst GCPKMSAdd = () => {\n const classes = useStyles();\n const dispatch = useAppDispatch();\n\n const gcpProjectID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpProjectID,\n );\n const gcpEndpoint = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpEndpoint,\n );\n const gcpClientEmail = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpClientEmail,\n );\n const gcpClientID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpClientID,\n );\n const gcpPrivateKeyID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpPrivateKeyID,\n );\n const gcpPrivateKey = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpPrivateKey,\n );\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"encryption\", field: field, value: value }),\n );\n },\n [dispatch],\n );\n\n return (\n \n \n ) => {\n updateField(\"gcpProjectID\", e.target.value);\n }}\n label=\"Project ID\"\n tooltip=\"ProjectID is the GCP project ID.\"\n value={gcpProjectID}\n />\n \n \n ) => {\n updateField(\"gcpEndpoint\", e.target.value);\n }}\n label=\"Endpoint\"\n tooltip=\"Endpoint is the GCP project ID. If empty defaults to: secretmanager.googleapis.com:443\"\n value={gcpEndpoint}\n />\n \n \n
\n Credentials\n \n ) => {\n updateField(\"gcpClientEmail\", e.target.value);\n }}\n label=\"Client Email\"\n tooltip=\"Is the Client email of the GCP service account used to access the SecretManager\"\n value={gcpClientEmail}\n />\n \n \n ) => {\n updateField(\"gcpClientID\", e.target.value);\n }}\n label=\"Client ID\"\n tooltip=\"Is the Client ID of the GCP service account used to access the SecretManager\"\n value={gcpClientID}\n />\n \n \n ) => {\n updateField(\"gcpPrivateKeyID\", e.target.value);\n }}\n label=\"Private Key ID\"\n tooltip=\"Is the private key ID of the GCP service account used to access the SecretManager\"\n value={gcpPrivateKeyID}\n />\n \n \n ) => {\n updateField(\"gcpPrivateKey\", e.target.value);\n }}\n label=\"Private Key\"\n tooltip=\"Is the private key of the GCP service account used to access the SecretManager\"\n value={gcpPrivateKey}\n />\n \n
\n
\n
\n );\n};\n\nexport default GCPKMSAdd;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { isPageValid, updateAddField } from \"../../createTenantSlice\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\nimport { clearValidationError } from \"../../../utils\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n }),\n);\n\nconst GemaltoKMSAdd = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const encryptionTab = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.encryptionTab,\n );\n const gemaltoEndpoint = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gemaltoEndpoint,\n );\n const gemaltoToken = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gemaltoToken,\n );\n const gemaltoDomain = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gemaltoDomain,\n );\n const gemaltoRetry = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gemaltoRetry,\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n // Validation\n useEffect(() => {\n let encryptionValidation: IValidation[] = [];\n\n if (!encryptionTab) {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"gemalto_endpoint\",\n required: true,\n value: gemaltoEndpoint,\n },\n {\n fieldKey: \"gemalto_token\",\n required: true,\n value: gemaltoToken,\n },\n {\n fieldKey: \"gemalto_domain\",\n required: true,\n value: gemaltoDomain,\n },\n {\n fieldKey: \"gemalto_retry\",\n required: false,\n value: gemaltoRetry,\n customValidation: parseInt(gemaltoRetry) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n ];\n }\n\n const commonVal = commonFormValidation(encryptionValidation);\n\n dispatch(\n isPageValid({\n pageName: \"encryption\",\n valid: Object.keys(commonVal).length === 0,\n }),\n );\n\n setValidationErrors(commonVal);\n }, [\n encryptionTab,\n gemaltoEndpoint,\n gemaltoToken,\n gemaltoDomain,\n gemaltoRetry,\n dispatch,\n ]);\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"encryption\", field: field, value: value }),\n );\n },\n [dispatch],\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n \n ) => {\n updateField(\"gemaltoEndpoint\", e.target.value);\n cleanValidation(\"gemalto_endpoint\");\n }}\n label=\"Endpoint\"\n tooltip=\"Endpoint is the endpoint to the KeySecure server\"\n value={gemaltoEndpoint}\n error={validationErrors[\"gemalto_endpoint\"] || \"\"}\n required\n />\n \n \n
\n Credentials\n \n ) => {\n updateField(\"gemaltoToken\", e.target.value);\n cleanValidation(\"gemalto_token\");\n }}\n label=\"Token\"\n tooltip=\"Token is the refresh authentication token to access the KeySecure server\"\n value={gemaltoToken}\n error={validationErrors[\"gemalto_token\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"gemaltoDomain\", e.target.value);\n cleanValidation(\"gemalto_domain\");\n }}\n label=\"Domain\"\n tooltip=\"Domain is the isolated namespace within the KeySecure server. If empty, defaults to the top-level / root domain\"\n value={gemaltoDomain}\n error={validationErrors[\"gemalto_domain\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"gemaltoRetry\", e.target.value);\n cleanValidation(\"gemalto_retry\");\n }}\n label=\"Retry (seconds)\"\n value={gemaltoRetry}\n error={validationErrors[\"gemalto_retry\"] || \"\"}\n />\n \n
\n \n
\n );\n};\n\nexport default GemaltoKMSAdd;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\nimport { isPageValid, updateAddField } from \"../../createTenantSlice\";\nimport { clearValidationError } from \"../../../utils\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n }),\n);\n\nconst AWSKMSAdd = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const encryptionTab = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.encryptionTab,\n );\n const awsEndpoint = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.awsEndpoint,\n );\n const awsRegion = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.awsRegion,\n );\n const awsKMSKey = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.awsKMSKey,\n );\n const awsAccessKey = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.awsAccessKey,\n );\n const awsSecretKey = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.awsSecretKey,\n );\n const awsToken = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.awsToken,\n );\n const [validationErrors, setValidationErrors] = useState({});\n\n // Validation\n useEffect(() => {\n let encryptionValidation: IValidation[] = [];\n\n if (!encryptionTab) {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"aws_endpoint\",\n required: true,\n value: awsEndpoint,\n },\n {\n fieldKey: \"aws_region\",\n required: true,\n value: awsRegion,\n },\n {\n fieldKey: \"aws_accessKey\",\n required: true,\n value: awsAccessKey,\n },\n {\n fieldKey: \"aws_secretKey\",\n required: true,\n value: awsSecretKey,\n },\n ];\n }\n\n const commonVal = commonFormValidation(encryptionValidation);\n\n dispatch(\n isPageValid({\n pageName: \"encryption\",\n valid: Object.keys(commonVal).length === 0,\n }),\n );\n\n setValidationErrors(commonVal);\n }, [\n encryptionTab,\n awsEndpoint,\n awsRegion,\n awsSecretKey,\n awsAccessKey,\n dispatch,\n ]);\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"encryption\", field: field, value: value }),\n );\n },\n [dispatch],\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n \n ) => {\n updateField(\"awsEndpoint\", e.target.value);\n cleanValidation(\"aws_endpoint\");\n }}\n label=\"Endpoint\"\n tooltip=\"Endpoint is the AWS SecretsManager endpoint. AWS SecretsManager endpoints have the following schema: secrestmanager[-fips]..amanzonaws.com\"\n value={awsEndpoint}\n error={validationErrors[\"aws_endpoint\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"awsRegion\", e.target.value);\n cleanValidation(\"aws_region\");\n }}\n label=\"Region\"\n tooltip=\"Region is the AWS region the SecretsManager is located\"\n value={awsRegion}\n error={validationErrors[\"aws_region\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"awsKMSKey\", e.target.value);\n }}\n label=\"KMS Key\"\n tooltip=\"KMSKey is the AWS-KMS key ID (CMK-ID) used to en/decrypt secrets managed by the SecretsManager. If empty, the default AWS KMS key is used\"\n value={awsKMSKey}\n />\n \n \n
\n Credentials\n \n ) => {\n updateField(\"awsAccessKey\", e.target.value);\n cleanValidation(\"aws_accessKey\");\n }}\n label=\"Access Key\"\n tooltip=\"AccessKey is the access key for authenticating to AWS\"\n value={awsAccessKey}\n error={validationErrors[\"aws_accessKey\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"awsSecretKey\", e.target.value);\n cleanValidation(\"aws_secretKey\");\n }}\n label=\"Secret Key\"\n tooltip=\"SecretKey is the secret key for authenticating to AWS\"\n value={awsSecretKey}\n error={validationErrors[\"aws_secretKey\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"awsToken\", e.target.value);\n }}\n label=\"Token\"\n value={awsToken}\n />\n \n
\n
\n
\n );\n};\n\nexport default AWSKMSAdd;\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Paper, SelectChangeEvent } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\n\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../../store\";\nimport { clearValidationError } from \"../../utils\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport FileSelector from \"../../../Common/FormComponents/FileSelector/FileSelector\";\nimport RadioGroupSelector from \"../../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport SectionH1 from \"../../../Common/SectionH1\";\nimport {\n addFileKESServerCert,\n addFileKMSCa,\n addFileKMSMTLSCert,\n addFileMinIOMTLSCert,\n isPageValid,\n updateAddField,\n} from \"../createTenantSlice\";\nimport VaultKMSAdd from \"./Encryption/VaultKMSAdd\";\nimport AzureKMSAdd from \"./Encryption/AzureKMSAdd\";\nimport GCPKMSAdd from \"./Encryption/GCPKMSAdd\";\nimport GemaltoKMSAdd from \"./Encryption/GemaltoKMSAdd\";\nimport AWSKMSAdd from \"./Encryption/AWSKMSAdd\";\nimport SelectWrapper from \"../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport Tabs from \"@mui/material/Tabs\";\nimport Tab from \"@mui/material/Tab\";\nimport CodeMirrorWrapper from \"../../../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\nimport FormHr from \"../../../Common/FormHr\";\n\ninterface IEncryptionProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n encryptionTypeOptions: {\n marginBottom: 15,\n },\n mutualTlsConfig: {\n marginTop: 15,\n \"& fieldset\": {\n flex: 1,\n },\n },\n rightSpacer: {\n marginRight: 15,\n },\n responsiveContainer: {\n \"@media (max-width: 900px)\": {\n display: \"flex\",\n flexFlow: \"column\",\n },\n },\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst Encryption = ({ classes }: IEncryptionProps) => {\n const dispatch = useAppDispatch();\n\n const replicas = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.replicas,\n );\n const rawConfiguration = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.rawConfiguration,\n );\n const encryptionTab = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.encryptionTab,\n );\n const enableEncryption = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.enableEncryption,\n );\n const encryptionType = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.encryptionType,\n );\n\n const gcpProjectID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpProjectID,\n );\n const gcpEndpoint = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpEndpoint,\n );\n const gcpClientEmail = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpClientEmail,\n );\n const gcpClientID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpClientID,\n );\n const gcpPrivateKeyID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpPrivateKeyID,\n );\n const gcpPrivateKey = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpPrivateKey,\n );\n const enableCustomCertsForKES = useSelector(\n (state: AppState) =>\n state.createTenant.fields.encryption.enableCustomCertsForKES,\n );\n const enableAutoCert = useSelector(\n (state: AppState) => state.createTenant.fields.security.enableAutoCert,\n );\n const enableTLS = useSelector(\n (state: AppState) => state.createTenant.fields.security.enableTLS,\n );\n const minioServerCertificates = useSelector(\n (state: AppState) =>\n state.createTenant.certificates.minioServerCertificates,\n );\n const kesServerCertificate = useSelector(\n (state: AppState) => state.createTenant.certificates.kesServerCertificate,\n );\n const minioMTLSCertificate = useSelector(\n (state: AppState) => state.createTenant.certificates.minioMTLSCertificate,\n );\n const kmsMTLSCertificate = useSelector(\n (state: AppState) => state.createTenant.certificates.kmsMTLSCertificate,\n );\n const kmsCA = useSelector(\n (state: AppState) => state.createTenant.certificates.kmsCA,\n );\n const enableCustomCerts = useSelector(\n (state: AppState) => state.createTenant.fields.security.enableCustomCerts,\n );\n const kesSecurityContext = useSelector(\n (state: AppState) =>\n state.createTenant.fields.encryption.kesSecurityContext,\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n let encryptionAvailable = false;\n if (\n enableTLS &&\n (enableAutoCert ||\n (minioServerCertificates &&\n minioServerCertificates.filter(\n (item) => item.encoded_key && item.encoded_cert,\n ).length > 0))\n ) {\n encryptionAvailable = true;\n }\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"encryption\", field: field, value: value }),\n );\n },\n [dispatch],\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n // Validation\n useEffect(() => {\n let encryptionValidation: IValidation[] = [];\n\n if (enableEncryption) {\n encryptionValidation = [\n {\n fieldKey: \"rawConfiguration\",\n required: encryptionTab > 0,\n value: rawConfiguration,\n },\n {\n fieldKey: \"replicas\",\n required: true,\n value: replicas,\n customValidation: parseInt(replicas) < 1,\n customValidationMessage: \"Replicas needs to be 1 or greater\",\n },\n {\n fieldKey: \"kes_securityContext_runAsUser\",\n required: true,\n value: kesSecurityContext.runAsUser,\n customValidation:\n kesSecurityContext.runAsUser === \"\" ||\n parseInt(kesSecurityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"kes_securityContext_runAsGroup\",\n required: true,\n value: kesSecurityContext.runAsGroup,\n customValidation:\n kesSecurityContext.runAsGroup === \"\" ||\n parseInt(kesSecurityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"kes_securityContext_fsGroup\",\n required: true,\n value: kesSecurityContext.fsGroup!,\n customValidation:\n kesSecurityContext.fsGroup === \"\" ||\n parseInt(kesSecurityContext.fsGroup!) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n ];\n\n if (enableCustomCerts) {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"serverKey\",\n required: !enableAutoCert,\n value: kesServerCertificate.encoded_key,\n },\n {\n fieldKey: \"serverCert\",\n required: !enableAutoCert,\n value: kesServerCertificate.encoded_cert,\n },\n {\n fieldKey: \"clientKey\",\n required: !enableAutoCert,\n value: minioMTLSCertificate.encoded_key,\n },\n {\n fieldKey: \"clientCert\",\n required: !enableAutoCert,\n value: minioMTLSCertificate.encoded_cert,\n },\n ];\n }\n }\n\n const commonVal = commonFormValidation(encryptionValidation);\n dispatch(\n isPageValid({\n pageName: \"encryption\",\n valid: Object.keys(commonVal).length === 0,\n }),\n );\n\n setValidationErrors(commonVal);\n }, [\n rawConfiguration,\n encryptionTab,\n enableEncryption,\n encryptionType,\n gcpProjectID,\n gcpEndpoint,\n gcpClientEmail,\n gcpClientID,\n gcpPrivateKeyID,\n gcpPrivateKey,\n dispatch,\n enableAutoCert,\n enableCustomCerts,\n kesServerCertificate.encoded_key,\n kesServerCertificate.encoded_cert,\n minioMTLSCertificate.encoded_key,\n minioMTLSCertificate.encoded_cert,\n kesSecurityContext,\n replicas,\n ]);\n\n return (\n \n \n \n Encryption\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"enableEncryption\", checked);\n }}\n description=\"\"\n disabled={!encryptionAvailable}\n />\n \n \n \n \n \n MinIO Server-Side Encryption (SSE) protects objects as part of write\n operations, allowing clients to take advantage of server processing\n power to secure objects at the storage layer (encryption-at-rest).\n SSE also provides key functionality to regulatory and compliance\n requirements around secure locking and erasure.\n \n \n \n \n \n\n {enableEncryption && (\n \n \n , value: number) => {\n updateField(\"encryptionTab\", value);\n }}\n indicatorColor=\"primary\"\n textColor=\"primary\"\n aria-label=\"cluster-tabs\"\n variant=\"scrollable\"\n scrollButtons=\"auto\"\n >\n \n \n \n \n\n {encryptionTab ? (\n \n \n {\n updateField(\"rawConfiguration\", value);\n }}\n editorHeight={\"550px\"}\n />\n \n \n ) : (\n \n \n {\n updateField(\"encryptionType\", e.target.value);\n }}\n selectorOptions={[\n { label: \"Vault\", value: \"vault\" },\n { label: \"AWS\", value: \"aws\" },\n { label: \"Gemalto\", value: \"gemalto\" },\n { label: \"GCP\", value: \"gcp\" },\n { label: \"Azure\", value: \"azure\" },\n ]}\n />\n \n {encryptionType === \"vault\" && }\n {encryptionType === \"azure\" && }\n {encryptionType === \"gcp\" && }\n {encryptionType === \"aws\" && }\n {encryptionType === \"gemalto\" && }\n \n )}\n\n
\n

Additional Configurations

\n
\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"enableCustomCertsForKES\", checked);\n }}\n label={\"Custom Certificates\"}\n disabled={!enableAutoCert}\n />\n \n {(enableCustomCertsForKES || !enableAutoCert) && (\n \n \n \n
\n \n Encryption server certificates\n \n {\n dispatch(\n addFileKESServerCert({\n key: \"key\",\n fileName: fileName,\n value: encodedValue,\n }),\n );\n cleanValidation(\"serverKey\");\n }}\n accept=\".key,.pem\"\n id=\"serverKey\"\n name=\"serverKey\"\n label=\"Key\"\n error={validationErrors[\"serverKey\"] || \"\"}\n value={kesServerCertificate.key}\n required={!enableAutoCert}\n />\n {\n dispatch(\n addFileKESServerCert({\n key: \"cert\",\n fileName: fileName,\n value: encodedValue,\n }),\n );\n cleanValidation(\"serverCert\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"serverCert\"\n name=\"serverCert\"\n label=\"Cert\"\n error={validationErrors[\"serverCert\"] || \"\"}\n value={kesServerCertificate.cert}\n required={!enableAutoCert}\n />\n
\n
\n
\n \n \n
\n \n MinIO mTLS certificates (connection between MinIO and\n the Encryption server)\n \n {\n dispatch(\n addFileMinIOMTLSCert({\n key: \"key\",\n fileName: fileName,\n value: encodedValue,\n }),\n );\n cleanValidation(\"clientKey\");\n }}\n accept=\".key,.pem\"\n id=\"clientKey\"\n name=\"clientKey\"\n label=\"Key\"\n error={validationErrors[\"clientKey\"] || \"\"}\n value={minioMTLSCertificate.key}\n required={!enableAutoCert}\n />\n {\n dispatch(\n addFileMinIOMTLSCert({\n key: \"cert\",\n fileName: fileName,\n value: encodedValue,\n }),\n );\n cleanValidation(\"clientCert\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"clientCert\"\n name=\"clientCert\"\n label=\"Cert\"\n error={validationErrors[\"clientCert\"] || \"\"}\n value={minioMTLSCertificate.cert}\n required={!enableAutoCert}\n />\n
\n
\n
\n \n
\n \n KMS mTLS certificates (connection between the Encryption\n server and the KMS)\n \n {\n dispatch(\n addFileKMSMTLSCert({\n key: \"key\",\n fileName: fileName,\n value: encodedValue,\n }),\n );\n cleanValidation(\"vault_key\");\n }}\n accept=\".key,.pem\"\n id=\"vault_key\"\n name=\"vault_key\"\n label=\"Key\"\n value={kmsMTLSCertificate.key}\n />\n {\n dispatch(\n addFileKMSMTLSCert({\n key: \"cert\",\n fileName: fileName,\n value: encodedValue,\n }),\n );\n cleanValidation(\"vault_cert\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"vault_cert\"\n name=\"vault_cert\"\n label=\"Cert\"\n value={kmsMTLSCertificate.cert}\n />\n {\n dispatch(\n addFileKMSCa({\n fileName: fileName,\n value: encodedValue,\n }),\n );\n cleanValidation(\"vault_ca\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"vault_ca\"\n name=\"vault_ca\"\n label=\"CA\"\n value={kmsCA.cert}\n />\n
\n
\n
\n )}\n \n \n ) => {\n updateField(\"replicas\", e.target.value);\n cleanValidation(\"replicas\");\n }}\n label=\"Replicas\"\n value={replicas}\n required\n error={validationErrors[\"replicas\"] || \"\"}\n />\n \n\n \n \n SecurityContext for KES pods\n \n \n \n \n ) => {\n updateField(\"kesSecurityContext\", {\n ...kesSecurityContext,\n runAsUser: e.target.value,\n });\n cleanValidation(\"kes_securityContext_runAsUser\");\n }}\n label=\"Run As User\"\n value={kesSecurityContext.runAsUser}\n required\n error={\n validationErrors[\"kes_securityContext_runAsUser\"] ||\n \"\"\n }\n min=\"0\"\n />\n \n \n ) => {\n updateField(\"kesSecurityContext\", {\n ...kesSecurityContext,\n runAsGroup: e.target.value,\n });\n cleanValidation(\"kes_securityContext_runAsGroup\");\n }}\n label=\"Run As Group\"\n value={kesSecurityContext.runAsGroup}\n required\n error={\n validationErrors[\"kes_securityContext_runAsGroup\"] ||\n \"\"\n }\n min=\"0\"\n />\n \n \n \n
\n \n \n \n ) => {\n updateField(\"kesSecurityContext\", {\n ...kesSecurityContext,\n fsGroup: e.target.value,\n });\n cleanValidation(\"kes_securityContext_fsGroup\");\n }}\n label=\"FsGroup\"\n value={kesSecurityContext.fsGroup!}\n required\n error={\n validationErrors[\"kes_securityContext_fsGroup\"] || \"\"\n }\n min=\"0\"\n />\n \n \n ) => {\n updateField(\"kesSecurityContext\", {\n ...kesSecurityContext,\n fsGroupChangePolicy: e.target.value,\n });\n }}\n options={[\n {\n label: \"Always\",\n value: \"Always\",\n },\n {\n label: \"OnRootMismatch\",\n value: \"OnRootMismatch\",\n },\n ]}\n />\n \n \n \n
\n \n
\n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"kesSecurityContext\", {\n ...kesSecurityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n
\n
\n \n
\n
\n )}\n
\n
\n );\n};\n\nexport default withStyles(styles)(Encryption);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, IconButton, Paper, SelectChangeEvent } from \"@mui/material\";\nimport { AppState, useAppDispatch } from \"../../../../../store\";\n\nimport {\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport { LabelKeyPair } from \"../../types\";\nimport RadioGroupSelector from \"../../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport api from \"../../../../../common/api\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { AddIcon, RemoveIcon } from \"mds\";\nimport SelectWrapper from \"../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport TolerationSelector from \"../../../Common/TolerationSelector/TolerationSelector\";\nimport { setModalErrorSnackMessage } from \"../../../../../systemSlice\";\nimport {\n addNewToleration,\n isPageValid,\n removeToleration,\n setKeyValuePairs,\n setTolerationInfo,\n updateAddField,\n} from \"../createTenantSlice\";\nimport H3Section from \"../../../Common/H3Section\";\n\ninterface IAffinityProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n overlayAction: {\n marginLeft: 10,\n display: \"flex\",\n alignItems: \"center\",\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n affinityConfigField: {\n display: \"flex\",\n },\n affinityFieldLabel: {\n display: \"flex\",\n flexFlow: \"column\",\n flex: 1,\n },\n radioField: {\n display: \"flex\",\n alignItems: \"flex-start\",\n marginTop: 10,\n \"& div:first-child\": {\n display: \"flex\",\n flexFlow: \"column\",\n alignItems: \"baseline\",\n textAlign: \"left !important\",\n },\n },\n affinityLabelKey: {\n \"& div:first-child\": {\n marginBottom: 0,\n },\n },\n affinityLabelValue: {\n marginLeft: 10,\n \"& div:first-child\": {\n marginBottom: 0,\n },\n },\n rowActions: {\n display: \"flex\",\n alignItems: \"center\",\n },\n affinityRow: {\n marginBottom: 10,\n display: \"flex\",\n },\n ...modalBasic,\n ...wizardCommon,\n });\n\ninterface OptionPair {\n label: string;\n value: string;\n}\n\nconst Affinity = ({ classes }: IAffinityProps) => {\n const dispatch = useAppDispatch();\n\n const podAffinity = useSelector(\n (state: AppState) => state.createTenant.fields.affinity.podAffinity,\n );\n const nodeSelectorLabels = useSelector(\n (state: AppState) => state.createTenant.fields.affinity.nodeSelectorLabels,\n );\n const withPodAntiAffinity = useSelector(\n (state: AppState) => state.createTenant.fields.affinity.withPodAntiAffinity,\n );\n const keyValuePairs = useSelector(\n (state: AppState) => state.createTenant.nodeSelectorPairs,\n );\n const tolerations = useSelector(\n (state: AppState) => state.createTenant.tolerations,\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n const [loading, setLoading] = useState(true);\n const [keyValueMap, setKeyValueMap] = useState<{ [key: string]: string[] }>(\n {},\n );\n const [keyOptions, setKeyOptions] = useState([]);\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({\n pageName: \"affinity\",\n field: field,\n value: value,\n }),\n );\n },\n [dispatch],\n );\n\n useEffect(() => {\n if (loading) {\n api\n .invoke(\"GET\", `/api/v1/nodes/labels`)\n .then((res: { [key: string]: string[] }) => {\n setLoading(false);\n setKeyValueMap(res);\n let keys: OptionPair[] = [];\n for (let k in res) {\n keys.push({\n label: k,\n value: k,\n });\n }\n setKeyOptions(keys);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n dispatch(setModalErrorSnackMessage(err));\n setKeyValueMap({});\n });\n }\n }, [dispatch, loading]);\n\n useEffect(() => {\n if (keyValuePairs) {\n const vlr = keyValuePairs\n .filter((kvp) => kvp.key !== \"\")\n .map((kvp) => `${kvp.key}=${kvp.value}`)\n .filter((kvs, i, a) => a.indexOf(kvs) === i);\n const vl = vlr.join(\"&\");\n updateField(\"nodeSelectorLabels\", vl);\n }\n }, [keyValuePairs, updateField]);\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n\n if (podAffinity === \"nodeSelector\") {\n let valid = true;\n\n const splittedLabels = nodeSelectorLabels.split(\"&\");\n\n if (splittedLabels.length === 1 && splittedLabels[0] === \"\") {\n valid = false;\n }\n\n splittedLabels.forEach((item: string, index: number) => {\n const splitItem = item.split(\"=\");\n\n if (splitItem.length !== 2) {\n valid = false;\n }\n\n if (index + 1 !== splittedLabels.length) {\n if (splitItem[0] === \"\" || splitItem[1] === \"\") {\n valid = false;\n }\n }\n });\n\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"labels\",\n required: true,\n value: nodeSelectorLabels,\n customValidation: !valid,\n customValidationMessage:\n \"You need to add at least one label key-pair\",\n },\n ];\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n dispatch(\n isPageValid({\n pageName: \"affinity\",\n valid: Object.keys(commonVal).length === 0,\n }),\n );\n\n setValidationErrors(commonVal);\n }, [dispatch, podAffinity, nodeSelectorLabels]);\n\n const updateToleration = (index: number, field: string, value: any) => {\n const alterToleration = { ...tolerations[index], [field]: value };\n\n dispatch(\n setTolerationInfo({\n index: index,\n tolerationValue: alterToleration,\n }),\n );\n };\n\n return (\n \n
\n Pod Placement\n \n Configure how pods will be assigned to nodes\n \n
\n \n \n
Type
\n \n MinIO supports multiple configurations for Pod Affinity\n \n \n {\n updateField(\"podAffinity\", e.target.value);\n }}\n selectorOptions={[\n { label: \"None\", value: \"none\" },\n { label: \"Default (Pod Anti-Affinity)\", value: \"default\" },\n { label: \"Node Selector\", value: \"nodeSelector\" },\n ]}\n />\n \n
\n
\n {podAffinity === \"nodeSelector\" && (\n \n
\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"withPodAntiAffinity\", checked);\n }}\n label={\"With Pod Anti-Affinity\"}\n />\n \n \n

Labels

\n {validationErrors[\"labels\"]}\n \n {keyValuePairs &&\n keyValuePairs.map((kvp, i) => {\n return (\n \n \n {keyOptions.length > 0 && (\n ) => {\n const newKey = e.target.value as string;\n const newLKP: LabelKeyPair = {\n key: newKey,\n value: keyValueMap[newKey][0],\n };\n const arrCp: LabelKeyPair[] = [...keyValuePairs];\n arrCp[i] = newLKP;\n dispatch(setKeyValuePairs(arrCp));\n }}\n id=\"select-access-policy\"\n name=\"select-access-policy\"\n label={\"\"}\n value={kvp.key}\n options={keyOptions}\n />\n )}\n {keyOptions.length === 0 && (\n {\n const arrCp: LabelKeyPair[] = [...keyValuePairs];\n arrCp[i] = {\n key: arrCp[i].key,\n value: e.target.value as string,\n };\n dispatch(setKeyValuePairs(arrCp));\n }}\n index={i}\n placeholder={\"Key\"}\n />\n )}\n \n \n {keyOptions.length > 0 && (\n ) => {\n const arrCp: LabelKeyPair[] = [...keyValuePairs];\n arrCp[i] = {\n key: arrCp[i].key,\n value: e.target.value as string,\n };\n dispatch(setKeyValuePairs(arrCp));\n }}\n id=\"select-access-policy\"\n name=\"select-access-policy\"\n label={\"\"}\n value={kvp.value}\n options={\n keyValueMap[kvp.key]\n ? keyValueMap[kvp.key].map((v) => {\n return { label: v, value: v };\n })\n : []\n }\n />\n )}\n {keyOptions.length === 0 && (\n {\n const arrCp: LabelKeyPair[] = [...keyValuePairs];\n arrCp[i] = {\n key: arrCp[i].key,\n value: e.target.value as string,\n };\n dispatch(setKeyValuePairs(arrCp));\n }}\n index={i}\n placeholder={\"value\"}\n />\n )}\n \n \n
\n {\n const arrCp = [...keyValuePairs];\n if (keyOptions.length > 0) {\n arrCp.push({\n key: keyOptions[0].value,\n value: keyValueMap[keyOptions[0].value][0],\n });\n } else {\n arrCp.push({ key: \"\", value: \"\" });\n }\n\n dispatch(setKeyValuePairs(arrCp));\n }}\n disabled={i !== keyValuePairs.length - 1}\n >\n \n \n
\n
\n {\n const arrCp = keyValuePairs.filter(\n (item, index) => index !== i,\n );\n dispatch(setKeyValuePairs(arrCp));\n }}\n disabled={keyValuePairs.length <= 1}\n >\n \n \n
\n
\n
\n );\n })}\n
\n \n
\n )}\n \n \n

Tolerations

\n \n {validationErrors[\"tolerations\"]}\n \n \n {tolerations &&\n tolerations.map((tol, i) => {\n return (\n \n {\n updateToleration(i, \"effect\", value);\n }}\n tolerationKey={tol.key}\n onTolerationKeyChange={(value) => {\n updateToleration(i, \"key\", value);\n }}\n operator={tol.operator}\n onOperatorChange={(value) => {\n updateToleration(i, \"operator\", value);\n }}\n value={tol.value}\n onValueChange={(value) => {\n updateToleration(i, \"value\", value);\n }}\n tolerationSeconds={tol.tolerationSeconds?.seconds || 0}\n onSecondsChange={(value) => {\n updateToleration(i, \"tolerationSeconds\", {\n seconds: value,\n });\n }}\n index={i}\n />\n
\n {\n dispatch(addNewToleration());\n }}\n disabled={i !== tolerations.length - 1}\n >\n \n \n
\n\n
\n dispatch(removeToleration(i))}\n disabled={tolerations.length <= 1}\n >\n \n \n
\n
\n );\n })}\n
\n
\n \n
\n );\n};\n\nexport default withStyles(styles)(Affinity);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, Paper } from \"@mui/material\";\nimport {\n formFieldStyles,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../../store\";\nimport { clearValidationError } from \"../../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { isPageValid, updateAddField } from \"../createTenantSlice\";\nimport H3Section from \"../../../Common/H3Section\";\n\ninterface IImagesProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...formFieldStyles,\n ...wizardCommon,\n });\n\nconst Images = ({ classes }: IImagesProps) => {\n const dispatch = useAppDispatch();\n\n const customImage = useSelector(\n (state: AppState) => state.createTenant.fields.configure.customImage,\n );\n const imageName = useSelector(\n (state: AppState) => state.createTenant.fields.configure.imageName,\n );\n const customDockerhub = useSelector(\n (state: AppState) => state.createTenant.fields.configure.customDockerhub,\n );\n const imageRegistry = useSelector(\n (state: AppState) => state.createTenant.fields.configure.imageRegistry,\n );\n const imageRegistryUsername = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.imageRegistryUsername,\n );\n const imageRegistryPassword = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.imageRegistryPassword,\n );\n\n const tenantCustom = useSelector(\n (state: AppState) => state.createTenant.fields.configure.tenantCustom,\n );\n\n const kesImage = useSelector(\n (state: AppState) => state.createTenant.fields.configure.kesImage,\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"configure\", field: field, value: value }),\n );\n },\n [dispatch],\n );\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n\n if (customImage) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"image\",\n required: false,\n value: imageName,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage: \"Format must be of form: 'minio/minio:VERSION'\",\n },\n {\n fieldKey: \"kesImage\",\n required: false,\n value: kesImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage: \"Format must be of form: 'minio/kes:VERSION'\",\n },\n ];\n if (customDockerhub) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"registry\",\n required: true,\n value: imageRegistry,\n },\n {\n fieldKey: \"registryUsername\",\n required: true,\n value: imageRegistryUsername,\n },\n {\n fieldKey: \"registryPassword\",\n required: true,\n value: imageRegistryPassword,\n },\n ];\n }\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n dispatch(\n isPageValid({\n pageName: \"configure\",\n valid: Object.keys(commonVal).length === 0,\n }),\n );\n\n setValidationErrors(commonVal);\n }, [\n customImage,\n imageName,\n kesImage,\n customDockerhub,\n imageRegistry,\n imageRegistryUsername,\n imageRegistryPassword,\n dispatch,\n tenantCustom,\n ]);\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n
\n Container Images\n \n Specify the container images used by the Tenant and its features.\n \n
\n\n \n \n ) => {\n updateField(\"imageName\", e.target.value);\n cleanValidation(\"image\");\n }}\n label=\"MinIO\"\n value={imageName}\n error={validationErrors[\"image\"] || \"\"}\n placeholder=\"minio/minio:RELEASE.2023-09-04T19-57-37Z\"\n />\n \n\n \n ) => {\n updateField(\"kesImage\", e.target.value);\n cleanValidation(\"kesImage\");\n }}\n label=\"KES\"\n value={kesImage}\n error={validationErrors[\"kesImage\"] || \"\"}\n placeholder=\"minio/kes:2023-08-19T17-27-47Z\"\n />\n \n \n\n {customImage && (\n \n \n

Custom Container Registry

\n
\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"customDockerhub\", checked);\n }}\n label={\"Use a private container registry\"}\n />\n \n
\n )}\n {customDockerhub && (\n \n \n ) => {\n updateField(\"imageRegistry\", e.target.value);\n }}\n label=\"Endpoint\"\n value={imageRegistry}\n error={validationErrors[\"registry\"] || \"\"}\n placeholder=\"https://index.docker.io/v1/\"\n required\n />\n \n \n ) => {\n updateField(\"imageRegistryUsername\", e.target.value);\n }}\n label=\"Username\"\n value={imageRegistryUsername}\n error={validationErrors[\"registryUsername\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"imageRegistryPassword\", e.target.value);\n }}\n label=\"Password\"\n value={imageRegistryPassword}\n error={validationErrors[\"registryPassword\"] || \"\"}\n required\n />\n \n \n )}\n
\n );\n};\n\nexport default withStyles(styles)(Images);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { AppState } from \"../../../../../store\";\nimport {\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport Table from \"@mui/material/Table\";\nimport TableBody from \"@mui/material/TableBody\";\nimport TableCell from \"@mui/material/TableCell\";\nimport TableRow from \"@mui/material/TableRow\";\nimport { niceBytes } from \"../../../../../common/utils\";\n\nimport { Divider } from \"@mui/material\";\n\ninterface ISizePreviewProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n margin: 4,\n },\n table: {\n \"& .MuiTableCell-root\": {\n fontSize: 13,\n },\n },\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst SizePreview = ({ classes }: ISizePreviewProps) => {\n const nodes = useSelector(\n (state: AppState) => state.createTenant.fields.tenantSize.nodes,\n );\n const memoryNode = useSelector(\n (state: AppState) =>\n state.createTenant.fields.tenantSize.resourcesMemoryRequest,\n );\n const ecParity = useSelector(\n (state: AppState) => state.createTenant.fields.tenantSize.ecParity,\n );\n\n const distribution = useSelector(\n (state: AppState) => state.createTenant.fields.tenantSize.distribution,\n );\n const ecParityCalc = useSelector(\n (state: AppState) => state.createTenant.fields.tenantSize.ecParityCalc,\n );\n\n const cpuToUse = useSelector(\n (state: AppState) =>\n state.createTenant.fields.tenantSize.resourcesCPURequest,\n );\n const integrationSelection = useSelector(\n (state: AppState) =>\n state.createTenant.fields.tenantSize.integrationSelection,\n );\n\n const usableInformation = ecParityCalc.storageFactors.find(\n (element) => element.erasureCode === ecParity,\n );\n\n return (\n
\n

Resource Allocation

\n \n \n \n \n Number of Servers\n \n {parseInt(nodes) > 0 ? nodes : \"-\"}\n \n \n {integrationSelection.typeSelection === \"\" &&\n integrationSelection.storageClass === \"\" && (\n \n \n Drives per Server\n \n {distribution ? distribution.disks : \"-\"}\n \n \n \n Drive Capacity\n \n {distribution ? niceBytes(distribution.pvSize) : \"-\"}\n \n \n \n )}\n\n \n Total Volumes\n \n {distribution ? distribution.persistentVolumes : \"-\"}\n \n \n {integrationSelection.typeSelection === \"\" &&\n integrationSelection.storageClass === \"\" && (\n \n \n Memory per Node\n {memoryNode} Gi\n \n \n \n CPU Selection\n \n \n {cpuToUse}\n \n \n \n )}\n \n
\n {ecParityCalc.error === 0 && usableInformation && (\n \n

Erasure Code Configuration

\n \n \n \n \n EC Parity\n \n {ecParity !== \"\" ? ecParity : \"-\"}\n \n \n \n Raw Capacity\n \n {niceBytes(ecParityCalc.rawCapacity)}\n \n \n \n Usable Capacity\n \n {niceBytes(usableInformation.maxCapacity)}\n \n \n \n \n Server Failures Tolerated\n \n \n {distribution\n ? Math.floor(\n usableInformation.maxFailureTolerations /\n distribution.disks,\n )\n : \"-\"}\n \n \n \n \n
\n )}\n {integrationSelection.typeSelection !== \"\" &&\n integrationSelection.storageClass !== \"\" && (\n \n

Single Instance Configuration

\n \n \n \n \n CPU\n \n {integrationSelection.CPU !== 0\n ? integrationSelection.CPU\n : \"-\"}\n \n \n \n Memory\n \n {integrationSelection.memory !== 0\n ? `${integrationSelection.memory} Gi`\n : \"-\"}\n \n \n \n Drives per Server\n \n {integrationSelection.drivesPerServer !== 0\n ? `${integrationSelection.drivesPerServer}`\n : \"-\"}\n \n \n \n \n Drive Size\n \n \n {integrationSelection.driveSize.driveSize}\n {integrationSelection.driveSize.sizeUnit}\n \n \n \n \n
\n )}\n
\n );\n};\n\nexport default withStyles(styles)(SizePreview);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { DialogContentText, LinearProgress } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n deleteDialogStyles,\n modalBasic,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport ConfirmDialog from \"../../../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmModalIcon } from \"mds\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { closeAddNSModal } from \"../../createTenantSlice\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { createNamespaceAsync } from \"../../thunks/namespaceThunks\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n wrapText: {\n maxWidth: \"200px\",\n whiteSpace: \"normal\",\n wordWrap: \"break-word\",\n },\n ...modalBasic,\n ...deleteDialogStyles,\n }),\n);\n\nconst AddNamespaceModal = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const namespace = useSelector(\n (state: AppState) => state.createTenant.fields.nameTenant.namespace,\n );\n const addNamespaceLoading = useSelector(\n (state: AppState) => state.createTenant.addNSLoading,\n );\n const addNamespaceOpen = useSelector(\n (state: AppState) => state.createTenant.addNSOpen,\n );\n\n return (\n }\n isLoading={addNamespaceLoading}\n onConfirm={() => {\n dispatch(createNamespaceAsync());\n }}\n onClose={() => {\n dispatch(closeAddNSModal());\n }}\n confirmationContent={\n \n {addNamespaceLoading && }\n \n Are you sure you want to add a namespace called\n
\n {namespace}?\n
\n
\n }\n />\n );\n};\n\nexport default AddNamespaceModal;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useMemo } from \"react\";\nimport { AddIcon } from \"mds\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { openAddNSModal, setNamespace } from \"../../createTenantSlice\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport AddNamespaceModal from \"../helpers/AddNamespaceModal\";\nimport debounce from \"lodash/debounce\";\nimport { IMkEnvs } from \"./utils\";\nimport { validateNamespaceAsync } from \"../../thunks/namespaceThunks\";\n\nconst NamespaceSelector = ({ formToRender }: { formToRender?: IMkEnvs }) => {\n const dispatch = useAppDispatch();\n\n const namespace = useSelector(\n (state: AppState) => state.createTenant.fields.nameTenant.namespace,\n );\n\n const showNSCreateButton = useSelector(\n (state: AppState) => state.createTenant.showNSCreateButton,\n );\n\n const namespaceError = useSelector(\n (state: AppState) => state.createTenant.validationErrors[\"namespace\"],\n );\n const openAddNSConfirm = useSelector(\n (state: AppState) => state.createTenant.addNSOpen,\n );\n\n const debounceNamespace = useMemo(\n () =>\n debounce(() => {\n dispatch(validateNamespaceAsync());\n }, 500),\n [dispatch],\n );\n\n useEffect(() => {\n if (namespace !== \"\") {\n debounceNamespace();\n // Cancel previous debounce calls during useEffect cleanup.\n return debounceNamespace.cancel;\n }\n }, [debounceNamespace, namespace]);\n\n const addNamespace = () => {\n dispatch(openAddNSModal());\n };\n\n return (\n \n {openAddNSConfirm && }\n ) => {\n dispatch(setNamespace(e.target.value));\n }}\n label=\"Namespace\"\n value={namespace}\n error={namespaceError || \"\"}\n overlayId={\"add-namespace\"}\n overlayIcon={showNSCreateButton ? : null}\n overlayAction={addNamespace}\n required\n />\n \n );\n};\nexport default NamespaceSelector;\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport get from \"lodash/get\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport SelectWrapper from \"../../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport SizePreview from \"../SizePreview\";\nimport TenantSize from \"./TenantSize\";\nimport { Paper, SelectChangeEvent } from \"@mui/material\";\nimport { IMkEnvs, mkPanelConfigurations } from \"./utils\";\nimport {\n isPageValid,\n setStorageType,\n setTenantName,\n updateAddField,\n} from \"../../createTenantSlice\";\nimport { selFeatures } from \"../../../../consoleSlice\";\nimport NamespaceSelector from \"./NamespaceSelector\";\nimport H3Section from \"../../../../Common/H3Section\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n sizePreview: {\n marginLeft: 10,\n background: \"#FFFFFF\",\n border: \"1px solid #EAEAEA\",\n padding: 2,\n marginTop: 20,\n },\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst NameTenantField = () => {\n const dispatch = useAppDispatch();\n const tenantName = useSelector(\n (state: AppState) => state.createTenant.fields.nameTenant.tenantName,\n );\n\n const tenantNameError = useSelector(\n (state: AppState) => state.createTenant.validationErrors[\"tenant-name\"],\n );\n\n return (\n ) => {\n dispatch(setTenantName(e.target.value));\n }}\n label=\"Name\"\n value={tenantName}\n required\n error={tenantNameError || \"\"}\n />\n );\n};\n\ninterface INameTenantMainScreen {\n classes: any;\n formToRender?: IMkEnvs;\n}\n\nconst NameTenantMain = ({ classes, formToRender }: INameTenantMainScreen) => {\n const dispatch = useAppDispatch();\n\n const selectedStorageClass = useSelector(\n (state: AppState) =>\n state.createTenant.fields.nameTenant.selectedStorageClass,\n );\n const selectedStorageType = useSelector(\n (state: AppState) =>\n state.createTenant.fields.nameTenant.selectedStorageType,\n );\n const storageClasses = useSelector(\n (state: AppState) => state.createTenant.storageClasses,\n );\n const features = useSelector(selFeatures);\n\n // Common\n const updateField = useCallback(\n (field: string, value: string) => {\n dispatch(\n updateAddField({ pageName: \"nameTenant\", field: field, value: value }),\n );\n },\n [dispatch],\n );\n\n // Validation\n useEffect(() => {\n const isValid =\n (formToRender === IMkEnvs.default && storageClasses.length > 0) ||\n (formToRender !== IMkEnvs.default && selectedStorageType !== \"\");\n\n dispatch(isPageValid({ pageName: \"nameTenant\", valid: isValid }));\n }, [storageClasses, dispatch, selectedStorageType, formToRender]);\n\n return (\n \n \n \n \n \n \n
\n Name\n \n How would you like to name this new tenant?\n \n
\n
\n \n
\n
\n \n \n \n {formToRender === IMkEnvs.default ? (\n \n ) => {\n updateField(\n \"selectedStorageClass\",\n e.target.value as string,\n );\n }}\n label=\"Storage Class\"\n value={selectedStorageClass}\n options={storageClasses}\n disabled={storageClasses.length < 1}\n />\n \n ) : (\n \n ) => {\n dispatch(\n setStorageType({\n storageType: e.target.value as string,\n features: features,\n }),\n );\n }}\n label={get(\n mkPanelConfigurations,\n `${formToRender}.variantSelectorLabel`,\n \"Storage Type\",\n )}\n value={selectedStorageType}\n options={get(\n mkPanelConfigurations,\n `${formToRender}.variantSelectorValues`,\n [],\n )}\n />\n \n )}\n {formToRender === IMkEnvs.default ? (\n \n ) : (\n get(\n mkPanelConfigurations,\n `${formToRender}.sizingComponent`,\n null,\n )\n )}\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n );\n};\n\nexport default withStyles(styles)(NameTenantMain);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport get from \"lodash/get\";\nimport NameTenantMain from \"./NameTenantMain\";\nimport { IMkEnvs, resourcesConfigurations } from \"./utils\";\nimport { selFeatures } from \"../../../../consoleSlice\";\n\nconst TenantResources = () => {\n const features = useSelector(selFeatures);\n const [formRender, setFormRender] = useState(null);\n\n useEffect(() => {\n let setConfiguration = IMkEnvs.default;\n\n if (features && features.length !== 0) {\n const possibleVariables = Object.keys(resourcesConfigurations);\n\n possibleVariables.forEach((element) => {\n if (features.includes(element)) {\n setConfiguration = get(\n resourcesConfigurations,\n element,\n IMkEnvs.default,\n );\n }\n });\n }\n\n setFormRender(setConfiguration);\n }, [features]);\n\n if (formRender === null) {\n return null;\n }\n\n return ;\n};\n\nexport default TenantResources;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nexport const requiredPages = [\n \"nameTenant\",\n \"tenantSize\",\n \"configure\",\n \"affinity\",\n \"identityProvider\",\n \"security\",\n \"encryption\",\n];\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Button } from \"mds\";\nimport React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport { requiredPages } from \"./common\";\nimport { createTenantAsync } from \"./thunks/createTenantThunk\";\n\nconst CreateTenantButton = () => {\n const dispatch = useAppDispatch();\n\n const addSending = useSelector(\n (state: AppState) => state.createTenant.addingTenant,\n );\n\n const validPages = useSelector(\n (state: AppState) => state.createTenant.validPages,\n );\n\n const selectedStorageClass = useSelector(\n (state: AppState) =>\n state.createTenant.fields.nameTenant.selectedStorageClass,\n );\n\n const enabled =\n !addSending &&\n selectedStorageClass !== \"\" &&\n requiredPages.every((v) => validPages.includes(v));\n\n return (\n {\n dispatch(createTenantAsync());\n }}\n disabled={!enabled}\n key={`button-AddTenant-Create`}\n label={\"Create\"}\n />\n );\n};\n\nexport default CreateTenantButton;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport CredentialsPrompt from \"../../Common/CredentialsPrompt/CredentialsPrompt\";\nimport { resetAddTenantForm } from \"./createTenantSlice\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport { useNavigate } from \"react-router-dom\";\n\nconst NewTenantCredentials = () => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n\n const showNewCredentials = useSelector(\n (state: AppState) => state.createTenant.showNewCredentials,\n );\n const createdAccount = useSelector(\n (state: AppState) => state.createTenant.createdAccount,\n );\n\n return (\n \n {showNewCredentials && (\n {\n dispatch(resetAddTenantForm());\n navigate(\"/tenants\");\n }}\n entity=\"Tenant\"\n />\n )}\n \n );\n};\n\nexport default NewTenantCredentials;\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport get from \"lodash/get\";\nimport { useSelector } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport { LinearProgress } from \"@mui/material\";\n\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n modalBasic,\n settingsCommon,\n wizardCommon,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport GenericWizard from \"../../Common/GenericWizard/GenericWizard\";\nimport {\n IWizardButton,\n IWizardElement,\n} from \"../../Common/GenericWizard/types\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport Configure from \"./Steps/Configure\";\nimport IdentityProvider from \"./Steps/IdentityProvider\";\nimport Security from \"./Steps/Security\";\nimport Encryption from \"./Steps/Encryption\";\nimport Affinity from \"./Steps/Affinity\";\nimport Images from \"./Steps/Images\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\n\nimport TenantResources from \"./Steps/TenantResources/TenantResources\";\nimport {\n IMkEnvs,\n resourcesConfigurations,\n} from \"./Steps/TenantResources/utils\";\nimport { BackLink, HelpBox, StorageIcon } from \"mds\";\nimport { selFeatures } from \"../../consoleSlice\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { resetAddTenantForm } from \"./createTenantSlice\";\nimport CreateTenantButton from \"./CreateTenantButton\";\nimport NewTenantCredentials from \"./NewTenantCredentials\";\nimport { useNavigate } from \"react-router-dom\";\nimport PageHeaderWrapper from \"../../Common/PageHeaderWrapper/PageHeaderWrapper\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n pageBox: {\n border: \"1px solid #EAEAEA\",\n },\n ...modalBasic,\n ...wizardCommon,\n ...settingsCommon,\n }),\n);\n\nconst AddTenant = () => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n const classes = useStyles();\n\n const features = useSelector(selFeatures);\n\n // Fields\n const addSending = useSelector(\n (state: AppState) => state.createTenant.addingTenant,\n );\n const [formRender, setFormRender] = useState(null);\n\n useEffect(() => {\n let setConfiguration = IMkEnvs.default;\n\n if (features && features.length !== 0) {\n const possibleVariables = Object.keys(resourcesConfigurations);\n\n possibleVariables.forEach((element) => {\n if (features.includes(element)) {\n setConfiguration = get(\n resourcesConfigurations,\n element,\n IMkEnvs.default,\n );\n }\n });\n }\n\n setFormRender(setConfiguration);\n }, [features]);\n\n const cancelButton = {\n label: \"Cancel\",\n type: \"other\",\n enabled: true,\n action: () => {\n dispatch(resetAddTenantForm());\n navigate(\"/tenants\");\n },\n };\n\n const createButton: IWizardButton = {\n componentRender: ,\n };\n\n const wizardSteps: IWizardElement[] = [\n {\n label: \"Setup\",\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Configure\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Images\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Pod Placement\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Identity Provider\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Security\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Encryption\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n ];\n\n let filteredWizardSteps = wizardSteps;\n\n return (\n \n \n {\n dispatch(resetAddTenantForm());\n navigate(\"/tenants\");\n }}\n label={\"Tenants\"}\n />\n }\n />\n\n \n {addSending && (\n \n \n \n )}\n \n \n \n {formRender === IMkEnvs.aws && (\n \n }\n help={\n \n Performance Optimized: Uses the gp3 EBS storage\n class class configured at 1,000Mi/s throughput and 16,000\n IOPS, however the minimum volume size for this type of EBS\n volume is 32Gi.\n
\n
\n Storage Optimized: Uses the sc1 EBS storage\n class, however the minimum volume size for this type of EBS\n volume is  \n 16Ti to unlock their maximum throughput speed of\n 250Mi/s.\n
\n }\n />\n
\n )}\n
\n
\n );\n};\n\nexport default AddTenant;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Box } from \"@mui/material\";\nimport { CertificateIcon } from \"mds\";\nimport { useParams } from \"react-router-dom\";\nimport { AppState } from \"../../../../store\";\n\nconst FeatureItem = ({\n icon,\n description,\n}: {\n icon: any;\n description: string;\n}) => {\n return (\n \n {icon}{\" \"}\n
\n {description}\n
\n \n );\n};\nconst TLSHelpBox = () => {\n const params = useParams();\n const tenantNameParam = params.tenantName || \"\";\n const tenantNamespaceParam = params.tenantNamespace || \"\";\n const namespace = useSelector((state: AppState) => {\n var defaultNamespace = \"\";\n if (tenantNamespaceParam !== \"\") {\n return tenantNamespaceParam;\n }\n if (state.createTenant.fields.nameTenant.namespace !== \"\") {\n return state.createTenant.fields.nameTenant.namespace;\n }\n return defaultNamespace;\n });\n\n const tenantName = useSelector((state: AppState) => {\n var defaultTenantName = \"\";\n if (tenantNameParam !== \"\") {\n return tenantNameParam;\n }\n\n if (state.createTenant.fields.nameTenant.tenantName !== \"\") {\n return state.createTenant.fields.nameTenant.tenantName;\n }\n return defaultTenantName;\n });\n\n return (\n \n \n }\n description={`TLS Certificates Warning`}\n />\n \n Automatic certificate generation is not enabled.\n
\n
\n If you wish to continue only with custom certificates make sure\n they are valid for the following internode hostnames, i.e.:\n
\n
\n \n minio.{namespace}\n
\n minio.{namespace}.svc\n
\n minio.{namespace}.svc.<cluster domain>\n
\n *.{tenantName}-hl.{namespace}.svc.<cluster domain>\n
\n *.{namespace}.svc.<cluster domain>\n \n
\n Replace <tenant-name>,{\" \"}\n <namespace> and\n <cluster domain> with the actual values for your\n MinIO tenant.\n
\n
\n You can learn more at our{\" \"}\n \n documentation\n \n .\n
\n \n \n );\n};\n\nexport default TLSHelpBox;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Grid } from \"@mui/material\";\nimport { LDAPIcon, OIDCIcon, UsersIcon } from \"mds\";\n\nexport const OIDCLogoElement = () => {\n return (\n \n \n \n \n Open ID\n \n );\n};\n\nexport const LDAPLogoElement = () => {\n return (\n \n \n \n \n LDAP / Active Directory\n \n );\n};\n\nexport const BuiltInLogoElement = () => {\n return (\n \n \n \n \n Built-in\n \n );\n};\n","import React from \"react\";\nimport Typography from \"@mui/material/Typography\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n errorBlock: {\n color: theme.palette?.error.main || \"#C83B51\",\n },\n });\n\ninterface IErrorBlockProps {\n classes: any;\n errorMessage: string;\n withBreak?: boolean;\n}\n\nconst ErrorBlock = ({\n classes,\n errorMessage,\n withBreak = true,\n}: IErrorBlockProps) => {\n return (\n \n {withBreak &&
}\n \n {errorMessage}\n \n
\n );\n};\n\nexport default withStyles(styles)(ErrorBlock);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"\n}), 'Add');\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z\"\n}), 'AttachFile');\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z\"\n}), 'Cancel');\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM7.5 18c-.83 0-1.5-.67-1.5-1.5S6.67 15 7.5 15s1.5.67 1.5 1.5S8.33 18 7.5 18zm0-9C6.67 9 6 8.33 6 7.5S6.67 6 7.5 6 9 6.67 9 7.5 8.33 9 7.5 9zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm0-9c-.83 0-1.5-.67-1.5-1.5S15.67 6 16.5 6s1.5.67 1.5 1.5S17.33 9 16.5 9z\"\n}), 'Casino');\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\"\n}), 'Delete');\nexports.default = _default;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"absolute\", \"children\", \"className\", \"component\", \"flexItem\", \"light\", \"orientation\", \"role\", \"textAlign\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getDividerUtilityClass } from './dividerClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n absolute,\n children,\n classes,\n flexItem,\n light,\n orientation,\n textAlign,\n variant\n } = ownerState;\n const slots = {\n root: ['root', absolute && 'absolute', variant, light && 'light', orientation === 'vertical' && 'vertical', flexItem && 'flexItem', children && 'withChildren', children && orientation === 'vertical' && 'withChildrenVertical', textAlign === 'right' && orientation !== 'vertical' && 'textAlignRight', textAlign === 'left' && orientation !== 'vertical' && 'textAlignLeft'],\n wrapper: ['wrapper', orientation === 'vertical' && 'wrapperVertical']\n };\n return composeClasses(slots, getDividerUtilityClass, classes);\n};\nconst DividerRoot = styled('div', {\n name: 'MuiDivider',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.absolute && styles.absolute, styles[ownerState.variant], ownerState.light && styles.light, ownerState.orientation === 'vertical' && styles.vertical, ownerState.flexItem && styles.flexItem, ownerState.children && styles.withChildren, ownerState.children && ownerState.orientation === 'vertical' && styles.withChildrenVertical, ownerState.textAlign === 'right' && ownerState.orientation !== 'vertical' && styles.textAlignRight, ownerState.textAlign === 'left' && ownerState.orientation !== 'vertical' && styles.textAlignLeft];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n margin: 0,\n // Reset browser default style.\n flexShrink: 0,\n borderWidth: 0,\n borderStyle: 'solid',\n borderColor: (theme.vars || theme).palette.divider,\n borderBottomWidth: 'thin'\n}, ownerState.absolute && {\n position: 'absolute',\n bottom: 0,\n left: 0,\n width: '100%'\n}, ownerState.light && {\n borderColor: theme.vars ? `rgba(${theme.vars.palette.dividerChannel} / 0.08)` : alpha(theme.palette.divider, 0.08)\n}, ownerState.variant === 'inset' && {\n marginLeft: 72\n}, ownerState.variant === 'middle' && ownerState.orientation === 'horizontal' && {\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(2)\n}, ownerState.variant === 'middle' && ownerState.orientation === 'vertical' && {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1)\n}, ownerState.orientation === 'vertical' && {\n height: '100%',\n borderBottomWidth: 0,\n borderRightWidth: 'thin'\n}, ownerState.flexItem && {\n alignSelf: 'stretch',\n height: 'auto'\n}), ({\n ownerState\n}) => _extends({}, ownerState.children && {\n display: 'flex',\n whiteSpace: 'nowrap',\n textAlign: 'center',\n border: 0,\n '&::before, &::after': {\n content: '\"\"',\n alignSelf: 'center'\n }\n}), ({\n theme,\n ownerState\n}) => _extends({}, ownerState.children && ownerState.orientation !== 'vertical' && {\n '&::before, &::after': {\n width: '100%',\n borderTop: `thin solid ${(theme.vars || theme).palette.divider}`\n }\n}), ({\n theme,\n ownerState\n}) => _extends({}, ownerState.children && ownerState.orientation === 'vertical' && {\n flexDirection: 'column',\n '&::before, &::after': {\n height: '100%',\n borderLeft: `thin solid ${(theme.vars || theme).palette.divider}`\n }\n}), ({\n ownerState\n}) => _extends({}, ownerState.textAlign === 'right' && ownerState.orientation !== 'vertical' && {\n '&::before': {\n width: '90%'\n },\n '&::after': {\n width: '10%'\n }\n}, ownerState.textAlign === 'left' && ownerState.orientation !== 'vertical' && {\n '&::before': {\n width: '10%'\n },\n '&::after': {\n width: '90%'\n }\n}));\nconst DividerWrapper = styled('span', {\n name: 'MuiDivider',\n slot: 'Wrapper',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.wrapper, ownerState.orientation === 'vertical' && styles.wrapperVertical];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'inline-block',\n paddingLeft: `calc(${theme.spacing(1)} * 1.2)`,\n paddingRight: `calc(${theme.spacing(1)} * 1.2)`\n}, ownerState.orientation === 'vertical' && {\n paddingTop: `calc(${theme.spacing(1)} * 1.2)`,\n paddingBottom: `calc(${theme.spacing(1)} * 1.2)`\n}));\nconst Divider = /*#__PURE__*/React.forwardRef(function Divider(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDivider'\n });\n const {\n absolute = false,\n children,\n className,\n component = children ? 'div' : 'hr',\n flexItem = false,\n light = false,\n orientation = 'horizontal',\n role = component !== 'hr' ? 'separator' : undefined,\n textAlign = 'center',\n variant = 'fullWidth'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n absolute,\n component,\n flexItem,\n light,\n orientation,\n role,\n textAlign,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(DividerRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n role: role,\n ref: ref,\n ownerState: ownerState\n }, other, {\n children: children ? /*#__PURE__*/_jsx(DividerWrapper, {\n className: classes.wrapper,\n ownerState: ownerState,\n children: children\n }) : null\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Divider.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * Absolutely position the element.\n * @default false\n */\n absolute: PropTypes.bool,\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, a vertical divider will have the correct height when used in flex container.\n * (By default, a vertical divider will have a calculated height of `0px` if it is the child of a flex container.)\n * @default false\n */\n flexItem: PropTypes.bool,\n /**\n * If `true`, the divider will have a lighter color.\n * @default false\n */\n light: PropTypes.bool,\n /**\n * The component orientation.\n * @default 'horizontal'\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n /**\n * @ignore\n */\n role: PropTypes /* @typescript-to-proptypes-ignore */.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The text alignment.\n * @default 'center'\n */\n textAlign: PropTypes.oneOf(['center', 'left', 'right']),\n /**\n * The variant to use.\n * @default 'fullWidth'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['fullWidth', 'inset', 'middle']), PropTypes.string])\n} : void 0;\nexport default Divider;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getInputAdornmentUtilityClass(slot) {\n return generateUtilityClass('MuiInputAdornment', slot);\n}\nconst inputAdornmentClasses = generateUtilityClasses('MuiInputAdornment', ['root', 'filled', 'standard', 'outlined', 'positionStart', 'positionEnd', 'disablePointerEvents', 'hiddenLabel', 'sizeSmall']);\nexport default inputAdornmentClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar _span;\nconst _excluded = [\"children\", \"className\", \"component\", \"disablePointerEvents\", \"disableTypography\", \"position\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport capitalize from '../utils/capitalize';\nimport Typography from '../Typography';\nimport FormControlContext from '../FormControl/FormControlContext';\nimport useFormControl from '../FormControl/useFormControl';\nimport styled from '../styles/styled';\nimport inputAdornmentClasses, { getInputAdornmentUtilityClass } from './inputAdornmentClasses';\nimport useThemeProps from '../styles/useThemeProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`position${capitalize(ownerState.position)}`], ownerState.disablePointerEvents === true && styles.disablePointerEvents, styles[ownerState.variant]];\n};\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disablePointerEvents,\n hiddenLabel,\n position,\n size,\n variant\n } = ownerState;\n const slots = {\n root: ['root', disablePointerEvents && 'disablePointerEvents', position && `position${capitalize(position)}`, variant, hiddenLabel && 'hiddenLabel', size && `size${capitalize(size)}`]\n };\n return composeClasses(slots, getInputAdornmentUtilityClass, classes);\n};\nconst InputAdornmentRoot = styled('div', {\n name: 'MuiInputAdornment',\n slot: 'Root',\n overridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n height: '0.01em',\n // Fix IE11 flexbox alignment. To remove at some point.\n maxHeight: '2em',\n alignItems: 'center',\n whiteSpace: 'nowrap',\n color: (theme.vars || theme).palette.action.active\n}, ownerState.variant === 'filled' && {\n // Styles applied to the root element if `variant=\"filled\"`.\n [`&.${inputAdornmentClasses.positionStart}&:not(.${inputAdornmentClasses.hiddenLabel})`]: {\n marginTop: 16\n }\n}, ownerState.position === 'start' && {\n // Styles applied to the root element if `position=\"start\"`.\n marginRight: 8\n}, ownerState.position === 'end' && {\n // Styles applied to the root element if `position=\"end\"`.\n marginLeft: 8\n}, ownerState.disablePointerEvents === true && {\n // Styles applied to the root element if `disablePointerEvents={true}`.\n pointerEvents: 'none'\n}));\nconst InputAdornment = /*#__PURE__*/React.forwardRef(function InputAdornment(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiInputAdornment'\n });\n const {\n children,\n className,\n component = 'div',\n disablePointerEvents = false,\n disableTypography = false,\n position,\n variant: variantProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const muiFormControl = useFormControl() || {};\n let variant = variantProp;\n if (variantProp && muiFormControl.variant) {\n if (process.env.NODE_ENV !== 'production') {\n if (variantProp === muiFormControl.variant) {\n console.error('MUI: The `InputAdornment` variant infers the variant prop ' + 'you do not have to provide one.');\n }\n }\n }\n if (muiFormControl && !variant) {\n variant = muiFormControl.variant;\n }\n const ownerState = _extends({}, props, {\n hiddenLabel: muiFormControl.hiddenLabel,\n size: muiFormControl.size,\n disablePointerEvents,\n position,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(FormControlContext.Provider, {\n value: null,\n children: /*#__PURE__*/_jsx(InputAdornmentRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: typeof children === 'string' && !disableTypography ? /*#__PURE__*/_jsx(Typography, {\n color: \"text.secondary\",\n children: children\n }) : /*#__PURE__*/_jsxs(React.Fragment, {\n children: [position === 'start' ? /* notranslate needed while Google Translate will not fix zero-width space issue */_span || (_span = /*#__PURE__*/_jsx(\"span\", {\n className: \"notranslate\",\n children: \"\\u200B\"\n })) : null, children]\n })\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? InputAdornment.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the component, normally an `IconButton` or string.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * Disable pointer events on the root.\n * This allows for the content of the adornment to focus the `input` on click.\n * @default false\n */\n disablePointerEvents: PropTypes.bool,\n /**\n * If children is a string then disable wrapping in a Typography component.\n * @default false\n */\n disableTypography: PropTypes.bool,\n /**\n * The position this adornment should appear relative to the `Input`.\n */\n position: PropTypes.oneOf(['end', 'start']).isRequired,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant to use.\n * Note: If you are using the `TextField` component or the `FormControl` component\n * you do not have to set this manually.\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default InputAdornment;"],"names":["withStyles","theme","createStyles","container","display","flexFlow","padding","inputWithCopy","width","background","height","marginRight","inputLabel","_objectSpread","fieldBasic","fontSize","_ref","_ref$label","label","_ref$value","value","_ref$classes","classes","_jsxs","className","children","_jsx","OutlinedInput","readOnly","endAdornment","InputAdornment","position","TooltipWrapper","tooltip","CopyToClipboard","text","Button","id","onClick","onMouseDown","style","icon","CopyIcon","download","filename","element","document","createElement","setAttribute","body","appendChild","click","removeChild","warningBlock","color","margin","alignItems","credentialTitle","fontWeight","buttonContainer","justifyContent","marginTop","credentialsPanel","overflowY","maxHeight","promptTitle","buttonSpacer","newServiceAccount","open","closeModal","entity","consoleCreds","get","idp","ModalWrapper","modalOpen","onClose","title","titleIcon","ServiceAccountCredentialsIcon","Grid","item","xs","formScrollable","React","Array","isArray","map","credentialsPair","index","_Fragment","CredentialItem","accessKey","secretKey","undefined","WarnIcon","consoleExtras","itemMap","url","api","path","JSON","stringify","DownloadIcon","variant","length","allCredentials","_ref$tooltip","_ref$mode","mode","onBeforeChange","_ref$editorHeight","editorHeight","sx","marginBottom","InputLabel","tooltipContainer","Tooltip","placement","HelpIcon","overflow","border","CodeEditor","language","onChange","evn","target","backgroundColor","fontFamily","minHeight","borderTop","Box","paddingRight","marginLeft","type","tooltipHelper","valueString","maxWidth","whiteSpace","textOverflow","fileInputField","fileInputStyles","textBoxContainer","paddingLeft","name","_ref$disabled","disabled","required","_ref$error","error","_ref$accept","accept","_useState","useState","_useState2","_slicedToArray","showFileSelector","setShowSelector","concat","fieldBottom","fieldContainer","errorInField","htmlFor","fieldLabelError","e","fileName","evt","callback","file","files","reader","FileReader","readAsDataURL","onload","fileBase64","result","fileArray","toString","split","fileProcess","data","IconButton","component","disableRipple","disableFocusRipple","size","CancelIcon","ErrorBlock","errorMessage","fileReselect","AttachFileIcon","FormHr","styled","_templateObject","_taggedTemplateLiteral","deleteDialogStyles","content","paddingBottom","customDialogSize","snackBarCommon","_ref$wideLimit","wideLimit","noContentPadding","_ref$titleIcon","dispatch","useAppDispatch","openSnackbar","setOpenSnackbar","modalSnackMessage","useSelector","state","system","modalSnackBar","useEffect","setModalSnackMessage","message","customSize","paper","fullWidth","detailedErrorMsg","Dialog","scroll","event","reason","root","DialogTitle","titleText","closeContainer","closeButton","CloseIcon","MainError","isModal","Snackbar","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","DialogContent","_ref$errorProps","errorProps","cloneElement","configSectionItem","tenantCustomizationFields","containerItem","fieldGroup","createTenantCommon","paddingTop","responsiveSectionItem","wrapperContainer","envVarRow","borderBottom","flex","minWidth","fileItem","rowActions","overlayAction","modalBasic","wizardCommon","formFieldStyles","exposeMinIO","createTenant","fields","configure","exposeConsole","exposeSFTP","setDomains","consoleDomain","minioDomains","tenantCustom","tenantEnvVars","envVars","tenantSecurityContext","customRuntime","runtimeClassName","validationErrors","setValidationErrors","updateField","useCallback","field","updateAddField","pageName","customAccountValidation","fieldKey","runAsUser","customValidation","parseInt","customValidationMessage","runAsGroup","fsGroup","minioExtraValidations","validation","pattern","customPatternMessage","_toConsumableArray","commonVal","commonFormValidation","isPageValid","valid","Object","keys","cleanValidation","fieldName","clearValidationError","Paper","paperWrapper","headerElement","H3Section","descriptionText","h3Section","FormSwitchWrapper","checked","InputBoxWrapper","placeholder","domain","copyDomains","updateMinIODomain","addNewMinIODomain","AddIcon","removeMinIODomain","RemoveIcon","multiContainer","min","SelectWrapper","fsGroupChangePolicy","options","runAsNonRoot","Divider","envVar","formFieldRow","key","existingEnvVars","setEnvVars","keyPair","i","push","filter","fIndex","useStyles","makeStyles","adUserDnRows","buttonTray","idpSelection","identityProvider","ADURL","ADSkipTLS","ADServerInsecure","ADGroupSearchBaseDN","ADGroupSearchFilter","ADUserDNs","ADGroupDNs","ADLookupBindDN","ADLookupBindPassword","ADUserDNSearchBaseDN","ADUserDNSearchFilter","ADServerStartTLS","customIDPValidation","Fragment","Typography","gutterBottom","_","setIDPADUsrAtIndex","userDN","addIDPADUsrAtIndex","removeIDPADUsrAtIndex","DeleteIcon","setIDPADGroupAtIndex","addIDPADGroupAtIndex","removeIDPADGroupAtIndex","openIDConfigurationURL","openIDClientID","openIDSecretID","openIDClaimName","openIDScopes","shortened","gridTemplateColumns","gridGap","accessKeys","secretKeys","setIDPUsrAtIndex","setIDPPwdAtIndex","addIDPNewKeyPair","removeIDPKeyPairAtIndex","getRandomString","CasinoIcon","protocolRadioOptions","RadioGroupSelector","currentSelection","setIDP","selectorOptions","BuiltInLogoElement","OIDCLogoElement","LDAPLogoElement","IDPBuiltIn","IDPOpenID","IDPActiveDirectory","minioCertificateRows","minioCertsContainer","minioCACertsRow","enableTLS","security","enableAutoCert","enableCustomCerts","minioCertificates","certificates","minioServerCertificates","minioClientCertificates","caCertificates","minioCAsCertificates","spacing","description","TLSHelpBox","FileSelector","encodedValue","addFileToKeyPair","cert","addKeyPair","deleteKeyPair","addFileToClientKeyPair","addClientKeyPair","deleteClientKeyPair","addFileToCaCertificates","addCaCertificate","deleteCaCertificate","encryptionTab","encryption","vaultEndpoint","vaultEngine","vaultNamespace","vaultPrefix","vaultAppRoleEngine","vaultId","vaultSecret","vaultRetry","vaultPing","encryptionValidation","azureEndpoint","azureTenantID","azureClientID","azureClientSecret","gcpProjectID","gcpEndpoint","gcpClientEmail","gcpClientID","gcpPrivateKeyID","gcpPrivateKey","gemaltoEndpoint","gemaltoToken","gemaltoDomain","gemaltoRetry","awsEndpoint","awsRegion","awsKMSKey","awsAccessKey","awsSecretKey","awsToken","encryptionTypeOptions","mutualTlsConfig","rightSpacer","responsiveContainer","replicas","rawConfiguration","enableEncryption","encryptionType","enableCustomCertsForKES","kesServerCertificate","minioMTLSCertificate","kmsMTLSCertificate","kmsCA","kesSecurityContext","encryptionAvailable","encoded_key","encoded_cert","SectionH1","textAlign","indicatorLabels","Tabs","indicatorColor","textColor","scrollButtons","Tab","CodeMirrorWrapper","editor","VaultKMSAdd","AzureKMSAdd","GCPKMSAdd","AWSKMSAdd","GemaltoKMSAdd","addFileKESServerCert","addFileMinIOMTLSCert","addFileKMSMTLSCert","addFileKMSCa","affinityConfigField","affinityFieldLabel","radioField","affinityLabelKey","affinityLabelValue","affinityRow","podAffinity","affinity","nodeSelectorLabels","withPodAntiAffinity","keyValuePairs","nodeSelectorPairs","tolerations","_useState3","_useState4","loading","setLoading","_useState5","_useState6","keyValueMap","setKeyValueMap","_useState7","_useState8","keyOptions","setKeyOptions","invoke","then","res","k","catch","err","setModalErrorSnackMessage","vl","kvp","kvs","a","indexOf","join","splittedLabels","forEach","splitItem","updateToleration","alterToleration","_defineProperty","setTolerationInfo","tolerationValue","affinityHelpText","newKey","newLKP","arrCp","setKeyValuePairs","v","tol","_tol$tolerationSecond","TolerationSelector","effect","onEffectChange","tolerationKey","onTolerationKeyChange","operator","onOperatorChange","onValueChange","tolerationSeconds","seconds","onSecondsChange","addNewToleration","removeToleration","customImage","imageName","customDockerhub","imageRegistry","imageRegistryUsername","imageRegistryPassword","kesImage","table","nodes","tenantSize","memoryNode","resourcesMemoryRequest","ecParity","distribution","ecParityCalc","cpuToUse","resourcesCPURequest","integrationSelection","usableInformation","storageFactors","find","erasureCode","Table","TableBody","TableRow","TableCell","scope","align","typeSelection","storageClass","disks","niceBytes","pvSize","persistentVolumes","rawCapacity","maxCapacity","Math","floor","maxFailureTolerations","CPU","memory","drivesPerServer","driveSize","sizeUnit","wrapText","wordWrap","namespace","nameTenant","addNamespaceLoading","addNSLoading","addNamespaceOpen","addNSOpen","ConfirmDialog","confirmText","confirmButtonProps","isOpen","ConfirmModalIcon","isLoading","onConfirm","createNamespaceAsync","closeAddNSModal","confirmationContent","LinearProgress","DialogContentText","formToRender","showNSCreateButton","namespaceError","openAddNSConfirm","debounceNamespace","useMemo","debounce","validateNamespaceAsync","cancel","AddNamespaceModal","setNamespace","overlayId","overlayIcon","openAddNSModal","NameTenantField","tenantName","tenantNameError","setTenantName","sizePreview","selectedStorageClass","selectedStorageType","storageClasses","features","selFeatures","isValid","IMkEnvs","default","NamespaceSelector","setStorageType","storageType","mkPanelConfigurations","TenantSize","SizePreview","formRender","setFormRender","setConfiguration","resourcesConfigurations","includes","NameTenantMain","requiredPages","addSending","addingTenant","validPages","enabled","every","createTenantAsync","navigate","useNavigate","showNewCredentials","createdAccount","CredentialsPrompt","resetAddTenantForm","pageBox","settingsCommon","cancelButton","action","createButton","componentRender","CreateTenantButton","filteredWizardSteps","TenantResources","buttons","advancedOnly","Configure","Images","Affinity","IdentityProvider","Security","Encryption","NewTenantCredentials","PageHeaderWrapper","BackLink","PageLayout","GenericWizard","wizardSteps","aws","HelpBox","iconComponent","StorageIcon","help","FeatureItem","fontStyle","params","useParams","tenantNameParam","tenantNamespaceParam","tenantNamespace","borderRadius","CertificateIcon","href","rel","columnGap","OIDCIcon","LDAPIcon","UsersIcon","_theme$palette","errorBlock","palette","main","_ref$withBreak","withBreak","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","jsx","d","_excluded","DividerRoot","slot","overridesResolver","props","styles","ownerState","absolute","light","orientation","vertical","flexItem","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","_extends","flexShrink","borderWidth","borderStyle","borderColor","vars","divider","borderBottomWidth","bottom","left","dividerChannel","alpha","borderRightWidth","alignSelf","_ref2","_ref3","_ref4","flexDirection","borderLeft","_ref5","DividerWrapper","wrapper","wrapperVertical","_ref6","inProps","ref","useThemeProps","_props$absolute","_props$component","_props$flexItem","_props$light","_props$orientation","_props$role","role","_props$textAlign","_props$variant","other","_objectWithoutPropertiesLoose","slots","composeClasses","getDividerUtilityClass","useUtilityClasses","as","clsx","getInputAdornmentUtilityClass","generateUtilityClass","_span","generateUtilityClasses","InputAdornmentRoot","capitalize","disablePointerEvents","active","inputAdornmentClasses","positionStart","hiddenLabel","pointerEvents","_props$disablePointer","_props$disableTypogra","disableTypography","variantProp","muiFormControl","useFormControl","FormControlContext","Provider"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/292.5b893eb9.chunk.js","mappings":"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","sources":["screens/Console/Common/CredentialsPrompt/CredentialItem.tsx","screens/Console/Common/CredentialsPrompt/CredentialsPrompt.tsx","screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.tsx","screens/Console/Common/FormComponents/FileSelector/FileSelector.tsx","screens/Console/Common/FormComponents/FileSelector/utils.ts","screens/Console/Common/FormHr.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Common/TooltipWrapper/TooltipWrapper.tsx","screens/Console/Tenants/AddTenant/Steps/Configure.tsx","screens/Console/Tenants/AddTenant/Steps/IdentityProvider/IDPActiveDirectory.tsx","screens/Console/Tenants/AddTenant/Steps/IdentityProvider/IDPOpenID.tsx","screens/Console/Tenants/AddTenant/Steps/IdentityProvider/IDPBuiltIn.tsx","screens/Console/Tenants/AddTenant/Steps/IdentityProvider.tsx","screens/Console/Tenants/AddTenant/Steps/Security.tsx","screens/Console/Common/SectionH1.tsx","screens/Console/Tenants/AddTenant/Steps/Encryption/VaultKMSAdd.tsx","screens/Console/Tenants/AddTenant/Steps/Encryption/AzureKMSAdd.tsx","screens/Console/Tenants/AddTenant/Steps/Encryption/GCPKMSAdd.tsx","screens/Console/Tenants/AddTenant/Steps/Encryption/GemaltoKMSAdd.tsx","screens/Console/Tenants/AddTenant/Steps/Encryption/AWSKMSAdd.tsx","screens/Console/Tenants/AddTenant/Steps/Encryption.tsx","screens/Console/Tenants/AddTenant/Steps/Affinity.tsx","screens/Console/Tenants/AddTenant/Steps/Images.tsx","screens/Console/Tenants/AddTenant/Steps/SizePreview.tsx","screens/Console/Tenants/AddTenant/Steps/helpers/AddNamespaceModal.tsx","screens/Console/Tenants/AddTenant/Steps/TenantResources/NamespaceSelector.tsx","screens/Console/Tenants/AddTenant/Steps/TenantResources/NameTenantMain.tsx","screens/Console/Tenants/AddTenant/Steps/TenantResources/TenantResources.tsx","screens/Console/Tenants/AddTenant/common.ts","screens/Console/Tenants/AddTenant/CreateTenantButton.tsx","screens/Console/Tenants/AddTenant/NewTenantCredentials.tsx","screens/Console/Tenants/AddTenant/AddTenant.tsx","screens/Console/Tenants/HelpBox/TLSHelpBox.tsx","screens/Console/Tenants/LogoComponents.tsx","screens/shared/ErrorBlock.tsx","../node_modules/@mui/icons-material/Add.js","../node_modules/@mui/icons-material/AttachFile.js","../node_modules/@mui/icons-material/Cancel.js","../node_modules/@mui/icons-material/Casino.js","../node_modules/@mui/icons-material/Delete.js","../node_modules/@mui/material/Divider/Divider.js","../node_modules/@mui/material/InputAdornment/inputAdornmentClasses.js","../node_modules/@mui/material/InputAdornment/InputAdornment.js"],"sourcesContent":["// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { InputAdornment, OutlinedInput } from \"@mui/material\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport { Button, CopyIcon } from \"mds\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport { fieldBasic } from \"../FormComponents/common/styleLibrary\";\nimport TooltipWrapper from \"../TooltipWrapper/TooltipWrapper\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n container: {\n display: \"flex\",\n flexFlow: \"column\",\n padding: \"20px 0 8px 0\",\n },\n inputWithCopy: {\n \"& .MuiInputBase-root \": {\n width: \"100%\",\n background: \"#FBFAFA\",\n \"& .MuiInputBase-input\": {\n height: \".8rem\",\n },\n \"& .MuiInputAdornment-positionEnd\": {\n marginRight: \".5rem\",\n \"& .MuiButtonBase-root\": {\n height: \"2rem\",\n },\n },\n },\n \"& .MuiButtonBase-root .min-icon\": {\n width: \".8rem\",\n height: \".8rem\",\n },\n },\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontSize: \".8rem\",\n },\n });\n\nconst CredentialItem = ({\n label = \"\",\n value = \"\",\n classes = {},\n}: {\n label: string;\n value: string;\n classes: any;\n}) => {\n return (\n
\n
{label}:
\n
\n \n \n \n {}}\n onMouseDown={() => {}}\n style={{\n width: \"28px\",\n height: \"28px\",\n padding: \"0px\",\n }}\n icon={}\n />\n \n \n \n }\n />\n
\n
\n );\n};\n\nexport default withStyles(styles)(CredentialItem);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport {\n Button,\n DownloadIcon,\n ServiceAccountCredentialsIcon,\n WarnIcon,\n} from \"mds\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { NewServiceAccount } from \"./types\";\nimport ModalWrapper from \"../ModalWrapper/ModalWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport CredentialItem from \"./CredentialItem\";\nimport TooltipWrapper from \"../TooltipWrapper/TooltipWrapper\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n warningBlock: {\n color: \"red\",\n fontSize: \".85rem\",\n margin: \".5rem 0 .5rem 0\",\n display: \"flex\",\n alignItems: \"center\",\n \"& svg \": {\n marginRight: \".3rem\",\n height: 16,\n width: 16,\n },\n },\n credentialTitle: {\n padding: \".8rem 0 0 0\",\n fontWeight: 600,\n fontSize: \".9rem\",\n },\n buttonContainer: {\n display: \"flex\",\n justifyContent: \"flex-end\",\n marginTop: \"1rem\",\n },\n credentialsPanel: {\n overflowY: \"auto\",\n maxHeight: 350,\n },\n promptTitle: {\n display: \"flex\",\n alignItems: \"center\",\n },\n buttonSpacer: {\n marginRight: \".9rem\",\n },\n });\n\ninterface ICredentialsPromptProps {\n classes: any;\n newServiceAccount: NewServiceAccount | null;\n open: boolean;\n entity: string;\n closeModal: () => void;\n}\n\nconst download = (filename: string, text: string) => {\n let element = document.createElement(\"a\");\n element.setAttribute(\"href\", \"data:text/plain;charset=utf-8,\" + text);\n element.setAttribute(\"download\", filename);\n\n element.style.display = \"none\";\n document.body.appendChild(element);\n\n element.click();\n document.body.removeChild(element);\n};\n\nconst CredentialsPrompt = ({\n classes,\n newServiceAccount,\n open,\n closeModal,\n entity,\n}: ICredentialsPromptProps) => {\n if (!newServiceAccount) {\n return null;\n }\n const consoleCreds = get(newServiceAccount, \"console\", null);\n const idp = get(newServiceAccount, \"idp\", false);\n\n const downloadImport = () => {\n let consoleExtras = {};\n\n if (consoleCreds) {\n if (!Array.isArray(consoleCreds)) {\n consoleExtras = {\n url: consoleCreds.url,\n accessKey: consoleCreds.accessKey,\n secretKey: consoleCreds.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n } else {\n const cCreds = consoleCreds.map((itemMap) => {\n return {\n url: itemMap.url,\n accessKey: itemMap.accessKey,\n secretKey: itemMap.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n });\n consoleExtras = cCreds[0];\n }\n } else {\n consoleExtras = {\n url: newServiceAccount.url,\n accessKey: newServiceAccount.accessKey,\n secretKey: newServiceAccount.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n }\n\n download(\n \"credentials.json\",\n JSON.stringify({\n ...consoleExtras,\n }),\n );\n };\n\n const downloaddAllCredentials = () => {\n let allCredentials = {};\n if (\n consoleCreds &&\n Array.isArray(consoleCreds) &&\n consoleCreds.length > 1\n ) {\n const cCreds = consoleCreds.map((itemMap) => {\n return {\n accessKey: itemMap.accessKey,\n secretKey: itemMap.secretKey,\n };\n });\n allCredentials = cCreds;\n }\n download(\n \"all_credentials.json\",\n JSON.stringify({\n ...allCredentials,\n }),\n );\n };\n\n return (\n {\n closeModal();\n }}\n title={\n
\n
New {entity} Created
\n
\n }\n titleIcon={}\n >\n \n \n A new {entity} has been created with the following details:\n {!idp && consoleCreds && (\n \n \n
\n Console Credentials\n
\n {Array.isArray(consoleCreds) &&\n consoleCreds.map((credentialsPair, index) => {\n return (\n <>\n \n \n \n );\n })}\n {!Array.isArray(consoleCreds) && (\n <>\n \n \n \n )}\n
\n
\n )}\n {(consoleCreds === null || consoleCreds === undefined) && (\n <>\n \n \n \n )}\n {idp ? (\n
\n Please Login via the configured external identity provider.\n
\n ) : (\n
\n \n \n Write these down, as this is the only time the secret will be\n displayed.\n \n
\n )}\n
\n \n {!idp && (\n <>\n \n }\n variant=\"callAction\"\n />\n \n\n {Array.isArray(consoleCreds) && consoleCreds.length > 1 && (\n \n }\n variant=\"callAction\"\n color=\"primary\"\n />\n \n )}\n \n )}\n \n
\n \n );\n};\n\nexport default withStyles(styles)(CredentialsPrompt);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Box, InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Button, CopyIcon, HelpIcon } from \"mds\";\nimport { fieldBasic } from \"../common/styleLibrary\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport CodeEditor from \"@uiw/react-textarea-code-editor\";\nimport TooltipWrapper from \"../../TooltipWrapper/TooltipWrapper\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n classes: any;\n onChange?: (editor: any, data: any, value: string) => any;\n onBeforeChange: (editor: any, data: any, value: string) => any;\n readOnly?: boolean;\n editorHeight?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n });\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n classes,\n onBeforeChange,\n readOnly = false,\n editorHeight = \"250px\",\n}: ICodeWrapper) => {\n return (\n \n \n \n {label}\n {tooltip !== \"\" && (\n
\n \n
\n \n
\n
\n
\n )}\n
\n
\n\n \n {\n onBeforeChange(null, null, evn.target.value);\n }}\n id={\"code_wrapper\"}\n padding={15}\n style={{\n fontSize: 12,\n backgroundColor: \"#fefefe\",\n fontFamily:\n \"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace\",\n minHeight: editorHeight || \"initial\",\n color: \"#000000\",\n }}\n />\n \n \n \n \n \n }\n color={\"primary\"}\n variant={\"regular\"}\n />\n \n \n \n \n
\n );\n};\n\nexport default withStyles(styles)(CodeMirrorWrapper);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useState } from \"react\";\nimport get from \"lodash/get\";\nimport { Grid, InputLabel, Tooltip } from \"@mui/material\";\nimport IconButton from \"@mui/material/IconButton\";\nimport AttachFileIcon from \"@mui/icons-material/AttachFile\";\nimport CancelIcon from \"@mui/icons-material/Cancel\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n fieldBasic,\n fileInputStyles,\n tooltipHelper,\n} from \"../common/styleLibrary\";\nimport { fileProcess } from \"./utils\";\nimport { HelpIcon } from \"mds\";\nimport ErrorBlock from \"../../../../shared/ErrorBlock\";\n\ninterface InputBoxProps {\n label: string;\n classes: any;\n onChange: (e: string, i: string) => void;\n id: string;\n name: string;\n disabled?: boolean;\n tooltip?: string;\n required?: boolean;\n error?: string;\n accept?: string;\n value?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n valueString: {\n maxWidth: 350,\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n marginTop: 2,\n },\n fileInputField: {\n margin: \"13px 0\",\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n ...fileInputStyles,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n textBoxContainer: {\n ...fieldBasic.textBoxContainer,\n maxWidth: \"100%\",\n border: \"1px solid #eaeaea\",\n paddingLeft: \"15px\",\n },\n });\n\nconst FileSelector = ({\n label,\n classes,\n onChange,\n id,\n name,\n disabled = false,\n tooltip = \"\",\n required,\n error = \"\",\n accept = \"\",\n value = \"\",\n}: InputBoxProps) => {\n const [showFileSelector, setShowSelector] = useState(false);\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n
\n \n
\n \n
\n
\n
\n )}\n \n )}\n\n {showFileSelector || value === \"\" ? (\n
\n {\n const fileName = get(e, \"target.files[0].name\", \"\");\n fileProcess(e, (data: any) => {\n onChange(data, fileName);\n });\n }}\n accept={accept}\n required={required}\n disabled={disabled}\n className={classes.fileInputField}\n />\n\n {value !== \"\" && (\n {\n setShowSelector(false);\n }}\n disableRipple={false}\n disableFocusRipple={false}\n size=\"small\"\n >\n \n \n )}\n\n {error !== \"\" && }\n
\n ) : (\n
\n
{value}
\n {\n setShowSelector(true);\n }}\n disableRipple={false}\n disableFocusRipple={false}\n size=\"small\"\n >\n \n \n
\n )}\n \n
\n );\n};\n\nexport default withStyles(styles)(FileSelector);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nexport const fileProcess = (evt: any, callback: any) => {\n const file = evt.target.files[0];\n const reader = new FileReader();\n reader.readAsDataURL(file);\n\n reader.onload = () => {\n // reader.readAsDataURL(file) output will be something like: data:application/x-x509-ca-cert;base64,LS0tLS1CRUdJTiBDRVJUSU\n // we care only about the actual base64 part (everything after \"data:application/x-x509-ca-cert;base64,\")\n const fileBase64 = reader.result;\n if (fileBase64) {\n const fileArray = fileBase64.toString().split(\"base64,\");\n\n if (fileArray.length === 2) {\n callback(fileArray[1]);\n }\n }\n };\n};\n","// This file is part of MinIO Operator\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport styled from \"@emotion/styled\";\n\nconst FormHr = styled(\"hr\")`\n border-top: 0;\n border-left: 0;\n border-right: 0;\n border-color: #999999;\n background-color: transparent;\n`;\n\nexport default FormHr;\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\nimport { setModalSnackMessage } from \"../../../../systemSlice\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n noContentPadding?: boolean;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n noContentPadding,\n titleIcon = null,\n}: IModalProps) => {\n const dispatch = useAppDispatch();\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n const modalSnackMessage = useSelector(\n (state: AppState) => state.system.modalSnackBar,\n );\n\n useEffect(() => {\n dispatch(setModalSnackMessage(\"\"));\n }, [dispatch]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n dispatch(setModalSnackMessage(\"\"));\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
\n {titleIcon} {title}\n
\n
\n \n \n \n
\n
\n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nexport default withStyles(styles)(ModalWrapper);\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { cloneElement } from \"react\";\nimport { Tooltip } from \"@mui/material\";\n\ninterface ITooltipWrapperProps {\n tooltip: string;\n children: any;\n errorProps?: any;\n placement?:\n | \"bottom-end\"\n | \"bottom-start\"\n | \"bottom\"\n | \"left-end\"\n | \"left-start\"\n | \"left\"\n | \"right-end\"\n | \"right-start\"\n | \"right\"\n | \"top-end\"\n | \"top-start\"\n | \"top\";\n}\n\nconst TooltipWrapper = ({\n tooltip,\n children,\n errorProps = null,\n placement,\n}: ITooltipWrapperProps) => {\n return (\n \n \n {errorProps ? cloneElement(children, { ...errorProps }) : children}\n \n \n );\n};\n\nexport default TooltipWrapper;\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useCallback, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n Divider,\n Grid,\n IconButton,\n Paper,\n SelectChangeEvent,\n} from \"@mui/material\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\n\nimport { AppState, useAppDispatch } from \"../../../../../store\";\nimport { clearValidationError } from \"../../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport { RemoveIcon } from \"mds\";\nimport {\n addNewMinIODomain,\n isPageValid,\n removeMinIODomain,\n setEnvVars,\n updateAddField,\n} from \"../createTenantSlice\";\nimport SelectWrapper from \"../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport H3Section from \"../../../Common/H3Section\";\n\ninterface IConfigureProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n configSectionItem: {\n marginRight: 15,\n marginBottom: 15,\n\n \"& .multiContainer\": {\n border: \"1px solid red\",\n },\n },\n tenantCustomizationFields: {\n marginLeft: 30, // 2nd Level(15+15)\n width: \"88%\",\n margin: \"auto\",\n },\n containerItem: {\n marginRight: 15,\n },\n fieldGroup: {\n ...createTenantCommon.fieldGroup,\n paddingTop: 15,\n marginBottom: 25,\n },\n responsiveSectionItem: {\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n\n \"& div > div\": {\n marginBottom: 5,\n marginRight: 0,\n },\n },\n },\n wrapperContainer: {\n display: \"flex\",\n marginBottom: 15,\n },\n envVarRow: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n \"&:last-child\": {\n borderBottom: 0,\n },\n \"@media (max-width: 900px)\": {\n flex: 1,\n\n \"& div label\": {\n minWidth: 50,\n },\n },\n },\n fileItem: {\n marginRight: 10,\n display: \"flex\",\n \"& div label\": {\n minWidth: 50,\n },\n\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n rowActions: {\n display: \"flex\",\n justifyContent: \"flex-end\",\n \"@media (max-width: 900px)\": {\n flex: 1,\n },\n },\n overlayAction: {\n marginLeft: 10,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n ...modalBasic,\n ...wizardCommon,\n ...formFieldStyles,\n });\n\nconst Configure = ({ classes }: IConfigureProps) => {\n const dispatch = useAppDispatch();\n\n const exposeMinIO = useSelector(\n (state: AppState) => state.createTenant.fields.configure.exposeMinIO,\n );\n const exposeConsole = useSelector(\n (state: AppState) => state.createTenant.fields.configure.exposeConsole,\n );\n const exposeSFTP = useSelector(\n (state: AppState) => state.createTenant.fields.configure.exposeSFTP,\n );\n const setDomains = useSelector(\n (state: AppState) => state.createTenant.fields.configure.setDomains,\n );\n const consoleDomain = useSelector(\n (state: AppState) => state.createTenant.fields.configure.consoleDomain,\n );\n const minioDomains = useSelector(\n (state: AppState) => state.createTenant.fields.configure.minioDomains,\n );\n const tenantCustom = useSelector(\n (state: AppState) => state.createTenant.fields.configure.tenantCustom,\n );\n const tenantEnvVars = useSelector(\n (state: AppState) => state.createTenant.fields.configure.envVars,\n );\n const tenantSecurityContext = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.tenantSecurityContext,\n );\n const customRuntime = useSelector(\n (state: AppState) => state.createTenant.fields.configure.customRuntime,\n );\n const runtimeClassName = useSelector(\n (state: AppState) => state.createTenant.fields.configure.runtimeClassName,\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"configure\", field: field, value: value }),\n );\n },\n [dispatch],\n );\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n if (tenantCustom) {\n customAccountValidation = [\n {\n fieldKey: \"tenant_securityContext_runAsUser\",\n required: true,\n value: tenantSecurityContext.runAsUser,\n customValidation:\n tenantSecurityContext.runAsUser === \"\" ||\n parseInt(tenantSecurityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"tenant_securityContext_runAsGroup\",\n required: true,\n value: tenantSecurityContext.runAsGroup,\n customValidation:\n tenantSecurityContext.runAsGroup === \"\" ||\n parseInt(tenantSecurityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"tenant_securityContext_fsGroup\",\n required: true,\n value: tenantSecurityContext.fsGroup!,\n customValidation:\n tenantSecurityContext.fsGroup === \"\" ||\n parseInt(tenantSecurityContext.fsGroup!) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n ];\n }\n\n if (setDomains) {\n const minioExtraValidations = minioDomains.map((validation, index) => {\n return {\n fieldKey: `minio-domain-${index.toString()}`,\n required: false,\n value: validation,\n pattern: /^(https?):\\/\\/([a-zA-Z0-9\\-.]+)(:[0-9]+)?$/,\n customPatternMessage:\n \"MinIO domain is not in the form of http|https://subdomain.domain\",\n };\n });\n\n customAccountValidation = [\n ...customAccountValidation,\n ...minioExtraValidations,\n {\n fieldKey: \"console_domain\",\n required: false,\n value: consoleDomain,\n pattern:\n /^(https?):\\/\\/([a-zA-Z0-9\\-.]+)(:[0-9]+)?(\\/[a-zA-Z0-9\\-./]*)?$/,\n customPatternMessage:\n \"Console domain is not in the form of http|https://subdomain.domain:port/subpath1/subpath2\",\n },\n ];\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n dispatch(\n isPageValid({\n pageName: \"configure\",\n valid: Object.keys(commonVal).length === 0,\n }),\n );\n\n setValidationErrors(commonVal);\n }, [\n dispatch,\n tenantCustom,\n tenantSecurityContext,\n setDomains,\n consoleDomain,\n minioDomains,\n ]);\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n const updateMinIODomain = (value: string, index: number) => {\n const copyDomains = [...minioDomains];\n copyDomains[index] = value;\n\n updateField(\"minioDomains\", copyDomains);\n };\n\n return (\n \n
\n Configure\n \n Basic configurations for tenant management\n \n
\n
\n

Services

\n \n Whether the tenant's services should request an external IP via\n LoadBalancer service type.\n \n
\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"exposeMinIO\", checked);\n }}\n label={\"Expose MinIO Service\"}\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"exposeConsole\", checked);\n }}\n label={\"Expose Console Service\"}\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"exposeSFTP\", checked);\n }}\n label={\"Expose SFTP Service\"}\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"setDomains\", checked);\n }}\n label={\"Set Custom Domains\"}\n />\n \n {setDomains && (\n \n
\n \n Custom Domains for MinIO\n \n \n
\n ) => {\n updateField(\"consoleDomain\", e.target.value);\n cleanValidation(\"tenant_securityContext_runAsUser\");\n }}\n label=\"Console Domain\"\n value={consoleDomain}\n placeholder={\n \"Eg. http://subdomain.domain:port/subpath1/subpath2\"\n }\n error={validationErrors[\"console_domain\"] || \"\"}\n />\n
\n
\n

MinIO Domains

\n
\n {minioDomains.map((domain, index) => {\n return (\n \n ,\n ) => {\n updateMinIODomain(e.target.value, index);\n }}\n label={`MinIO Domain ${index + 1}`}\n value={domain}\n placeholder={\"Eg. http://subdomain.domain\"}\n error={\n validationErrors[\n `minio-domain-${index.toString()}`\n ] || \"\"\n }\n />\n
\n dispatch(addNewMinIODomain())}\n disabled={index !== minioDomains.length - 1}\n >\n \n \n
\n\n
\n dispatch(removeMinIODomain(index))}\n disabled={minioDomains.length <= 1}\n >\n \n \n
\n
\n );\n })}\n
\n \n
\n
\n
\n )}\n\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"tenantCustom\", checked);\n }}\n label={\"Security Context\"}\n />\n \n {tenantCustom && (\n \n
\n \n SecurityContext for MinIO\n \n \n \n
\n ) => {\n updateField(\"tenantSecurityContext\", {\n ...tenantSecurityContext,\n runAsUser: e.target.value,\n });\n cleanValidation(\"tenant_securityContext_runAsUser\");\n }}\n label=\"Run As User\"\n value={tenantSecurityContext.runAsUser}\n required\n error={\n validationErrors[\"tenant_securityContext_runAsUser\"] || \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"tenantSecurityContext\", {\n ...tenantSecurityContext,\n runAsGroup: e.target.value,\n });\n cleanValidation(\"tenant_securityContext_runAsGroup\");\n }}\n label=\"Run As Group\"\n value={tenantSecurityContext.runAsGroup}\n required\n error={\n validationErrors[\"tenant_securityContext_runAsGroup\"] ||\n \"\"\n }\n min=\"0\"\n />\n
\n \n
\n
\n \n \n
\n ) => {\n updateField(\"tenantSecurityContext\", {\n ...tenantSecurityContext,\n fsGroup: e.target.value,\n });\n cleanValidation(\"tenant_securityContext_fsGroup\");\n }}\n label=\"FsGroup\"\n value={tenantSecurityContext.fsGroup!}\n required\n error={\n validationErrors[\"tenant_securityContext_fsGroup\"] || \"\"\n }\n min=\"0\"\n />\n
\n
\n
\n ) => {\n updateField(\"tenantSecurityContext\", {\n ...tenantSecurityContext,\n fsGroupChangePolicy: e.target.value,\n });\n }}\n options={[\n {\n label: \"Always\",\n value: \"Always\",\n },\n {\n label: \"OnRootMismatch\",\n value: \"OnRootMismatch\",\n },\n ]}\n />\n
\n
\n \n
\n
\n \n
\n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"tenantSecurityContext\", {\n ...tenantSecurityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n
\n
\n
\n
\n )}\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"customRuntime\", checked);\n }}\n label={\"Custom Runtime Configurations\"}\n />\n \n {customRuntime && (\n \n
\n \n Custom Runtime Configurations\n \n \n
\n ) => {\n updateField(\"runtimeClassName\", e.target.value);\n cleanValidation(\"tenant_runtime_runtimeClassName\");\n }}\n label=\"Runtime Class Name\"\n value={runtimeClassName}\n error={\n validationErrors[\"tenant_runtime_runtimeClassName\"] || \"\"\n }\n />\n
\n
\n
\n
\n )}\n \n\n
\n Additional Environment Variables\n \n Define additional environment variables to be used by your MinIO pods\n \n
\n \n {tenantEnvVars.map((envVar, index) => (\n \n \n ) => {\n const existingEnvVars = [...tenantEnvVars];\n dispatch(\n setEnvVars(\n existingEnvVars.map((keyPair, i) =>\n i === index\n ? { key: e.target.value, value: keyPair.value }\n : keyPair,\n ),\n ),\n );\n }}\n index={index}\n key={`env_var_key_${index.toString()}`}\n />\n \n \n ) => {\n const existingEnvVars = [...tenantEnvVars];\n dispatch(\n setEnvVars(\n existingEnvVars.map((keyPair, i) =>\n i === index\n ? { key: keyPair.key, value: e.target.value }\n : keyPair,\n ),\n ),\n );\n }}\n index={index}\n key={`env_var_value_${index.toString()}`}\n />\n \n \n
\n {\n const existingEnvVars = [...tenantEnvVars];\n existingEnvVars.push({ key: \"\", value: \"\" });\n\n dispatch(setEnvVars(existingEnvVars));\n }}\n disabled={index !== tenantEnvVars.length - 1}\n >\n \n \n
\n
\n {\n const existingEnvVars = tenantEnvVars.filter(\n (item, fIndex) => fIndex !== index,\n );\n dispatch(setEnvVars(existingEnvVars));\n }}\n disabled={tenantEnvVars.length <= 1}\n >\n \n \n
\n
\n
\n ))}\n \n
\n );\n};\n\nexport default withStyles(styles)(Configure);\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Grid, IconButton, Tooltip, Typography } from \"@mui/material\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport FormSwitchWrapper from \"../../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport {\n addIDPADGroupAtIndex,\n addIDPADUsrAtIndex,\n isPageValid,\n removeIDPADGroupAtIndex,\n removeIDPADUsrAtIndex,\n setIDPADGroupAtIndex,\n setIDPADUsrAtIndex,\n updateAddField,\n} from \"../../createTenantSlice\";\nimport { useSelector } from \"react-redux\";\nimport { clearValidationError } from \"../../../utils\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport DeleteIcon from \"@mui/icons-material/Delete\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n adUserDnRows: {\n display: \"flex\",\n marginBottom: 10,\n },\n buttonTray: {\n marginLeft: 10,\n display: \"flex\",\n height: 38,\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n overlayAction: {\n marginLeft: 10,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n }),\n);\n\nconst IDPActiveDirectory = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const idpSelection = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.idpSelection,\n );\n const ADURL = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.ADURL,\n );\n const ADSkipTLS = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.ADSkipTLS,\n );\n const ADServerInsecure = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADServerInsecure,\n );\n const ADGroupSearchBaseDN = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADGroupSearchBaseDN,\n );\n const ADGroupSearchFilter = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADGroupSearchFilter,\n );\n const ADUserDNs = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.ADUserDNs,\n );\n const ADGroupDNs = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.ADGroupDNs,\n );\n const ADLookupBindDN = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADLookupBindDN,\n );\n const ADLookupBindPassword = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADLookupBindPassword,\n );\n const ADUserDNSearchBaseDN = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADUserDNSearchBaseDN,\n );\n const ADUserDNSearchFilter = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADUserDNSearchFilter,\n );\n const ADServerStartTLS = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.ADServerStartTLS,\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({\n pageName: \"identityProvider\",\n field: field,\n value: value,\n }),\n );\n },\n [dispatch],\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n // Validation\n useEffect(() => {\n let customIDPValidation: IValidation[] = [];\n\n if (idpSelection === \"AD\") {\n customIDPValidation = [\n ...customIDPValidation,\n {\n fieldKey: \"AD_URL\",\n required: true,\n value: ADURL,\n },\n {\n fieldKey: \"ad_lookupBindDN\",\n required: true,\n value: ADLookupBindDN,\n },\n ];\n }\n\n const commonVal = commonFormValidation(customIDPValidation);\n\n dispatch(\n isPageValid({\n pageName: \"identityProvider\",\n valid: Object.keys(commonVal).length === 0,\n }),\n );\n\n setValidationErrors(commonVal);\n }, [\n ADLookupBindDN,\n idpSelection,\n ADURL,\n ADGroupSearchBaseDN,\n ADGroupSearchFilter,\n ADUserDNs,\n ADGroupDNs,\n dispatch,\n ]);\n\n return (\n \n \n ) => {\n updateField(\"ADURL\", e.target.value);\n cleanValidation(\"AD_URL\");\n }}\n label=\"LDAP Server Address\"\n value={ADURL}\n placeholder=\"ldap-server:636\"\n error={validationErrors[\"AD_URL\"] || \"\"}\n required\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"ADSkipTLS\", checked);\n }}\n label={\"Skip TLS Verification\"}\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"ADServerInsecure\", checked);\n }}\n label={\"Server Insecure\"}\n />\n \n {ADServerInsecure ? (\n \n \n Warning: All traffic with Active Directory will be unencrypted\n \n
\n
\n ) : null}\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"ADServerStartTLS\", checked);\n }}\n label={\"Start TLS connection to AD/LDAP server\"}\n />\n \n \n ) => {\n updateField(\"ADLookupBindDN\", e.target.value);\n cleanValidation(\"ad_lookupBindDN\");\n }}\n label=\"Lookup Bind DN\"\n value={ADLookupBindDN}\n placeholder=\"cn=admin,dc=min,dc=io\"\n error={validationErrors[\"ad_lookupBindDN\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"ADLookupBindPassword\", e.target.value);\n }}\n label=\"Lookup Bind Password\"\n value={ADLookupBindPassword}\n placeholder=\"admin\"\n />\n \n \n ) => {\n updateField(\"ADUserDNSearchBaseDN\", e.target.value);\n }}\n label=\"User DN Search Base DN\"\n value={ADUserDNSearchBaseDN}\n placeholder=\"dc=min,dc=io\"\n />\n \n \n ) => {\n updateField(\"ADUserDNSearchFilter\", e.target.value);\n }}\n label=\"User DN Search Filter\"\n value={ADUserDNSearchFilter}\n placeholder=\"(sAMAcountName=%s)\"\n />\n \n \n ) => {\n updateField(\"ADGroupSearchBaseDN\", e.target.value);\n }}\n label=\"Group Search Base DN\"\n value={ADGroupSearchBaseDN}\n placeholder=\"ou=hwengg,dc=min,dc=io;ou=swengg,dc=min,dc=io\"\n />\n \n \n ) => {\n updateField(\"ADGroupSearchFilter\", e.target.value);\n }}\n label=\"Group Search Filter\"\n value={ADGroupSearchFilter}\n placeholder=\"(&(objectclass=groupOfNames)(member=%s))\"\n />\n \n
\n \n List of user DNs (Distinguished Names) to be Tenant Administrators\n \n \n {ADUserDNs.map((_, index) => {\n return (\n \n
\n ) => {\n dispatch(\n setIDPADUsrAtIndex({\n index: index,\n userDN: e.target.value,\n }),\n );\n cleanValidation(`ad-userdn-${index.toString()}`);\n }}\n index={index}\n key={`csv-ad-userdn-${index.toString()}`}\n error={\n validationErrors[`ad-userdn-${index.toString()}`] || \"\"\n }\n />\n
\n \n {\n dispatch(addIDPADUsrAtIndex());\n }}\n >\n \n \n \n \n {\n if (ADUserDNs.length > 1) {\n dispatch(removeIDPADUsrAtIndex(index));\n }\n }}\n >\n \n \n \n
\n
\n
\n );\n })}\n
\n
\n
\n \n List of group DNs (Distinguished Names) to be Tenant Administrators\n \n \n {ADGroupDNs.map((_, index) => {\n return (\n \n
\n ) => {\n dispatch(\n setIDPADGroupAtIndex({\n index: index,\n userDN: e.target.value,\n }),\n );\n cleanValidation(`ad-groupdn-${index.toString()}`);\n }}\n index={index}\n key={`csv-ad-groupdn-${index.toString()}`}\n error={\n validationErrors[`ad-groupdn-${index.toString()}`] || \"\"\n }\n />\n
\n \n {\n dispatch(addIDPADGroupAtIndex());\n }}\n >\n \n \n \n \n {\n if (ADGroupDNs.length > 1) {\n dispatch(removeIDPADGroupAtIndex(index));\n }\n }}\n >\n \n \n \n
\n
\n
\n );\n })}\n
\n
\n
\n );\n};\n\nexport default IDPActiveDirectory;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Grid } from \"@mui/material\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { isPageValid, updateAddField } from \"../../createTenantSlice\";\nimport { clearValidationError } from \"../../../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n buttonTray: {\n marginLeft: 10,\n display: \"flex\",\n height: 38,\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n overlayAction: {\n marginLeft: 10,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n }),\n);\n\nconst IDPOpenID = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const idpSelection = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.idpSelection,\n );\n const openIDConfigurationURL = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.openIDConfigurationURL,\n );\n const openIDClientID = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.openIDClientID,\n );\n const openIDSecretID = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.openIDSecretID,\n );\n const openIDClaimName = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.openIDClaimName,\n );\n const openIDScopes = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.openIDScopes,\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({\n pageName: \"identityProvider\",\n field: field,\n value: value,\n }),\n );\n },\n [dispatch],\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n // Validation\n useEffect(() => {\n let customIDPValidation: IValidation[] = [];\n\n if (idpSelection === \"OpenID\") {\n customIDPValidation = [\n ...customIDPValidation,\n {\n fieldKey: \"openID_CONFIGURATION_URL\",\n required: true,\n value: openIDConfigurationURL,\n },\n {\n fieldKey: \"openID_clientID\",\n required: true,\n value: openIDClientID,\n },\n {\n fieldKey: \"openID_secretID\",\n required: true,\n value: openIDSecretID,\n },\n {\n fieldKey: \"openID_claimName\",\n required: false,\n value: openIDClaimName,\n },\n ];\n }\n\n const commonVal = commonFormValidation(customIDPValidation);\n\n dispatch(\n isPageValid({\n pageName: \"identityProvider\",\n valid: Object.keys(commonVal).length === 0,\n }),\n );\n\n setValidationErrors(commonVal);\n }, [\n idpSelection,\n openIDClientID,\n openIDSecretID,\n openIDConfigurationURL,\n openIDClaimName,\n dispatch,\n ]);\n\n return (\n \n \n ) => {\n updateField(\"openIDConfigurationURL\", e.target.value);\n cleanValidation(\"openID_CONFIGURATION_URL\");\n }}\n label=\"Configuration URL\"\n value={openIDConfigurationURL}\n placeholder=\"https://your-identity-provider.com/.well-known/openid-configuration\"\n error={validationErrors[\"openID_CONFIGURATION_URL\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"openIDClientID\", e.target.value);\n cleanValidation(\"openID_clientID\");\n }}\n label=\"Client ID\"\n value={openIDClientID}\n error={validationErrors[\"openID_clientID\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"openIDSecretID\", e.target.value);\n cleanValidation(\"openID_secretID\");\n }}\n label=\"Secret ID\"\n value={openIDSecretID}\n error={validationErrors[\"openID_secretID\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"openIDClaimName\", e.target.value);\n cleanValidation(\"openID_claimName\");\n }}\n label=\"Claim Name\"\n value={openIDClaimName}\n placeholder=\"policy\"\n error={validationErrors[\"openID_claimName\"] || \"\"}\n />\n \n \n ) => {\n updateField(\"openIDScopes\", e.target.value);\n cleanValidation(\"openID_scopes\");\n }}\n label=\"Scopes\"\n value={openIDScopes}\n />\n \n \n );\n};\n\nexport default IDPOpenID;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport {\n addIDPNewKeyPair,\n isPageValid,\n removeIDPKeyPairAtIndex,\n setIDPPwdAtIndex,\n setIDPUsrAtIndex,\n} from \"../../createTenantSlice\";\nimport { IconButton, Tooltip } from \"@mui/material\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport { RemoveIcon } from \"mds\";\nimport { clearValidationError, getRandomString } from \"../../../utils\";\nimport CasinoIcon from \"@mui/icons-material/Casino\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n buttonTray: {\n marginLeft: 10,\n display: \"flex\",\n height: 38,\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n overlayAction: {\n marginLeft: 10,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n shortened: {\n gridTemplateColumns: \"auto auto 50px 50px\",\n display: \"grid\",\n gridGap: 15,\n marginBottom: 10,\n \"& input\": {\n fontWeight: 400,\n },\n },\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n }),\n);\n\nconst IDPBuiltIn = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const idpSelection = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.idpSelection,\n );\n const accessKeys = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.accessKeys,\n );\n const secretKeys = useSelector(\n (state: AppState) => state.createTenant.fields.identityProvider.secretKeys,\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n // Validation\n useEffect(() => {\n let customIDPValidation: IValidation[] = [];\n\n if (idpSelection === \"Built-in\") {\n customIDPValidation = [...customIDPValidation];\n for (var i = 0; i < accessKeys.length; i++) {\n customIDPValidation.push({\n fieldKey: `accesskey-${i.toString()}`,\n required: true,\n value: accessKeys[i],\n pattern: /^[a-zA-Z0-9-]{8,63}$/,\n customPatternMessage: \"Keys must be at least length 8\",\n });\n customIDPValidation.push({\n fieldKey: `secretkey-${i.toString()}`,\n required: true,\n value: secretKeys[i],\n pattern: /^[a-zA-Z0-9-]{8,63}$/,\n customPatternMessage: \"Keys must be at least length 8\",\n });\n }\n }\n\n const commonVal = commonFormValidation(customIDPValidation);\n\n dispatch(\n isPageValid({\n pageName: \"identityProvider\",\n valid: Object.keys(commonVal).length === 0,\n }),\n );\n\n setValidationErrors(commonVal);\n }, [idpSelection, accessKeys, secretKeys, dispatch]);\n\n return (\n \n Add additional users\n {accessKeys.map((_, index) => {\n return (\n \n
\n ) => {\n dispatch(\n setIDPUsrAtIndex({\n index,\n accessKey: e.target.value,\n }),\n );\n cleanValidation(`accesskey-${index.toString()}`);\n }}\n index={index}\n key={`csv-accesskey-${index.toString()}`}\n error={validationErrors[`accesskey-${index.toString()}`] || \"\"}\n />\n ) => {\n dispatch(\n setIDPPwdAtIndex({\n index,\n secretKey: e.target.value,\n }),\n );\n cleanValidation(`secretkey-${index.toString()}`);\n }}\n index={index}\n key={`csv-secretkey-${index.toString()}`}\n error={validationErrors[`secretkey-${index.toString()}`] || \"\"}\n />\n
\n
\n {\n dispatch(addIDPNewKeyPair());\n }}\n disabled={index !== accessKeys.length - 1}\n >\n \n \n
\n
\n {\n dispatch(removeIDPKeyPairAtIndex(index));\n }}\n disabled={accessKeys.length <= 1}\n >\n \n \n
\n \n
\n {\n dispatch(\n setIDPUsrAtIndex({\n index,\n accessKey: getRandomString(16),\n }),\n );\n dispatch(\n setIDPPwdAtIndex({\n index,\n secretKey: getRandomString(16),\n }),\n );\n }}\n size={\"small\"}\n >\n \n \n
\n
\n
\n
\n
\n );\n })}\n
\n );\n};\n\nexport default IDPBuiltIn;\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { Grid, Paper } from \"@mui/material\";\nimport {\n createTenantCommon,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../../store\";\nimport RadioGroupSelector from \"../../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport { setIDP } from \"../createTenantSlice\";\nimport IDPActiveDirectory from \"./IdentityProvider/IDPActiveDirectory\";\nimport IDPOpenID from \"./IdentityProvider/IDPOpenID\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport IDPBuiltIn from \"./IdentityProvider/IDPBuiltIn\";\nimport {\n BuiltInLogoElement,\n LDAPLogoElement,\n OIDCLogoElement,\n} from \"../../LogoComponents\";\nimport H3Section from \"../../../Common/H3Section\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n protocolRadioOptions: {\n display: \"flex\",\n flexFlow: \"column\",\n marginBottom: 10,\n\n \"& label\": {\n fontSize: 16,\n fontWeight: 600,\n },\n \"& div\": {\n display: \"flex\",\n flexFlow: \"row\",\n alignItems: \"top\",\n },\n },\n ...createTenantCommon,\n ...modalBasic,\n ...wizardCommon,\n }),\n);\n\nconst IdentityProvider = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const idpSelection = useSelector(\n (state: AppState) =>\n state.createTenant.fields.identityProvider.idpSelection,\n );\n\n return (\n \n
\n Identity Provider\n \n Access to the tenant can be controlled via an external Identity\n Manager.\n \n
\n \n {\n dispatch(setIDP(e.target.value));\n }}\n selectorOptions={[\n { label: , value: \"Built-in\" },\n { label: , value: \"OpenID\" },\n { label: , value: \"AD\" },\n ]}\n />\n \n {idpSelection === \"Built-in\" && }\n {idpSelection === \"OpenID\" && }\n {idpSelection === \"AD\" && }\n
\n );\n};\n\nexport default IdentityProvider;\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, IconButton, Paper } from \"@mui/material\";\nimport {\n createTenantCommon,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\n\nimport { AppState, useAppDispatch } from \"../../../../../store\";\nimport { KeyPair } from \"../../ListTenants/utils\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport FileSelector from \"../../../Common/FormComponents/FileSelector/FileSelector\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport { RemoveIcon } from \"mds\";\nimport {\n addCaCertificate,\n addClientKeyPair,\n addFileToCaCertificates,\n addFileToClientKeyPair,\n addFileToKeyPair,\n addKeyPair,\n deleteCaCertificate,\n deleteClientKeyPair,\n deleteKeyPair,\n isPageValid,\n updateAddField,\n} from \"../createTenantSlice\";\nimport TLSHelpBox from \"../../HelpBox/TLSHelpBox\";\nimport H3Section from \"../../../Common/H3Section\";\n\ninterface ISecurityProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n minioCertificateRows: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n borderBottom: \"1px solid #EAEAEA\",\n \"&:last-child\": {\n borderBottom: 0,\n },\n \"@media (max-width: 900px)\": {\n flex: 1,\n },\n },\n fileItem: {\n marginRight: 10,\n display: \"flex\",\n \"& div label\": {\n minWidth: 50,\n },\n\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n minioCertsContainer: {\n marginBottom: 15,\n },\n minioCACertsRow: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n\n borderBottom: \"1px solid #EAEAEA\",\n \"&:last-child\": {\n borderBottom: 0,\n },\n \"@media (max-width: 900px)\": {\n flex: 1,\n\n \"& div label\": {\n minWidth: 50,\n },\n },\n },\n rowActions: {\n display: \"flex\",\n justifyContent: \"flex-end\",\n \"@media (max-width: 900px)\": {\n flex: 1,\n },\n },\n overlayAction: {\n marginLeft: 10,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n\n ...createTenantCommon,\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst Security = ({ classes }: ISecurityProps) => {\n const dispatch = useAppDispatch();\n\n const enableTLS = useSelector(\n (state: AppState) => state.createTenant.fields.security.enableTLS,\n );\n const enableAutoCert = useSelector(\n (state: AppState) => state.createTenant.fields.security.enableAutoCert,\n );\n const enableCustomCerts = useSelector(\n (state: AppState) => state.createTenant.fields.security.enableCustomCerts,\n );\n const minioCertificates = useSelector(\n (state: AppState) =>\n state.createTenant.certificates.minioServerCertificates,\n );\n const minioClientCertificates = useSelector(\n (state: AppState) =>\n state.createTenant.certificates.minioClientCertificates,\n );\n const caCertificates = useSelector(\n (state: AppState) => state.createTenant.certificates.minioCAsCertificates,\n );\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"security\", field: field, value: value }),\n );\n },\n [dispatch],\n );\n\n // Validation\n\n useEffect(() => {\n if (!enableTLS) {\n dispatch(isPageValid({ pageName: \"security\", valid: true }));\n return;\n }\n if (enableAutoCert) {\n dispatch(isPageValid({ pageName: \"security\", valid: true }));\n return;\n }\n if (enableCustomCerts) {\n dispatch(isPageValid({ pageName: \"security\", valid: true }));\n return;\n }\n dispatch(isPageValid({ pageName: \"security\", valid: false }));\n }, [enableTLS, enableAutoCert, enableCustomCerts, dispatch]);\n\n return (\n \n
\n Security\n
\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"enableTLS\", checked);\n }}\n label={\"TLS\"}\n description={\n \"Securing all the traffic using TLS. This is required for Encryption Configuration\"\n }\n />\n \n {enableTLS && (\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"enableAutoCert\", checked);\n }}\n label={\"AutoCert\"}\n description={\n \"The internode certificates will be generated and managed by MinIO Operator\"\n }\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"enableCustomCerts\", checked);\n }}\n label={\"Custom Certificates\"}\n description={\"Certificates used to terminated TLS at MinIO\"}\n />\n \n {enableCustomCerts && (\n \n {!enableAutoCert && (\n \n \n \n )}\n \n
MinIO Server Certificates
\n {minioCertificates.map((keyPair: KeyPair, index) => (\n \n \n {\n dispatch(\n addFileToKeyPair({\n id: keyPair.id,\n key: \"cert\",\n fileName: fileName,\n value: encodedValue,\n }),\n );\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"tlsCert\"\n name=\"tlsCert\"\n label=\"Cert\"\n value={keyPair.cert}\n />\n {\n dispatch(\n addFileToKeyPair({\n id: keyPair.id,\n key: \"key\",\n fileName: fileName,\n value: encodedValue,\n }),\n );\n }}\n accept=\".key,.pem\"\n id=\"tlsKey\"\n name=\"tlsKey\"\n label=\"Key\"\n value={keyPair.key}\n />\n \n\n \n
\n {\n dispatch(addKeyPair());\n }}\n disabled={index !== minioCertificates.length - 1}\n >\n \n \n
\n
\n {\n dispatch(deleteKeyPair(keyPair.id));\n }}\n disabled={minioCertificates.length <= 1}\n >\n \n \n
\n
\n
\n ))}\n
\n \n
MinIO Client Certificates
\n {minioClientCertificates.map((keyPair: KeyPair, index) => (\n \n \n {\n dispatch(\n addFileToClientKeyPair({\n id: keyPair.id,\n key: \"cert\",\n fileName: fileName,\n value: encodedValue,\n }),\n );\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"tlsCert\"\n name=\"tlsCert\"\n label=\"Cert\"\n value={keyPair.cert}\n />\n {\n dispatch(\n addFileToClientKeyPair({\n id: keyPair.id,\n key: \"key\",\n fileName: fileName,\n value: encodedValue,\n }),\n );\n }}\n accept=\".key,.pem\"\n id=\"tlsKey\"\n name=\"tlsKey\"\n label=\"Key\"\n value={keyPair.key}\n />\n \n\n \n
\n {\n dispatch(addClientKeyPair());\n }}\n disabled={\n index !== minioClientCertificates.length - 1\n }\n >\n \n \n
\n
\n {\n dispatch(deleteClientKeyPair(keyPair.id));\n }}\n disabled={minioClientCertificates.length <= 1}\n >\n \n \n
\n
\n
\n ))}\n \n \n
MinIO CA Certificates
\n {caCertificates.map((keyPair: KeyPair, index) => (\n \n \n {\n dispatch(\n addFileToCaCertificates({\n id: keyPair.id,\n key: \"cert\",\n fileName: fileName,\n value: encodedValue,\n }),\n );\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"tlsCert\"\n name=\"tlsCert\"\n label=\"Cert\"\n value={keyPair.cert}\n />\n \n \n
\n
\n {\n dispatch(addCaCertificate());\n }}\n disabled={index !== caCertificates.length - 1}\n >\n \n \n
\n
\n {\n dispatch(deleteCaCertificate(keyPair.id));\n }}\n disabled={caCertificates.length <= 1}\n >\n \n \n
\n
\n
\n
\n ))}\n \n \n )}\n \n )}\n \n
\n );\n};\n\nexport default withStyles(styles)(Security);\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\n\ntype Props = {\n children: string;\n};\n\nconst SectionH1: React.FC = ({ children }) => {\n return (\n

\n {children}\n

\n );\n};\n\nexport default SectionH1;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\n\nimport { isPageValid, updateAddField } from \"../../createTenantSlice\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\nimport { clearValidationError } from \"../../../utils\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n }),\n);\n\nconst VaultKMSAdd = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const encryptionTab = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.encryptionTab,\n );\n const vaultEndpoint = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultEndpoint,\n );\n const vaultEngine = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultEngine,\n );\n const vaultNamespace = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultNamespace,\n );\n const vaultPrefix = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultPrefix,\n );\n const vaultAppRoleEngine = useSelector(\n (state: AppState) =>\n state.createTenant.fields.encryption.vaultAppRoleEngine,\n );\n const vaultId = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultId,\n );\n const vaultSecret = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultSecret,\n );\n const vaultRetry = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultRetry,\n );\n const vaultPing = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.vaultPing,\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n // Validation\n useEffect(() => {\n let encryptionValidation: IValidation[] = [];\n\n if (!encryptionTab) {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"vault_endpoint\",\n required: true,\n value: vaultEndpoint,\n },\n {\n fieldKey: \"vault_id\",\n required: true,\n value: vaultId,\n },\n {\n fieldKey: \"vault_secret\",\n required: true,\n value: vaultSecret,\n },\n {\n fieldKey: \"vault_ping\",\n required: false,\n value: vaultPing,\n customValidation: parseInt(vaultPing) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n {\n fieldKey: \"vault_retry\",\n required: false,\n value: vaultRetry,\n customValidation: parseInt(vaultRetry) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n ];\n }\n\n const commonVal = commonFormValidation(encryptionValidation);\n\n dispatch(\n isPageValid({\n pageName: \"encryption\",\n valid: Object.keys(commonVal).length === 0,\n }),\n );\n\n setValidationErrors(commonVal);\n }, [\n encryptionTab,\n vaultEndpoint,\n vaultEngine,\n vaultId,\n vaultSecret,\n vaultPing,\n vaultRetry,\n dispatch,\n ]);\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"encryption\", field: field, value: value }),\n );\n },\n [dispatch],\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n \n ) => {\n updateField(\"vaultEndpoint\", e.target.value);\n cleanValidation(\"vault_endpoint\");\n }}\n label=\"Endpoint\"\n tooltip=\"Endpoint is the Hashicorp Vault endpoint\"\n value={vaultEndpoint}\n error={validationErrors[\"vault_endpoint\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"vaultEngine\", e.target.value);\n cleanValidation(\"vault_engine\");\n }}\n label=\"Engine\"\n tooltip=\"Engine is the Hashicorp Vault K/V engine path. If empty, defaults to 'kv'\"\n value={vaultEngine}\n />\n \n \n ) => {\n updateField(\"vaultNamespace\", e.target.value);\n }}\n label=\"Namespace\"\n tooltip=\"Namespace is an optional Hashicorp Vault namespace. An empty namespace means no particular namespace is used.\"\n value={vaultNamespace}\n />\n \n \n ) => {\n updateField(\"vaultPrefix\", e.target.value);\n }}\n label=\"Prefix\"\n tooltip=\"Prefix is an optional prefix / directory within the K/V engine. If empty, keys will be stored at the K/V engine top level\"\n value={vaultPrefix}\n />\n \n\n \n
\n App Role\n \n ) => {\n updateField(\"vaultAppRoleEngine\", e.target.value);\n }}\n label=\"Engine\"\n tooltip=\"AppRoleEngine is the AppRole authentication engine path. If empty, defaults to 'approle'\"\n value={vaultAppRoleEngine}\n />\n \n \n ) => {\n updateField(\"vaultId\", e.target.value);\n cleanValidation(\"vault_id\");\n }}\n label=\"AppRole ID\"\n tooltip=\"AppRoleSecret is the AppRole access secret for authenticating to Hashicorp Vault via the AppRole method\"\n value={vaultId}\n error={validationErrors[\"vault_id\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"vaultSecret\", e.target.value);\n cleanValidation(\"vault_secret\");\n }}\n label=\"AppRole Secret\"\n tooltip=\"AppRoleSecret is the AppRole access secret for authenticating to Hashicorp Vault via the AppRole method\"\n value={vaultSecret}\n error={validationErrors[\"vault_secret\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"vaultRetry\", e.target.value);\n cleanValidation(\"vault_retry\");\n }}\n label=\"Retry (Seconds)\"\n value={vaultRetry}\n error={validationErrors[\"vault_retry\"] || \"\"}\n />\n \n
\n
\n \n
\n Status\n ) => {\n updateField(\"vaultPing\", e.target.value);\n cleanValidation(\"vault_ping\");\n }}\n label=\"Ping (Seconds)\"\n value={vaultPing}\n error={validationErrors[\"vault_ping\"] || \"\"}\n />\n
\n \n
\n );\n};\n\nexport default VaultKMSAdd;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\nimport { isPageValid, updateAddField } from \"../../createTenantSlice\";\nimport { clearValidationError } from \"../../../utils\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n }),\n);\n\nconst AzureKMSAdd = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const encryptionTab = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.encryptionTab,\n );\n const azureEndpoint = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.azureEndpoint,\n );\n const azureTenantID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.azureTenantID,\n );\n const azureClientID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.azureClientID,\n );\n const azureClientSecret = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.azureClientSecret,\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n // Validation\n useEffect(() => {\n let encryptionValidation: IValidation[] = [];\n\n if (!encryptionTab) {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"azure_endpoint\",\n required: true,\n value: azureEndpoint,\n },\n {\n fieldKey: \"azure_tenant_id\",\n required: true,\n value: azureTenantID,\n },\n {\n fieldKey: \"azure_client_id\",\n required: true,\n value: azureClientID,\n },\n {\n fieldKey: \"azure_client_secret\",\n required: true,\n value: azureClientSecret,\n },\n ];\n }\n\n const commonVal = commonFormValidation(encryptionValidation);\n\n dispatch(\n isPageValid({\n pageName: \"encryption\",\n valid: Object.keys(commonVal).length === 0,\n }),\n );\n\n setValidationErrors(commonVal);\n }, [\n encryptionTab,\n azureEndpoint,\n azureTenantID,\n azureClientID,\n azureClientSecret,\n dispatch,\n ]);\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"encryption\", field: field, value: value }),\n );\n },\n [dispatch],\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n \n ) => {\n updateField(\"azureEndpoint\", e.target.value);\n cleanValidation(\"azure_endpoint\");\n }}\n label=\"Endpoint\"\n tooltip=\"Endpoint is the Azure KeyVault endpoint\"\n value={azureEndpoint}\n error={validationErrors[\"azure_endpoint\"] || \"\"}\n />\n \n \n
\n Credentials\n \n ) => {\n updateField(\"azureTenantID\", e.target.value);\n cleanValidation(\"azure_tenant_id\");\n }}\n label=\"Tenant ID\"\n tooltip=\"TenantID is the ID of the Azure KeyVault tenant\"\n value={azureTenantID}\n error={validationErrors[\"azure_tenant_id\"] || \"\"}\n />\n \n \n ) => {\n updateField(\"azureClientID\", e.target.value);\n cleanValidation(\"azure_client_id\");\n }}\n label=\"Client ID\"\n tooltip=\"ClientID is the ID of the client accessing Azure KeyVault\"\n value={azureClientID}\n error={validationErrors[\"azure_client_id\"] || \"\"}\n />\n \n \n ) => {\n updateField(\"azureClientSecret\", e.target.value);\n cleanValidation(\"azure_client_secret\");\n }}\n label=\"Client Secret\"\n tooltip=\"ClientSecret is the client secret accessing the Azure KeyVault\"\n value={azureClientSecret}\n error={validationErrors[\"azure_client_secret\"] || \"\"}\n />\n \n
\n
\n
\n );\n};\n\nexport default AzureKMSAdd;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { updateAddField } from \"../../createTenantSlice\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n }),\n);\n\nconst GCPKMSAdd = () => {\n const classes = useStyles();\n const dispatch = useAppDispatch();\n\n const gcpProjectID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpProjectID,\n );\n const gcpEndpoint = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpEndpoint,\n );\n const gcpClientEmail = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpClientEmail,\n );\n const gcpClientID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpClientID,\n );\n const gcpPrivateKeyID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpPrivateKeyID,\n );\n const gcpPrivateKey = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpPrivateKey,\n );\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"encryption\", field: field, value: value }),\n );\n },\n [dispatch],\n );\n\n return (\n \n \n ) => {\n updateField(\"gcpProjectID\", e.target.value);\n }}\n label=\"Project ID\"\n tooltip=\"ProjectID is the GCP project ID.\"\n value={gcpProjectID}\n />\n \n \n ) => {\n updateField(\"gcpEndpoint\", e.target.value);\n }}\n label=\"Endpoint\"\n tooltip=\"Endpoint is the GCP project ID. If empty defaults to: secretmanager.googleapis.com:443\"\n value={gcpEndpoint}\n />\n \n \n
\n Credentials\n \n ) => {\n updateField(\"gcpClientEmail\", e.target.value);\n }}\n label=\"Client Email\"\n tooltip=\"Is the Client email of the GCP service account used to access the SecretManager\"\n value={gcpClientEmail}\n />\n \n \n ) => {\n updateField(\"gcpClientID\", e.target.value);\n }}\n label=\"Client ID\"\n tooltip=\"Is the Client ID of the GCP service account used to access the SecretManager\"\n value={gcpClientID}\n />\n \n \n ) => {\n updateField(\"gcpPrivateKeyID\", e.target.value);\n }}\n label=\"Private Key ID\"\n tooltip=\"Is the private key ID of the GCP service account used to access the SecretManager\"\n value={gcpPrivateKeyID}\n />\n \n \n ) => {\n updateField(\"gcpPrivateKey\", e.target.value);\n }}\n label=\"Private Key\"\n tooltip=\"Is the private key of the GCP service account used to access the SecretManager\"\n value={gcpPrivateKey}\n />\n \n
\n
\n
\n );\n};\n\nexport default GCPKMSAdd;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { isPageValid, updateAddField } from \"../../createTenantSlice\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\nimport { clearValidationError } from \"../../../utils\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n }),\n);\n\nconst GemaltoKMSAdd = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const encryptionTab = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.encryptionTab,\n );\n const gemaltoEndpoint = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gemaltoEndpoint,\n );\n const gemaltoToken = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gemaltoToken,\n );\n const gemaltoDomain = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gemaltoDomain,\n );\n const gemaltoRetry = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gemaltoRetry,\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n // Validation\n useEffect(() => {\n let encryptionValidation: IValidation[] = [];\n\n if (!encryptionTab) {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"gemalto_endpoint\",\n required: true,\n value: gemaltoEndpoint,\n },\n {\n fieldKey: \"gemalto_token\",\n required: true,\n value: gemaltoToken,\n },\n {\n fieldKey: \"gemalto_domain\",\n required: true,\n value: gemaltoDomain,\n },\n {\n fieldKey: \"gemalto_retry\",\n required: false,\n value: gemaltoRetry,\n customValidation: parseInt(gemaltoRetry) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n ];\n }\n\n const commonVal = commonFormValidation(encryptionValidation);\n\n dispatch(\n isPageValid({\n pageName: \"encryption\",\n valid: Object.keys(commonVal).length === 0,\n }),\n );\n\n setValidationErrors(commonVal);\n }, [\n encryptionTab,\n gemaltoEndpoint,\n gemaltoToken,\n gemaltoDomain,\n gemaltoRetry,\n dispatch,\n ]);\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"encryption\", field: field, value: value }),\n );\n },\n [dispatch],\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n \n ) => {\n updateField(\"gemaltoEndpoint\", e.target.value);\n cleanValidation(\"gemalto_endpoint\");\n }}\n label=\"Endpoint\"\n tooltip=\"Endpoint is the endpoint to the KeySecure server\"\n value={gemaltoEndpoint}\n error={validationErrors[\"gemalto_endpoint\"] || \"\"}\n required\n />\n \n \n
\n Credentials\n \n ) => {\n updateField(\"gemaltoToken\", e.target.value);\n cleanValidation(\"gemalto_token\");\n }}\n label=\"Token\"\n tooltip=\"Token is the refresh authentication token to access the KeySecure server\"\n value={gemaltoToken}\n error={validationErrors[\"gemalto_token\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"gemaltoDomain\", e.target.value);\n cleanValidation(\"gemalto_domain\");\n }}\n label=\"Domain\"\n tooltip=\"Domain is the isolated namespace within the KeySecure server. If empty, defaults to the top-level / root domain\"\n value={gemaltoDomain}\n error={validationErrors[\"gemalto_domain\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"gemaltoRetry\", e.target.value);\n cleanValidation(\"gemalto_retry\");\n }}\n label=\"Retry (seconds)\"\n value={gemaltoRetry}\n error={validationErrors[\"gemalto_retry\"] || \"\"}\n />\n \n
\n \n
\n );\n};\n\nexport default GemaltoKMSAdd;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\nimport { isPageValid, updateAddField } from \"../../createTenantSlice\";\nimport { clearValidationError } from \"../../../utils\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n }),\n);\n\nconst AWSKMSAdd = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const encryptionTab = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.encryptionTab,\n );\n const awsEndpoint = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.awsEndpoint,\n );\n const awsRegion = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.awsRegion,\n );\n const awsKMSKey = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.awsKMSKey,\n );\n const awsAccessKey = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.awsAccessKey,\n );\n const awsSecretKey = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.awsSecretKey,\n );\n const awsToken = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.awsToken,\n );\n const [validationErrors, setValidationErrors] = useState({});\n\n // Validation\n useEffect(() => {\n let encryptionValidation: IValidation[] = [];\n\n if (!encryptionTab) {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"aws_endpoint\",\n required: true,\n value: awsEndpoint,\n },\n {\n fieldKey: \"aws_region\",\n required: true,\n value: awsRegion,\n },\n {\n fieldKey: \"aws_accessKey\",\n required: true,\n value: awsAccessKey,\n },\n {\n fieldKey: \"aws_secretKey\",\n required: true,\n value: awsSecretKey,\n },\n ];\n }\n\n const commonVal = commonFormValidation(encryptionValidation);\n\n dispatch(\n isPageValid({\n pageName: \"encryption\",\n valid: Object.keys(commonVal).length === 0,\n }),\n );\n\n setValidationErrors(commonVal);\n }, [\n encryptionTab,\n awsEndpoint,\n awsRegion,\n awsSecretKey,\n awsAccessKey,\n dispatch,\n ]);\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"encryption\", field: field, value: value }),\n );\n },\n [dispatch],\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n \n ) => {\n updateField(\"awsEndpoint\", e.target.value);\n cleanValidation(\"aws_endpoint\");\n }}\n label=\"Endpoint\"\n tooltip=\"Endpoint is the AWS SecretsManager endpoint. AWS SecretsManager endpoints have the following schema: secrestmanager[-fips]..amanzonaws.com\"\n value={awsEndpoint}\n error={validationErrors[\"aws_endpoint\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"awsRegion\", e.target.value);\n cleanValidation(\"aws_region\");\n }}\n label=\"Region\"\n tooltip=\"Region is the AWS region the SecretsManager is located\"\n value={awsRegion}\n error={validationErrors[\"aws_region\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"awsKMSKey\", e.target.value);\n }}\n label=\"KMS Key\"\n tooltip=\"KMSKey is the AWS-KMS key ID (CMK-ID) used to en/decrypt secrets managed by the SecretsManager. If empty, the default AWS KMS key is used\"\n value={awsKMSKey}\n />\n \n \n
\n Credentials\n \n ) => {\n updateField(\"awsAccessKey\", e.target.value);\n cleanValidation(\"aws_accessKey\");\n }}\n label=\"Access Key\"\n tooltip=\"AccessKey is the access key for authenticating to AWS\"\n value={awsAccessKey}\n error={validationErrors[\"aws_accessKey\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"awsSecretKey\", e.target.value);\n cleanValidation(\"aws_secretKey\");\n }}\n label=\"Secret Key\"\n tooltip=\"SecretKey is the secret key for authenticating to AWS\"\n value={awsSecretKey}\n error={validationErrors[\"aws_secretKey\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"awsToken\", e.target.value);\n }}\n label=\"Token\"\n value={awsToken}\n />\n \n
\n
\n
\n );\n};\n\nexport default AWSKMSAdd;\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Paper, SelectChangeEvent } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\n\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../../store\";\nimport { clearValidationError } from \"../../utils\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport FileSelector from \"../../../Common/FormComponents/FileSelector/FileSelector\";\nimport RadioGroupSelector from \"../../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport SectionH1 from \"../../../Common/SectionH1\";\nimport {\n addFileKESServerCert,\n addFileKMSCa,\n addFileKMSMTLSCert,\n addFileMinIOMTLSCert,\n isPageValid,\n updateAddField,\n} from \"../createTenantSlice\";\nimport VaultKMSAdd from \"./Encryption/VaultKMSAdd\";\nimport AzureKMSAdd from \"./Encryption/AzureKMSAdd\";\nimport GCPKMSAdd from \"./Encryption/GCPKMSAdd\";\nimport GemaltoKMSAdd from \"./Encryption/GemaltoKMSAdd\";\nimport AWSKMSAdd from \"./Encryption/AWSKMSAdd\";\nimport SelectWrapper from \"../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport Tabs from \"@mui/material/Tabs\";\nimport Tab from \"@mui/material/Tab\";\nimport CodeMirrorWrapper from \"../../../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\nimport FormHr from \"../../../Common/FormHr\";\n\ninterface IEncryptionProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n encryptionTypeOptions: {\n marginBottom: 15,\n },\n mutualTlsConfig: {\n marginTop: 15,\n \"& fieldset\": {\n flex: 1,\n },\n },\n rightSpacer: {\n marginRight: 15,\n },\n responsiveContainer: {\n \"@media (max-width: 900px)\": {\n display: \"flex\",\n flexFlow: \"column\",\n },\n },\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst Encryption = ({ classes }: IEncryptionProps) => {\n const dispatch = useAppDispatch();\n\n const replicas = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.replicas,\n );\n const rawConfiguration = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.rawConfiguration,\n );\n const encryptionTab = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.encryptionTab,\n );\n const enableEncryption = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.enableEncryption,\n );\n const encryptionType = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.encryptionType,\n );\n\n const gcpProjectID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpProjectID,\n );\n const gcpEndpoint = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpEndpoint,\n );\n const gcpClientEmail = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpClientEmail,\n );\n const gcpClientID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpClientID,\n );\n const gcpPrivateKeyID = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpPrivateKeyID,\n );\n const gcpPrivateKey = useSelector(\n (state: AppState) => state.createTenant.fields.encryption.gcpPrivateKey,\n );\n const enableCustomCertsForKES = useSelector(\n (state: AppState) =>\n state.createTenant.fields.encryption.enableCustomCertsForKES,\n );\n const enableAutoCert = useSelector(\n (state: AppState) => state.createTenant.fields.security.enableAutoCert,\n );\n const enableTLS = useSelector(\n (state: AppState) => state.createTenant.fields.security.enableTLS,\n );\n const minioServerCertificates = useSelector(\n (state: AppState) =>\n state.createTenant.certificates.minioServerCertificates,\n );\n const kesServerCertificate = useSelector(\n (state: AppState) => state.createTenant.certificates.kesServerCertificate,\n );\n const minioMTLSCertificate = useSelector(\n (state: AppState) => state.createTenant.certificates.minioMTLSCertificate,\n );\n const kmsMTLSCertificate = useSelector(\n (state: AppState) => state.createTenant.certificates.kmsMTLSCertificate,\n );\n const kmsCA = useSelector(\n (state: AppState) => state.createTenant.certificates.kmsCA,\n );\n const enableCustomCerts = useSelector(\n (state: AppState) => state.createTenant.fields.security.enableCustomCerts,\n );\n const kesSecurityContext = useSelector(\n (state: AppState) =>\n state.createTenant.fields.encryption.kesSecurityContext,\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n let encryptionAvailable = false;\n if (\n enableTLS &&\n (enableAutoCert ||\n (minioServerCertificates &&\n minioServerCertificates.filter(\n (item) => item.encoded_key && item.encoded_cert,\n ).length > 0))\n ) {\n encryptionAvailable = true;\n }\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"encryption\", field: field, value: value }),\n );\n },\n [dispatch],\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n // Validation\n useEffect(() => {\n let encryptionValidation: IValidation[] = [];\n\n if (enableEncryption) {\n encryptionValidation = [\n {\n fieldKey: \"rawConfiguration\",\n required: encryptionTab > 0,\n value: rawConfiguration,\n },\n {\n fieldKey: \"replicas\",\n required: true,\n value: replicas,\n customValidation: parseInt(replicas) < 1,\n customValidationMessage: \"Replicas needs to be 1 or greater\",\n },\n {\n fieldKey: \"kes_securityContext_runAsUser\",\n required: true,\n value: kesSecurityContext.runAsUser,\n customValidation:\n kesSecurityContext.runAsUser === \"\" ||\n parseInt(kesSecurityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"kes_securityContext_runAsGroup\",\n required: true,\n value: kesSecurityContext.runAsGroup,\n customValidation:\n kesSecurityContext.runAsGroup === \"\" ||\n parseInt(kesSecurityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"kes_securityContext_fsGroup\",\n required: true,\n value: kesSecurityContext.fsGroup!,\n customValidation:\n kesSecurityContext.fsGroup === \"\" ||\n parseInt(kesSecurityContext.fsGroup!) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n ];\n\n if (enableCustomCerts) {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"serverKey\",\n required: !enableAutoCert,\n value: kesServerCertificate.encoded_key,\n },\n {\n fieldKey: \"serverCert\",\n required: !enableAutoCert,\n value: kesServerCertificate.encoded_cert,\n },\n {\n fieldKey: \"clientKey\",\n required: !enableAutoCert,\n value: minioMTLSCertificate.encoded_key,\n },\n {\n fieldKey: \"clientCert\",\n required: !enableAutoCert,\n value: minioMTLSCertificate.encoded_cert,\n },\n ];\n }\n }\n\n const commonVal = commonFormValidation(encryptionValidation);\n dispatch(\n isPageValid({\n pageName: \"encryption\",\n valid: Object.keys(commonVal).length === 0,\n }),\n );\n\n setValidationErrors(commonVal);\n }, [\n rawConfiguration,\n encryptionTab,\n enableEncryption,\n encryptionType,\n gcpProjectID,\n gcpEndpoint,\n gcpClientEmail,\n gcpClientID,\n gcpPrivateKeyID,\n gcpPrivateKey,\n dispatch,\n enableAutoCert,\n enableCustomCerts,\n kesServerCertificate.encoded_key,\n kesServerCertificate.encoded_cert,\n minioMTLSCertificate.encoded_key,\n minioMTLSCertificate.encoded_cert,\n kesSecurityContext,\n replicas,\n ]);\n\n return (\n \n \n \n Encryption\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"enableEncryption\", checked);\n }}\n description=\"\"\n disabled={!encryptionAvailable}\n />\n \n \n \n \n \n MinIO Server-Side Encryption (SSE) protects objects as part of write\n operations, allowing clients to take advantage of server processing\n power to secure objects at the storage layer (encryption-at-rest).\n SSE also provides key functionality to regulatory and compliance\n requirements around secure locking and erasure.\n \n \n \n \n \n\n {enableEncryption && (\n \n \n , value: number) => {\n updateField(\"encryptionTab\", value);\n }}\n indicatorColor=\"primary\"\n textColor=\"primary\"\n aria-label=\"cluster-tabs\"\n variant=\"scrollable\"\n scrollButtons=\"auto\"\n >\n \n \n \n \n\n {encryptionTab ? (\n \n \n {\n updateField(\"rawConfiguration\", value);\n }}\n editorHeight={\"550px\"}\n />\n \n \n ) : (\n \n \n {\n updateField(\"encryptionType\", e.target.value);\n }}\n selectorOptions={[\n { label: \"Vault\", value: \"vault\" },\n { label: \"AWS\", value: \"aws\" },\n { label: \"Gemalto\", value: \"gemalto\" },\n { label: \"GCP\", value: \"gcp\" },\n { label: \"Azure\", value: \"azure\" },\n ]}\n />\n \n {encryptionType === \"vault\" && }\n {encryptionType === \"azure\" && }\n {encryptionType === \"gcp\" && }\n {encryptionType === \"aws\" && }\n {encryptionType === \"gemalto\" && }\n \n )}\n\n
\n

Additional Configurations

\n
\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"enableCustomCertsForKES\", checked);\n }}\n label={\"Custom Certificates\"}\n disabled={!enableAutoCert}\n />\n \n {(enableCustomCertsForKES || !enableAutoCert) && (\n \n \n \n
\n \n Encryption server certificates\n \n {\n dispatch(\n addFileKESServerCert({\n key: \"key\",\n fileName: fileName,\n value: encodedValue,\n }),\n );\n cleanValidation(\"serverKey\");\n }}\n accept=\".key,.pem\"\n id=\"serverKey\"\n name=\"serverKey\"\n label=\"Key\"\n error={validationErrors[\"serverKey\"] || \"\"}\n value={kesServerCertificate.key}\n required={!enableAutoCert}\n />\n {\n dispatch(\n addFileKESServerCert({\n key: \"cert\",\n fileName: fileName,\n value: encodedValue,\n }),\n );\n cleanValidation(\"serverCert\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"serverCert\"\n name=\"serverCert\"\n label=\"Cert\"\n error={validationErrors[\"serverCert\"] || \"\"}\n value={kesServerCertificate.cert}\n required={!enableAutoCert}\n />\n
\n
\n
\n \n \n
\n \n MinIO mTLS certificates (connection between MinIO and\n the Encryption server)\n \n {\n dispatch(\n addFileMinIOMTLSCert({\n key: \"key\",\n fileName: fileName,\n value: encodedValue,\n }),\n );\n cleanValidation(\"clientKey\");\n }}\n accept=\".key,.pem\"\n id=\"clientKey\"\n name=\"clientKey\"\n label=\"Key\"\n error={validationErrors[\"clientKey\"] || \"\"}\n value={minioMTLSCertificate.key}\n required={!enableAutoCert}\n />\n {\n dispatch(\n addFileMinIOMTLSCert({\n key: \"cert\",\n fileName: fileName,\n value: encodedValue,\n }),\n );\n cleanValidation(\"clientCert\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"clientCert\"\n name=\"clientCert\"\n label=\"Cert\"\n error={validationErrors[\"clientCert\"] || \"\"}\n value={minioMTLSCertificate.cert}\n required={!enableAutoCert}\n />\n
\n
\n
\n \n
\n \n KMS mTLS certificates (connection between the Encryption\n server and the KMS)\n \n {\n dispatch(\n addFileKMSMTLSCert({\n key: \"key\",\n fileName: fileName,\n value: encodedValue,\n }),\n );\n cleanValidation(\"vault_key\");\n }}\n accept=\".key,.pem\"\n id=\"vault_key\"\n name=\"vault_key\"\n label=\"Key\"\n value={kmsMTLSCertificate.key}\n />\n {\n dispatch(\n addFileKMSMTLSCert({\n key: \"cert\",\n fileName: fileName,\n value: encodedValue,\n }),\n );\n cleanValidation(\"vault_cert\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"vault_cert\"\n name=\"vault_cert\"\n label=\"Cert\"\n value={kmsMTLSCertificate.cert}\n />\n {\n dispatch(\n addFileKMSCa({\n fileName: fileName,\n value: encodedValue,\n }),\n );\n cleanValidation(\"vault_ca\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"vault_ca\"\n name=\"vault_ca\"\n label=\"CA\"\n value={kmsCA.cert}\n />\n
\n
\n
\n )}\n \n \n ) => {\n updateField(\"replicas\", e.target.value);\n cleanValidation(\"replicas\");\n }}\n label=\"Replicas\"\n value={replicas}\n required\n error={validationErrors[\"replicas\"] || \"\"}\n />\n \n\n \n \n SecurityContext for KES pods\n \n \n \n \n ) => {\n updateField(\"kesSecurityContext\", {\n ...kesSecurityContext,\n runAsUser: e.target.value,\n });\n cleanValidation(\"kes_securityContext_runAsUser\");\n }}\n label=\"Run As User\"\n value={kesSecurityContext.runAsUser}\n required\n error={\n validationErrors[\"kes_securityContext_runAsUser\"] ||\n \"\"\n }\n min=\"0\"\n />\n \n \n ) => {\n updateField(\"kesSecurityContext\", {\n ...kesSecurityContext,\n runAsGroup: e.target.value,\n });\n cleanValidation(\"kes_securityContext_runAsGroup\");\n }}\n label=\"Run As Group\"\n value={kesSecurityContext.runAsGroup}\n required\n error={\n validationErrors[\"kes_securityContext_runAsGroup\"] ||\n \"\"\n }\n min=\"0\"\n />\n \n \n \n
\n \n \n \n ) => {\n updateField(\"kesSecurityContext\", {\n ...kesSecurityContext,\n fsGroup: e.target.value,\n });\n cleanValidation(\"kes_securityContext_fsGroup\");\n }}\n label=\"FsGroup\"\n value={kesSecurityContext.fsGroup!}\n required\n error={\n validationErrors[\"kes_securityContext_fsGroup\"] || \"\"\n }\n min=\"0\"\n />\n \n \n ) => {\n updateField(\"kesSecurityContext\", {\n ...kesSecurityContext,\n fsGroupChangePolicy: e.target.value,\n });\n }}\n options={[\n {\n label: \"Always\",\n value: \"Always\",\n },\n {\n label: \"OnRootMismatch\",\n value: \"OnRootMismatch\",\n },\n ]}\n />\n \n \n \n
\n \n
\n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"kesSecurityContext\", {\n ...kesSecurityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n
\n
\n \n
\n
\n )}\n
\n
\n );\n};\n\nexport default withStyles(styles)(Encryption);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, IconButton, Paper, SelectChangeEvent } from \"@mui/material\";\nimport { AppState, useAppDispatch } from \"../../../../../store\";\n\nimport {\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport { LabelKeyPair } from \"../../types\";\nimport RadioGroupSelector from \"../../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport api from \"../../../../../common/api\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { AddIcon, RemoveIcon } from \"mds\";\nimport SelectWrapper from \"../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport TolerationSelector from \"../../../Common/TolerationSelector/TolerationSelector\";\nimport { setModalErrorSnackMessage } from \"../../../../../systemSlice\";\nimport {\n addNewToleration,\n isPageValid,\n removeToleration,\n setKeyValuePairs,\n setTolerationInfo,\n updateAddField,\n} from \"../createTenantSlice\";\nimport H3Section from \"../../../Common/H3Section\";\n\ninterface IAffinityProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n overlayAction: {\n marginLeft: 10,\n display: \"flex\",\n alignItems: \"center\",\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n affinityConfigField: {\n display: \"flex\",\n },\n affinityFieldLabel: {\n display: \"flex\",\n flexFlow: \"column\",\n flex: 1,\n },\n radioField: {\n display: \"flex\",\n alignItems: \"flex-start\",\n marginTop: 10,\n \"& div:first-child\": {\n display: \"flex\",\n flexFlow: \"column\",\n alignItems: \"baseline\",\n textAlign: \"left !important\",\n },\n },\n affinityLabelKey: {\n \"& div:first-child\": {\n marginBottom: 0,\n },\n },\n affinityLabelValue: {\n marginLeft: 10,\n \"& div:first-child\": {\n marginBottom: 0,\n },\n },\n rowActions: {\n display: \"flex\",\n alignItems: \"center\",\n },\n affinityRow: {\n marginBottom: 10,\n display: \"flex\",\n },\n ...modalBasic,\n ...wizardCommon,\n });\n\ninterface OptionPair {\n label: string;\n value: string;\n}\n\nconst Affinity = ({ classes }: IAffinityProps) => {\n const dispatch = useAppDispatch();\n\n const podAffinity = useSelector(\n (state: AppState) => state.createTenant.fields.affinity.podAffinity,\n );\n const nodeSelectorLabels = useSelector(\n (state: AppState) => state.createTenant.fields.affinity.nodeSelectorLabels,\n );\n const withPodAntiAffinity = useSelector(\n (state: AppState) => state.createTenant.fields.affinity.withPodAntiAffinity,\n );\n const keyValuePairs = useSelector(\n (state: AppState) => state.createTenant.nodeSelectorPairs,\n );\n const tolerations = useSelector(\n (state: AppState) => state.createTenant.tolerations,\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n const [loading, setLoading] = useState(true);\n const [keyValueMap, setKeyValueMap] = useState<{ [key: string]: string[] }>(\n {},\n );\n const [keyOptions, setKeyOptions] = useState([]);\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({\n pageName: \"affinity\",\n field: field,\n value: value,\n }),\n );\n },\n [dispatch],\n );\n\n useEffect(() => {\n if (loading) {\n api\n .invoke(\"GET\", `/api/v1/nodes/labels`)\n .then((res: { [key: string]: string[] }) => {\n setLoading(false);\n setKeyValueMap(res);\n let keys: OptionPair[] = [];\n for (let k in res) {\n keys.push({\n label: k,\n value: k,\n });\n }\n setKeyOptions(keys);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n dispatch(setModalErrorSnackMessage(err));\n setKeyValueMap({});\n });\n }\n }, [dispatch, loading]);\n\n useEffect(() => {\n if (keyValuePairs) {\n const vlr = keyValuePairs\n .filter((kvp) => kvp.key !== \"\")\n .map((kvp) => `${kvp.key}=${kvp.value}`)\n .filter((kvs, i, a) => a.indexOf(kvs) === i);\n const vl = vlr.join(\"&\");\n updateField(\"nodeSelectorLabels\", vl);\n }\n }, [keyValuePairs, updateField]);\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n\n if (podAffinity === \"nodeSelector\") {\n let valid = true;\n\n const splittedLabels = nodeSelectorLabels.split(\"&\");\n\n if (splittedLabels.length === 1 && splittedLabels[0] === \"\") {\n valid = false;\n }\n\n splittedLabels.forEach((item: string, index: number) => {\n const splitItem = item.split(\"=\");\n\n if (splitItem.length !== 2) {\n valid = false;\n }\n\n if (index + 1 !== splittedLabels.length) {\n if (splitItem[0] === \"\" || splitItem[1] === \"\") {\n valid = false;\n }\n }\n });\n\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"labels\",\n required: true,\n value: nodeSelectorLabels,\n customValidation: !valid,\n customValidationMessage:\n \"You need to add at least one label key-pair\",\n },\n ];\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n dispatch(\n isPageValid({\n pageName: \"affinity\",\n valid: Object.keys(commonVal).length === 0,\n }),\n );\n\n setValidationErrors(commonVal);\n }, [dispatch, podAffinity, nodeSelectorLabels]);\n\n const updateToleration = (index: number, field: string, value: any) => {\n const alterToleration = { ...tolerations[index], [field]: value };\n\n dispatch(\n setTolerationInfo({\n index: index,\n tolerationValue: alterToleration,\n }),\n );\n };\n\n return (\n \n
\n Pod Placement\n \n Configure how pods will be assigned to nodes\n \n
\n \n \n
Type
\n \n MinIO supports multiple configurations for Pod Affinity\n \n \n {\n updateField(\"podAffinity\", e.target.value);\n }}\n selectorOptions={[\n { label: \"None\", value: \"none\" },\n { label: \"Default (Pod Anti-Affinity)\", value: \"default\" },\n { label: \"Node Selector\", value: \"nodeSelector\" },\n ]}\n />\n \n
\n
\n {podAffinity === \"nodeSelector\" && (\n \n
\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"withPodAntiAffinity\", checked);\n }}\n label={\"With Pod Anti-Affinity\"}\n />\n \n \n

Labels

\n {validationErrors[\"labels\"]}\n \n {keyValuePairs &&\n keyValuePairs.map((kvp, i) => {\n return (\n \n \n {keyOptions.length > 0 && (\n ) => {\n const newKey = e.target.value as string;\n const newLKP: LabelKeyPair = {\n key: newKey,\n value: keyValueMap[newKey][0],\n };\n const arrCp: LabelKeyPair[] = [...keyValuePairs];\n arrCp[i] = newLKP;\n dispatch(setKeyValuePairs(arrCp));\n }}\n id=\"select-access-policy\"\n name=\"select-access-policy\"\n label={\"\"}\n value={kvp.key}\n options={keyOptions}\n />\n )}\n {keyOptions.length === 0 && (\n {\n const arrCp: LabelKeyPair[] = [...keyValuePairs];\n arrCp[i] = {\n key: arrCp[i].key,\n value: e.target.value as string,\n };\n dispatch(setKeyValuePairs(arrCp));\n }}\n index={i}\n placeholder={\"Key\"}\n />\n )}\n \n \n {keyOptions.length > 0 && (\n ) => {\n const arrCp: LabelKeyPair[] = [...keyValuePairs];\n arrCp[i] = {\n key: arrCp[i].key,\n value: e.target.value as string,\n };\n dispatch(setKeyValuePairs(arrCp));\n }}\n id=\"select-access-policy\"\n name=\"select-access-policy\"\n label={\"\"}\n value={kvp.value}\n options={\n keyValueMap[kvp.key]\n ? keyValueMap[kvp.key].map((v) => {\n return { label: v, value: v };\n })\n : []\n }\n />\n )}\n {keyOptions.length === 0 && (\n {\n const arrCp: LabelKeyPair[] = [...keyValuePairs];\n arrCp[i] = {\n key: arrCp[i].key,\n value: e.target.value as string,\n };\n dispatch(setKeyValuePairs(arrCp));\n }}\n index={i}\n placeholder={\"value\"}\n />\n )}\n \n \n
\n {\n const arrCp = [...keyValuePairs];\n if (keyOptions.length > 0) {\n arrCp.push({\n key: keyOptions[0].value,\n value: keyValueMap[keyOptions[0].value][0],\n });\n } else {\n arrCp.push({ key: \"\", value: \"\" });\n }\n\n dispatch(setKeyValuePairs(arrCp));\n }}\n disabled={i !== keyValuePairs.length - 1}\n >\n \n \n
\n
\n {\n const arrCp = keyValuePairs.filter(\n (item, index) => index !== i,\n );\n dispatch(setKeyValuePairs(arrCp));\n }}\n disabled={keyValuePairs.length <= 1}\n >\n \n \n
\n
\n
\n );\n })}\n
\n \n
\n )}\n \n \n

Tolerations

\n \n {validationErrors[\"tolerations\"]}\n \n \n {tolerations &&\n tolerations.map((tol, i) => {\n return (\n \n {\n updateToleration(i, \"effect\", value);\n }}\n tolerationKey={tol.key}\n onTolerationKeyChange={(value) => {\n updateToleration(i, \"key\", value);\n }}\n operator={tol.operator}\n onOperatorChange={(value) => {\n updateToleration(i, \"operator\", value);\n }}\n value={tol.value}\n onValueChange={(value) => {\n updateToleration(i, \"value\", value);\n }}\n tolerationSeconds={tol.tolerationSeconds?.seconds || 0}\n onSecondsChange={(value) => {\n updateToleration(i, \"tolerationSeconds\", {\n seconds: value,\n });\n }}\n index={i}\n />\n
\n {\n dispatch(addNewToleration());\n }}\n disabled={i !== tolerations.length - 1}\n >\n \n \n
\n\n
\n dispatch(removeToleration(i))}\n disabled={tolerations.length <= 1}\n >\n \n \n
\n
\n );\n })}\n
\n
\n \n
\n );\n};\n\nexport default withStyles(styles)(Affinity);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, Paper } from \"@mui/material\";\nimport {\n formFieldStyles,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../../store\";\nimport { clearValidationError } from \"../../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { isPageValid, updateAddField } from \"../createTenantSlice\";\nimport H3Section from \"../../../Common/H3Section\";\n\ninterface IImagesProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...formFieldStyles,\n ...wizardCommon,\n });\n\nconst Images = ({ classes }: IImagesProps) => {\n const dispatch = useAppDispatch();\n\n const customImage = useSelector(\n (state: AppState) => state.createTenant.fields.configure.customImage,\n );\n const imageName = useSelector(\n (state: AppState) => state.createTenant.fields.configure.imageName,\n );\n const customDockerhub = useSelector(\n (state: AppState) => state.createTenant.fields.configure.customDockerhub,\n );\n const imageRegistry = useSelector(\n (state: AppState) => state.createTenant.fields.configure.imageRegistry,\n );\n const imageRegistryUsername = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.imageRegistryUsername,\n );\n const imageRegistryPassword = useSelector(\n (state: AppState) =>\n state.createTenant.fields.configure.imageRegistryPassword,\n );\n\n const tenantCustom = useSelector(\n (state: AppState) => state.createTenant.fields.configure.tenantCustom,\n );\n\n const kesImage = useSelector(\n (state: AppState) => state.createTenant.fields.configure.kesImage,\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n updateAddField({ pageName: \"configure\", field: field, value: value }),\n );\n },\n [dispatch],\n );\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n\n if (customImage) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"image\",\n required: false,\n value: imageName,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage: \"Format must be of form: 'minio/minio:VERSION'\",\n },\n {\n fieldKey: \"kesImage\",\n required: false,\n value: kesImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage: \"Format must be of form: 'minio/kes:VERSION'\",\n },\n ];\n if (customDockerhub) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"registry\",\n required: true,\n value: imageRegistry,\n },\n {\n fieldKey: \"registryUsername\",\n required: true,\n value: imageRegistryUsername,\n },\n {\n fieldKey: \"registryPassword\",\n required: true,\n value: imageRegistryPassword,\n },\n ];\n }\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n dispatch(\n isPageValid({\n pageName: \"configure\",\n valid: Object.keys(commonVal).length === 0,\n }),\n );\n\n setValidationErrors(commonVal);\n }, [\n customImage,\n imageName,\n kesImage,\n customDockerhub,\n imageRegistry,\n imageRegistryUsername,\n imageRegistryPassword,\n dispatch,\n tenantCustom,\n ]);\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n
\n Container Images\n \n Specify the container images used by the Tenant and its features.\n \n
\n\n \n \n ) => {\n updateField(\"imageName\", e.target.value);\n cleanValidation(\"image\");\n }}\n label=\"MinIO\"\n value={imageName}\n error={validationErrors[\"image\"] || \"\"}\n placeholder=\"minio/minio:RELEASE.2023-09-07T02-05-02Z\"\n />\n \n\n \n ) => {\n updateField(\"kesImage\", e.target.value);\n cleanValidation(\"kesImage\");\n }}\n label=\"KES\"\n value={kesImage}\n error={validationErrors[\"kesImage\"] || \"\"}\n placeholder=\"minio/kes:2023-08-19T17-27-47Z\"\n />\n \n \n\n {customImage && (\n \n \n

Custom Container Registry

\n
\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"customDockerhub\", checked);\n }}\n label={\"Use a private container registry\"}\n />\n \n
\n )}\n {customDockerhub && (\n \n \n ) => {\n updateField(\"imageRegistry\", e.target.value);\n }}\n label=\"Endpoint\"\n value={imageRegistry}\n error={validationErrors[\"registry\"] || \"\"}\n placeholder=\"https://index.docker.io/v1/\"\n required\n />\n \n \n ) => {\n updateField(\"imageRegistryUsername\", e.target.value);\n }}\n label=\"Username\"\n value={imageRegistryUsername}\n error={validationErrors[\"registryUsername\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"imageRegistryPassword\", e.target.value);\n }}\n label=\"Password\"\n value={imageRegistryPassword}\n error={validationErrors[\"registryPassword\"] || \"\"}\n required\n />\n \n \n )}\n
\n );\n};\n\nexport default withStyles(styles)(Images);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { AppState } from \"../../../../../store\";\nimport {\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport Table from \"@mui/material/Table\";\nimport TableBody from \"@mui/material/TableBody\";\nimport TableCell from \"@mui/material/TableCell\";\nimport TableRow from \"@mui/material/TableRow\";\nimport { niceBytes } from \"../../../../../common/utils\";\n\nimport { Divider } from \"@mui/material\";\n\ninterface ISizePreviewProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n margin: 4,\n },\n table: {\n \"& .MuiTableCell-root\": {\n fontSize: 13,\n },\n },\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst SizePreview = ({ classes }: ISizePreviewProps) => {\n const nodes = useSelector(\n (state: AppState) => state.createTenant.fields.tenantSize.nodes,\n );\n const memoryNode = useSelector(\n (state: AppState) =>\n state.createTenant.fields.tenantSize.resourcesMemoryRequest,\n );\n const ecParity = useSelector(\n (state: AppState) => state.createTenant.fields.tenantSize.ecParity,\n );\n\n const distribution = useSelector(\n (state: AppState) => state.createTenant.fields.tenantSize.distribution,\n );\n const ecParityCalc = useSelector(\n (state: AppState) => state.createTenant.fields.tenantSize.ecParityCalc,\n );\n\n const cpuToUse = useSelector(\n (state: AppState) =>\n state.createTenant.fields.tenantSize.resourcesCPURequest,\n );\n const integrationSelection = useSelector(\n (state: AppState) =>\n state.createTenant.fields.tenantSize.integrationSelection,\n );\n\n const usableInformation = ecParityCalc.storageFactors.find(\n (element) => element.erasureCode === ecParity,\n );\n\n return (\n
\n

Resource Allocation

\n \n \n \n \n Number of Servers\n \n {parseInt(nodes) > 0 ? nodes : \"-\"}\n \n \n {integrationSelection.typeSelection === \"\" &&\n integrationSelection.storageClass === \"\" && (\n \n \n Drives per Server\n \n {distribution ? distribution.disks : \"-\"}\n \n \n \n Drive Capacity\n \n {distribution ? niceBytes(distribution.pvSize) : \"-\"}\n \n \n \n )}\n\n \n Total Volumes\n \n {distribution ? distribution.persistentVolumes : \"-\"}\n \n \n {integrationSelection.typeSelection === \"\" &&\n integrationSelection.storageClass === \"\" && (\n \n \n Memory per Node\n {memoryNode} Gi\n \n \n \n CPU Selection\n \n \n {cpuToUse}\n \n \n \n )}\n \n
\n {ecParityCalc.error === 0 && usableInformation && (\n \n

Erasure Code Configuration

\n \n \n \n \n EC Parity\n \n {ecParity !== \"\" ? ecParity : \"-\"}\n \n \n \n Raw Capacity\n \n {niceBytes(ecParityCalc.rawCapacity)}\n \n \n \n Usable Capacity\n \n {niceBytes(usableInformation.maxCapacity)}\n \n \n \n \n Server Failures Tolerated\n \n \n {distribution\n ? Math.floor(\n usableInformation.maxFailureTolerations /\n distribution.disks,\n )\n : \"-\"}\n \n \n \n \n
\n )}\n {integrationSelection.typeSelection !== \"\" &&\n integrationSelection.storageClass !== \"\" && (\n \n

Single Instance Configuration

\n \n \n \n \n CPU\n \n {integrationSelection.CPU !== 0\n ? integrationSelection.CPU\n : \"-\"}\n \n \n \n Memory\n \n {integrationSelection.memory !== 0\n ? `${integrationSelection.memory} Gi`\n : \"-\"}\n \n \n \n Drives per Server\n \n {integrationSelection.drivesPerServer !== 0\n ? `${integrationSelection.drivesPerServer}`\n : \"-\"}\n \n \n \n \n Drive Size\n \n \n {integrationSelection.driveSize.driveSize}\n {integrationSelection.driveSize.sizeUnit}\n \n \n \n \n
\n )}\n
\n );\n};\n\nexport default withStyles(styles)(SizePreview);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { DialogContentText, LinearProgress } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n deleteDialogStyles,\n modalBasic,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport ConfirmDialog from \"../../../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmModalIcon } from \"mds\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { closeAddNSModal } from \"../../createTenantSlice\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { createNamespaceAsync } from \"../../thunks/namespaceThunks\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n wrapText: {\n maxWidth: \"200px\",\n whiteSpace: \"normal\",\n wordWrap: \"break-word\",\n },\n ...modalBasic,\n ...deleteDialogStyles,\n }),\n);\n\nconst AddNamespaceModal = () => {\n const dispatch = useAppDispatch();\n const classes = useStyles();\n\n const namespace = useSelector(\n (state: AppState) => state.createTenant.fields.nameTenant.namespace,\n );\n const addNamespaceLoading = useSelector(\n (state: AppState) => state.createTenant.addNSLoading,\n );\n const addNamespaceOpen = useSelector(\n (state: AppState) => state.createTenant.addNSOpen,\n );\n\n return (\n }\n isLoading={addNamespaceLoading}\n onConfirm={() => {\n dispatch(createNamespaceAsync());\n }}\n onClose={() => {\n dispatch(closeAddNSModal());\n }}\n confirmationContent={\n \n {addNamespaceLoading && }\n \n Are you sure you want to add a namespace called\n
\n {namespace}?\n
\n
\n }\n />\n );\n};\n\nexport default AddNamespaceModal;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useMemo } from \"react\";\nimport { AddIcon } from \"mds\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { openAddNSModal, setNamespace } from \"../../createTenantSlice\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport AddNamespaceModal from \"../helpers/AddNamespaceModal\";\nimport debounce from \"lodash/debounce\";\nimport { IMkEnvs } from \"./utils\";\nimport { validateNamespaceAsync } from \"../../thunks/namespaceThunks\";\n\nconst NamespaceSelector = ({ formToRender }: { formToRender?: IMkEnvs }) => {\n const dispatch = useAppDispatch();\n\n const namespace = useSelector(\n (state: AppState) => state.createTenant.fields.nameTenant.namespace,\n );\n\n const showNSCreateButton = useSelector(\n (state: AppState) => state.createTenant.showNSCreateButton,\n );\n\n const namespaceError = useSelector(\n (state: AppState) => state.createTenant.validationErrors[\"namespace\"],\n );\n const openAddNSConfirm = useSelector(\n (state: AppState) => state.createTenant.addNSOpen,\n );\n\n const debounceNamespace = useMemo(\n () =>\n debounce(() => {\n dispatch(validateNamespaceAsync());\n }, 500),\n [dispatch],\n );\n\n useEffect(() => {\n if (namespace !== \"\") {\n debounceNamespace();\n // Cancel previous debounce calls during useEffect cleanup.\n return debounceNamespace.cancel;\n }\n }, [debounceNamespace, namespace]);\n\n const addNamespace = () => {\n dispatch(openAddNSModal());\n };\n\n return (\n \n {openAddNSConfirm && }\n ) => {\n dispatch(setNamespace(e.target.value));\n }}\n label=\"Namespace\"\n value={namespace}\n error={namespaceError || \"\"}\n overlayId={\"add-namespace\"}\n overlayIcon={showNSCreateButton ? : null}\n overlayAction={addNamespace}\n required\n />\n \n );\n};\nexport default NamespaceSelector;\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport get from \"lodash/get\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport SelectWrapper from \"../../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport SizePreview from \"../SizePreview\";\nimport TenantSize from \"./TenantSize\";\nimport { Paper, SelectChangeEvent } from \"@mui/material\";\nimport { IMkEnvs, mkPanelConfigurations } from \"./utils\";\nimport {\n isPageValid,\n setStorageType,\n setTenantName,\n updateAddField,\n} from \"../../createTenantSlice\";\nimport { selFeatures } from \"../../../../consoleSlice\";\nimport NamespaceSelector from \"./NamespaceSelector\";\nimport H3Section from \"../../../../Common/H3Section\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n sizePreview: {\n marginLeft: 10,\n background: \"#FFFFFF\",\n border: \"1px solid #EAEAEA\",\n padding: 2,\n marginTop: 20,\n },\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst NameTenantField = () => {\n const dispatch = useAppDispatch();\n const tenantName = useSelector(\n (state: AppState) => state.createTenant.fields.nameTenant.tenantName,\n );\n\n const tenantNameError = useSelector(\n (state: AppState) => state.createTenant.validationErrors[\"tenant-name\"],\n );\n\n return (\n ) => {\n dispatch(setTenantName(e.target.value));\n }}\n label=\"Name\"\n value={tenantName}\n required\n error={tenantNameError || \"\"}\n />\n );\n};\n\ninterface INameTenantMainScreen {\n classes: any;\n formToRender?: IMkEnvs;\n}\n\nconst NameTenantMain = ({ classes, formToRender }: INameTenantMainScreen) => {\n const dispatch = useAppDispatch();\n\n const selectedStorageClass = useSelector(\n (state: AppState) =>\n state.createTenant.fields.nameTenant.selectedStorageClass,\n );\n const selectedStorageType = useSelector(\n (state: AppState) =>\n state.createTenant.fields.nameTenant.selectedStorageType,\n );\n const storageClasses = useSelector(\n (state: AppState) => state.createTenant.storageClasses,\n );\n const features = useSelector(selFeatures);\n\n // Common\n const updateField = useCallback(\n (field: string, value: string) => {\n dispatch(\n updateAddField({ pageName: \"nameTenant\", field: field, value: value }),\n );\n },\n [dispatch],\n );\n\n // Validation\n useEffect(() => {\n const isValid =\n (formToRender === IMkEnvs.default && storageClasses.length > 0) ||\n (formToRender !== IMkEnvs.default && selectedStorageType !== \"\");\n\n dispatch(isPageValid({ pageName: \"nameTenant\", valid: isValid }));\n }, [storageClasses, dispatch, selectedStorageType, formToRender]);\n\n return (\n \n \n \n \n \n \n
\n Name\n \n How would you like to name this new tenant?\n \n
\n
\n \n
\n
\n \n \n \n {formToRender === IMkEnvs.default ? (\n \n ) => {\n updateField(\n \"selectedStorageClass\",\n e.target.value as string,\n );\n }}\n label=\"Storage Class\"\n value={selectedStorageClass}\n options={storageClasses}\n disabled={storageClasses.length < 1}\n />\n \n ) : (\n \n ) => {\n dispatch(\n setStorageType({\n storageType: e.target.value as string,\n features: features,\n }),\n );\n }}\n label={get(\n mkPanelConfigurations,\n `${formToRender}.variantSelectorLabel`,\n \"Storage Type\",\n )}\n value={selectedStorageType}\n options={get(\n mkPanelConfigurations,\n `${formToRender}.variantSelectorValues`,\n [],\n )}\n />\n \n )}\n {formToRender === IMkEnvs.default ? (\n \n ) : (\n get(\n mkPanelConfigurations,\n `${formToRender}.sizingComponent`,\n null,\n )\n )}\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n );\n};\n\nexport default withStyles(styles)(NameTenantMain);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport get from \"lodash/get\";\nimport NameTenantMain from \"./NameTenantMain\";\nimport { IMkEnvs, resourcesConfigurations } from \"./utils\";\nimport { selFeatures } from \"../../../../consoleSlice\";\n\nconst TenantResources = () => {\n const features = useSelector(selFeatures);\n const [formRender, setFormRender] = useState(null);\n\n useEffect(() => {\n let setConfiguration = IMkEnvs.default;\n\n if (features && features.length !== 0) {\n const possibleVariables = Object.keys(resourcesConfigurations);\n\n possibleVariables.forEach((element) => {\n if (features.includes(element)) {\n setConfiguration = get(\n resourcesConfigurations,\n element,\n IMkEnvs.default,\n );\n }\n });\n }\n\n setFormRender(setConfiguration);\n }, [features]);\n\n if (formRender === null) {\n return null;\n }\n\n return ;\n};\n\nexport default TenantResources;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nexport const requiredPages = [\n \"nameTenant\",\n \"tenantSize\",\n \"configure\",\n \"affinity\",\n \"identityProvider\",\n \"security\",\n \"encryption\",\n];\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Button } from \"mds\";\nimport React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport { requiredPages } from \"./common\";\nimport { createTenantAsync } from \"./thunks/createTenantThunk\";\n\nconst CreateTenantButton = () => {\n const dispatch = useAppDispatch();\n\n const addSending = useSelector(\n (state: AppState) => state.createTenant.addingTenant,\n );\n\n const validPages = useSelector(\n (state: AppState) => state.createTenant.validPages,\n );\n\n const selectedStorageClass = useSelector(\n (state: AppState) =>\n state.createTenant.fields.nameTenant.selectedStorageClass,\n );\n\n const enabled =\n !addSending &&\n selectedStorageClass !== \"\" &&\n requiredPages.every((v) => validPages.includes(v));\n\n return (\n {\n dispatch(createTenantAsync());\n }}\n disabled={!enabled}\n key={`button-AddTenant-Create`}\n label={\"Create\"}\n />\n );\n};\n\nexport default CreateTenantButton;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport CredentialsPrompt from \"../../Common/CredentialsPrompt/CredentialsPrompt\";\nimport { resetAddTenantForm } from \"./createTenantSlice\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport { useNavigate } from \"react-router-dom\";\n\nconst NewTenantCredentials = () => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n\n const showNewCredentials = useSelector(\n (state: AppState) => state.createTenant.showNewCredentials,\n );\n const createdAccount = useSelector(\n (state: AppState) => state.createTenant.createdAccount,\n );\n\n return (\n \n {showNewCredentials && (\n {\n dispatch(resetAddTenantForm());\n navigate(\"/tenants\");\n }}\n entity=\"Tenant\"\n />\n )}\n \n );\n};\n\nexport default NewTenantCredentials;\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport get from \"lodash/get\";\nimport { useSelector } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport { LinearProgress } from \"@mui/material\";\n\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n modalBasic,\n settingsCommon,\n wizardCommon,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport GenericWizard from \"../../Common/GenericWizard/GenericWizard\";\nimport {\n IWizardButton,\n IWizardElement,\n} from \"../../Common/GenericWizard/types\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport Configure from \"./Steps/Configure\";\nimport IdentityProvider from \"./Steps/IdentityProvider\";\nimport Security from \"./Steps/Security\";\nimport Encryption from \"./Steps/Encryption\";\nimport Affinity from \"./Steps/Affinity\";\nimport Images from \"./Steps/Images\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\n\nimport TenantResources from \"./Steps/TenantResources/TenantResources\";\nimport {\n IMkEnvs,\n resourcesConfigurations,\n} from \"./Steps/TenantResources/utils\";\nimport { BackLink, HelpBox, StorageIcon } from \"mds\";\nimport { selFeatures } from \"../../consoleSlice\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { resetAddTenantForm } from \"./createTenantSlice\";\nimport CreateTenantButton from \"./CreateTenantButton\";\nimport NewTenantCredentials from \"./NewTenantCredentials\";\nimport { useNavigate } from \"react-router-dom\";\nimport PageHeaderWrapper from \"../../Common/PageHeaderWrapper/PageHeaderWrapper\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n pageBox: {\n border: \"1px solid #EAEAEA\",\n },\n ...modalBasic,\n ...wizardCommon,\n ...settingsCommon,\n }),\n);\n\nconst AddTenant = () => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n const classes = useStyles();\n\n const features = useSelector(selFeatures);\n\n // Fields\n const addSending = useSelector(\n (state: AppState) => state.createTenant.addingTenant,\n );\n const [formRender, setFormRender] = useState(null);\n\n useEffect(() => {\n let setConfiguration = IMkEnvs.default;\n\n if (features && features.length !== 0) {\n const possibleVariables = Object.keys(resourcesConfigurations);\n\n possibleVariables.forEach((element) => {\n if (features.includes(element)) {\n setConfiguration = get(\n resourcesConfigurations,\n element,\n IMkEnvs.default,\n );\n }\n });\n }\n\n setFormRender(setConfiguration);\n }, [features]);\n\n const cancelButton = {\n label: \"Cancel\",\n type: \"other\",\n enabled: true,\n action: () => {\n dispatch(resetAddTenantForm());\n navigate(\"/tenants\");\n },\n };\n\n const createButton: IWizardButton = {\n componentRender: ,\n };\n\n const wizardSteps: IWizardElement[] = [\n {\n label: \"Setup\",\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Configure\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Images\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Pod Placement\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Identity Provider\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Security\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Encryption\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n ];\n\n let filteredWizardSteps = wizardSteps;\n\n return (\n \n \n {\n dispatch(resetAddTenantForm());\n navigate(\"/tenants\");\n }}\n label={\"Tenants\"}\n />\n }\n />\n\n \n {addSending && (\n \n \n \n )}\n \n \n \n {formRender === IMkEnvs.aws && (\n \n }\n help={\n \n Performance Optimized: Uses the gp3 EBS storage\n class class configured at 1,000Mi/s throughput and 16,000\n IOPS, however the minimum volume size for this type of EBS\n volume is 32Gi.\n
\n
\n Storage Optimized: Uses the sc1 EBS storage\n class, however the minimum volume size for this type of EBS\n volume is  \n 16Ti to unlock their maximum throughput speed of\n 250Mi/s.\n
\n }\n />\n
\n )}\n
\n
\n );\n};\n\nexport default AddTenant;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Box } from \"@mui/material\";\nimport { CertificateIcon } from \"mds\";\nimport { useParams } from \"react-router-dom\";\nimport { AppState } from \"../../../../store\";\n\nconst FeatureItem = ({\n icon,\n description,\n}: {\n icon: any;\n description: string;\n}) => {\n return (\n \n {icon}{\" \"}\n
\n {description}\n
\n \n );\n};\nconst TLSHelpBox = () => {\n const params = useParams();\n const tenantNameParam = params.tenantName || \"\";\n const tenantNamespaceParam = params.tenantNamespace || \"\";\n const namespace = useSelector((state: AppState) => {\n var defaultNamespace = \"\";\n if (tenantNamespaceParam !== \"\") {\n return tenantNamespaceParam;\n }\n if (state.createTenant.fields.nameTenant.namespace !== \"\") {\n return state.createTenant.fields.nameTenant.namespace;\n }\n return defaultNamespace;\n });\n\n const tenantName = useSelector((state: AppState) => {\n var defaultTenantName = \"\";\n if (tenantNameParam !== \"\") {\n return tenantNameParam;\n }\n\n if (state.createTenant.fields.nameTenant.tenantName !== \"\") {\n return state.createTenant.fields.nameTenant.tenantName;\n }\n return defaultTenantName;\n });\n\n return (\n \n \n }\n description={`TLS Certificates Warning`}\n />\n \n Automatic certificate generation is not enabled.\n
\n
\n If you wish to continue only with custom certificates make sure\n they are valid for the following internode hostnames, i.e.:\n
\n
\n \n minio.{namespace}\n
\n minio.{namespace}.svc\n
\n minio.{namespace}.svc.<cluster domain>\n
\n *.{tenantName}-hl.{namespace}.svc.<cluster domain>\n
\n *.{namespace}.svc.<cluster domain>\n \n
\n Replace <tenant-name>,{\" \"}\n <namespace> and\n <cluster domain> with the actual values for your\n MinIO tenant.\n
\n
\n You can learn more at our{\" \"}\n \n documentation\n \n .\n
\n \n \n );\n};\n\nexport default TLSHelpBox;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Grid } from \"@mui/material\";\nimport { LDAPIcon, OIDCIcon, UsersIcon } from \"mds\";\n\nexport const OIDCLogoElement = () => {\n return (\n \n \n \n \n Open ID\n \n );\n};\n\nexport const LDAPLogoElement = () => {\n return (\n \n \n \n \n LDAP / Active Directory\n \n );\n};\n\nexport const BuiltInLogoElement = () => {\n return (\n \n \n \n \n Built-in\n \n );\n};\n","import React from \"react\";\nimport Typography from \"@mui/material/Typography\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n errorBlock: {\n color: theme.palette?.error.main || \"#C83B51\",\n },\n });\n\ninterface IErrorBlockProps {\n classes: any;\n errorMessage: string;\n withBreak?: boolean;\n}\n\nconst ErrorBlock = ({\n classes,\n errorMessage,\n withBreak = true,\n}: IErrorBlockProps) => {\n return (\n \n {withBreak &&
}\n \n {errorMessage}\n \n
\n );\n};\n\nexport default withStyles(styles)(ErrorBlock);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"\n}), 'Add');\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z\"\n}), 'AttachFile');\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z\"\n}), 'Cancel');\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM7.5 18c-.83 0-1.5-.67-1.5-1.5S6.67 15 7.5 15s1.5.67 1.5 1.5S8.33 18 7.5 18zm0-9C6.67 9 6 8.33 6 7.5S6.67 6 7.5 6 9 6.67 9 7.5 8.33 9 7.5 9zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm0-9c-.83 0-1.5-.67-1.5-1.5S15.67 6 16.5 6s1.5.67 1.5 1.5S17.33 9 16.5 9z\"\n}), 'Casino');\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\"\n}), 'Delete');\nexports.default = _default;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"absolute\", \"children\", \"className\", \"component\", \"flexItem\", \"light\", \"orientation\", \"role\", \"textAlign\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getDividerUtilityClass } from './dividerClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n absolute,\n children,\n classes,\n flexItem,\n light,\n orientation,\n textAlign,\n variant\n } = ownerState;\n const slots = {\n root: ['root', absolute && 'absolute', variant, light && 'light', orientation === 'vertical' && 'vertical', flexItem && 'flexItem', children && 'withChildren', children && orientation === 'vertical' && 'withChildrenVertical', textAlign === 'right' && orientation !== 'vertical' && 'textAlignRight', textAlign === 'left' && orientation !== 'vertical' && 'textAlignLeft'],\n wrapper: ['wrapper', orientation === 'vertical' && 'wrapperVertical']\n };\n return composeClasses(slots, getDividerUtilityClass, classes);\n};\nconst DividerRoot = styled('div', {\n name: 'MuiDivider',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.absolute && styles.absolute, styles[ownerState.variant], ownerState.light && styles.light, ownerState.orientation === 'vertical' && styles.vertical, ownerState.flexItem && styles.flexItem, ownerState.children && styles.withChildren, ownerState.children && ownerState.orientation === 'vertical' && styles.withChildrenVertical, ownerState.textAlign === 'right' && ownerState.orientation !== 'vertical' && styles.textAlignRight, ownerState.textAlign === 'left' && ownerState.orientation !== 'vertical' && styles.textAlignLeft];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n margin: 0,\n // Reset browser default style.\n flexShrink: 0,\n borderWidth: 0,\n borderStyle: 'solid',\n borderColor: (theme.vars || theme).palette.divider,\n borderBottomWidth: 'thin'\n}, ownerState.absolute && {\n position: 'absolute',\n bottom: 0,\n left: 0,\n width: '100%'\n}, ownerState.light && {\n borderColor: theme.vars ? `rgba(${theme.vars.palette.dividerChannel} / 0.08)` : alpha(theme.palette.divider, 0.08)\n}, ownerState.variant === 'inset' && {\n marginLeft: 72\n}, ownerState.variant === 'middle' && ownerState.orientation === 'horizontal' && {\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(2)\n}, ownerState.variant === 'middle' && ownerState.orientation === 'vertical' && {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1)\n}, ownerState.orientation === 'vertical' && {\n height: '100%',\n borderBottomWidth: 0,\n borderRightWidth: 'thin'\n}, ownerState.flexItem && {\n alignSelf: 'stretch',\n height: 'auto'\n}), ({\n ownerState\n}) => _extends({}, ownerState.children && {\n display: 'flex',\n whiteSpace: 'nowrap',\n textAlign: 'center',\n border: 0,\n '&::before, &::after': {\n content: '\"\"',\n alignSelf: 'center'\n }\n}), ({\n theme,\n ownerState\n}) => _extends({}, ownerState.children && ownerState.orientation !== 'vertical' && {\n '&::before, &::after': {\n width: '100%',\n borderTop: `thin solid ${(theme.vars || theme).palette.divider}`\n }\n}), ({\n theme,\n ownerState\n}) => _extends({}, ownerState.children && ownerState.orientation === 'vertical' && {\n flexDirection: 'column',\n '&::before, &::after': {\n height: '100%',\n borderLeft: `thin solid ${(theme.vars || theme).palette.divider}`\n }\n}), ({\n ownerState\n}) => _extends({}, ownerState.textAlign === 'right' && ownerState.orientation !== 'vertical' && {\n '&::before': {\n width: '90%'\n },\n '&::after': {\n width: '10%'\n }\n}, ownerState.textAlign === 'left' && ownerState.orientation !== 'vertical' && {\n '&::before': {\n width: '10%'\n },\n '&::after': {\n width: '90%'\n }\n}));\nconst DividerWrapper = styled('span', {\n name: 'MuiDivider',\n slot: 'Wrapper',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.wrapper, ownerState.orientation === 'vertical' && styles.wrapperVertical];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'inline-block',\n paddingLeft: `calc(${theme.spacing(1)} * 1.2)`,\n paddingRight: `calc(${theme.spacing(1)} * 1.2)`\n}, ownerState.orientation === 'vertical' && {\n paddingTop: `calc(${theme.spacing(1)} * 1.2)`,\n paddingBottom: `calc(${theme.spacing(1)} * 1.2)`\n}));\nconst Divider = /*#__PURE__*/React.forwardRef(function Divider(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDivider'\n });\n const {\n absolute = false,\n children,\n className,\n component = children ? 'div' : 'hr',\n flexItem = false,\n light = false,\n orientation = 'horizontal',\n role = component !== 'hr' ? 'separator' : undefined,\n textAlign = 'center',\n variant = 'fullWidth'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n absolute,\n component,\n flexItem,\n light,\n orientation,\n role,\n textAlign,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(DividerRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n role: role,\n ref: ref,\n ownerState: ownerState\n }, other, {\n children: children ? /*#__PURE__*/_jsx(DividerWrapper, {\n className: classes.wrapper,\n ownerState: ownerState,\n children: children\n }) : null\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Divider.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * Absolutely position the element.\n * @default false\n */\n absolute: PropTypes.bool,\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, a vertical divider will have the correct height when used in flex container.\n * (By default, a vertical divider will have a calculated height of `0px` if it is the child of a flex container.)\n * @default false\n */\n flexItem: PropTypes.bool,\n /**\n * If `true`, the divider will have a lighter color.\n * @default false\n */\n light: PropTypes.bool,\n /**\n * The component orientation.\n * @default 'horizontal'\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n /**\n * @ignore\n */\n role: PropTypes /* @typescript-to-proptypes-ignore */.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The text alignment.\n * @default 'center'\n */\n textAlign: PropTypes.oneOf(['center', 'left', 'right']),\n /**\n * The variant to use.\n * @default 'fullWidth'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['fullWidth', 'inset', 'middle']), PropTypes.string])\n} : void 0;\nexport default Divider;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getInputAdornmentUtilityClass(slot) {\n return generateUtilityClass('MuiInputAdornment', slot);\n}\nconst inputAdornmentClasses = generateUtilityClasses('MuiInputAdornment', ['root', 'filled', 'standard', 'outlined', 'positionStart', 'positionEnd', 'disablePointerEvents', 'hiddenLabel', 'sizeSmall']);\nexport default inputAdornmentClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar _span;\nconst _excluded = [\"children\", \"className\", \"component\", \"disablePointerEvents\", \"disableTypography\", \"position\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport capitalize from '../utils/capitalize';\nimport Typography from '../Typography';\nimport FormControlContext from '../FormControl/FormControlContext';\nimport useFormControl from '../FormControl/useFormControl';\nimport styled from '../styles/styled';\nimport inputAdornmentClasses, { getInputAdornmentUtilityClass } from './inputAdornmentClasses';\nimport useThemeProps from '../styles/useThemeProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`position${capitalize(ownerState.position)}`], ownerState.disablePointerEvents === true && styles.disablePointerEvents, styles[ownerState.variant]];\n};\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disablePointerEvents,\n hiddenLabel,\n position,\n size,\n variant\n } = ownerState;\n const slots = {\n root: ['root', disablePointerEvents && 'disablePointerEvents', position && `position${capitalize(position)}`, variant, hiddenLabel && 'hiddenLabel', size && `size${capitalize(size)}`]\n };\n return composeClasses(slots, getInputAdornmentUtilityClass, classes);\n};\nconst InputAdornmentRoot = styled('div', {\n name: 'MuiInputAdornment',\n slot: 'Root',\n overridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n height: '0.01em',\n // Fix IE11 flexbox alignment. To remove at some point.\n maxHeight: '2em',\n alignItems: 'center',\n whiteSpace: 'nowrap',\n color: (theme.vars || theme).palette.action.active\n}, ownerState.variant === 'filled' && {\n // Styles applied to the root element if `variant=\"filled\"`.\n [`&.${inputAdornmentClasses.positionStart}&:not(.${inputAdornmentClasses.hiddenLabel})`]: {\n marginTop: 16\n }\n}, ownerState.position === 'start' && {\n // Styles applied to the root element if `position=\"start\"`.\n marginRight: 8\n}, ownerState.position === 'end' && {\n // Styles applied to the root element if `position=\"end\"`.\n marginLeft: 8\n}, ownerState.disablePointerEvents === true && {\n // Styles applied to the root element if `disablePointerEvents={true}`.\n pointerEvents: 'none'\n}));\nconst InputAdornment = /*#__PURE__*/React.forwardRef(function InputAdornment(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiInputAdornment'\n });\n const {\n children,\n className,\n component = 'div',\n disablePointerEvents = false,\n disableTypography = false,\n position,\n variant: variantProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const muiFormControl = useFormControl() || {};\n let variant = variantProp;\n if (variantProp && muiFormControl.variant) {\n if (process.env.NODE_ENV !== 'production') {\n if (variantProp === muiFormControl.variant) {\n console.error('MUI: The `InputAdornment` variant infers the variant prop ' + 'you do not have to provide one.');\n }\n }\n }\n if (muiFormControl && !variant) {\n variant = muiFormControl.variant;\n }\n const ownerState = _extends({}, props, {\n hiddenLabel: muiFormControl.hiddenLabel,\n size: muiFormControl.size,\n disablePointerEvents,\n position,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(FormControlContext.Provider, {\n value: null,\n children: /*#__PURE__*/_jsx(InputAdornmentRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: typeof children === 'string' && !disableTypography ? /*#__PURE__*/_jsx(Typography, {\n color: \"text.secondary\",\n children: children\n }) : /*#__PURE__*/_jsxs(React.Fragment, {\n children: [position === 'start' ? /* notranslate needed while Google Translate will not fix zero-width space issue */_span || (_span = /*#__PURE__*/_jsx(\"span\", {\n className: \"notranslate\",\n children: \"\\u200B\"\n })) : null, children]\n })\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? InputAdornment.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the component, normally an `IconButton` or string.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * Disable pointer events on the root.\n * This allows for the content of the adornment to focus the `input` on click.\n * @default false\n */\n disablePointerEvents: PropTypes.bool,\n /**\n * If children is a string then disable wrapping in a Typography component.\n * @default false\n */\n disableTypography: PropTypes.bool,\n /**\n * The position this adornment should appear relative to the `Input`.\n */\n position: PropTypes.oneOf(['end', 'start']).isRequired,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant to use.\n * Note: If you are using the `TextField` component or the `FormControl` component\n * you do not have to set this manually.\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default InputAdornment;"],"names":["withStyles","theme","createStyles","container","display","flexFlow","padding","inputWithCopy","width","background","height","marginRight","inputLabel","_objectSpread","fieldBasic","fontSize","_ref","_ref$label","label","_ref$value","value","_ref$classes","classes","_jsxs","className","children","_jsx","OutlinedInput","readOnly","endAdornment","InputAdornment","position","TooltipWrapper","tooltip","CopyToClipboard","text","Button","id","onClick","onMouseDown","style","icon","CopyIcon","download","filename","element","document","createElement","setAttribute","body","appendChild","click","removeChild","warningBlock","color","margin","alignItems","credentialTitle","fontWeight","buttonContainer","justifyContent","marginTop","credentialsPanel","overflowY","maxHeight","promptTitle","buttonSpacer","newServiceAccount","open","closeModal","entity","consoleCreds","get","idp","ModalWrapper","modalOpen","onClose","title","titleIcon","ServiceAccountCredentialsIcon","Grid","item","xs","formScrollable","React","Array","isArray","map","credentialsPair","index","_Fragment","CredentialItem","accessKey","secretKey","undefined","WarnIcon","consoleExtras","itemMap","url","api","path","JSON","stringify","DownloadIcon","variant","length","allCredentials","_ref$tooltip","_ref$mode","mode","onBeforeChange","_ref$editorHeight","editorHeight","sx","marginBottom","InputLabel","tooltipContainer","Tooltip","placement","HelpIcon","overflow","border","CodeEditor","language","onChange","evn","target","backgroundColor","fontFamily","minHeight","borderTop","Box","paddingRight","marginLeft","type","tooltipHelper","valueString","maxWidth","whiteSpace","textOverflow","fileInputField","fileInputStyles","textBoxContainer","paddingLeft","name","_ref$disabled","disabled","required","_ref$error","error","_ref$accept","accept","_useState","useState","_useState2","_slicedToArray","showFileSelector","setShowSelector","concat","fieldBottom","fieldContainer","errorInField","htmlFor","fieldLabelError","e","fileName","evt","callback","file","files","reader","FileReader","readAsDataURL","onload","fileBase64","result","fileArray","toString","split","fileProcess","data","IconButton","component","disableRipple","disableFocusRipple","size","CancelIcon","ErrorBlock","errorMessage","fileReselect","AttachFileIcon","FormHr","styled","_templateObject","_taggedTemplateLiteral","deleteDialogStyles","content","paddingBottom","customDialogSize","snackBarCommon","_ref$wideLimit","wideLimit","noContentPadding","_ref$titleIcon","dispatch","useAppDispatch","openSnackbar","setOpenSnackbar","modalSnackMessage","useSelector","state","system","modalSnackBar","useEffect","setModalSnackMessage","message","customSize","paper","fullWidth","detailedErrorMsg","Dialog","scroll","event","reason","root","DialogTitle","titleText","closeContainer","closeButton","CloseIcon","MainError","isModal","Snackbar","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","DialogContent","_ref$errorProps","errorProps","cloneElement","configSectionItem","tenantCustomizationFields","containerItem","fieldGroup","createTenantCommon","paddingTop","responsiveSectionItem","wrapperContainer","envVarRow","borderBottom","flex","minWidth","fileItem","rowActions","overlayAction","modalBasic","wizardCommon","formFieldStyles","exposeMinIO","createTenant","fields","configure","exposeConsole","exposeSFTP","setDomains","consoleDomain","minioDomains","tenantCustom","tenantEnvVars","envVars","tenantSecurityContext","customRuntime","runtimeClassName","validationErrors","setValidationErrors","updateField","useCallback","field","updateAddField","pageName","customAccountValidation","fieldKey","runAsUser","customValidation","parseInt","customValidationMessage","runAsGroup","fsGroup","minioExtraValidations","validation","pattern","customPatternMessage","_toConsumableArray","commonVal","commonFormValidation","isPageValid","valid","Object","keys","cleanValidation","fieldName","clearValidationError","Paper","paperWrapper","headerElement","H3Section","descriptionText","h3Section","FormSwitchWrapper","checked","InputBoxWrapper","placeholder","domain","copyDomains","updateMinIODomain","addNewMinIODomain","AddIcon","removeMinIODomain","RemoveIcon","multiContainer","min","SelectWrapper","fsGroupChangePolicy","options","runAsNonRoot","Divider","envVar","formFieldRow","key","existingEnvVars","setEnvVars","keyPair","i","push","filter","fIndex","useStyles","makeStyles","adUserDnRows","buttonTray","idpSelection","identityProvider","ADURL","ADSkipTLS","ADServerInsecure","ADGroupSearchBaseDN","ADGroupSearchFilter","ADUserDNs","ADGroupDNs","ADLookupBindDN","ADLookupBindPassword","ADUserDNSearchBaseDN","ADUserDNSearchFilter","ADServerStartTLS","customIDPValidation","Fragment","Typography","gutterBottom","_","setIDPADUsrAtIndex","userDN","addIDPADUsrAtIndex","removeIDPADUsrAtIndex","DeleteIcon","setIDPADGroupAtIndex","addIDPADGroupAtIndex","removeIDPADGroupAtIndex","openIDConfigurationURL","openIDClientID","openIDSecretID","openIDClaimName","openIDScopes","shortened","gridTemplateColumns","gridGap","accessKeys","secretKeys","setIDPUsrAtIndex","setIDPPwdAtIndex","addIDPNewKeyPair","removeIDPKeyPairAtIndex","getRandomString","CasinoIcon","protocolRadioOptions","RadioGroupSelector","currentSelection","setIDP","selectorOptions","BuiltInLogoElement","OIDCLogoElement","LDAPLogoElement","IDPBuiltIn","IDPOpenID","IDPActiveDirectory","minioCertificateRows","minioCertsContainer","minioCACertsRow","enableTLS","security","enableAutoCert","enableCustomCerts","minioCertificates","certificates","minioServerCertificates","minioClientCertificates","caCertificates","minioCAsCertificates","spacing","description","TLSHelpBox","FileSelector","encodedValue","addFileToKeyPair","cert","addKeyPair","deleteKeyPair","addFileToClientKeyPair","addClientKeyPair","deleteClientKeyPair","addFileToCaCertificates","addCaCertificate","deleteCaCertificate","encryptionTab","encryption","vaultEndpoint","vaultEngine","vaultNamespace","vaultPrefix","vaultAppRoleEngine","vaultId","vaultSecret","vaultRetry","vaultPing","encryptionValidation","azureEndpoint","azureTenantID","azureClientID","azureClientSecret","gcpProjectID","gcpEndpoint","gcpClientEmail","gcpClientID","gcpPrivateKeyID","gcpPrivateKey","gemaltoEndpoint","gemaltoToken","gemaltoDomain","gemaltoRetry","awsEndpoint","awsRegion","awsKMSKey","awsAccessKey","awsSecretKey","awsToken","encryptionTypeOptions","mutualTlsConfig","rightSpacer","responsiveContainer","replicas","rawConfiguration","enableEncryption","encryptionType","enableCustomCertsForKES","kesServerCertificate","minioMTLSCertificate","kmsMTLSCertificate","kmsCA","kesSecurityContext","encryptionAvailable","encoded_key","encoded_cert","SectionH1","textAlign","indicatorLabels","Tabs","indicatorColor","textColor","scrollButtons","Tab","CodeMirrorWrapper","editor","VaultKMSAdd","AzureKMSAdd","GCPKMSAdd","AWSKMSAdd","GemaltoKMSAdd","addFileKESServerCert","addFileMinIOMTLSCert","addFileKMSMTLSCert","addFileKMSCa","affinityConfigField","affinityFieldLabel","radioField","affinityLabelKey","affinityLabelValue","affinityRow","podAffinity","affinity","nodeSelectorLabels","withPodAntiAffinity","keyValuePairs","nodeSelectorPairs","tolerations","_useState3","_useState4","loading","setLoading","_useState5","_useState6","keyValueMap","setKeyValueMap","_useState7","_useState8","keyOptions","setKeyOptions","invoke","then","res","k","catch","err","setModalErrorSnackMessage","vl","kvp","kvs","a","indexOf","join","splittedLabels","forEach","splitItem","updateToleration","alterToleration","_defineProperty","setTolerationInfo","tolerationValue","affinityHelpText","newKey","newLKP","arrCp","setKeyValuePairs","v","tol","_tol$tolerationSecond","TolerationSelector","effect","onEffectChange","tolerationKey","onTolerationKeyChange","operator","onOperatorChange","onValueChange","tolerationSeconds","seconds","onSecondsChange","addNewToleration","removeToleration","customImage","imageName","customDockerhub","imageRegistry","imageRegistryUsername","imageRegistryPassword","kesImage","table","nodes","tenantSize","memoryNode","resourcesMemoryRequest","ecParity","distribution","ecParityCalc","cpuToUse","resourcesCPURequest","integrationSelection","usableInformation","storageFactors","find","erasureCode","Table","TableBody","TableRow","TableCell","scope","align","typeSelection","storageClass","disks","niceBytes","pvSize","persistentVolumes","rawCapacity","maxCapacity","Math","floor","maxFailureTolerations","CPU","memory","drivesPerServer","driveSize","sizeUnit","wrapText","wordWrap","namespace","nameTenant","addNamespaceLoading","addNSLoading","addNamespaceOpen","addNSOpen","ConfirmDialog","confirmText","confirmButtonProps","isOpen","ConfirmModalIcon","isLoading","onConfirm","createNamespaceAsync","closeAddNSModal","confirmationContent","LinearProgress","DialogContentText","formToRender","showNSCreateButton","namespaceError","openAddNSConfirm","debounceNamespace","useMemo","debounce","validateNamespaceAsync","cancel","AddNamespaceModal","setNamespace","overlayId","overlayIcon","openAddNSModal","NameTenantField","tenantName","tenantNameError","setTenantName","sizePreview","selectedStorageClass","selectedStorageType","storageClasses","features","selFeatures","isValid","IMkEnvs","default","NamespaceSelector","setStorageType","storageType","mkPanelConfigurations","TenantSize","SizePreview","formRender","setFormRender","setConfiguration","resourcesConfigurations","includes","NameTenantMain","requiredPages","addSending","addingTenant","validPages","enabled","every","createTenantAsync","navigate","useNavigate","showNewCredentials","createdAccount","CredentialsPrompt","resetAddTenantForm","pageBox","settingsCommon","cancelButton","action","createButton","componentRender","CreateTenantButton","filteredWizardSteps","TenantResources","buttons","advancedOnly","Configure","Images","Affinity","IdentityProvider","Security","Encryption","NewTenantCredentials","PageHeaderWrapper","BackLink","PageLayout","GenericWizard","wizardSteps","aws","HelpBox","iconComponent","StorageIcon","help","FeatureItem","fontStyle","params","useParams","tenantNameParam","tenantNamespaceParam","tenantNamespace","borderRadius","CertificateIcon","href","rel","columnGap","OIDCIcon","LDAPIcon","UsersIcon","_theme$palette","errorBlock","palette","main","_ref$withBreak","withBreak","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","jsx","d","_excluded","DividerRoot","slot","overridesResolver","props","styles","ownerState","absolute","light","orientation","vertical","flexItem","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","_extends","flexShrink","borderWidth","borderStyle","borderColor","vars","divider","borderBottomWidth","bottom","left","dividerChannel","alpha","borderRightWidth","alignSelf","_ref2","_ref3","_ref4","flexDirection","borderLeft","_ref5","DividerWrapper","wrapper","wrapperVertical","_ref6","inProps","ref","useThemeProps","_props$absolute","_props$component","_props$flexItem","_props$light","_props$orientation","_props$role","role","_props$textAlign","_props$variant","other","_objectWithoutPropertiesLoose","slots","composeClasses","getDividerUtilityClass","useUtilityClasses","as","clsx","getInputAdornmentUtilityClass","generateUtilityClass","_span","generateUtilityClasses","InputAdornmentRoot","capitalize","disablePointerEvents","active","inputAdornmentClasses","positionStart","hiddenLabel","pointerEvents","_props$disablePointer","_props$disableTypogra","disableTypography","variantProp","muiFormControl","useFormControl","FormControlContext","Provider"],"sourceRoot":""} \ No newline at end of file diff --git a/web-app/build/static/js/292.82b40208.chunk.js b/web-app/build/static/js/292.82b40208.chunk.js deleted file mode 100644 index 0ea20197f62..00000000000 --- a/web-app/build/static/js/292.82b40208.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[292],{37798:function(e,n,t){t.r(n),t.d(n,{default:function(){return Z}});var i=t(1413),a=t(72791),r=t(26181),s=t.n(r),o=t(75952),l=t(11135),c=t(25787),d=t(56028),u=t(61889),m=t(28029),f=t(63466),p=t(78029),x=t.n(p),h=t(23814),v=t(27454),g=t(80184),y=(0,c.Z)((function(e){return(0,l.Z)({container:{display:"flex",flexFlow:"column",padding:"20px 0 8px 0"},inputWithCopy:{"& .MuiInputBase-root ":{width:"100%",background:"#FBFAFA","& .MuiInputBase-input":{height:".8rem"},"& .MuiInputAdornment-positionEnd":{marginRight:".5rem","& .MuiButtonBase-root":{height:"2rem"}}},"& .MuiButtonBase-root .min-icon":{width:".8rem",height:".8rem"}},inputLabel:(0,i.Z)((0,i.Z)({},h.YI.inputLabel),{},{fontSize:".8rem"})})}))((function(e){var n=e.label,t=void 0===n?"":n,i=e.value,a=void 0===i?"":i,r=e.classes,s=void 0===r?{}:r;return(0,g.jsxs)("div",{className:s.container,children:[(0,g.jsxs)("div",{className:s.inputLabel,children:[t,":"]}),(0,g.jsx)("div",{className:s.inputWithCopy,children:(0,g.jsx)(m.Z,{value:a,readOnly:!0,endAdornment:(0,g.jsx)(f.Z,{position:"end",children:(0,g.jsx)(v.Z,{tooltip:"Copy",children:(0,g.jsx)(x(),{text:a,children:(0,g.jsx)(o.zxk,{id:"copy-clipboard","aria-label":"copy",onClick:function(){},onMouseDown:function(){},style:{width:"28px",height:"28px",padding:"0px"},icon:(0,g.jsx)(o.TIy,{})})})})})})})]})})),j=function(e,n){var t=document.createElement("a");t.setAttribute("href","data:text/plain;charset=utf-8,"+n),t.setAttribute("download",e),t.style.display="none",document.body.appendChild(t),t.click(),document.body.removeChild(t)},Z=(0,c.Z)((function(e){return(0,l.Z)({warningBlock:{color:"red",fontSize:".85rem",margin:".5rem 0 .5rem 0",display:"flex",alignItems:"center","& svg ":{marginRight:".3rem",height:16,width:16}},credentialTitle:{padding:".8rem 0 0 0",fontWeight:600,fontSize:".9rem"},buttonContainer:{display:"flex",justifyContent:"flex-end",marginTop:"1rem"},credentialsPanel:{overflowY:"auto",maxHeight:350},promptTitle:{display:"flex",alignItems:"center"},buttonSpacer:{marginRight:".9rem"}})}))((function(e){var n=e.classes,t=e.newServiceAccount,r=e.open,l=e.closeModal,c=e.entity;if(!t)return null;var m=s()(t,"console",null),f=s()(t,"idp",!1);return(0,g.jsx)(d.Z,{modalOpen:r,onClose:function(){l()},title:(0,g.jsx)("div",{className:n.promptTitle,children:(0,g.jsxs)("div",{children:["New ",c," Created"]})}),titleIcon:(0,g.jsx)(o.tVY,{}),children:(0,g.jsxs)(u.ZP,{container:!0,children:[(0,g.jsxs)(u.ZP,{item:!0,xs:12,className:n.formScrollable,children:["A new ",c," has been created with the following details:",!f&&m&&(0,g.jsx)(a.Fragment,{children:(0,g.jsxs)(u.ZP,{item:!0,xs:12,className:n.credentialsPanel,children:[(0,g.jsx)("div",{className:n.credentialTitle,children:"Console Credentials"}),Array.isArray(m)&&m.map((function(e,n){return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(y,{label:"Access Key",value:e.accessKey}),(0,g.jsx)(y,{label:"Secret Key",value:e.secretKey})]})})),!Array.isArray(m)&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(y,{label:"Access Key",value:m.accessKey}),(0,g.jsx)(y,{label:"Secret Key",value:m.secretKey})]})]})}),(null===m||void 0===m)&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(y,{label:"Access Key",value:t.accessKey||""}),(0,g.jsx)(y,{label:"Secret Key",value:t.secretKey||""})]}),f?(0,g.jsx)("div",{className:n.warningBlock,children:"Please Login via the configured external identity provider."}):(0,g.jsxs)("div",{className:n.warningBlock,children:[(0,g.jsx)(o.e6P,{}),(0,g.jsx)("span",{children:"Write these down, as this is the only time the secret will be displayed."})]})]}),(0,g.jsx)(u.ZP,{item:!0,xs:12,className:n.buttonContainer,children:!f&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(v.Z,{tooltip:"Download credentials in a JSON file formatted for import using mc alias import. This will only include the default login credentials.",children:(0,g.jsx)(o.zxk,{id:"download-button",label:"Download for import",className:n.buttonSpacer,onClick:function(){var e={};m?e=Array.isArray(m)?m.map((function(e){return{url:e.url,accessKey:e.accessKey,secretKey:e.secretKey,api:"s3v4",path:"auto"}}))[0]:{url:m.url,accessKey:m.accessKey,secretKey:m.secretKey,api:"s3v4",path:"auto"}:e={url:t.url,accessKey:t.accessKey,secretKey:t.secretKey,api:"s3v4",path:"auto"};j("credentials.json",JSON.stringify((0,i.Z)({},e)))},icon:(0,g.jsx)(o._8t,{}),variant:"callAction"})}),Array.isArray(m)&&m.length>1&&(0,g.jsx)(v.Z,{tooltip:"Download all access credentials to a JSON file. NOTE: This file is not formatted for import using mc alias import. If you plan to import this alias from the file, please use the Download for Import button. ",children:(0,g.jsx)(o.zxk,{id:"download-all-button",label:"Download all access credentials",className:n.buttonSpacer,onClick:function(){var e={};m&&Array.isArray(m)&&m.length>1&&(e=m.map((function(e){return{accessKey:e.accessKey,secretKey:e.secretKey}})));j("all_credentials.json",JSON.stringify((0,i.Z)({},e)))},icon:(0,g.jsx)(o._8t,{}),variant:"callAction",color:"primary"})})]})})]})})}))},92217:function(e,n,t){var i=t(1413),a=t(72791),r=t(61889),s=t(30829),o=t(96040),l=t(64554),c=t(11135),d=t(25787),u=t(75952),m=t(23814),f=t(78029),p=t.n(f),x=t(9534),h=t(27454),v=t(80184);n.Z=(0,d.Z)((function(e){return(0,c.Z)((0,i.Z)({},m.YI))}))((function(e){var n=e.value,t=e.label,i=void 0===t?"":t,c=e.tooltip,d=void 0===c?"":c,m=e.mode,f=void 0===m?"json":m,g=e.classes,y=e.onBeforeChange,j=(e.readOnly,e.editorHeight),Z=void 0===j?"250px":j;return(0,v.jsxs)(a.Fragment,{children:[(0,v.jsx)(r.ZP,{item:!0,xs:12,sx:{marginBottom:"10px"},children:(0,v.jsxs)(s.Z,{className:g.inputLabel,children:[(0,v.jsx)("span",{children:i}),""!==d&&(0,v.jsx)("div",{className:g.tooltipContainer,children:(0,v.jsx)(o.Z,{title:d,placement:"top-start",children:(0,v.jsx)("div",{className:g.tooltip,children:(0,v.jsx)(u.byK,{})})})})]})}),(0,v.jsx)(r.ZP,{item:!0,xs:12,style:{maxHeight:Z,overflow:"auto",border:"1px solid #eaeaea"},children:(0,v.jsx)(x.Z,{value:n,language:f,onChange:function(e){y(null,null,e.target.value)},id:"code_wrapper",padding:15,style:{fontSize:12,backgroundColor:"#fefefe",fontFamily:"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace",minHeight:Z||"initial",color:"#000000"}})}),(0,v.jsx)(r.ZP,{item:!0,xs:12,sx:{background:"#f7f7f7",border:"1px solid #eaeaea",borderTop:0},children:(0,v.jsx)(l.Z,{sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}}},children:(0,v.jsx)(h.Z,{tooltip:"Copy to Clipboard",children:(0,v.jsx)(p(),{text:n,children:(0,v.jsx)(u.zxk,{type:"button",id:"copy-code-mirror",icon:(0,v.jsx)(u.TIy,{}),color:"primary",variant:"regular"})})})})})]})}))},54639:function(e,n,t){t.d(n,{Z:function(){return j}});var i=t(29439),a=t(1413),r=t(72791),s=t(26181),o=t.n(s),l=t(61889),c=t(30829),d=t(96040),u=t(13400),m=t(99663),f=t(86711),p=t(11135),x=t(25787),h=t(23814),v=t(75952),g=t(22512),y=t(80184),j=(0,x.Z)((function(e){return(0,p.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},h.YI),h.Hr),{},{valueString:{maxWidth:350,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",marginTop:2},fileInputField:{margin:"13px 0","@media (max-width: 900px)":{flexFlow:"column"}}},h.bV),{},{inputLabel:(0,a.Z)((0,a.Z)({},h.YI.inputLabel),{},{fontWeight:"normal"}),textBoxContainer:(0,a.Z)((0,a.Z)({},h.YI.textBoxContainer),{},{maxWidth:"100%",border:"1px solid #eaeaea",paddingLeft:"15px"})}))}))((function(e){var n=e.label,t=e.classes,a=e.onChange,s=e.id,p=e.name,x=e.disabled,h=void 0!==x&&x,j=e.tooltip,Z=void 0===j?"":j,b=e.required,C=e.error,N=void 0===C?"":C,S=e.accept,_=void 0===S?"":S,T=e.value,A=void 0===T?"":T,k=(0,r.useState)(!1),w=(0,i.Z)(k,2),P=w[0],I=w[1];return(0,y.jsx)(r.Fragment,{children:(0,y.jsxs)(l.ZP,{item:!0,xs:12,className:"".concat(t.fileInputField," ").concat(t.fieldBottom," ").concat(t.fieldContainer," ").concat(""!==N?t.errorInField:""),children:[""!==n&&(0,y.jsxs)(c.Z,{htmlFor:s,className:"".concat(""!==N?t.fieldLabelError:""," ").concat(t.inputLabel),children:[(0,y.jsxs)("span",{children:[n,b?"*":""]}),""!==Z&&(0,y.jsx)("div",{className:t.tooltipContainer,children:(0,y.jsx)(d.Z,{title:Z,placement:"top-start",children:(0,y.jsx)("div",{className:t.tooltip,children:(0,y.jsx)(v.byK,{})})})})]}),P||""===A?(0,y.jsxs)("div",{className:t.textBoxContainer,children:[(0,y.jsx)("input",{type:"file",name:p,onChange:function(e){var n=o()(e,"target.files[0].name","");!function(e,n){var t=e.target.files[0],i=new FileReader;i.readAsDataURL(t),i.onload=function(){var e=i.result;if(e){var t=e.toString().split("base64,");2===t.length&&n(t[1])}}}(e,(function(e){a(e,n)}))},accept:_,required:b,disabled:h,className:t.fileInputField}),""!==A&&(0,y.jsx)(u.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){I(!1)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,y.jsx)(f.Z,{})}),""!==N&&(0,y.jsx)(g.Z,{errorMessage:N})]}):(0,y.jsxs)("div",{className:t.fileReselect,children:[(0,y.jsx)("div",{className:t.valueString,children:A}),(0,y.jsx)(u.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){I(!0)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,y.jsx)(m.Z,{})})]})]})})}))},13871:function(e,n,t){var i,a=t(30168),r=(0,t(26088).Z)("hr")(i||(i=(0,a.Z)(["\n border-top: 0;\n border-left: 0;\n border-right: 0;\n border-color: #999999;\n background-color: transparent;\n"])));n.Z=r},56028:function(e,n,t){var i=t(29439),a=t(1413),r=t(72791),s=t(78687),o=t(13400),l=t(48888),c=t(5289),d=t(65661),u=t(39157),m=t(11135),f=t(25787),p=t(23814),x=t(41320),h=t(29823),v=t(86352),g=t(87995),y=t(80184);n.Z=(0,f.Z)((function(e){return(0,m.Z)((0,a.Z)((0,a.Z)({},p.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},p.sN))}))((function(e){var n=e.onClose,t=e.modalOpen,m=e.title,f=e.children,p=e.classes,j=e.wideLimit,Z=void 0===j||j,b=e.noContentPadding,C=e.titleIcon,N=void 0===C?null:C,S=(0,x.TL)(),_=(0,r.useState)(!1),T=(0,i.Z)(_,2),A=T[0],k=T[1],w=(0,s.v9)((function(e){return e.system.modalSnackBar}));(0,r.useEffect)((function(){S((0,g.MK)(""))}),[S]),(0,r.useEffect)((function(){if(w){if(""===w.message)return void k(!1);"error"!==w.type&&k(!0)}}),[w]);var P=Z?{classes:{paper:p.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},I="";return w&&(I=w.detailedErrorMsg,(""===w.detailedErrorMsg||w.detailedErrorMsg.length<5)&&(I=w.message)),(0,y.jsxs)(c.Z,(0,a.Z)((0,a.Z)({open:t,classes:p},P),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:p.root,children:[(0,y.jsxs)(d.Z,{className:p.title,children:[(0,y.jsxs)("div",{className:p.titleText,children:[N," ",m]}),(0,y.jsx)("div",{className:p.closeContainer,children:(0,y.jsx)(o.Z,{"aria-label":"close",id:"close",className:p.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,y.jsx)(h.Z,{})})})]}),(0,y.jsx)(v.Z,{isModal:!0}),(0,y.jsx)(l.Z,{open:A,className:p.snackBarModal,onClose:function(){k(!1),S((0,g.MK)(""))},message:I,ContentProps:{className:"".concat(p.snackBar," ").concat(w&&"error"===w.type?p.errorSnackBar:"")},autoHideDuration:w&&"error"===w.type?1e4:5e3}),(0,y.jsx)(u.Z,{className:b?"":p.content,children:f})]}))}))},27454:function(e,n,t){var i=t(1413),a=t(72791),r=t(96040),s=t(80184);n.Z=function(e){var n=e.tooltip,t=e.children,o=e.errorProps,l=void 0===o?null:o,c=e.placement;return(0,s.jsx)(r.Z,{title:n,placement:c,children:(0,s.jsx)("span",{children:l?(0,a.cloneElement)(t,(0,i.Z)({},l)):t})})}},80505:function(e,n,t){t.r(n),t.d(n,{default:function(){return Ue}});var i=t(29439),a=t(1413),r=t(72791),s=t(26181),o=t.n(s),l=t(78687),c=t(61889),d=t(57482),u=t(11135),m=t(23814),f=t(28371),p=t(41320),x=t(93433),h=t(25787),v=t(35527),g=t(13400),y=t(94721),j=t(84741),Z=t(40968),b=t(37516),C=t(21435),N=t(42419),S=t(75952),_=t(76773),T=t(90673),A=t(80007),k=t(80184),w=(0,h.Z)((function(e){return(0,u.Z)((0,a.Z)((0,a.Z)((0,a.Z)({configSectionItem:{marginRight:15,marginBottom:15,"& .multiContainer":{border:"1px solid red"}},tenantCustomizationFields:{marginLeft:30,width:"88%",margin:"auto"},containerItem:{marginRight:15},fieldGroup:(0,a.Z)((0,a.Z)({},m.QV.fieldGroup),{},{paddingTop:15,marginBottom:25}),responsiveSectionItem:{"@media (max-width: 900px)":{flexFlow:"column",alignItems:"flex-start","& div > div":{marginBottom:5,marginRight:0}}},wrapperContainer:{display:"flex",marginBottom:15},envVarRow:{display:"flex",alignItems:"center",justifyContent:"flex-start","&:last-child":{borderBottom:0},"@media (max-width: 900px)":{flex:1,"& div label":{minWidth:50}}},fileItem:{marginRight:10,display:"flex","& div label":{minWidth:50},"@media (max-width: 900px)":{flexFlow:"column"}},rowActions:{display:"flex",justifyContent:"flex-end","@media (max-width: 900px)":{flex:1}},overlayAction:{marginLeft:10,"& svg":{maxWidth:15,maxHeight:15},"& button":{background:"#EAEAEA"}}},m.oO),m.AK),m.DF))}))((function(e){var n=e.classes,t=(0,p.TL)(),s=(0,l.v9)((function(e){return e.createTenant.fields.configure.exposeMinIO})),o=(0,l.v9)((function(e){return e.createTenant.fields.configure.exposeConsole})),d=(0,l.v9)((function(e){return e.createTenant.fields.configure.exposeSFTP})),u=(0,l.v9)((function(e){return e.createTenant.fields.configure.setDomains})),m=(0,l.v9)((function(e){return e.createTenant.fields.configure.consoleDomain})),f=(0,l.v9)((function(e){return e.createTenant.fields.configure.minioDomains})),h=(0,l.v9)((function(e){return e.createTenant.fields.configure.tenantCustom})),w=(0,l.v9)((function(e){return e.createTenant.fields.configure.envVars})),P=(0,l.v9)((function(e){return e.createTenant.fields.configure.tenantSecurityContext})),I=(0,l.v9)((function(e){return e.createTenant.fields.configure.customRuntime})),R=(0,l.v9)((function(e){return e.createTenant.fields.configure.runtimeClassName})),D=(0,r.useState)({}),F=(0,i.Z)(D,2),K=F[0],E=F[1],L=(0,r.useCallback)((function(e,n){t((0,_.HM)({pageName:"configure",field:e,value:n}))}),[t]);(0,r.useEffect)((function(){var e=[];if(h&&(e=[{fieldKey:"tenant_securityContext_runAsUser",required:!0,value:P.runAsUser,customValidation:""===P.runAsUser||parseInt(P.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"tenant_securityContext_runAsGroup",required:!0,value:P.runAsGroup,customValidation:""===P.runAsGroup||parseInt(P.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"tenant_securityContext_fsGroup",required:!0,value:P.fsGroup,customValidation:""===P.fsGroup||parseInt(P.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"}]),u){var n=f.map((function(e,n){return{fieldKey:"minio-domain-".concat(n.toString()),required:!1,value:e,pattern:/^(https?):\/\/([a-zA-Z0-9\-.]+)(:[0-9]+)?$/,customPatternMessage:"MinIO domain is not in the form of http|https://subdomain.domain"}}));e=[].concat((0,x.Z)(e),(0,x.Z)(n),[{fieldKey:"console_domain",required:!1,value:m,pattern:/^(https?):\/\/([a-zA-Z0-9\-.]+)(:[0-9]+)?(\/[a-zA-Z0-9\-./]*)?$/,customPatternMessage:"Console domain is not in the form of http|https://subdomain.domain:port/subpath1/subpath2"}])}var i=(0,Z.R)(e);t((0,_.NO)({pageName:"configure",valid:0===Object.keys(i).length})),E(i)}),[t,h,P,u,m,f]);var z=function(e){E((0,j.he)(K,e))};return(0,k.jsxs)(v.Z,{className:n.paperWrapper,children:[(0,k.jsxs)("div",{className:n.headerElement,children:[(0,k.jsx)(A.Z,{children:"Configure"}),(0,k.jsx)("span",{className:n.descriptionText,children:"Basic configurations for tenant management"})]}),(0,k.jsxs)("div",{className:n.headerElement,children:[(0,k.jsx)("h4",{className:n.h3Section,children:"Services"}),(0,k.jsx)("span",{className:n.descriptionText,children:"Whether the tenant's services should request an external IP via LoadBalancer service type."})]}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,k.jsx)(b.Z,{value:"expose_minio",id:"expose_minio",name:"expose_minio",checked:s,onChange:function(e){var n=e.target.checked;L("exposeMinIO",n)},label:"Expose MinIO Service"})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,k.jsx)(b.Z,{value:"expose_console",id:"expose_console",name:"expose_console",checked:o,onChange:function(e){var n=e.target.checked;L("exposeConsole",n)},label:"Expose Console Service"})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,k.jsx)(b.Z,{value:"expose_sftp",id:"expose_sftp",name:"expose_sftp",checked:d,onChange:function(e){var n=e.target.checked;L("exposeSFTP",n)},label:"Expose SFTP Service"})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,k.jsx)(b.Z,{value:"custom_domains",id:"custom_domains",name:"custom_domains",checked:u,onChange:function(e){var n=e.target.checked;L("setDomains",n)},label:"Set Custom Domains"})}),u&&(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.tenantCustomizationFields,children:(0,k.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,k.jsx)("legend",{className:n.descriptionText,children:"Custom Domains for MinIO"}),(0,k.jsxs)(c.ZP,{item:!0,xs:12,className:"".concat(n.configSectionItem),children:[(0,k.jsx)("div",{className:n.containerItem,children:(0,k.jsx)(C.Z,{id:"console_domain",name:"console_domain",onChange:function(e){L("consoleDomain",e.target.value),z("tenant_securityContext_runAsUser")},label:"Console Domain",value:m,placeholder:"Eg. http://subdomain.domain:port/subpath1/subpath2",error:K.console_domain||""})}),(0,k.jsxs)("div",{children:[(0,k.jsx)("h4",{children:"MinIO Domains"}),(0,k.jsx)("div",{className:"".concat(n.responsiveSectionItem),children:f.map((function(e,i){return(0,k.jsxs)("div",{className:"".concat(n.containerItem," ").concat(n.wrapperContainer),children:[(0,k.jsx)(C.Z,{id:"minio-domain-".concat(i.toString()),name:"minio-domain-".concat(i.toString()),onChange:function(e){!function(e,n){var t=(0,x.Z)(f);t[n]=e,L("minioDomains",t)}(e.target.value,i)},label:"MinIO Domain ".concat(i+1),value:e,placeholder:"Eg. http://subdomain.domain",error:K["minio-domain-".concat(i.toString())]||""}),(0,k.jsx)("div",{className:n.overlayAction,children:(0,k.jsx)(g.Z,{size:"small",onClick:function(){return t((0,_.x_)())},disabled:i!==f.length-1,children:(0,k.jsx)(N.Z,{})})}),(0,k.jsx)("div",{className:n.overlayAction,children:(0,k.jsx)(g.Z,{size:"small",onClick:function(){return t((0,_.JL)(i))},disabled:f.length<=1,children:(0,k.jsx)(S.HFL,{})})})]},"minio-domain-key-".concat(i.toString()))}))})]})]})]})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,k.jsx)(b.Z,{value:"tenantConfig",id:"tenant_configuration",name:"tenant_configuration",checked:h,onChange:function(e){var n=e.target.checked;L("tenantCustom",n)},label:"Security Context"})}),h&&(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.tenantCustomizationFields,children:(0,k.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,k.jsx)("legend",{className:n.descriptionText,children:"SecurityContext for MinIO"}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:"".concat(n.configSectionItem),children:(0,k.jsxs)("div",{className:"".concat(n.multiContainer," ").concat(n.responsiveSectionItem),children:[(0,k.jsx)("div",{className:n.containerItem,children:(0,k.jsx)(C.Z,{type:"number",id:"tenant_securityContext_runAsUser",name:"tenant_securityContext_runAsUser",onChange:function(e){L("tenantSecurityContext",(0,a.Z)((0,a.Z)({},P),{},{runAsUser:e.target.value})),z("tenant_securityContext_runAsUser")},label:"Run As User",value:P.runAsUser,required:!0,error:K.tenant_securityContext_runAsUser||"",min:"0"})}),(0,k.jsx)("div",{className:n.containerItem,children:(0,k.jsx)(C.Z,{type:"number",id:"tenant_securityContext_runAsGroup",name:"tenant_securityContext_runAsGroup",onChange:function(e){L("tenantSecurityContext",(0,a.Z)((0,a.Z)({},P),{},{runAsGroup:e.target.value})),z("tenant_securityContext_runAsGroup")},label:"Run As Group",value:P.runAsGroup,required:!0,error:K.tenant_securityContext_runAsGroup||"",min:"0"})})]})}),(0,k.jsx)("br",{}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:"".concat(n.configSectionItem),children:(0,k.jsxs)("div",{className:"".concat(n.multiContainer," ").concat(n.responsiveSectionItem),children:[(0,k.jsx)("div",{className:n.containerItem,children:(0,k.jsx)(C.Z,{type:"number",id:"tenant_securityContext_fsGroup",name:"tenant_securityContext_fsGroup",onChange:function(e){L("tenantSecurityContext",(0,a.Z)((0,a.Z)({},P),{},{fsGroup:e.target.value})),z("tenant_securityContext_fsGroup")},label:"FsGroup",value:P.fsGroup,required:!0,error:K.tenant_securityContext_fsGroup||"",min:"0"})}),(0,k.jsx)("div",{className:n.containerItem,children:(0,k.jsx)("div",{className:n.configSectionItem,children:(0,k.jsx)(T.Z,{label:"FsGroupChangePolicy",id:"securityContext_fsGroupChangePolicy",name:"securityContext_fsGroupChangePolicy",value:P.fsGroupChangePolicy,onChange:function(e){L("tenantSecurityContext",(0,a.Z)((0,a.Z)({},P),{},{fsGroupChangePolicy:e.target.value}))},options:[{label:"Always",value:"Always"},{label:"OnRootMismatch",value:"OnRootMismatch"}]})})})]})}),(0,k.jsx)("br",{}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,k.jsx)("div",{className:n.multiContainer,children:(0,k.jsx)(b.Z,{value:"tenantSecurityContextRunAsNonRoot",id:"tenant_securityContext_runAsNonRoot",name:"tenant_securityContext_runAsNonRoot",checked:P.runAsNonRoot,onChange:function(e){var n=e.target.checked;L("tenantSecurityContext",(0,a.Z)((0,a.Z)({},P),{},{runAsNonRoot:n}))},label:"Do not run as Root"})})})]})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,k.jsx)(b.Z,{value:"customRuntime",id:"tenant_custom_runtime",name:"tenant_custom_runtime",checked:I,onChange:function(e){var n=e.target.checked;L("customRuntime",n)},label:"Custom Runtime Configurations"})}),I&&(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.tenantCustomizationFields,children:(0,k.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,k.jsx)("legend",{className:n.descriptionText,children:"Custom Runtime Configurations"}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:"".concat(n.configSectionItem),children:(0,k.jsx)("div",{className:n.containerItem,children:(0,k.jsx)(C.Z,{id:"tenant_runtime_runtimeClassName",name:"tenant_runtime_runtimeClassName",onChange:function(e){L("runtimeClassName",e.target.value),z("tenant_runtime_runtimeClassName")},label:"Runtime Class Name",value:R,error:K.tenant_runtime_runtimeClassName||""})})})]})}),(0,k.jsx)(y.Z,{}),(0,k.jsxs)("div",{className:n.headerElement,children:[(0,k.jsx)(A.Z,{children:"Additional Environment Variables"}),(0,k.jsx)("span",{className:n.descriptionText,children:"Define additional environment variables to be used by your MinIO pods"})]}),(0,k.jsx)(c.ZP,{container:!0,children:w.map((function(e,i){return(0,k.jsxs)(c.ZP,{item:!0,xs:12,className:"".concat(n.formFieldRow," ").concat(n.envVarRow),children:[(0,k.jsx)(c.ZP,{item:!0,xs:5,className:n.fileItem,children:(0,k.jsx)(C.Z,{id:"env_var_key",name:"env_var_key",label:"Key",value:e.key,onChange:function(e){var n=(0,x.Z)(w);t((0,_.Ct)(n.map((function(n,t){return t===i?{key:e.target.value,value:n.value}:n}))))},index:i},"env_var_key_".concat(i.toString()))}),(0,k.jsx)(c.ZP,{item:!0,xs:5,className:n.fileItem,children:(0,k.jsx)(C.Z,{id:"env_var_value",name:"env_var_value",label:"Value",value:e.value,onChange:function(e){var n=(0,x.Z)(w);t((0,_.Ct)(n.map((function(n,t){return t===i?{key:n.key,value:e.target.value}:n}))))},index:i},"env_var_value_".concat(i.toString()))}),(0,k.jsxs)(c.ZP,{item:!0,xs:2,className:n.rowActions,children:[(0,k.jsx)("div",{className:n.overlayAction,children:(0,k.jsx)(g.Z,{size:"small",onClick:function(){var e=(0,x.Z)(w);e.push({key:"",value:""}),t((0,_.Ct)(e))},disabled:i!==w.length-1,children:(0,k.jsx)(N.Z,{})})}),(0,k.jsx)("div",{className:n.overlayAction,children:(0,k.jsx)(g.Z,{size:"small",onClick:function(){var e=w.filter((function(e,n){return n!==i}));t((0,_.Ct)(e))},disabled:w.length<=1,children:(0,k.jsx)(S.HFL,{})})})]})]},"tenant-envVar-".concat(i.toString()))}))})]})})),P=t(83679),I=t(20890),R=t(96040),D=t(72455),F=t(27247),K=(0,D.Z)((function(e){return(0,u.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({adUserDnRows:{display:"flex",marginBottom:10},buttonTray:{marginLeft:10,display:"flex",height:38,"& button":{background:"#EAEAEA"}},overlayAction:{marginLeft:10,"& svg":{maxWidth:15,maxHeight:15},"& button":{background:"#EAEAEA"}}},m.QV),m.DF),m.oO),m.AK))})),E=function(){var e=(0,p.TL)(),n=K(),t=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.idpSelection})),a=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADURL})),s=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADSkipTLS})),o=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADServerInsecure})),d=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADGroupSearchBaseDN})),u=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADGroupSearchFilter})),m=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADUserDNs})),f=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADGroupDNs})),h=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADLookupBindDN})),v=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADLookupBindPassword})),y=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADUserDNSearchBaseDN})),S=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADUserDNSearchFilter})),T=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.ADServerStartTLS})),A=(0,r.useState)({}),w=(0,i.Z)(A,2),P=w[0],D=w[1],E=(0,r.useCallback)((function(n,t){e((0,_.HM)({pageName:"identityProvider",field:n,value:t}))}),[e]),L=function(e){D((0,j.he)(P,e))};return(0,r.useEffect)((function(){var n=[];"AD"===t&&(n=[].concat((0,x.Z)(n),[{fieldKey:"AD_URL",required:!0,value:a},{fieldKey:"ad_lookupBindDN",required:!0,value:h}]));var i=(0,Z.R)(n);e((0,_.NO)({pageName:"identityProvider",valid:0===Object.keys(i).length})),D(i)}),[h,t,a,d,u,m,f,e]),(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"AD_URL",name:"AD_URL",onChange:function(e){E("ADURL",e.target.value),L("AD_URL")},label:"LDAP Server Address",value:a,placeholder:"ldap-server:636",error:P.AD_URL||"",required:!0})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(b.Z,{value:"ad_skipTLS",id:"ad_skipTLS",name:"ad_skipTLS",checked:s,onChange:function(e){var n=e.target.checked;E("ADSkipTLS",n)},label:"Skip TLS Verification"})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(b.Z,{value:"ad_serverInsecure",id:"ad_serverInsecure",name:"ad_serverInsecure",checked:o,onChange:function(e){var n=e.target.checked;E("ADServerInsecure",n)},label:"Server Insecure"})}),o?(0,k.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,k.jsx)(I.Z,{className:n.error,variant:"caption",display:"block",gutterBottom:!0,children:"Warning: All traffic with Active Directory will be unencrypted"}),(0,k.jsx)("br",{})]}):null,(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(b.Z,{value:"ad_serverStartTLS",id:"ad_serverStartTLS",name:"ad_serverStartTLS",checked:T,onChange:function(e){var n=e.target.checked;E("ADServerStartTLS",n)},label:"Start TLS connection to AD/LDAP server"})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"ad_lookupBindDN",name:"ad_lookupBindDN",onChange:function(e){E("ADLookupBindDN",e.target.value),L("ad_lookupBindDN")},label:"Lookup Bind DN",value:h,placeholder:"cn=admin,dc=min,dc=io",error:P.ad_lookupBindDN||"",required:!0})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"ad_lookupBindPassword",name:"ad_lookupBindPassword",onChange:function(e){E("ADLookupBindPassword",e.target.value)},label:"Lookup Bind Password",value:v,placeholder:"admin"})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"ad_userDNSearchBaseDN",name:"ad_userDNSearchBaseDN",onChange:function(e){E("ADUserDNSearchBaseDN",e.target.value)},label:"User DN Search Base DN",value:y,placeholder:"dc=min,dc=io"})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"ad_userDNSearchFilter",name:"ad_userDNSearchFilter",onChange:function(e){E("ADUserDNSearchFilter",e.target.value)},label:"User DN Search Filter",value:S,placeholder:"(sAMAcountName=%s)"})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"ad_groupSearchBaseDN",name:"ad_groupSearchBaseDN",onChange:function(e){E("ADGroupSearchBaseDN",e.target.value)},label:"Group Search Base DN",value:d,placeholder:"ou=hwengg,dc=min,dc=io;ou=swengg,dc=min,dc=io"})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"ad_groupSearchFilter",name:"ad_groupSearchFilter",onChange:function(e){E("ADGroupSearchFilter",e.target.value)},label:"Group Search Filter",value:u,placeholder:"(&(objectclass=groupOfNames)(member=%s))"})}),(0,k.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,k.jsx)("legend",{className:n.descriptionText,children:"List of user DNs (Distinguished Names) to be Tenant Administrators"}),(0,k.jsx)(c.ZP,{item:!0,xs:12,children:m.map((function(t,i){return(0,k.jsx)(r.Fragment,{children:(0,k.jsxs)("div",{className:n.adUserDnRows,children:[(0,k.jsx)(C.Z,{id:"ad-userdn-".concat(i.toString()),label:"",placeholder:"",name:"ad-userdn-".concat(i.toString()),value:m[i],onChange:function(n){e((0,_.hK)({index:i,userDN:n.target.value})),L("ad-userdn-".concat(i.toString()))},index:i,error:P["ad-userdn-".concat(i.toString())]||""},"csv-ad-userdn-".concat(i.toString())),(0,k.jsxs)("div",{className:n.buttonTray,children:[(0,k.jsx)(R.Z,{title:"Add User","aria-label":"add",children:(0,k.jsx)(g.Z,{size:"small",onClick:function(){e((0,_.Y$)())},children:(0,k.jsx)(N.Z,{})})}),(0,k.jsx)(R.Z,{title:"Remove","aria-label":"add",children:(0,k.jsx)(g.Z,{size:"small",style:{marginLeft:16},onClick:function(){m.length>1&&e((0,_.GU)(i))},children:(0,k.jsx)(F.Z,{})})})]})]})},"identityField-".concat(i.toString()))}))})]}),(0,k.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,k.jsx)("legend",{className:n.descriptionText,children:"List of group DNs (Distinguished Names) to be Tenant Administrators"}),(0,k.jsx)(c.ZP,{item:!0,xs:12,children:f.map((function(t,i){return(0,k.jsx)(r.Fragment,{children:(0,k.jsxs)("div",{className:n.adUserDnRows,children:[(0,k.jsx)(C.Z,{id:"ad-groupdn-".concat(i.toString()),label:"",placeholder:"",name:"ad-groupdn-".concat(i.toString()),value:f[i],onChange:function(n){e((0,_.in)({index:i,userDN:n.target.value})),L("ad-groupdn-".concat(i.toString()))},index:i,error:P["ad-groupdn-".concat(i.toString())]||""},"csv-ad-groupdn-".concat(i.toString())),(0,k.jsxs)("div",{className:n.buttonTray,children:[(0,k.jsx)(R.Z,{title:"Add Group","aria-label":"add",children:(0,k.jsx)(g.Z,{size:"small",onClick:function(){e((0,_.Fe)())},children:(0,k.jsx)(N.Z,{})})}),(0,k.jsx)(R.Z,{title:"Remove","aria-label":"add",children:(0,k.jsx)(g.Z,{size:"small",style:{marginLeft:16},onClick:function(){f.length>1&&e((0,_.Hu)(i))},children:(0,k.jsx)(F.Z,{})})})]})]})},"identityField-".concat(i.toString()))}))})]})]})},L=(0,D.Z)((function(e){return(0,u.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({buttonTray:{marginLeft:10,display:"flex",height:38,"& button":{background:"#EAEAEA"}},overlayAction:{marginLeft:10,"& svg":{maxWidth:15,maxHeight:15},"& button":{background:"#EAEAEA"}}},m.QV),m.DF),m.oO),m.AK))})),z=function(){var e=(0,p.TL)(),n=L(),t=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.idpSelection})),a=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.openIDConfigurationURL})),s=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.openIDClientID})),o=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.openIDSecretID})),d=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.openIDClaimName})),u=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.openIDScopes})),m=(0,r.useState)({}),f=(0,i.Z)(m,2),h=f[0],v=f[1],g=(0,r.useCallback)((function(n,t){e((0,_.HM)({pageName:"identityProvider",field:n,value:t}))}),[e]),y=function(e){v((0,j.he)(h,e))};return(0,r.useEffect)((function(){var n=[];"OpenID"===t&&(n=[].concat((0,x.Z)(n),[{fieldKey:"openID_CONFIGURATION_URL",required:!0,value:a},{fieldKey:"openID_clientID",required:!0,value:s},{fieldKey:"openID_secretID",required:!0,value:o},{fieldKey:"openID_claimName",required:!1,value:d}]));var i=(0,Z.R)(n);e((0,_.NO)({pageName:"identityProvider",valid:0===Object.keys(i).length})),v(i)}),[t,s,o,a,d,e]),(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"openID_CONFIGURATION_URL",name:"openID_CONFIGURATION_URL",onChange:function(e){g("openIDConfigurationURL",e.target.value),y("openID_CONFIGURATION_URL")},label:"Configuration URL",value:a,placeholder:"https://your-identity-provider.com/.well-known/openid-configuration",error:h.openID_CONFIGURATION_URL||"",required:!0})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"openID_clientID",name:"openID_clientID",onChange:function(e){g("openIDClientID",e.target.value),y("openID_clientID")},label:"Client ID",value:s,error:h.openID_clientID||"",required:!0})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"openID_secretID",name:"openID_secretID",onChange:function(e){g("openIDSecretID",e.target.value),y("openID_secretID")},label:"Secret ID",value:o,error:h.openID_secretID||"",required:!0})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"openID_claimName",name:"openID_claimName",onChange:function(e){g("openIDClaimName",e.target.value),y("openID_claimName")},label:"Claim Name",value:d,placeholder:"policy",error:h.openID_claimName||""})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"openID_scopes",name:"openID_scopes",onChange:function(e){g("openIDScopes",e.target.value),y("openID_scopes")},label:"Scopes",value:u})})]})},O=t(22918),M=(0,D.Z)((function(e){return(0,u.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({buttonTray:{marginLeft:10,display:"flex",height:38,"& button":{background:"#EAEAEA"}},overlayAction:{marginLeft:10,"& svg":{maxWidth:15,maxHeight:15},"& button":{background:"#EAEAEA"}},shortened:{gridTemplateColumns:"auto auto 50px 50px",display:"grid",gridGap:15,marginBottom:10,"& input":{fontWeight:400}}},m.QV),m.DF),m.oO),m.AK))})),G=function(){var e=(0,p.TL)(),n=M(),t=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.idpSelection})),a=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.accessKeys})),s=(0,l.v9)((function(e){return e.createTenant.fields.identityProvider.secretKeys})),o=(0,r.useState)({}),c=(0,i.Z)(o,2),d=c[0],u=c[1],m=function(e){u((0,j.he)(d,e))};return(0,r.useEffect)((function(){var n=[];if("Built-in"===t){n=(0,x.Z)(n);for(var i=0;i.amanzonaws.com",value:a,error:v.aws_endpoint||"",required:!0})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"aws_region",name:"aws_region",onChange:function(e){y("awsRegion",e.target.value),b("aws_region")},label:"Region",tooltip:"Region is the AWS region the SecretsManager is located",value:s,error:v.aws_region||"",required:!0})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"aws_kmsKey",name:"aws_kmsKey",onChange:function(e){y("awsKMSKey",e.target.value)},label:"KMS Key",tooltip:"KMSKey is the AWS-KMS key ID (CMK-ID) used to en/decrypt secrets managed by the SecretsManager. If empty, the default AWS KMS key is used",value:o})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,children:(0,k.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,k.jsx)("legend",{className:n.descriptionText,children:"Credentials"}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"aws_accessKey",name:"aws_accessKey",onChange:function(e){y("awsAccessKey",e.target.value),b("aws_accessKey")},label:"Access Key",tooltip:"AccessKey is the access key for authenticating to AWS",value:d,error:v.aws_accessKey||"",required:!0})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"aws_secretKey",name:"aws_secretKey",onChange:function(e){y("awsSecretKey",e.target.value),b("aws_secretKey")},label:"Secret Key",tooltip:"SecretKey is the secret key for authenticating to AWS",value:u,error:v.aws_secretKey||"",required:!0})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"aws_token",name:"aws_token",tooltip:"SessionToken is an optional session token for authenticating to AWS when using STS",onChange:function(e){y("awsToken",e.target.value)},label:"Token",value:m})})]})})]})},se=t(25228),oe=t(43896),le=t(92217),ce=t(13871),de=(0,h.Z)((function(e){return(0,u.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({encryptionTypeOptions:{marginBottom:15},mutualTlsConfig:{marginTop:15,"& fieldset":{flex:1}},rightSpacer:{marginRight:15},responsiveContainer:{"@media (max-width: 900px)":{display:"flex",flexFlow:"column"}}},m.QV),m.DF),m.oO),m.AK))}))((function(e){var n=e.classes,t=(0,p.TL)(),s=(0,l.v9)((function(e){return e.createTenant.fields.encryption.replicas})),o=(0,l.v9)((function(e){return e.createTenant.fields.encryption.rawConfiguration})),d=(0,l.v9)((function(e){return e.createTenant.fields.encryption.encryptionTab})),u=(0,l.v9)((function(e){return e.createTenant.fields.encryption.enableEncryption})),m=(0,l.v9)((function(e){return e.createTenant.fields.encryption.encryptionType})),f=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpProjectID})),h=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpEndpoint})),g=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpClientEmail})),y=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpClientID})),N=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpPrivateKeyID})),S=(0,l.v9)((function(e){return e.createTenant.fields.encryption.gcpPrivateKey})),A=(0,l.v9)((function(e){return e.createTenant.fields.encryption.enableCustomCertsForKES})),w=(0,l.v9)((function(e){return e.createTenant.fields.security.enableAutoCert})),I=(0,l.v9)((function(e){return e.createTenant.fields.security.enableTLS})),R=(0,l.v9)((function(e){return e.createTenant.certificates.minioServerCertificates})),D=(0,l.v9)((function(e){return e.createTenant.certificates.kesServerCertificate})),F=(0,l.v9)((function(e){return e.createTenant.certificates.minioMTLSCertificate})),K=(0,l.v9)((function(e){return e.createTenant.certificates.kmsMTLSCertificate})),E=(0,l.v9)((function(e){return e.createTenant.certificates.kmsCA})),L=(0,l.v9)((function(e){return e.createTenant.fields.security.enableCustomCerts})),z=(0,l.v9)((function(e){return e.createTenant.fields.encryption.kesSecurityContext})),O=(0,r.useState)({}),M=(0,i.Z)(O,2),G=M[0],B=M[1],V=!1;I&&(w||R&&R.filter((function(e){return e.encoded_key&&e.encoded_cert})).length>0)&&(V=!0);var q=(0,r.useCallback)((function(e,n){t((0,_.HM)({pageName:"encryption",field:e,value:n}))}),[t]),H=function(e){B((0,j.he)(G,e))};return(0,r.useEffect)((function(){var e=[];u&&(e=[{fieldKey:"rawConfiguration",required:d>0,value:o},{fieldKey:"replicas",required:!0,value:s,customValidation:parseInt(s)<1,customValidationMessage:"Replicas needs to be 1 or greater"},{fieldKey:"kes_securityContext_runAsUser",required:!0,value:z.runAsUser,customValidation:""===z.runAsUser||parseInt(z.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"kes_securityContext_runAsGroup",required:!0,value:z.runAsGroup,customValidation:""===z.runAsGroup||parseInt(z.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"kes_securityContext_fsGroup",required:!0,value:z.fsGroup,customValidation:""===z.fsGroup||parseInt(z.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"}],L&&(e=[].concat((0,x.Z)(e),[{fieldKey:"serverKey",required:!w,value:D.encoded_key},{fieldKey:"serverCert",required:!w,value:D.encoded_cert},{fieldKey:"clientKey",required:!w,value:F.encoded_key},{fieldKey:"clientCert",required:!w,value:F.encoded_cert}])));var n=(0,Z.R)(e);t((0,_.NO)({pageName:"encryption",valid:0===Object.keys(n).length})),B(n)}),[o,d,u,m,f,h,g,y,N,S,t,w,L,D.encoded_key,D.encoded_cert,F.encoded_key,F.encoded_cert,z,s]),(0,k.jsxs)(v.Z,{className:n.paperWrapper,children:[(0,k.jsxs)(c.ZP,{container:!0,alignItems:"center",children:[(0,k.jsx)(c.ZP,{item:!0,xs:!0,children:(0,k.jsx)(Q,{children:"Encryption"})}),(0,k.jsx)(c.ZP,{item:!0,xs:4,justifyContent:"end",textAlign:"right",children:(0,k.jsx)(b.Z,{label:"",indicatorLabels:["Enabled","Disabled"],checked:u,value:"tenant_encryption",id:"tenant-encryption",name:"tenant-encryption",onChange:function(e){var n=e.target.checked;q("enableEncryption",n)},description:"",disabled:!V})})]}),(0,k.jsxs)(c.ZP,{container:!0,spacing:1,children:[(0,k.jsx)(c.ZP,{item:!0,xs:12,children:(0,k.jsx)("span",{className:n.descriptionText,children:"MinIO Server-Side Encryption (SSE) protects objects as part of write operations, allowing clients to take advantage of server processing power to secure objects at the storage layer (encryption-at-rest). SSE also provides key functionality to regulatory and compliance requirements around secure locking and erasure."})}),(0,k.jsx)(c.ZP,{xs:12,children:(0,k.jsx)(ce.Z,{})}),u&&(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)(c.ZP,{item:!0,xs:12,children:(0,k.jsxs)(se.Z,{value:d,onChange:function(e,n){q("encryptionTab",n)},indicatorColor:"primary",textColor:"primary","aria-label":"cluster-tabs",variant:"scrollable",scrollButtons:"auto",children:[(0,k.jsx)(oe.Z,{id:"kms-options",label:"Options"}),(0,k.jsx)(oe.Z,{id:"kms-raw-configuration",label:"Raw Edit"})]})}),d?(0,k.jsx)(r.Fragment,{children:(0,k.jsx)(c.ZP,{item:!0,xs:12,children:(0,k.jsx)(le.Z,{value:o,mode:"yaml",onBeforeChange:function(e,n,t){q("rawConfiguration",t)},editorHeight:"550px"})})}):(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.encryptionTypeOptions,children:(0,k.jsx)(P.Z,{currentSelection:m,id:"encryptionType",name:"encryptionType",label:"KMS",onChange:function(e){q("encryptionType",e.target.value)},selectorOptions:[{label:"Vault",value:"vault"},{label:"AWS",value:"aws"},{label:"Gemalto",value:"gemalto"},{label:"GCP",value:"gcp"},{label:"Azure",value:"azure"}]})}),"vault"===m&&(0,k.jsx)(Y,{}),"azure"===m&&(0,k.jsx)(X,{}),"gcp"===m&&(0,k.jsx)(ne,{}),"aws"===m&&(0,k.jsx)(re,{}),"gemalto"===m&&(0,k.jsx)(ie,{})]}),(0,k.jsx)("div",{className:n.headerElement,children:(0,k.jsx)("h4",{className:n.h3Section,children:"Additional Configurations"})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,children:(0,k.jsx)(b.Z,{value:"enableCustomCertsForKES",id:"enableCustomCertsForKES",name:"enableCustomCertsForKES",checked:A||!w,onChange:function(e){var n=e.target.checked;q("enableCustomCertsForKES",n)},label:"Custom Certificates",disabled:!w})}),(A||!w)&&(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)(c.ZP,{container:!0,children:(0,k.jsx)(c.ZP,{item:!0,xs:12,style:{marginBottom:15},children:(0,k.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,k.jsx)("legend",{className:n.descriptionText,children:"Encryption server certificates"}),(0,k.jsx)(U.Z,{onChange:function(e,n){t((0,_.uN)({key:"key",fileName:n,value:e})),H("serverKey")},accept:".key,.pem",id:"serverKey",name:"serverKey",label:"Key",error:G.serverKey||"",value:D.key,required:!w}),(0,k.jsx)(U.Z,{onChange:function(e,n){t((0,_.uN)({key:"cert",fileName:n,value:e})),H("serverCert")},accept:".cer,.crt,.cert,.pem",id:"serverCert",name:"serverCert",label:"Cert",error:G.serverCert||"",value:D.cert,required:!w})]})})}),(0,k.jsx)(c.ZP,{container:!0,style:{marginBottom:15},children:(0,k.jsx)(c.ZP,{item:!0,xs:12,children:(0,k.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,k.jsx)("legend",{className:n.descriptionText,children:"MinIO mTLS certificates (connection between MinIO and the Encryption server)"}),(0,k.jsx)(U.Z,{onChange:function(e,n){t((0,_.Ud)({key:"key",fileName:n,value:e})),H("clientKey")},accept:".key,.pem",id:"clientKey",name:"clientKey",label:"Key",error:G.clientKey||"",value:F.key,required:!w}),(0,k.jsx)(U.Z,{onChange:function(e,n){t((0,_.Ud)({key:"cert",fileName:n,value:e})),H("clientCert")},accept:".cer,.crt,.cert,.pem",id:"clientCert",name:"clientCert",label:"Cert",error:G.clientCert||"",value:F.cert,required:!w})]})})}),(0,k.jsx)(c.ZP,{container:!0,className:n.mutualTlsConfig,children:(0,k.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,k.jsx)("legend",{className:n.descriptionText,children:"KMS mTLS certificates (connection between the Encryption server and the KMS)"}),(0,k.jsx)(U.Z,{onChange:function(e,n){t((0,_.Tr)({key:"key",fileName:n,value:e})),H("vault_key")},accept:".key,.pem",id:"vault_key",name:"vault_key",label:"Key",value:K.key}),(0,k.jsx)(U.Z,{onChange:function(e,n){t((0,_.Tr)({key:"cert",fileName:n,value:e})),H("vault_cert")},accept:".cer,.crt,.cert,.pem",id:"vault_cert",name:"vault_cert",label:"Cert",value:K.cert}),(0,k.jsx)(U.Z,{onChange:function(e,n){t((0,_.b9)({fileName:n,value:e})),H("vault_ca")},accept:".cer,.crt,.cert,.pem",id:"vault_ca",name:"vault_ca",label:"CA",value:E.cert})]})})]}),(0,k.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,k.jsx)(c.ZP,{item:!0,xs:12,classes:n.formFieldRow,children:(0,k.jsx)(C.Z,{type:"number",min:"1",id:"replicas",name:"replicas",onChange:function(e){q("replicas",e.target.value),H("replicas")},label:"Replicas",value:s,required:!0,error:G.replicas||""})}),(0,k.jsxs)("fieldset",{className:n.fieldGroup,style:{marginTop:15},children:[(0,k.jsx)("legend",{className:n.descriptionText,children:"SecurityContext for KES pods"}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.kesSecurityContext,children:(0,k.jsxs)("div",{className:"".concat(n.multiContainer," ").concat(n.responsiveContainer),children:[(0,k.jsx)("div",{className:"".concat(n.formFieldRow," ").concat(n.rightSpacer),children:(0,k.jsx)(C.Z,{type:"number",id:"kes_securityContext_runAsUser",name:"kes_securityContext_runAsUser",onChange:function(e){q("kesSecurityContext",(0,a.Z)((0,a.Z)({},z),{},{runAsUser:e.target.value})),H("kes_securityContext_runAsUser")},label:"Run As User",value:z.runAsUser,required:!0,error:G.kes_securityContext_runAsUser||"",min:"0"})}),(0,k.jsx)("div",{className:"".concat(n.formFieldRow," ").concat(n.rightSpacer),children:(0,k.jsx)(C.Z,{type:"number",id:"kes_securityContext_runAsGroup",name:"kes_securityContext_runAsGroup",onChange:function(e){q("kesSecurityContext",(0,a.Z)((0,a.Z)({},z),{},{runAsGroup:e.target.value})),H("kes_securityContext_runAsGroup")},label:"Run As Group",value:z.runAsGroup,required:!0,error:G.kes_securityContext_runAsGroup||"",min:"0"})})]})}),(0,k.jsx)("br",{}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.kesSecurityContext,children:(0,k.jsxs)("div",{className:"".concat(n.multiContainer," ").concat(n.responsiveContainer),children:[(0,k.jsx)("div",{className:"".concat(n.formFieldRow," ").concat(n.rightSpacer),children:(0,k.jsx)(C.Z,{type:"number",id:"kes_securityContext_fsGroup",name:"kes_securityContext_fsGroup",onChange:function(e){q("kesSecurityContext",(0,a.Z)((0,a.Z)({},z),{},{fsGroup:e.target.value})),H("kes_securityContext_fsGroup")},label:"FsGroup",value:z.fsGroup,required:!0,error:G.kes_securityContext_fsGroup||"",min:"0"})}),(0,k.jsx)("div",{className:"".concat(n.formFieldRow," ").concat(n.rightSpacer),children:(0,k.jsx)(T.Z,{label:"FsGroupChangePolicy",id:"securityContext_fsGroupChangePolicy",name:"securityContext_fsGroupChangePolicy",value:z.fsGroupChangePolicy,onChange:function(e){q("kesSecurityContext",(0,a.Z)((0,a.Z)({},z),{},{fsGroupChangePolicy:e.target.value}))},options:[{label:"Always",value:"Always"},{label:"OnRootMismatch",value:"OnRootMismatch"}]})})]})}),(0,k.jsx)("br",{}),(0,k.jsx)(c.ZP,{item:!0,xs:12,children:(0,k.jsx)("div",{className:n.multiContainer,children:(0,k.jsx)(b.Z,{value:"kesSecurityContextRunAsNonRoot",id:"kes_securityContext_runAsNonRoot",name:"kes_securityContext_runAsNonRoot",checked:z.runAsNonRoot,onChange:function(e){var n=e.target.checked;q("kesSecurityContext",(0,a.Z)((0,a.Z)({},z),{},{runAsNonRoot:n}))},label:"Do not run as Root"})})})]})]})]})]})]})})),ue=t(4942),me=t(81207),fe=t(45660),pe=t(87995),xe=(0,h.Z)((function(e){return(0,u.Z)((0,a.Z)((0,a.Z)({overlayAction:{marginLeft:10,display:"flex",alignItems:"center","& svg":{maxWidth:15,maxHeight:15},"& button":{background:"#EAEAEA"}},affinityConfigField:{display:"flex"},affinityFieldLabel:{display:"flex",flexFlow:"column",flex:1},radioField:{display:"flex",alignItems:"flex-start",marginTop:10,"& div:first-child":{display:"flex",flexFlow:"column",alignItems:"baseline",textAlign:"left !important"}},affinityLabelKey:{"& div:first-child":{marginBottom:0}},affinityLabelValue:{marginLeft:10,"& div:first-child":{marginBottom:0}},rowActions:{display:"flex",alignItems:"center"},affinityRow:{marginBottom:10,display:"flex"}},m.oO),m.AK))}))((function(e){var n=e.classes,t=(0,p.TL)(),s=(0,l.v9)((function(e){return e.createTenant.fields.affinity.podAffinity})),o=(0,l.v9)((function(e){return e.createTenant.fields.affinity.nodeSelectorLabels})),d=(0,l.v9)((function(e){return e.createTenant.fields.affinity.withPodAntiAffinity})),u=(0,l.v9)((function(e){return e.createTenant.nodeSelectorPairs})),m=(0,l.v9)((function(e){return e.createTenant.tolerations})),f=(0,r.useState)({}),h=(0,i.Z)(f,2),y=h[0],j=h[1],N=(0,r.useState)(!0),w=(0,i.Z)(N,2),I=w[0],R=w[1],D=(0,r.useState)({}),F=(0,i.Z)(D,2),K=F[0],E=F[1],L=(0,r.useState)([]),z=(0,i.Z)(L,2),O=z[0],M=z[1],G=(0,r.useCallback)((function(e,n){t((0,_.HM)({pageName:"affinity",field:e,value:n}))}),[t]);(0,r.useEffect)((function(){I&&me.Z.invoke("GET","/api/v1/nodes/labels").then((function(e){R(!1),E(e);var n=[];for(var t in e)n.push({label:t,value:t});M(n)})).catch((function(e){R(!1),t((0,pe.zb)(e)),E({})}))}),[t,I]),(0,r.useEffect)((function(){if(u){var e=u.filter((function(e){return""!==e.key})).map((function(e){return"".concat(e.key,"=").concat(e.value)})).filter((function(e,n,t){return t.indexOf(e)===n})).join("&");G("nodeSelectorLabels",e)}}),[u,G]),(0,r.useEffect)((function(){var e=[];if("nodeSelector"===s){var n=!0,i=o.split("&");1===i.length&&""===i[0]&&(n=!1),i.forEach((function(e,t){var a=e.split("=");2!==a.length&&(n=!1),t+1!==i.length&&(""!==a[0]&&""!==a[1]||(n=!1))})),e=[].concat((0,x.Z)(e),[{fieldKey:"labels",required:!0,value:o,customValidation:!n,customValidationMessage:"You need to add at least one label key-pair"}])}var a=(0,Z.R)(e);t((0,_.NO)({pageName:"affinity",valid:0===Object.keys(a).length})),j(a)}),[t,s,o]);var B=function(e,n,i){var r=(0,a.Z)((0,a.Z)({},m[e]),{},(0,ue.Z)({},n,i));t((0,_.iU)({index:e,tolerationValue:r}))};return(0,k.jsxs)(v.Z,{className:n.paperWrapper,children:[(0,k.jsxs)("div",{className:n.headerElement,children:[(0,k.jsx)(A.Z,{children:"Pod Placement"}),(0,k.jsx)("span",{className:n.descriptionText,children:"Configure how pods will be assigned to nodes"})]}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.affinityConfigField,children:(0,k.jsxs)(c.ZP,{item:!0,className:n.affinityFieldLabel,children:[(0,k.jsx)("div",{className:n.label,children:"Type"}),(0,k.jsx)("div",{className:"".concat(n.descriptionText," ").concat(n.affinityHelpText),children:"MinIO supports multiple configurations for Pod Affinity"}),(0,k.jsx)(c.ZP,{item:!0,className:n.radioField,children:(0,k.jsx)(P.Z,{currentSelection:s,id:"affinity-options",name:"affinity-options",label:" ",onChange:function(e){G("podAffinity",e.target.value)},selectorOptions:[{label:"None",value:"none"},{label:"Default (Pod Anti-Affinity)",value:"default"},{label:"Node Selector",value:"nodeSelector"}]})})]})}),"nodeSelector"===s&&(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)("br",{}),(0,k.jsx)(c.ZP,{item:!0,xs:12,children:(0,k.jsx)(b.Z,{value:"with_pod_anti_affinity",id:"with_pod_anti_affinity",name:"with_pod_anti_affinity",checked:d,onChange:function(e){var n=e.target.checked;G("withPodAntiAffinity",n)},label:"With Pod Anti-Affinity"})}),(0,k.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,k.jsx)("h3",{children:"Labels"}),(0,k.jsx)("span",{className:n.error,children:y.labels}),(0,k.jsx)(c.ZP,{container:!0,children:u&&u.map((function(e,i){return(0,k.jsxs)(c.ZP,{item:!0,xs:12,className:n.affinityRow,children:[(0,k.jsxs)(c.ZP,{item:!0,xs:5,className:n.affinityLabelKey,children:[O.length>0&&(0,k.jsx)(T.Z,{onChange:function(e){var n=e.target.value,a={key:n,value:K[n][0]},r=(0,x.Z)(u);r[i]=a,t((0,_.i$)(r))},id:"select-access-policy",name:"select-access-policy",label:"",value:e.key,options:O}),0===O.length&&(0,k.jsx)(C.Z,{id:"nodeselector-key-".concat(i.toString()),label:"",name:"nodeselector-".concat(i.toString()),value:e.key,onChange:function(e){var n=(0,x.Z)(u);n[i]={key:n[i].key,value:e.target.value},t((0,_.i$)(n))},index:i,placeholder:"Key"})]}),(0,k.jsxs)(c.ZP,{item:!0,xs:5,className:n.affinityLabelValue,children:[O.length>0&&(0,k.jsx)(T.Z,{onChange:function(e){var n=(0,x.Z)(u);n[i]={key:n[i].key,value:e.target.value},t((0,_.i$)(n))},id:"select-access-policy",name:"select-access-policy",label:"",value:e.value,options:K[e.key]?K[e.key].map((function(e){return{label:e,value:e}})):[]}),0===O.length&&(0,k.jsx)(C.Z,{id:"nodeselector-value-".concat(i.toString()),label:"",name:"nodeselector-".concat(i.toString()),value:e.value,onChange:function(e){var n=(0,x.Z)(u);n[i]={key:n[i].key,value:e.target.value},t((0,_.i$)(n))},index:i,placeholder:"value"})]}),(0,k.jsxs)(c.ZP,{item:!0,xs:2,className:n.rowActions,children:[(0,k.jsx)("div",{className:n.overlayAction,children:(0,k.jsx)(g.Z,{size:"small",onClick:function(){var e=(0,x.Z)(u);O.length>0?e.push({key:O[0].value,value:K[O[0].value][0]}):e.push({key:"",value:""}),t((0,_.i$)(e))},disabled:i!==u.length-1,children:(0,k.jsx)(S.dtP,{})})}),(0,k.jsx)("div",{className:n.overlayAction,children:(0,k.jsx)(g.Z,{size:"small",onClick:function(){var e=u.filter((function(e,n){return n!==i}));t((0,_.i$)(e))},disabled:u.length<=1,children:(0,k.jsx)(S.HFL,{})})})]})]},"affinity-keyVal-".concat(i.toString()))}))})]})]}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.affinityConfigField,children:(0,k.jsxs)(c.ZP,{item:!0,className:n.affinityFieldLabel,children:[(0,k.jsx)("h3",{children:"Tolerations"}),(0,k.jsx)("span",{className:n.error,children:y.tolerations}),(0,k.jsx)(c.ZP,{container:!0,children:m&&m.map((function(e,i){var a;return(0,k.jsxs)(c.ZP,{item:!0,xs:12,className:n.affinityRow,children:[(0,k.jsx)(fe.Z,{effect:e.effect,onEffectChange:function(e){B(i,"effect",e)},tolerationKey:e.key,onTolerationKeyChange:function(e){B(i,"key",e)},operator:e.operator,onOperatorChange:function(e){B(i,"operator",e)},value:e.value,onValueChange:function(e){B(i,"value",e)},tolerationSeconds:(null===(a=e.tolerationSeconds)||void 0===a?void 0:a.seconds)||0,onSecondsChange:function(e){B(i,"tolerationSeconds",{seconds:e})},index:i}),(0,k.jsx)("div",{className:n.overlayAction,children:(0,k.jsx)(g.Z,{size:"small",onClick:function(){t((0,_.ly)())},disabled:i!==m.length-1,children:(0,k.jsx)(S.dtP,{})})}),(0,k.jsx)("div",{className:n.overlayAction,children:(0,k.jsx)(g.Z,{size:"small",onClick:function(){return t((0,_.JX)(i))},disabled:m.length<=1,children:(0,k.jsx)(S.HFL,{})})})]},"affinity-keyVal-".concat(i.toString()))}))})]})})]})})),he=(0,h.Z)((function(e){return(0,u.Z)((0,a.Z)((0,a.Z)({},m.DF),m.AK))}))((function(e){var n=e.classes,t=(0,p.TL)(),a=(0,l.v9)((function(e){return e.createTenant.fields.configure.customImage})),s=(0,l.v9)((function(e){return e.createTenant.fields.configure.imageName})),o=(0,l.v9)((function(e){return e.createTenant.fields.configure.customDockerhub})),d=(0,l.v9)((function(e){return e.createTenant.fields.configure.imageRegistry})),u=(0,l.v9)((function(e){return e.createTenant.fields.configure.imageRegistryUsername})),m=(0,l.v9)((function(e){return e.createTenant.fields.configure.imageRegistryPassword})),f=(0,l.v9)((function(e){return e.createTenant.fields.configure.tenantCustom})),h=(0,l.v9)((function(e){return e.createTenant.fields.configure.kesImage})),g=(0,r.useState)({}),y=(0,i.Z)(g,2),N=y[0],S=y[1],T=(0,r.useCallback)((function(e,n){t((0,_.HM)({pageName:"configure",field:e,value:n}))}),[t]);(0,r.useEffect)((function(){var e=[];a&&(e=[].concat((0,x.Z)(e),[{fieldKey:"image",required:!1,value:s,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'minio/minio:VERSION'"},{fieldKey:"kesImage",required:!1,value:h,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'minio/kes:VERSION'"}]),o&&(e=[].concat((0,x.Z)(e),[{fieldKey:"registry",required:!0,value:d},{fieldKey:"registryUsername",required:!0,value:u},{fieldKey:"registryPassword",required:!0,value:m}])));var n=(0,Z.R)(e);t((0,_.NO)({pageName:"configure",valid:0===Object.keys(n).length})),S(n)}),[a,s,h,o,d,u,m,t,f]);var w=function(e){S((0,j.he)(N,e))};return(0,k.jsxs)(v.Z,{className:n.paperWrapper,children:[(0,k.jsxs)("div",{className:n.headerElement,children:[(0,k.jsx)(A.Z,{children:"Container Images"}),(0,k.jsx)("span",{className:n.descriptionText,children:"Specify the container images used by the Tenant and its features."})]}),(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"image",name:"image",onChange:function(e){T("imageName",e.target.value),w("image")},label:"MinIO",value:s,error:N.image||"",placeholder:"minio/minio:RELEASE.2023-09-04T19-57-37Z"})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"kesImage",name:"kesImage",onChange:function(e){T("kesImage",e.target.value),w("kesImage")},label:"KES",value:h,error:N.kesImage||"",placeholder:"minio/kes:2023-08-19T17-27-47Z"})})]}),a&&(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)("h4",{children:"Custom Container Registry"})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(b.Z,{value:"custom_docker_hub",id:"custom_docker_hub",name:"custom_docker_hub",checked:o,onChange:function(e){var n=e.target.checked;T("customDockerhub",n)},label:"Use a private container registry"})})]}),o&&(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"registry",name:"registry",onChange:function(e){T("imageRegistry",e.target.value)},label:"Endpoint",value:d,error:N.registry||"",placeholder:"https://index.docker.io/v1/",required:!0})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"registryUsername",name:"registryUsername",onChange:function(e){T("imageRegistryUsername",e.target.value)},label:"Username",value:u,error:N.registryUsername||"",required:!0})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{id:"registryPassword",name:"registryPassword",onChange:function(e){T("imageRegistryPassword",e.target.value)},label:"Password",value:m,error:N.registryPassword||"",required:!0})})]})]})})),ve=t(74794),ge=t(79836),ye=t(53382),je=t(53994),Ze=t(35855),be=t(45248),Ce=(0,h.Z)((function(e){return(0,u.Z)((0,a.Z)((0,a.Z)({root:{margin:4},table:{"& .MuiTableCell-root":{fontSize:13}}},m.oO),m.AK))}))((function(e){var n=e.classes,t=(0,l.v9)((function(e){return e.createTenant.fields.tenantSize.nodes})),i=(0,l.v9)((function(e){return e.createTenant.fields.tenantSize.resourcesMemoryRequest})),a=(0,l.v9)((function(e){return e.createTenant.fields.tenantSize.ecParity})),s=(0,l.v9)((function(e){return e.createTenant.fields.tenantSize.distribution})),o=(0,l.v9)((function(e){return e.createTenant.fields.tenantSize.ecParityCalc})),c=(0,l.v9)((function(e){return e.createTenant.fields.tenantSize.resourcesCPURequest})),d=(0,l.v9)((function(e){return e.createTenant.fields.tenantSize.integrationSelection})),u=o.storageFactors.find((function(e){return e.erasureCode===a}));return(0,k.jsxs)("div",{className:n.root,children:[(0,k.jsx)("h4",{children:"Resource Allocation"}),(0,k.jsx)(y.Z,{}),(0,k.jsx)(ge.Z,{className:n.table,"aria-label":"simple table",size:"small",children:(0,k.jsxs)(ye.Z,{children:[(0,k.jsxs)(Ze.Z,{children:[(0,k.jsx)(je.Z,{scope:"row",children:"Number of Servers"}),(0,k.jsx)(je.Z,{align:"right",children:parseInt(t)>0?t:"-"})]}),""===d.typeSelection&&""===d.storageClass&&(0,k.jsxs)(r.Fragment,{children:[(0,k.jsxs)(Ze.Z,{children:[(0,k.jsx)(je.Z,{scope:"row",children:"Drives per Server"}),(0,k.jsx)(je.Z,{align:"right",children:s?s.disks:"-"})]}),(0,k.jsxs)(Ze.Z,{children:[(0,k.jsx)(je.Z,{scope:"row",children:"Drive Capacity"}),(0,k.jsx)(je.Z,{align:"right",children:s?(0,be.ae)(s.pvSize):"-"})]})]}),(0,k.jsxs)(Ze.Z,{children:[(0,k.jsx)(je.Z,{scope:"row",children:"Total Volumes"}),(0,k.jsx)(je.Z,{align:"right",children:s?s.persistentVolumes:"-"})]}),""===d.typeSelection&&""===d.storageClass&&(0,k.jsxs)(r.Fragment,{children:[(0,k.jsxs)(Ze.Z,{children:[(0,k.jsx)(je.Z,{scope:"row",children:"Memory per Node"}),(0,k.jsxs)(je.Z,{align:"right",children:[i," Gi"]})]}),(0,k.jsxs)(Ze.Z,{children:[(0,k.jsx)(je.Z,{style:{borderBottom:0},scope:"row",children:"CPU Selection"}),(0,k.jsx)(je.Z,{style:{borderBottom:0},align:"right",children:c})]})]})]})}),0===o.error&&u&&(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)("h4",{children:"Erasure Code Configuration"}),(0,k.jsx)(y.Z,{}),(0,k.jsx)(ge.Z,{className:n.table,"aria-label":"simple table",size:"small",children:(0,k.jsxs)(ye.Z,{children:[(0,k.jsxs)(Ze.Z,{children:[(0,k.jsx)(je.Z,{scope:"row",children:"EC Parity"}),(0,k.jsx)(je.Z,{align:"right",children:""!==a?a:"-"})]}),(0,k.jsxs)(Ze.Z,{children:[(0,k.jsx)(je.Z,{scope:"row",children:"Raw Capacity"}),(0,k.jsx)(je.Z,{align:"right",children:(0,be.ae)(o.rawCapacity)})]}),(0,k.jsxs)(Ze.Z,{children:[(0,k.jsx)(je.Z,{scope:"row",children:"Usable Capacity"}),(0,k.jsx)(je.Z,{align:"right",children:(0,be.ae)(u.maxCapacity)})]}),(0,k.jsxs)(Ze.Z,{children:[(0,k.jsx)(je.Z,{style:{borderBottom:0},scope:"row",children:"Server Failures Tolerated"}),(0,k.jsx)(je.Z,{style:{borderBottom:0},align:"right",children:s?Math.floor(u.maxFailureTolerations/s.disks):"-"})]})]})})]}),""!==d.typeSelection&&""!==d.storageClass&&(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)("h4",{children:"Single Instance Configuration"}),(0,k.jsx)(y.Z,{}),(0,k.jsx)(ge.Z,{className:n.table,"aria-label":"simple table",size:"small",children:(0,k.jsxs)(ye.Z,{children:[(0,k.jsxs)(Ze.Z,{children:[(0,k.jsx)(je.Z,{scope:"row",children:"CPU"}),(0,k.jsx)(je.Z,{align:"right",children:0!==d.CPU?d.CPU:"-"})]}),(0,k.jsxs)(Ze.Z,{children:[(0,k.jsx)(je.Z,{scope:"row",children:"Memory"}),(0,k.jsx)(je.Z,{align:"right",children:0!==d.memory?"".concat(d.memory," Gi"):"-"})]}),(0,k.jsxs)(Ze.Z,{children:[(0,k.jsx)(je.Z,{scope:"row",children:"Drives per Server"}),(0,k.jsx)(je.Z,{align:"right",children:0!==d.drivesPerServer?"".concat(d.drivesPerServer):"-"})]}),(0,k.jsxs)(Ze.Z,{children:[(0,k.jsx)(je.Z,{style:{borderBottom:0},scope:"row",children:"Drive Size"}),(0,k.jsxs)(je.Z,{style:{borderBottom:0},align:"right",children:[d.driveSize.driveSize,d.driveSize.sizeUnit]})]})]})})]})]})})),Ne=t(19720),Se=t(45884),_e=t(46078),Te=t(51691),Ae=t(40306),ke=t(98222),we=(0,D.Z)((function(e){return(0,u.Z)((0,a.Z)((0,a.Z)({wrapText:{maxWidth:"200px",whiteSpace:"normal",wordWrap:"break-word"}},m.oO),m.Qw))})),Pe=function(){var e=(0,p.TL)(),n=we(),t=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.namespace})),i=(0,l.v9)((function(e){return e.createTenant.addNSLoading})),a=(0,l.v9)((function(e){return e.createTenant.addNSOpen}));return(0,k.jsx)(Ae.Z,{title:"New namespace",confirmText:"Create",confirmButtonProps:{variant:"callAction"},isOpen:a,titleIcon:(0,k.jsx)(S.EjK,{}),isLoading:i,onConfirm:function(){e((0,ke.QD)())},onClose:function(){e((0,_.pb)())},confirmationContent:(0,k.jsxs)(r.Fragment,{children:[i&&(0,k.jsx)(d.Z,{}),(0,k.jsxs)(Te.Z,{children:["Are you sure you want to add a namespace called",(0,k.jsx)("br",{}),(0,k.jsx)("b",{className:n.wrapText,children:t}),"?"]})]})})},Ie=t(48573),Re=t.n(Ie),De=function(e){e.formToRender;var n=(0,p.TL)(),t=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.namespace})),i=(0,l.v9)((function(e){return e.createTenant.showNSCreateButton})),a=(0,l.v9)((function(e){return e.createTenant.validationErrors.namespace})),s=(0,l.v9)((function(e){return e.createTenant.addNSOpen})),o=(0,r.useMemo)((function(){return Re()((function(){n((0,ke.IO)())}),500)}),[n]);(0,r.useEffect)((function(){if(""!==t)return o(),o.cancel}),[o,t]);return(0,k.jsxs)(r.Fragment,{children:[s&&(0,k.jsx)(Pe,{}),(0,k.jsx)(C.Z,{id:"namespace",name:"namespace",onChange:function(e){n((0,_.Zx)(e.target.value))},label:"Namespace",value:t,error:a||"",overlayId:"add-namespace",overlayIcon:i?(0,k.jsx)(S.dtP,{}):null,overlayAction:function(){n((0,_.Oj)())},required:!0})]})},Fe=function(){var e=(0,p.TL)(),n=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.tenantName})),t=(0,l.v9)((function(e){return e.createTenant.validationErrors["tenant-name"]}));return(0,k.jsx)(C.Z,{id:"tenant-name",name:"tenant-name",onChange:function(n){e((0,_.V7)(n.target.value))},label:"Name",value:n,required:!0,error:t||""})},Ke=(0,h.Z)((function(e){return(0,u.Z)((0,a.Z)((0,a.Z)((0,a.Z)({sizePreview:{marginLeft:10,background:"#FFFFFF",border:"1px solid #EAEAEA",padding:2,marginTop:20}},m.DF),m.oO),m.AK))}))((function(e){var n=e.classes,t=e.formToRender,i=(0,p.TL)(),a=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.selectedStorageClass})),s=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.selectedStorageType})),d=(0,l.v9)((function(e){return e.createTenant.storageClasses})),u=(0,l.v9)(_e.$4),m=(0,r.useCallback)((function(e,n){i((0,_.HM)({pageName:"nameTenant",field:e,value:n}))}),[i]);return(0,r.useEffect)((function(){var e=t===Se.cy.default&&d.length>0||t!==Se.cy.default&&""!==s;i((0,_.NO)({pageName:"nameTenant",valid:e}))}),[d,i,s,t]),(0,k.jsx)(r.Fragment,{children:(0,k.jsxs)(c.ZP,{container:!0,children:[(0,k.jsx)(c.ZP,{item:!0,sx:{width:"calc(100% - 320px)"},children:(0,k.jsx)(v.Z,{className:n.paperWrapper,sx:{minHeight:550},children:(0,k.jsxs)(c.ZP,{container:!0,children:[(0,k.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,k.jsxs)("div",{className:n.headerElement,children:[(0,k.jsx)(A.Z,{children:"Name"}),(0,k.jsx)("span",{className:n.descriptionText,children:"How would you like to name this new tenant?"})]}),(0,k.jsx)("div",{className:n.formFieldRow,children:(0,k.jsx)(Fe,{})})]}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(De,{formToRender:t})}),t===Se.cy.default?(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(T.Z,{id:"storage_class",name:"storage_class",onChange:function(e){m("selectedStorageClass",e.target.value)},label:"Storage Class",value:a,options:d,disabled:d.length<1})}):(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(T.Z,{id:"storage_type",name:"storage_type",onChange:function(e){i((0,_.Qy)({storageType:e.target.value,features:u}))},label:o()(Se.Hd,"".concat(t,".variantSelectorLabel"),"Storage Type"),value:s,options:o()(Se.Hd,"".concat(t,".variantSelectorValues"),[])})}),t===Se.cy.default?(0,k.jsx)(Ne.Z,{}):o()(Se.Hd,"".concat(t,".sizingComponent"),null)]})})}),(0,k.jsx)(c.ZP,{item:!0,children:(0,k.jsx)("div",{className:n.sizePreview,children:(0,k.jsx)(Ce,{})})})]})})})),Ee=function(){var e=(0,l.v9)(_e.$4),n=(0,r.useState)(null),t=(0,i.Z)(n,2),a=t[0],s=t[1];return(0,r.useEffect)((function(){var n=Se.cy.default;e&&0!==e.length&&Object.keys(Se.I8).forEach((function(t){e.includes(t)&&(n=o()(Se.I8,t,Se.cy.default))}));s(n)}),[e]),null===a?null:(0,k.jsx)(Ke,{formToRender:a})},Le=["nameTenant","tenantSize","configure","affinity","identityProvider","security","encryption"],ze=t(84218),Oe=function(){var e=(0,p.TL)(),n=(0,l.v9)((function(e){return e.createTenant.addingTenant})),t=(0,l.v9)((function(e){return e.createTenant.validPages})),i=(0,l.v9)((function(e){return e.createTenant.fields.nameTenant.selectedStorageClass})),a=!n&&""!==i&&Le.every((function(e){return t.includes(e)}));return(0,k.jsx)(S.zxk,{id:"wizard-button-Create",variant:"callAction",color:"primary",onClick:function(){e((0,ze.e)())},disabled:!a,label:"Create"},"button-AddTenant-Create")},Me=t(37798),Ge=t(57689),Be=function(){var e=(0,p.TL)(),n=(0,Ge.s0)(),t=(0,l.v9)((function(e){return e.createTenant.showNewCredentials})),i=(0,l.v9)((function(e){return e.createTenant.createdAccount}));return(0,k.jsx)(r.Fragment,{children:t&&(0,k.jsx)(Me.default,{newServiceAccount:i,open:t,closeModal:function(){e((0,_.dS)()),n("/tenants")},entity:"Tenant"})})},Ve=t(47974),qe=(0,D.Z)((function(e){return(0,u.Z)((0,a.Z)((0,a.Z)((0,a.Z)({pageBox:{border:"1px solid #EAEAEA"}},m.oO),m.AK),m.Je))})),Ue=function(){var e=(0,p.TL)(),n=(0,Ge.s0)(),t=qe(),a=(0,l.v9)(_e.$4),s=(0,l.v9)((function(e){return e.createTenant.addingTenant})),u=(0,r.useState)(null),m=(0,i.Z)(u,2),x=m[0],h=m[1];(0,r.useEffect)((function(){var e=Se.cy.default;a&&0!==a.length&&Object.keys(Se.I8).forEach((function(n){a.includes(n)&&(e=o()(Se.I8,n,Se.cy.default))}));h(e)}),[a]);var v={label:"Cancel",type:"other",enabled:!0,action:function(){e((0,_.dS)()),n("/tenants")}},g={componentRender:(0,k.jsx)(Oe,{},"create-tenant")},y=[{label:"Setup",componentRender:(0,k.jsx)(Ee,{}),buttons:[v,g]},{label:"Configure",advancedOnly:!0,componentRender:(0,k.jsx)(w,{}),buttons:[v,g]},{label:"Images",advancedOnly:!0,componentRender:(0,k.jsx)(he,{}),buttons:[v,g]},{label:"Pod Placement",advancedOnly:!0,componentRender:(0,k.jsx)(xe,{}),buttons:[v,g]},{label:"Identity Provider",advancedOnly:!0,componentRender:(0,k.jsx)(q,{}),buttons:[v,g]},{label:"Security",advancedOnly:!0,componentRender:(0,k.jsx)(W,{}),buttons:[v,g]},{label:"Encryption",advancedOnly:!0,componentRender:(0,k.jsx)(de,{}),buttons:[v,g]}];return(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)(Be,{}),(0,k.jsx)(Ve.Z,{label:(0,k.jsx)(S.hbI,{onClick:function(){e((0,_.dS)()),n("/tenants")},label:"Tenants"})}),(0,k.jsxs)(ve.Z,{children:[s&&(0,k.jsx)(c.ZP,{item:!0,xs:12,children:(0,k.jsx)(d.Z,{})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:t.pageBox,children:(0,k.jsx)(f.Z,{wizardSteps:y})}),x===Se.cy.aws&&(0,k.jsx)(c.ZP,{item:!0,xs:12,style:{marginTop:16},children:(0,k.jsx)(S.KfX,{title:"EBS Volume Configuration.",iconComponent:(0,k.jsx)(S.idV,{}),help:(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)("b",{children:"Performance Optimized"}),": Uses the ",(0,k.jsx)("i",{children:"gp3"})," EBS storage class class configured at 1,000Mi/s throughput and 16,000 IOPS, however the minimum volume size for this type of EBS volume is ",(0,k.jsx)("b",{children:"32Gi"}),".",(0,k.jsx)("br",{}),(0,k.jsx)("br",{}),(0,k.jsx)("b",{children:"Storage Optimized"}),": Uses the ",(0,k.jsx)("i",{children:"sc1"})," EBS storage class, however the minimum volume size for this type of EBS volume is \xa0",(0,k.jsx)("b",{children:"16Ti"})," to unlock their maximum throughput speed of 250Mi/s."]})})})]})]})}},88070:function(e,n,t){t(72791);var i=t(78687),a=t(64554),r=t(75952),s=t(57689),o=t(80184),l=function(e){var n=e.icon,t=e.description;return(0,o.jsxs)(a.Z,{sx:{display:"flex","& .min-icon":{marginRight:"10px",height:"23px",width:"23px",marginBottom:"10px"}},children:[n," ",(0,o.jsx)("div",{style:{fontSize:"14px",fontStyle:"italic",color:"#5E5E5E"},children:t})]})};n.Z=function(){var e=(0,s.UO)(),n=e.tenantName||"",t=e.tenantNamespace||"",c=(0,i.v9)((function(e){return""!==t?t:""!==e.createTenant.fields.nameTenant.namespace?e.createTenant.fields.nameTenant.namespace:""})),d=(0,i.v9)((function(e){return""!==n?n:""!==e.createTenant.fields.nameTenant.tenantName?e.createTenant.fields.nameTenant.tenantName:""}));return(0,o.jsx)(a.Z,{sx:{flex:1,border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",flexFlow:"column",padding:"20px",marginTop:{xs:"0px"}},children:(0,o.jsxs)(a.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,o.jsx)(l,{icon:(0,o.jsx)(r.Baz,{}),description:"TLS Certificates Warning"}),(0,o.jsxs)(a.Z,{sx:{fontSize:"14px",marginBottom:"15px"},children:["Automatic certificate generation is not enabled.",(0,o.jsx)("br",{}),(0,o.jsx)("br",{}),"If you wish to continue only with ",(0,o.jsx)("b",{children:"custom certificates"})," make sure they are valid for the following internode hostnames, i.e.:",(0,o.jsx)("br",{}),(0,o.jsx)("br",{}),(0,o.jsxs)("div",{style:{fontSize:"14px",fontStyle:"italic",color:"#5E5E5E"},children:["minio.",c,(0,o.jsx)("br",{}),"minio.",c,".svc",(0,o.jsx)("br",{}),"minio.",c,".svc.",(0,o.jsx)("br",{}),"*.",d,"-hl.",c,".svc.",(0,o.jsx)("br",{}),"*.",c,".svc."]}),(0,o.jsx)("br",{}),"Replace ",(0,o.jsx)("em",{children:""}),","," ",(0,o.jsx)("em",{children:""})," and",(0,o.jsx)("em",{children:""})," with the actual values for your MinIO tenant.",(0,o.jsx)("br",{}),(0,o.jsx)("br",{}),"You can learn more at our"," ",(0,o.jsx)("a",{href:"https://min.io/docs/minio/kubernetes/upstream/operations/network-encryption.html?ref=op#id5",target:"_blank",rel:"noopener",children:"documentation"}),"."]})]})})}},68456:function(e,n,t){t.d(n,{QT:function(){return o},YH:function(){return l},mo:function(){return s}});var i=t(61889),a=t(75952),r=t(80184),s=function(){return(0,r.jsxs)(i.ZP,{container:!0,columnGap:1,children:[(0,r.jsx)(i.ZP,{children:(0,r.jsx)(a.gyG,{width:"16px",height:"16px"})}),(0,r.jsx)(i.ZP,{item:!0,children:"Open ID"})]})},o=function(){return(0,r.jsxs)(i.ZP,{container:!0,columnGap:1,children:[(0,r.jsx)(i.ZP,{children:(0,r.jsx)(a.vcZ,{width:"16px",height:"16px"})}),(0,r.jsx)(i.ZP,{item:!0,children:"LDAP / Active Directory"})]})},l=function(){return(0,r.jsxs)(i.ZP,{container:!0,columnGap:1,children:[(0,r.jsx)(i.ZP,{children:(0,r.jsx)(a.oyc,{width:"16px",height:"16px"})}),(0,r.jsx)(i.ZP,{item:!0,children:"Built-in"})]})}},22512:function(e,n,t){var i=t(72791),a=t(20890),r=t(11135),s=t(25787),o=t(80184);n.Z=(0,s.Z)((function(e){var n;return(0,r.Z)({errorBlock:{color:(null===(n=e.palette)||void 0===n?void 0:n.error.main)||"#C83B51"}})}))((function(e){var n=e.classes,t=e.errorMessage,r=e.withBreak,s=void 0===r||r;return(0,o.jsxs)(i.Fragment,{children:[s&&(0,o.jsx)("br",{}),(0,o.jsx)(a.Z,{component:"p",variant:"body1",className:n.errorBlock,children:t})]})}))},42419:function(e,n,t){var i=t(64836);n.Z=void 0;var a=i(t(45649)),r=t(80184),s=(0,a.default)((0,r.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");n.Z=s},99663:function(e,n,t){var i=t(64836);n.Z=void 0;var a=i(t(45649)),r=t(80184),s=(0,a.default)((0,r.jsx)("path",{d:"M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z"}),"AttachFile");n.Z=s},86711:function(e,n,t){var i=t(64836);n.Z=void 0;var a=i(t(45649)),r=t(80184),s=(0,a.default)((0,r.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}),"Cancel");n.Z=s},22918:function(e,n,t){var i=t(64836);n.Z=void 0;var a=i(t(45649)),r=t(80184),s=(0,a.default)((0,r.jsx)("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM7.5 18c-.83 0-1.5-.67-1.5-1.5S6.67 15 7.5 15s1.5.67 1.5 1.5S8.33 18 7.5 18zm0-9C6.67 9 6 8.33 6 7.5S6.67 6 7.5 6 9 6.67 9 7.5 8.33 9 7.5 9zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm0-9c-.83 0-1.5-.67-1.5-1.5S15.67 6 16.5 6s1.5.67 1.5 1.5S17.33 9 16.5 9z"}),"Casino");n.Z=s},27247:function(e,n,t){var i=t(64836);n.Z=void 0;var a=i(t(45649)),r=t(80184),s=(0,a.default)((0,r.jsx)("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"}),"Delete");n.Z=s},94721:function(e,n,t){var i=t(63366),a=t(87462),r=t(72791),s=t(28182),o=t(94419),l=t(12065),c=t(66934),d=t(31402),u=t(90133),m=t(80184),f=["absolute","children","className","component","flexItem","light","orientation","role","textAlign","variant"],p=(0,c.ZP)("div",{name:"MuiDivider",slot:"Root",overridesResolver:function(e,n){var t=e.ownerState;return[n.root,t.absolute&&n.absolute,n[t.variant],t.light&&n.light,"vertical"===t.orientation&&n.vertical,t.flexItem&&n.flexItem,t.children&&n.withChildren,t.children&&"vertical"===t.orientation&&n.withChildrenVertical,"right"===t.textAlign&&"vertical"!==t.orientation&&n.textAlignRight,"left"===t.textAlign&&"vertical"!==t.orientation&&n.textAlignLeft]}})((function(e){var n=e.theme,t=e.ownerState;return(0,a.Z)({margin:0,flexShrink:0,borderWidth:0,borderStyle:"solid",borderColor:(n.vars||n).palette.divider,borderBottomWidth:"thin"},t.absolute&&{position:"absolute",bottom:0,left:0,width:"100%"},t.light&&{borderColor:n.vars?"rgba(".concat(n.vars.palette.dividerChannel," / 0.08)"):(0,l.Fq)(n.palette.divider,.08)},"inset"===t.variant&&{marginLeft:72},"middle"===t.variant&&"horizontal"===t.orientation&&{marginLeft:n.spacing(2),marginRight:n.spacing(2)},"middle"===t.variant&&"vertical"===t.orientation&&{marginTop:n.spacing(1),marginBottom:n.spacing(1)},"vertical"===t.orientation&&{height:"100%",borderBottomWidth:0,borderRightWidth:"thin"},t.flexItem&&{alignSelf:"stretch",height:"auto"})}),(function(e){var n=e.ownerState;return(0,a.Z)({},n.children&&{display:"flex",whiteSpace:"nowrap",textAlign:"center",border:0,"&::before, &::after":{content:'""',alignSelf:"center"}})}),(function(e){var n=e.theme,t=e.ownerState;return(0,a.Z)({},t.children&&"vertical"!==t.orientation&&{"&::before, &::after":{width:"100%",borderTop:"thin solid ".concat((n.vars||n).palette.divider)}})}),(function(e){var n=e.theme,t=e.ownerState;return(0,a.Z)({},t.children&&"vertical"===t.orientation&&{flexDirection:"column","&::before, &::after":{height:"100%",borderLeft:"thin solid ".concat((n.vars||n).palette.divider)}})}),(function(e){var n=e.ownerState;return(0,a.Z)({},"right"===n.textAlign&&"vertical"!==n.orientation&&{"&::before":{width:"90%"},"&::after":{width:"10%"}},"left"===n.textAlign&&"vertical"!==n.orientation&&{"&::before":{width:"10%"},"&::after":{width:"90%"}})})),x=(0,c.ZP)("span",{name:"MuiDivider",slot:"Wrapper",overridesResolver:function(e,n){var t=e.ownerState;return[n.wrapper,"vertical"===t.orientation&&n.wrapperVertical]}})((function(e){var n=e.theme,t=e.ownerState;return(0,a.Z)({display:"inline-block",paddingLeft:"calc(".concat(n.spacing(1)," * 1.2)"),paddingRight:"calc(".concat(n.spacing(1)," * 1.2)")},"vertical"===t.orientation&&{paddingTop:"calc(".concat(n.spacing(1)," * 1.2)"),paddingBottom:"calc(".concat(n.spacing(1)," * 1.2)")})})),h=r.forwardRef((function(e,n){var t=(0,d.Z)({props:e,name:"MuiDivider"}),r=t.absolute,l=void 0!==r&&r,c=t.children,h=t.className,v=t.component,g=void 0===v?c?"div":"hr":v,y=t.flexItem,j=void 0!==y&&y,Z=t.light,b=void 0!==Z&&Z,C=t.orientation,N=void 0===C?"horizontal":C,S=t.role,_=void 0===S?"hr"!==g?"separator":void 0:S,T=t.textAlign,A=void 0===T?"center":T,k=t.variant,w=void 0===k?"fullWidth":k,P=(0,i.Z)(t,f),I=(0,a.Z)({},t,{absolute:l,component:g,flexItem:j,light:b,orientation:N,role:_,textAlign:A,variant:w}),R=function(e){var n=e.absolute,t=e.children,i=e.classes,a=e.flexItem,r=e.light,s=e.orientation,l=e.textAlign,c={root:["root",n&&"absolute",e.variant,r&&"light","vertical"===s&&"vertical",a&&"flexItem",t&&"withChildren",t&&"vertical"===s&&"withChildrenVertical","right"===l&&"vertical"!==s&&"textAlignRight","left"===l&&"vertical"!==s&&"textAlignLeft"],wrapper:["wrapper","vertical"===s&&"wrapperVertical"]};return(0,o.Z)(c,u.V,i)}(I);return(0,m.jsx)(p,(0,a.Z)({as:g,className:(0,s.Z)(R.root,h),role:_,ref:n,ownerState:I},P,{children:c?(0,m.jsx)(x,{className:R.wrapper,ownerState:I,children:c}):null}))}));n.Z=h},63466:function(e,n,t){t.d(n,{Z:function(){return C}});var i=t(4942),a=t(63366),r=t(87462),s=t(72791),o=t(28182),l=t(94419),c=t(14036),d=t(20890),u=t(93840),m=t(52930),f=t(66934),p=t(75878),x=t(21217);function h(e){return(0,x.Z)("MuiInputAdornment",e)}var v,g=(0,p.Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),y=t(31402),j=t(80184),Z=["children","className","component","disablePointerEvents","disableTypography","position","variant"],b=(0,f.ZP)("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:function(e,n){var t=e.ownerState;return[n.root,n["position".concat((0,c.Z)(t.position))],!0===t.disablePointerEvents&&n.disablePointerEvents,n[t.variant]]}})((function(e){var n=e.theme,t=e.ownerState;return(0,r.Z)({display:"flex",height:"0.01em",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:(n.vars||n).palette.action.active},"filled"===t.variant&&(0,i.Z)({},"&.".concat(g.positionStart,"&:not(.").concat(g.hiddenLabel,")"),{marginTop:16}),"start"===t.position&&{marginRight:8},"end"===t.position&&{marginLeft:8},!0===t.disablePointerEvents&&{pointerEvents:"none"})})),C=s.forwardRef((function(e,n){var t=(0,y.Z)({props:e,name:"MuiInputAdornment"}),i=t.children,f=t.className,p=t.component,x=void 0===p?"div":p,g=t.disablePointerEvents,C=void 0!==g&&g,N=t.disableTypography,S=void 0!==N&&N,_=t.position,T=t.variant,A=(0,a.Z)(t,Z),k=(0,m.Z)()||{},w=T;T&&k.variant,k&&!w&&(w=k.variant);var P=(0,r.Z)({},t,{hiddenLabel:k.hiddenLabel,size:k.size,disablePointerEvents:C,position:_,variant:w}),I=function(e){var n=e.classes,t=e.disablePointerEvents,i=e.hiddenLabel,a=e.position,r=e.size,s=e.variant,o={root:["root",t&&"disablePointerEvents",a&&"position".concat((0,c.Z)(a)),s,i&&"hiddenLabel",r&&"size".concat((0,c.Z)(r))]};return(0,l.Z)(o,h,n)}(P);return(0,j.jsx)(u.Z.Provider,{value:null,children:(0,j.jsx)(b,(0,r.Z)({as:x,ownerState:P,className:(0,o.Z)(I.root,f),ref:n},A,{children:"string"!==typeof i||S?(0,j.jsxs)(s.Fragment,{children:["start"===_?v||(v=(0,j.jsx)("span",{className:"notranslate",children:"\u200b"})):null,i]}):(0,j.jsx)(d.Z,{color:"text.secondary",children:i})}))})}))}}]); -//# sourceMappingURL=292.82b40208.chunk.js.map \ No newline at end of file diff --git a/web-app/build/static/js/30.d72ddac2.chunk.js b/web-app/build/static/js/30.80b393c6.chunk.js similarity index 99% rename from web-app/build/static/js/30.d72ddac2.chunk.js rename to web-app/build/static/js/30.80b393c6.chunk.js index 57eac357b71..d77888be0f0 100644 --- a/web-app/build/static/js/30.d72ddac2.chunk.js +++ b/web-app/build/static/js/30.80b393c6.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[30],{81806:function(e,n,t){var i=t(1413),o=t(45987),a=(t(72791),t(11135)),l=t(25787),s=t(80184),r=["classes","children"];n.Z=(0,l.Z)((function(e){return(0,a.Z)({root:{padding:0,margin:0,border:0,backgroundColor:"transparent",textDecoration:"underline",cursor:"pointer",fontSize:"inherit",color:e.palette.info.main,fontFamily:"Inter, sans-serif"}})}))((function(e){var n=e.classes,t=e.children,a=(0,o.Z)(e,r);return(0,s.jsx)("button",(0,i.Z)((0,i.Z)({},a),{},{className:n.root,children:t}))}))},56028:function(e,n,t){var i=t(29439),o=t(1413),a=t(72791),l=t(78687),s=t(13400),r=t(48888),c=t(5289),u=t(65661),d=t(39157),m=t(11135),v=t(25787),p=t(23814),h=t(41320),f=t(29823),g=t(86352),x=t(87995),Z=t(80184);n.Z=(0,v.Z)((function(e){return(0,m.Z)((0,o.Z)((0,o.Z)({},p.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},p.sN))}))((function(e){var n=e.onClose,t=e.modalOpen,m=e.title,v=e.children,p=e.classes,j=e.wideLimit,b=void 0===j||j,y=e.noContentPadding,S=e.titleIcon,w=void 0===S?null:S,k=(0,h.TL)(),P=(0,a.useState)(!1),R=(0,i.Z)(P,2),C=R[0],N=R[1],I=(0,l.v9)((function(e){return e.system.modalSnackBar}));(0,a.useEffect)((function(){k((0,x.MK)(""))}),[k]),(0,a.useEffect)((function(){if(I){if(""===I.message)return void N(!1);"error"!==I.type&&N(!0)}}),[I]);var F=b?{classes:{paper:p.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},A="";return I&&(A=I.detailedErrorMsg,(""===I.detailedErrorMsg||I.detailedErrorMsg.length<5)&&(A=I.message)),(0,Z.jsxs)(c.Z,(0,o.Z)((0,o.Z)({open:t,classes:p},F),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:p.root,children:[(0,Z.jsxs)(u.Z,{className:p.title,children:[(0,Z.jsxs)("div",{className:p.titleText,children:[w," ",m]}),(0,Z.jsx)("div",{className:p.closeContainer,children:(0,Z.jsx)(s.Z,{"aria-label":"close",id:"close",className:p.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,Z.jsx)(f.Z,{})})})]}),(0,Z.jsx)(g.Z,{isModal:!0}),(0,Z.jsx)(r.Z,{open:C,className:p.snackBarModal,onClose:function(){N(!1),k((0,x.MK)(""))},message:A,ContentProps:{className:"".concat(p.snackBar," ").concat(I&&"error"===I.type?p.errorSnackBar:"")},autoHideDuration:I&&"error"===I.type?1e4:5e3}),(0,Z.jsx)(d.Z,{className:y?"":p.content,children:v})]}))}))},45902:function(e,n,t){var i=t(1413),o=(t(72791),t(36314)),a=t(80184);n.Z=function(e){var n=e.label,t=void 0===n?null:n,l=e.value,s=void 0===l?"-":l,r=e.orientation,c=void 0===r?"column":r,u=e.stkProps,d=void 0===u?{}:u,m=e.lblProps,v=void 0===m?{}:m,p=e.valProps,h=void 0===p?{}:p;return(0,a.jsxs)(o.Z,(0,i.Z)((0,i.Z)({direction:{xs:"column",sm:c}},d),{},{children:[(0,a.jsx)("label",(0,i.Z)((0,i.Z)({style:{marginRight:5,fontWeight:600}},v),{},{children:t})),(0,a.jsx)("label",(0,i.Z)((0,i.Z)({style:{marginRight:5,fontWeight:500}},h),{},{children:s}))]}))}},74815:function(e,n,t){t.d(n,{Z:function(){return d}});var i=t(93433),o=(t(72791),t(2600)),a=t(65390),l=t(41048),s=t(45248),r=t(75952),c=t(80184),u=function(e){var n=e.totalValue,t=e.sizeItems,i=e.bgColor,o=void 0===i?"#ededed":i;return(0,c.jsx)("div",{style:{width:"100%",height:12,backgroundColor:o,borderRadius:30,display:"flex",transitionDuration:"0.3s",overflow:"hidden"},children:t.map((function(e,t){var i=100*e.value/n;return(0,c.jsx)("div",{style:{width:"".concat(i,"%"),height:"100%",backgroundColor:e.color,transitionDuration:"0.3s"}},"itemSize-".concat(t.toString()))}))})},d=function(e){var n=e.totalCapacity,t=e.usedSpaceVariants,d=e.statusClass,m=e.render,v=void 0===m?"pie":m,p=["#8dacd3","#bca1ea","#92e8d2","#efc9ac","#97f274","#f7d291","#71ACCB","#f28282","#e28cc1","#2781B0"],h="#ededed",f=t.reduce((function(e,n){return e+n.value}),0),g=n-f,x=[],Z=t.find((function(e){return"STANDARD"===e.variant}))||{value:0,variant:"empty"};t.length>10?x=[{value:f-Z.value,color:"#2781B0",label:"Total Tiers Space"}]:x=t.filter((function(e){return"STANDARD"!==e.variant})).map((function(e,n){return{value:e.value,color:p[n],label:"Tier - ".concat(e.variant)}}));var j="#07193E",b=100*Z.value/n;b>=90?j="#C83B51":b>=75&&(j="#FFAB0F");var y=[{value:Z.value,color:j,label:"Used Space by Tenant"}].concat((0,i.Z)(x),[{value:g,color:"bar"===v?h:"transparent",label:"Empty Space"}]);if("bar"===v){var S=y.map((function(e){return{value:e.value,color:e.color,itemName:e.label}}));return(0,c.jsx)("div",{style:{width:"100%",marginBottom:15},children:(0,c.jsx)(u,{totalValue:n,sizeItems:S,bgColor:h})})}return(0,c.jsxs)("div",{style:{position:"relative",width:110,height:110},children:[(0,c.jsx)("div",{style:{position:"absolute",right:-5,top:15,zIndex:400},className:d,children:(0,c.jsx)(r.J$M,{style:{border:"#fff 2px solid",borderRadius:"100%",width:20,height:20}})}),(0,c.jsx)("span",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",fontWeight:"bold",color:"#000",fontSize:12},children:isNaN(f)?"N/A":(0,s.l5)(f)}),(0,c.jsx)("div",{children:(0,c.jsxs)(o.u,{width:110,height:110,children:[(0,c.jsx)(a.b,{data:[{value:100}],cx:"50%",cy:"50%",dataKey:"value",outerRadius:50,innerRadius:40,fill:h,isAnimationActive:!1,stroke:"none"}),(0,c.jsx)(a.b,{data:y,cx:"50%",cy:"50%",dataKey:"value",outerRadius:50,innerRadius:40,children:y.map((function(e,n){return(0,c.jsx)(l.b,{fill:e.color,stroke:"none"},"cellCapacity-".concat(n))}))})]})})]})}},21353:function(e,n,t){t.r(n),t.d(n,{default:function(){return O}});var i=t(29439),o=t(1413),a=t(72791),l=t(78687),s=t(26181),r=t.n(s),c=t(11135),u=t(25787),d=t(23814),m=t(61889),v=t(64554),p=t(75952),h=t(56028),f=t(21435),g=t(37516),x=t(81207),Z=t(87995),j=t(41320),b=t(80184),y=(0,u.Z)((function(e){return(0,c.Z)((0,o.Z)((0,o.Z)({infoText:{fontSize:14}},d.DF),d.ID))}))((function(e){var n=e.open,t=e.closeModalAndRefresh,l=e.namespace,s=e.idTenant,r=e.classes,c=(0,j.TL)(),u=(0,a.useState)(!1),d=(0,i.Z)(u,2),v=d[0],y=d[1],S=(0,a.useState)(""),w=(0,i.Z)(S,2),k=w[0],P=w[1],R=(0,a.useState)(!1),C=(0,i.Z)(R,2),N=C[0],I=C[1],F=(0,a.useState)(""),A=(0,i.Z)(F,2),D=A[0],E=A[1],_=(0,a.useState)(""),M=(0,i.Z)(_,2),B=M[0],T=M[1],z=(0,a.useState)(""),U=(0,i.Z)(z,2),W=U[0],O=U[1],L=(0,a.useState)(!0),$=(0,i.Z)(L,2),G=$[0],V=$[1],H=(0,a.useCallback)((function(e){var n=new RegExp("^$|^((.*?)/(.*?):(.+))$");if("minioImage"===e)V(n.test(k))}),[k]);(0,a.useEffect)((function(){H("minioImage")}),[k,H]);return(0,b.jsx)(h.Z,{title:"Update MinIO Version",modalOpen:n,onClose:function(){t(!1)},children:(0,b.jsxs)(m.ZP,{container:!0,children:[(0,b.jsxs)(m.ZP,{item:!0,xs:12,className:r.modalFormScrollable,children:[(0,b.jsx)("div",{className:r.infoText,children:"Please enter the MinIO image from dockerhub to use. If blank, then latest build will be used."}),(0,b.jsx)("br",{}),(0,b.jsx)("br",{}),(0,b.jsx)(m.ZP,{item:!0,xs:12,className:r.formFieldRow,children:(0,b.jsx)(f.Z,{value:k,label:"MinIO's Image",id:"minioImage",name:"minioImage",placeholder:"E.g. minio/minio:RELEASE.2022-02-26T02-54-46Z",onChange:function(e){P(e.target.value)}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,className:r.formFieldRow,children:(0,b.jsx)(g.Z,{value:"imageRegistry",id:"setImageRegistry",name:"setImageRegistry",checked:N,onChange:function(e){I(!N)},label:"Set Custom Image Registry",indicatorLabels:["Yes","No"]})}),N&&(0,b.jsxs)(a.Fragment,{children:[(0,b.jsx)(m.ZP,{item:!0,xs:12,className:r.formFieldRow,children:(0,b.jsx)(f.Z,{value:D,label:"Endpoint",id:"imageRegistry",name:"imageRegistry",placeholder:"E.g. https://index.docker.io/v1/",onChange:function(e){E(e.target.value)}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,className:r.formFieldRow,children:(0,b.jsx)(f.Z,{value:B,label:"Username",id:"imageRegistryUsername",name:"imageRegistryUsername",placeholder:"Enter image registry username",onChange:function(e){T(e.target.value)}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,className:r.formFieldRow,children:(0,b.jsx)(f.Z,{value:W,label:"Password",id:"imageRegistryPassword",name:"imageRegistryPassword",placeholder:"Enter image registry password",onChange:function(e){O(e.target.value)}})})]})]}),(0,b.jsxs)(m.ZP,{item:!0,xs:12,className:r.modalButtonBar,children:[(0,b.jsx)(p.zxk,{id:"clear",variant:"regular",onClick:function(){P(""),I(!1),E(""),T(""),O("")},label:"Clear"}),(0,b.jsx)(p.zxk,{id:"save-tenant",type:"submit",variant:"callAction",disabled:!G||N&&(""===D.trim()||""===B.trim()||""===W.trim())||v,onClick:function(){y(!0);var e={image:k};if(N){var n={image_registry:{registry:D,username:B,password:W}};e=(0,o.Z)((0,o.Z)({},e),n)}x.Z.invoke("PUT","/api/v1/namespaces/".concat(l,"/tenants/").concat(s),e).then((function(){y(!1),c((0,Z.y1)("Image updated successfully")),t(!0)})).catch((function(e){c((0,Z.zb)(e)),y(!1)}))},label:"Save"})]})]})})})),S=t(81806),w=t(36314),k=t(45248),P=t(74815),R=t(22512),C=t(45902),N=function(e){var n,t,i,o,l,s,r=e.tenant,c=e.healthStatus,u=e.loading,d=e.error,v={value:"n/a",unit:""},h={value:"n/a",unit:""},f={value:"n/a",unit:""},g={value:"n/a",unit:""},x={value:"n/a",unit:""};if(null!==(n=r.status)&&void 0!==n&&null!==(t=n.usage)&&void 0!==t&&t.raw){var Z=(0,k.ae)("".concat(r.status.usage.raw),!0).split(" ");v.value=Z[0],v.unit=Z[1]}if(null!==(i=r.status)&&void 0!==i&&null!==(o=i.usage)&&void 0!==o&&o.capacity){var j=(0,k.ae)("".concat(r.status.usage.capacity),!0).split(" ");h.value=j[0],h.unit=j[1]}if(null!==(l=r.status)&&void 0!==l&&null!==(s=l.usage)&&void 0!==s&&s.capacity_usage){var y=(0,k.l5)(r.status.usage.capacity_usage,!0).split(" ");f.value=y[0],f.unit=y[1]}var S=[];if(r.tiers&&0!==r.tiers.length){S=r.tiers.map((function(e){return{value:e.size,variant:e.name}}));var N=r.tiers.filter((function(e){return"internal"===e.type})).reduce((function(e,n){return e+n.size}),0),I=r.tiers.filter((function(e){return"internal"!==e.type})).reduce((function(e,n){return e+n.size}),0),F=(0,k.l5)(I,!0).split(" ");x.value=F[0],x.unit=F[1];var A=(0,k.l5)(N,!0).split(" ");g.value=A[0],g.unit=A[1]}else{var D,E;S=[{value:(null===(D=r.status)||void 0===D||null===(E=D.usage)||void 0===E?void 0:E.capacity_usage)||0,variant:"STANDARD"}]}return(0,b.jsxs)(a.Fragment,{children:[u&&(0,b.jsx)("div",{style:{padding:5},children:(0,b.jsx)(m.ZP,{item:!0,xs:12,style:{textAlign:"center"},children:(0,b.jsx)(p.aNw,{style:{width:40,height:40}})})}),function(){var e,n;return u?null:""!==d?(0,b.jsx)(R.Z,{errorMessage:d,withBreak:!1}):(0,b.jsxs)(m.ZP,{item:!0,xs:12,children:[(0,b.jsx)(P.Z,{totalCapacity:(null===(e=r.status)||void 0===e||null===(n=e.usage)||void 0===n?void 0:n.raw)||0,usedSpaceVariants:S,statusClass:"",render:"bar"}),(0,b.jsxs)(w.Z,{direction:{xs:"column",sm:"row"},spacing:{xs:1,sm:2,md:4},alignItems:"stretch",margin:"0 0 15px 0",children:[(!r.tiers||0===r.tiers.length)&&(0,b.jsx)(a.Fragment,{children:(0,b.jsx)(C.Z,{label:"Internal:",orientation:"row",value:"".concat(f.value," ").concat(f.unit)})}),r.tiers&&r.tiers.length>0&&(0,b.jsxs)(a.Fragment,{children:[(0,b.jsx)(C.Z,{label:"Internal:",orientation:"row",value:"".concat(g.value," ").concat(g.unit)}),(0,b.jsx)(C.Z,{label:"Tiered:",orientation:"row",value:"".concat(x.value," ").concat(x.unit)})]}),c&&(0,b.jsx)(C.Z,{orientation:"row",label:"Health:",value:(0,b.jsx)("span",{className:c,children:(0,b.jsx)(p.J$M,{})})})]})]})}()]})},I=t(50896),F=t(93433),A=t(13400),D=t(42419),E=(0,u.Z)((function(e){return(0,c.Z)((0,o.Z)((0,o.Z)({domainInline:{display:"flex",marginBottom:15},overlayAction:{marginLeft:10,display:"flex",alignItems:"center","& svg":{width:15,height:15},"& button":{background:"#EAEAEA"}}},d.DF),d.ID))}))((function(e){var n=e.open,t=e.closeModalAndRefresh,o=e.namespace,l=e.idTenant,s=e.domains,r=e.classes,c=(0,j.TL)(),u=(0,a.useState)(!1),d=(0,i.Z)(u,2),v=d[0],g=d[1],y=(0,a.useState)(""),S=(0,i.Z)(y,2),w=S[0],k=S[1],P=(0,a.useState)([""]),R=(0,i.Z)(P,2),C=R[0],N=R[1],I=(0,a.useState)(!0),E=(0,i.Z)(I,2),_=E[0],M=E[1],B=(0,a.useState)([!0]),T=(0,i.Z)(B,2),z=T[0],U=T[1];(0,a.useEffect)((function(){if(s){var e=s.console||"";if(k(e),""!==e){var n=new RegExp(/^(https?):\/\/([a-zA-Z0-9\-.]+)(:[0-9]+)?(\/[a-zA-Z0-9\-./]*)?$/);M(n.test(e))}else M(!0);if(s.minio&&s.minio.length>0){N(s.minio);var t=new RegExp(/^(https?):\/\/([a-zA-Z0-9\-.]+)(:[0-9]+)?$/),i=s.minio.map((function(e){return""===e.trim()||t.test(e)}));U(i)}}}),[s]);var W=function(){var e=(0,F.Z)(C),n=(0,F.Z)(z);e.push(""),n.push(!0),N(e),U(n)};return(0,b.jsx)(h.Z,{title:"Edit Tenant Domains - ".concat(l),modalOpen:n,onClose:function(){t(!1)},children:(0,b.jsx)(m.ZP,{container:!0,children:(0,b.jsxs)(m.ZP,{item:!0,xs:12,className:r.modalFormScrollable,children:[(0,b.jsxs)(m.ZP,{item:!0,xs:12,className:"".concat(r.configSectionItem),children:[(0,b.jsx)("div",{className:r.containerItem,children:(0,b.jsx)(f.Z,{id:"console_domain",name:"console_domain",onChange:function(e){k(e.target.value),M(e.target.validity.valid)},label:"Console Domain",value:w,placeholder:"Eg. http://subdomain.domain:port/subpath1/subpath2",pattern:"^(https?):\\/\\/([a-zA-Z0-9\\-.]+)(:[0-9]+)?(\\/[a-zA-Z0-9\\-.\\/]*)?$",error:_?"":"Domain format is incorrect (http|https://subdomain.domain:port/subpath1/subpath2)"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h4",{children:"MinIO Domains"}),(0,b.jsx)("div",{children:C.map((function(e,n){return(0,b.jsxs)("div",{className:"".concat(r.domainInline),children:[(0,b.jsx)(f.Z,{id:"minio-domain-".concat(n.toString()),name:"minio-domain-".concat(n.toString()),onChange:function(e){!function(e,n){var t=(0,F.Z)(C);t[n]=e,N(t)}(e.target.value,n),function(e,n){var t=(0,F.Z)(z);t[n]=e,U(t)}(e.target.validity.valid,n)},label:"MinIO Domain ".concat(n+1),value:e,placeholder:"Eg. http://subdomain.domain",pattern:"^(https?):\\/\\/([a-zA-Z0-9\\-.]+)(:[0-9]+)?$",error:z[n]?"":"MinIO domain format is incorrect (http|https://subdomain.domain)"}),(0,b.jsx)("div",{className:r.overlayAction,children:(0,b.jsx)(A.Z,{size:"small",onClick:W,disabled:n!==C.length-1,children:(0,b.jsx)(D.Z,{})})}),(0,b.jsx)("div",{className:r.overlayAction,children:(0,b.jsx)(A.Z,{size:"small",onClick:function(){return function(e){var n=C.filter((function(n,t){return t!==e})),t=z.filter((function(n,t){return t!==e}));N(n),U(t)}(n)},disabled:C.length<=1,children:(0,b.jsx)(p.HFL,{})})})]},"minio-domain-key-".concat(n.toString()))}))})]})]}),(0,b.jsxs)(m.ZP,{item:!0,xs:12,className:r.modalButtonBar,children:[(0,b.jsx)(p.zxk,{id:"clear-edit-domain",type:"button",variant:"regular",onClick:function(){k(""),M(!0),N([""]),U([!0])},label:"Clear"}),(0,b.jsx)(p.zxk,{id:"save-domain",type:"submit",variant:"callAction",disabled:v||!_||z.filter((function(e){return!e})).length>0,onClick:function(){g(!0);var e={domains:{console:w,minio:C.filter((function(e){return""!==e.trim()}))}};x.Z.invoke("PUT","/api/v1/namespaces/".concat(o,"/tenants/").concat(l,"/domains"),e).then((function(){g(!1),c((0,Z.y1)("Domains updated successfully")),t(!0)})).catch((function(e){g(!1),c((0,Z.zb)(e))}))},label:"Save"})]})]})})})})),_=t(57689),M=t(82295),B=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"red",n=arguments.length>1?arguments[1]:void 0;return"red"===e?n.redState:"yellow"===e?n.yellowState:"green"===e?n.greenState:n.greyState},T=function(e){var n,t=e.tenant,i=e.classes;return t?(0,b.jsx)(N,{tenant:t,label:"Storage",error:"",loading:!1,healthStatus:B(null===t||void 0===t||null===(n=t.status)||void 0===n?void 0:n.health_status,i)}):null},z=function(e){return e?(0,b.jsx)(p.Yp9,{}):(0,b.jsx)(p.cmQ,{style:{color:"grey"}})},U={display:"flex",justifyContent:"space-between",marginTop:"10px","@media (max-width: 600px)":{flexFlow:"column"}},W={stkProps:{sx:{flex:1,marginRight:10,display:"flex",alignItems:"center",justifyContent:"space-between","@media (max-width: 900px)":{marginRight:"25px"}}},lblProps:{style:{minWidth:100}}},O=(0,u.Z)((function(e){return(0,c.Z)((0,o.Z)((0,o.Z)({},d.oZ),{},{redState:{color:e.palette.error.main,"& .min-icon":{width:16,height:16,marginRight:4}},yellowState:{color:e.palette.warning.main,"& .min-icon":{width:16,height:16,marginRight:4}},greenState:{color:e.palette.success.main,"& .min-icon":{width:16,height:16,marginRight:4}},greyState:{color:"grey","& .min-icon":{width:16,height:16,marginRight:4}},linkedSection:{color:e.palette.info.main,fontFamily:"'Inter', sans-serif"},autoGeneratedLink:{fontStyle:"italic"}},d.Bz))}))((function(e){var n,t,s,c,u,d,h,f,g,x,Z,w,k,P,R,N,F,A,D,B,O,L,$,G,V=e.classes,H=(0,j.TL)(),K=(0,_.UO)(),Q=K.tenantName,Y=K.tenantNamespace,q=(0,l.v9)((function(e){return e.tenants.tenantInfo})),J=(0,l.v9)((function(e){return r()(e.tenants.tenantInfo,"encryptionEnabled",!1)})),X=(0,l.v9)((function(e){return r()(e.tenants.tenantInfo,"minioTLS",!1)})),ee=(0,l.v9)((function(e){return r()(e.tenants.tenantInfo,"idpAdEnabled",!1)})),ne=(0,l.v9)((function(e){return r()(e.tenants.tenantInfo,"idpOidcEnabled",!1)})),te=(0,a.useState)(0),ie=(0,i.Z)(te,2),oe=ie[0],ae=ie[1],le=(0,a.useState)(0),se=(0,i.Z)(le,2),re=se[0],ce=se[1],ue=(0,a.useState)(0),de=(0,i.Z)(ue,2),me=de[0],ve=de[1],pe=(0,a.useState)(!1),he=(0,i.Z)(pe,2),fe=he[0],ge=he[1],xe=(0,a.useState)(!1),Ze=(0,i.Z)(xe,2),je=Ze[0],be=Ze[1];(0,a.useEffect)((function(){var e,n,t;q&&(ae((null===q||void 0===q||null===(e=q.pools)||void 0===e?void 0:e.length)||0),ve((null===(n=q.pools)||void 0===n?void 0:n.reduce((function(e,n){return e+n.volumes_per_server*n.servers}),0))||0),ce((null===(t=q.pools)||void 0===t?void 0:t.reduce((function(e,n){return e+n.servers}),0))||0))}),[q]);return(0,b.jsxs)(a.Fragment,{children:[fe&&(0,b.jsx)(y,{open:fe,closeModalAndRefresh:function(e){ge(!1),e&&H((0,M.v)())},idTenant:Q||"",namespace:Y||""}),je&&(0,b.jsx)(E,{open:je,idTenant:Q||"",namespace:Y||"",domains:(null===q||void 0===q?void 0:q.domains)||null,closeModalAndRefresh:function(e){be(!1),e&&H((0,M.v)())}}),(0,b.jsx)(I.Z,{separator:!1,children:"Details"}),(0,b.jsx)(T,{tenant:q,classes:V}),(0,b.jsxs)(m.ZP,{container:!0,children:[(0,b.jsxs)(m.ZP,{item:!0,xs:12,sm:12,md:8,children:[(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(C.Z,{label:"State:",value:null===q||void 0===q?void 0:q.currentState})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(C.Z,{label:"MinIO:",value:(0,b.jsx)(S.Z,{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"normal",wordBreak:"break-all"},onClick:function(){ge(!0)},children:q?q.image:""})})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsxs)("h3",{children:["Domains",(0,b.jsx)(p.zxk,{id:"edit-domains",icon:(0,b.jsx)(p.dY8,{}),onClick:function(){be(!0)}})]})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(C.Z,{label:"Console:",value:(0,b.jsxs)(a.Fragment,{children:[null!==q&&void 0!==q&&null!==(n=q.domains)&&void 0!==n&&n.console&&""!==(null===q||void 0===q||null===(t=q.domains)||void 0===t?void 0:t.console)||null!==q&&void 0!==q&&null!==(s=q.endpoints)&&void 0!==s&&s.console?"":"-",(null===q||void 0===q||null===(c=q.endpoints)||void 0===c?void 0:c.console)&&(0,b.jsxs)(a.Fragment,{children:[(0,b.jsx)("a",{href:null===q||void 0===q||null===(u=q.endpoints)||void 0===u?void 0:u.console,target:"_blank",rel:"noopener",className:"".concat(V.linkedSection," ").concat(V.autoGeneratedLink),children:(null===q||void 0===q||null===(d=q.endpoints)||void 0===d?void 0:d.console)||"-"}),(0,b.jsx)("br",{})]}),(null===q||void 0===q||null===(h=q.domains)||void 0===h?void 0:h.console)&&""!==(null===q||void 0===q||null===(f=q.domains)||void 0===f?void 0:f.console)&&(0,b.jsx)("a",{href:(null===q||void 0===q||null===(g=q.domains)||void 0===g?void 0:g.console)||"",target:"_blank",rel:"noopener",className:V.linkedSection,children:(null===q||void 0===q||null===(x=q.domains)||void 0===x?void 0:x.console)||""})]})})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(C.Z,{label:"MinIO Endpoint".concat(null!==q&&void 0!==q&&null!==(Z=q.endpoints)&&void 0!==Z&&Z.minio&&1===(null===q||void 0===q||null===(w=q.endpoints)||void 0===w?void 0:w.minio.length)?"":"s",":"),value:(0,b.jsxs)(a.Fragment,{children:[null!==q&&void 0!==q&&null!==(k=q.domains)&&void 0!==k&&k.minio||null!==q&&void 0!==q&&null!==(P=q.endpoints)&&void 0!==P&&P.minio?"":"-",(null===q||void 0===q||null===(R=q.endpoints)||void 0===R?void 0:R.minio)&&(0,b.jsxs)(a.Fragment,{children:[(0,b.jsx)("a",{href:null===q||void 0===q||null===(N=q.endpoints)||void 0===N?void 0:N.minio,target:"_blank",rel:"noopener",className:"".concat(V.linkedSection," ").concat(V.autoGeneratedLink),children:(null===q||void 0===q||null===(F=q.endpoints)||void 0===F?void 0:F.minio)||"-"}),(0,b.jsx)("br",{})]}),(null===q||void 0===q||null===(A=q.domains)||void 0===A?void 0:A.minio)&&q.domains.minio.map((function(e){return(0,b.jsxs)(a.Fragment,{children:[(0,b.jsx)("a",{href:e,target:"_blank",rel:"noopener",className:V.linkedSection,children:e}),(0,b.jsx)("br",{})]},e)}))]})})})]}),(0,b.jsxs)(m.ZP,{item:!0,xs:12,sm:12,md:4,children:[(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(C.Z,{label:"Instances:",value:re})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(C.Z,{label:"Clusters:",value:oe,stkProps:{style:{marginRight:47}}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(C.Z,{label:"Total Drives:",value:me,stkProps:{style:{marginRight:43}}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(C.Z,{label:"Write Quorum:",value:null!==q&&void 0!==q&&null!==(D=q.status)&&void 0!==D&&D.write_quorum?null===q||void 0===q||null===(B=q.status)||void 0===B?void 0:B.write_quorum:0})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(C.Z,{label:"Drives Online:",value:null!==q&&void 0!==q&&null!==(O=q.status)&&void 0!==O&&O.drives_online?null===q||void 0===q||null===(L=q.status)||void 0===L?void 0:L.drives_online:0,stkProps:{style:{marginRight:8}}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(C.Z,{label:"Drives Offline:",value:null!==q&&void 0!==q&&null!==($=q.status)&&void 0!==$&&$.drives_offline?null===q||void 0===q||null===(G=q.status)||void 0===G?void 0:G.drives_offline:0,stkProps:{style:{marginRight:7}}})})]})]}),(0,b.jsx)(I.Z,{children:"Features"}),(0,b.jsxs)(v.Z,{sx:(0,o.Z)({},U),children:[(0,b.jsx)(C.Z,(0,o.Z)({orientation:"row",label:"MinIO TLS:",value:z(X,"tenant-tls")},W)),(0,b.jsx)(C.Z,(0,o.Z)({orientation:"row",label:"AD/LDAP:",value:z(ee,"tenant-sts")},W)),(0,b.jsx)(C.Z,(0,o.Z)({orientation:"row",label:"Encryption:",value:z(J,"tenant-enc")},W))]}),(0,b.jsx)(v.Z,{sx:(0,o.Z)({},U),children:(0,b.jsx)(C.Z,(0,o.Z)({orientation:"row",label:"OpenID:",value:z(ne,"tenant-oidc")},W))})]})}))},22512:function(e,n,t){var i=t(72791),o=t(20890),a=t(11135),l=t(25787),s=t(80184);n.Z=(0,l.Z)((function(e){var n;return(0,a.Z)({errorBlock:{color:(null===(n=e.palette)||void 0===n?void 0:n.error.main)||"#C83B51"}})}))((function(e){var n=e.classes,t=e.errorMessage,a=e.withBreak,l=void 0===a||a;return(0,s.jsxs)(i.Fragment,{children:[l&&(0,s.jsx)("br",{}),(0,s.jsx)(o.Z,{component:"p",variant:"body1",className:n.errorBlock,children:t})]})}))},42419:function(e,n,t){var i=t(64836);n.Z=void 0;var o=i(t(45649)),a=t(80184),l=(0,o.default)((0,a.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");n.Z=l},36314:function(e,n,t){t.d(n,{Z:function(){return R}});var i=t(4942),o=t(63366),a=t(87462),l=t(72791),s=t(28182),r=t(82466),c=t(94419),u=t(21217),d=t(93457),m=t(86083),v=t(78519),p=t(85080),h=t(51184),f=t(45682),g=t(80184),x=["component","direction","spacing","divider","children","className","useFlexGap"],Z=(0,p.Z)(),j=(0,d.Z)("div",{name:"MuiStack",slot:"Root",overridesResolver:function(e,n){return n.root}});function b(e){return(0,m.Z)({props:e,name:"MuiStack",defaultTheme:Z})}function y(e,n){var t=l.Children.toArray(e).filter(Boolean);return t.reduce((function(e,i,o){return e.push(i),o0?c[t[n-1]]:"column";c[e]=i}}));o=(0,r.Z)(o,(0,h.k9)({theme:t},u,(function(e,t){return n.useFlexGap?{gap:(0,f.NA)(l,e)}:{"& > :not(style) + :not(style)":(0,i.Z)({margin:0},"margin".concat((o=t?c[t]:n.direction,{row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"}[o])),(0,f.NA)(l,e))};var o})))}return o=(0,h.dt)(t.breakpoints,o)};var w=t(66934),k=t(31402),P=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.createStyledComponent,t=void 0===n?j:n,i=e.useThemeProps,r=void 0===i?b:i,d=e.componentName,m=void 0===d?"MuiStack":d,p=t(S),h=l.forwardRef((function(e,n){var t=r(e),i=(0,v.Z)(t),l=i.component,d=void 0===l?"div":l,h=i.direction,f=void 0===h?"column":h,Z=i.spacing,j=void 0===Z?0:Z,b=i.divider,S=i.children,w=i.className,k=i.useFlexGap,P=void 0!==k&&k,R=(0,o.Z)(i,x),C={direction:f,spacing:j,useFlexGap:P},N=(0,c.Z)({root:["root"]},(function(e){return(0,u.Z)(m,e)}),{});return(0,g.jsx)(p,(0,a.Z)({as:d,ownerState:C,ref:n,className:(0,s.Z)(N.root,w)},R,{children:b?y(S,b):S}))}));return h}({createStyledComponent:(0,w.ZP)("div",{name:"MuiStack",slot:"Root",overridesResolver:function(e,n){return n.root}}),useThemeProps:function(e){return(0,k.Z)({props:e,name:"MuiStack"})}}),R=P},93457:function(e,n,t){var i=(0,t(44046).ZP)();n.Z=i},23688:function(e,n,t){function i(){var e=this.constructor.getDerivedStateFromProps(this.props,this.state);null!==e&&void 0!==e&&this.setState(e)}function o(e){this.setState(function(n){var t=this.constructor.getDerivedStateFromProps(e,n);return null!==t&&void 0!==t?t:null}.bind(this))}function a(e,n){try{var t=this.props,i=this.state;this.props=e,this.state=n,this.__reactInternalSnapshotFlag=!0,this.__reactInternalSnapshot=this.getSnapshotBeforeUpdate(t,i)}finally{this.props=t,this.state=i}}function l(e){var n=e.prototype;if(!n||!n.isReactComponent)throw new Error("Can only polyfill class components");if("function"!==typeof e.getDerivedStateFromProps&&"function"!==typeof n.getSnapshotBeforeUpdate)return e;var t=null,l=null,s=null;if("function"===typeof n.componentWillMount?t="componentWillMount":"function"===typeof n.UNSAFE_componentWillMount&&(t="UNSAFE_componentWillMount"),"function"===typeof n.componentWillReceiveProps?l="componentWillReceiveProps":"function"===typeof n.UNSAFE_componentWillReceiveProps&&(l="UNSAFE_componentWillReceiveProps"),"function"===typeof n.componentWillUpdate?s="componentWillUpdate":"function"===typeof n.UNSAFE_componentWillUpdate&&(s="UNSAFE_componentWillUpdate"),null!==t||null!==l||null!==s){var r=e.displayName||e.name,c="function"===typeof e.getDerivedStateFromProps?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";throw Error("Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n"+r+" uses "+c+" but also contains the following legacy lifecycles:"+(null!==t?"\n "+t:"")+(null!==l?"\n "+l:"")+(null!==s?"\n "+s:"")+"\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://fb.me/react-async-component-lifecycle-hooks")}if("function"===typeof e.getDerivedStateFromProps&&(n.componentWillMount=i,n.componentWillReceiveProps=o),"function"===typeof n.getSnapshotBeforeUpdate){if("function"!==typeof n.componentDidUpdate)throw new Error("Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype");n.componentWillUpdate=a;var u=n.componentDidUpdate;n.componentDidUpdate=function(e,n,t){var i=this.__reactInternalSnapshotFlag?this.__reactInternalSnapshot:t;u.call(this,e,n,i)}}return e}t.r(n),t.d(n,{polyfill:function(){return l}}),i.__suppressDeprecationWarning=!0,o.__suppressDeprecationWarning=!0,a.__suppressDeprecationWarning=!0}}]); -//# sourceMappingURL=30.d72ddac2.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[30],{81806:function(e,n,t){var i=t(1413),o=t(45987),a=(t(72791),t(11135)),l=t(25787),s=t(80184),r=["classes","children"];n.Z=(0,l.Z)((function(e){return(0,a.Z)({root:{padding:0,margin:0,border:0,backgroundColor:"transparent",textDecoration:"underline",cursor:"pointer",fontSize:"inherit",color:e.palette.info.main,fontFamily:"Inter, sans-serif"}})}))((function(e){var n=e.classes,t=e.children,a=(0,o.Z)(e,r);return(0,s.jsx)("button",(0,i.Z)((0,i.Z)({},a),{},{className:n.root,children:t}))}))},56028:function(e,n,t){var i=t(29439),o=t(1413),a=t(72791),l=t(78687),s=t(13400),r=t(48888),c=t(5289),u=t(65661),d=t(39157),m=t(11135),v=t(25787),p=t(23814),h=t(41320),f=t(29823),g=t(86352),x=t(87995),Z=t(80184);n.Z=(0,v.Z)((function(e){return(0,m.Z)((0,o.Z)((0,o.Z)({},p.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},p.sN))}))((function(e){var n=e.onClose,t=e.modalOpen,m=e.title,v=e.children,p=e.classes,j=e.wideLimit,b=void 0===j||j,y=e.noContentPadding,S=e.titleIcon,w=void 0===S?null:S,k=(0,h.TL)(),P=(0,a.useState)(!1),R=(0,i.Z)(P,2),C=R[0],N=R[1],I=(0,l.v9)((function(e){return e.system.modalSnackBar}));(0,a.useEffect)((function(){k((0,x.MK)(""))}),[k]),(0,a.useEffect)((function(){if(I){if(""===I.message)return void N(!1);"error"!==I.type&&N(!0)}}),[I]);var F=b?{classes:{paper:p.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},A="";return I&&(A=I.detailedErrorMsg,(""===I.detailedErrorMsg||I.detailedErrorMsg.length<5)&&(A=I.message)),(0,Z.jsxs)(c.Z,(0,o.Z)((0,o.Z)({open:t,classes:p},F),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:p.root,children:[(0,Z.jsxs)(u.Z,{className:p.title,children:[(0,Z.jsxs)("div",{className:p.titleText,children:[w," ",m]}),(0,Z.jsx)("div",{className:p.closeContainer,children:(0,Z.jsx)(s.Z,{"aria-label":"close",id:"close",className:p.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,Z.jsx)(f.Z,{})})})]}),(0,Z.jsx)(g.Z,{isModal:!0}),(0,Z.jsx)(r.Z,{open:C,className:p.snackBarModal,onClose:function(){N(!1),k((0,x.MK)(""))},message:A,ContentProps:{className:"".concat(p.snackBar," ").concat(I&&"error"===I.type?p.errorSnackBar:"")},autoHideDuration:I&&"error"===I.type?1e4:5e3}),(0,Z.jsx)(d.Z,{className:y?"":p.content,children:v})]}))}))},45902:function(e,n,t){var i=t(1413),o=(t(72791),t(36314)),a=t(80184);n.Z=function(e){var n=e.label,t=void 0===n?null:n,l=e.value,s=void 0===l?"-":l,r=e.orientation,c=void 0===r?"column":r,u=e.stkProps,d=void 0===u?{}:u,m=e.lblProps,v=void 0===m?{}:m,p=e.valProps,h=void 0===p?{}:p;return(0,a.jsxs)(o.Z,(0,i.Z)((0,i.Z)({direction:{xs:"column",sm:c}},d),{},{children:[(0,a.jsx)("label",(0,i.Z)((0,i.Z)({style:{marginRight:5,fontWeight:600}},v),{},{children:t})),(0,a.jsx)("label",(0,i.Z)((0,i.Z)({style:{marginRight:5,fontWeight:500}},h),{},{children:s}))]}))}},74815:function(e,n,t){t.d(n,{Z:function(){return d}});var i=t(93433),o=(t(72791),t(2600)),a=t(65390),l=t(41048),s=t(45248),r=t(75952),c=t(80184),u=function(e){var n=e.totalValue,t=e.sizeItems,i=e.bgColor,o=void 0===i?"#ededed":i;return(0,c.jsx)("div",{style:{width:"100%",height:12,backgroundColor:o,borderRadius:30,display:"flex",transitionDuration:"0.3s",overflow:"hidden"},children:t.map((function(e,t){var i=100*e.value/n;return(0,c.jsx)("div",{style:{width:"".concat(i,"%"),height:"100%",backgroundColor:e.color,transitionDuration:"0.3s"}},"itemSize-".concat(t.toString()))}))})},d=function(e){var n=e.totalCapacity,t=e.usedSpaceVariants,d=e.statusClass,m=e.render,v=void 0===m?"pie":m,p=["#8dacd3","#bca1ea","#92e8d2","#efc9ac","#97f274","#f7d291","#71ACCB","#f28282","#e28cc1","#2781B0"],h="#ededed",f=t.reduce((function(e,n){return e+n.value}),0),g=n-f,x=[],Z=t.find((function(e){return"STANDARD"===e.variant}))||{value:0,variant:"empty"};t.length>10?x=[{value:f-Z.value,color:"#2781B0",label:"Total Tiers Space"}]:x=t.filter((function(e){return"STANDARD"!==e.variant})).map((function(e,n){return{value:e.value,color:p[n],label:"Tier - ".concat(e.variant)}}));var j="#07193E",b=100*Z.value/n;b>=90?j="#C83B51":b>=75&&(j="#FFAB0F");var y=[{value:Z.value,color:j,label:"Used Space by Tenant"}].concat((0,i.Z)(x),[{value:g,color:"bar"===v?h:"transparent",label:"Empty Space"}]);if("bar"===v){var S=y.map((function(e){return{value:e.value,color:e.color,itemName:e.label}}));return(0,c.jsx)("div",{style:{width:"100%",marginBottom:15},children:(0,c.jsx)(u,{totalValue:n,sizeItems:S,bgColor:h})})}return(0,c.jsxs)("div",{style:{position:"relative",width:110,height:110},children:[(0,c.jsx)("div",{style:{position:"absolute",right:-5,top:15,zIndex:400},className:d,children:(0,c.jsx)(r.J$M,{style:{border:"#fff 2px solid",borderRadius:"100%",width:20,height:20}})}),(0,c.jsx)("span",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",fontWeight:"bold",color:"#000",fontSize:11},children:isNaN(f)?"N/A":(0,s.l5)(f)}),(0,c.jsx)("div",{children:(0,c.jsxs)(o.u,{width:110,height:110,children:[(0,c.jsx)(a.b,{data:[{value:100}],cx:"50%",cy:"50%",dataKey:"value",outerRadius:50,innerRadius:40,fill:h,isAnimationActive:!1,stroke:"none"}),(0,c.jsx)(a.b,{data:y,cx:"50%",cy:"50%",dataKey:"value",outerRadius:50,innerRadius:40,children:y.map((function(e,n){return(0,c.jsx)(l.b,{fill:e.color,stroke:"none"},"cellCapacity-".concat(n))}))})]})})]})}},21353:function(e,n,t){t.r(n),t.d(n,{default:function(){return O}});var i=t(29439),o=t(1413),a=t(72791),l=t(78687),s=t(26181),r=t.n(s),c=t(11135),u=t(25787),d=t(23814),m=t(61889),v=t(64554),p=t(75952),h=t(56028),f=t(21435),g=t(37516),x=t(81207),Z=t(87995),j=t(41320),b=t(80184),y=(0,u.Z)((function(e){return(0,c.Z)((0,o.Z)((0,o.Z)({infoText:{fontSize:14}},d.DF),d.ID))}))((function(e){var n=e.open,t=e.closeModalAndRefresh,l=e.namespace,s=e.idTenant,r=e.classes,c=(0,j.TL)(),u=(0,a.useState)(!1),d=(0,i.Z)(u,2),v=d[0],y=d[1],S=(0,a.useState)(""),w=(0,i.Z)(S,2),k=w[0],P=w[1],R=(0,a.useState)(!1),C=(0,i.Z)(R,2),N=C[0],I=C[1],F=(0,a.useState)(""),A=(0,i.Z)(F,2),D=A[0],E=A[1],_=(0,a.useState)(""),M=(0,i.Z)(_,2),B=M[0],T=M[1],z=(0,a.useState)(""),U=(0,i.Z)(z,2),W=U[0],O=U[1],L=(0,a.useState)(!0),$=(0,i.Z)(L,2),G=$[0],V=$[1],H=(0,a.useCallback)((function(e){var n=new RegExp("^$|^((.*?)/(.*?):(.+))$");if("minioImage"===e)V(n.test(k))}),[k]);(0,a.useEffect)((function(){H("minioImage")}),[k,H]);return(0,b.jsx)(h.Z,{title:"Update MinIO Version",modalOpen:n,onClose:function(){t(!1)},children:(0,b.jsxs)(m.ZP,{container:!0,children:[(0,b.jsxs)(m.ZP,{item:!0,xs:12,className:r.modalFormScrollable,children:[(0,b.jsx)("div",{className:r.infoText,children:"Please enter the MinIO image from dockerhub to use. If blank, then latest build will be used."}),(0,b.jsx)("br",{}),(0,b.jsx)("br",{}),(0,b.jsx)(m.ZP,{item:!0,xs:12,className:r.formFieldRow,children:(0,b.jsx)(f.Z,{value:k,label:"MinIO's Image",id:"minioImage",name:"minioImage",placeholder:"E.g. minio/minio:RELEASE.2022-02-26T02-54-46Z",onChange:function(e){P(e.target.value)}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,className:r.formFieldRow,children:(0,b.jsx)(g.Z,{value:"imageRegistry",id:"setImageRegistry",name:"setImageRegistry",checked:N,onChange:function(e){I(!N)},label:"Set Custom Image Registry",indicatorLabels:["Yes","No"]})}),N&&(0,b.jsxs)(a.Fragment,{children:[(0,b.jsx)(m.ZP,{item:!0,xs:12,className:r.formFieldRow,children:(0,b.jsx)(f.Z,{value:D,label:"Endpoint",id:"imageRegistry",name:"imageRegistry",placeholder:"E.g. https://index.docker.io/v1/",onChange:function(e){E(e.target.value)}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,className:r.formFieldRow,children:(0,b.jsx)(f.Z,{value:B,label:"Username",id:"imageRegistryUsername",name:"imageRegistryUsername",placeholder:"Enter image registry username",onChange:function(e){T(e.target.value)}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,className:r.formFieldRow,children:(0,b.jsx)(f.Z,{value:W,label:"Password",id:"imageRegistryPassword",name:"imageRegistryPassword",placeholder:"Enter image registry password",onChange:function(e){O(e.target.value)}})})]})]}),(0,b.jsxs)(m.ZP,{item:!0,xs:12,className:r.modalButtonBar,children:[(0,b.jsx)(p.zxk,{id:"clear",variant:"regular",onClick:function(){P(""),I(!1),E(""),T(""),O("")},label:"Clear"}),(0,b.jsx)(p.zxk,{id:"save-tenant",type:"submit",variant:"callAction",disabled:!G||N&&(""===D.trim()||""===B.trim()||""===W.trim())||v,onClick:function(){y(!0);var e={image:k};if(N){var n={image_registry:{registry:D,username:B,password:W}};e=(0,o.Z)((0,o.Z)({},e),n)}x.Z.invoke("PUT","/api/v1/namespaces/".concat(l,"/tenants/").concat(s),e).then((function(){y(!1),c((0,Z.y1)("Image updated successfully")),t(!0)})).catch((function(e){c((0,Z.zb)(e)),y(!1)}))},label:"Save"})]})]})})})),S=t(81806),w=t(36314),k=t(45248),P=t(74815),R=t(22512),C=t(45902),N=function(e){var n,t,i,o,l,s,r=e.tenant,c=e.healthStatus,u=e.loading,d=e.error,v={value:"n/a",unit:""},h={value:"n/a",unit:""},f={value:"n/a",unit:""},g={value:"n/a",unit:""},x={value:"n/a",unit:""};if(null!==(n=r.status)&&void 0!==n&&null!==(t=n.usage)&&void 0!==t&&t.raw){var Z=(0,k.ae)("".concat(r.status.usage.raw),!0).split(" ");v.value=Z[0],v.unit=Z[1]}if(null!==(i=r.status)&&void 0!==i&&null!==(o=i.usage)&&void 0!==o&&o.capacity){var j=(0,k.ae)("".concat(r.status.usage.capacity),!0).split(" ");h.value=j[0],h.unit=j[1]}if(null!==(l=r.status)&&void 0!==l&&null!==(s=l.usage)&&void 0!==s&&s.capacity_usage){var y=(0,k.l5)(r.status.usage.capacity_usage,!0).split(" ");f.value=y[0],f.unit=y[1]}var S=[];if(r.tiers&&0!==r.tiers.length){S=r.tiers.map((function(e){return{value:e.size,variant:e.name}}));var N=r.tiers.filter((function(e){return"internal"===e.type})).reduce((function(e,n){return e+n.size}),0),I=r.tiers.filter((function(e){return"internal"!==e.type})).reduce((function(e,n){return e+n.size}),0),F=(0,k.l5)(I,!0).split(" ");x.value=F[0],x.unit=F[1];var A=(0,k.l5)(N,!0).split(" ");g.value=A[0],g.unit=A[1]}else{var D,E;S=[{value:(null===(D=r.status)||void 0===D||null===(E=D.usage)||void 0===E?void 0:E.capacity_usage)||0,variant:"STANDARD"}]}return(0,b.jsxs)(a.Fragment,{children:[u&&(0,b.jsx)("div",{style:{padding:5},children:(0,b.jsx)(m.ZP,{item:!0,xs:12,style:{textAlign:"center"},children:(0,b.jsx)(p.aNw,{style:{width:40,height:40}})})}),function(){var e,n;return u?null:""!==d?(0,b.jsx)(R.Z,{errorMessage:d,withBreak:!1}):(0,b.jsxs)(m.ZP,{item:!0,xs:12,children:[(0,b.jsx)(P.Z,{totalCapacity:(null===(e=r.status)||void 0===e||null===(n=e.usage)||void 0===n?void 0:n.raw)||0,usedSpaceVariants:S,statusClass:"",render:"bar"}),(0,b.jsxs)(w.Z,{direction:{xs:"column",sm:"row"},spacing:{xs:1,sm:2,md:4},alignItems:"stretch",margin:"0 0 15px 0",children:[(!r.tiers||0===r.tiers.length)&&(0,b.jsx)(a.Fragment,{children:(0,b.jsx)(C.Z,{label:"Internal:",orientation:"row",value:"".concat(f.value," ").concat(f.unit)})}),r.tiers&&r.tiers.length>0&&(0,b.jsxs)(a.Fragment,{children:[(0,b.jsx)(C.Z,{label:"Internal:",orientation:"row",value:"".concat(g.value," ").concat(g.unit)}),(0,b.jsx)(C.Z,{label:"Tiered:",orientation:"row",value:"".concat(x.value," ").concat(x.unit)})]}),c&&(0,b.jsx)(C.Z,{orientation:"row",label:"Health:",value:(0,b.jsx)("span",{className:c,children:(0,b.jsx)(p.J$M,{})})})]})]})}()]})},I=t(50896),F=t(93433),A=t(13400),D=t(42419),E=(0,u.Z)((function(e){return(0,c.Z)((0,o.Z)((0,o.Z)({domainInline:{display:"flex",marginBottom:15},overlayAction:{marginLeft:10,display:"flex",alignItems:"center","& svg":{width:15,height:15},"& button":{background:"#EAEAEA"}}},d.DF),d.ID))}))((function(e){var n=e.open,t=e.closeModalAndRefresh,o=e.namespace,l=e.idTenant,s=e.domains,r=e.classes,c=(0,j.TL)(),u=(0,a.useState)(!1),d=(0,i.Z)(u,2),v=d[0],g=d[1],y=(0,a.useState)(""),S=(0,i.Z)(y,2),w=S[0],k=S[1],P=(0,a.useState)([""]),R=(0,i.Z)(P,2),C=R[0],N=R[1],I=(0,a.useState)(!0),E=(0,i.Z)(I,2),_=E[0],M=E[1],B=(0,a.useState)([!0]),T=(0,i.Z)(B,2),z=T[0],U=T[1];(0,a.useEffect)((function(){if(s){var e=s.console||"";if(k(e),""!==e){var n=new RegExp(/^(https?):\/\/([a-zA-Z0-9\-.]+)(:[0-9]+)?(\/[a-zA-Z0-9\-./]*)?$/);M(n.test(e))}else M(!0);if(s.minio&&s.minio.length>0){N(s.minio);var t=new RegExp(/^(https?):\/\/([a-zA-Z0-9\-.]+)(:[0-9]+)?$/),i=s.minio.map((function(e){return""===e.trim()||t.test(e)}));U(i)}}}),[s]);var W=function(){var e=(0,F.Z)(C),n=(0,F.Z)(z);e.push(""),n.push(!0),N(e),U(n)};return(0,b.jsx)(h.Z,{title:"Edit Tenant Domains - ".concat(l),modalOpen:n,onClose:function(){t(!1)},children:(0,b.jsx)(m.ZP,{container:!0,children:(0,b.jsxs)(m.ZP,{item:!0,xs:12,className:r.modalFormScrollable,children:[(0,b.jsxs)(m.ZP,{item:!0,xs:12,className:"".concat(r.configSectionItem),children:[(0,b.jsx)("div",{className:r.containerItem,children:(0,b.jsx)(f.Z,{id:"console_domain",name:"console_domain",onChange:function(e){k(e.target.value),M(e.target.validity.valid)},label:"Console Domain",value:w,placeholder:"Eg. http://subdomain.domain:port/subpath1/subpath2",pattern:"^(https?):\\/\\/([a-zA-Z0-9\\-.]+)(:[0-9]+)?(\\/[a-zA-Z0-9\\-.\\/]*)?$",error:_?"":"Domain format is incorrect (http|https://subdomain.domain:port/subpath1/subpath2)"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h4",{children:"MinIO Domains"}),(0,b.jsx)("div",{children:C.map((function(e,n){return(0,b.jsxs)("div",{className:"".concat(r.domainInline),children:[(0,b.jsx)(f.Z,{id:"minio-domain-".concat(n.toString()),name:"minio-domain-".concat(n.toString()),onChange:function(e){!function(e,n){var t=(0,F.Z)(C);t[n]=e,N(t)}(e.target.value,n),function(e,n){var t=(0,F.Z)(z);t[n]=e,U(t)}(e.target.validity.valid,n)},label:"MinIO Domain ".concat(n+1),value:e,placeholder:"Eg. http://subdomain.domain",pattern:"^(https?):\\/\\/([a-zA-Z0-9\\-.]+)(:[0-9]+)?$",error:z[n]?"":"MinIO domain format is incorrect (http|https://subdomain.domain)"}),(0,b.jsx)("div",{className:r.overlayAction,children:(0,b.jsx)(A.Z,{size:"small",onClick:W,disabled:n!==C.length-1,children:(0,b.jsx)(D.Z,{})})}),(0,b.jsx)("div",{className:r.overlayAction,children:(0,b.jsx)(A.Z,{size:"small",onClick:function(){return function(e){var n=C.filter((function(n,t){return t!==e})),t=z.filter((function(n,t){return t!==e}));N(n),U(t)}(n)},disabled:C.length<=1,children:(0,b.jsx)(p.HFL,{})})})]},"minio-domain-key-".concat(n.toString()))}))})]})]}),(0,b.jsxs)(m.ZP,{item:!0,xs:12,className:r.modalButtonBar,children:[(0,b.jsx)(p.zxk,{id:"clear-edit-domain",type:"button",variant:"regular",onClick:function(){k(""),M(!0),N([""]),U([!0])},label:"Clear"}),(0,b.jsx)(p.zxk,{id:"save-domain",type:"submit",variant:"callAction",disabled:v||!_||z.filter((function(e){return!e})).length>0,onClick:function(){g(!0);var e={domains:{console:w,minio:C.filter((function(e){return""!==e.trim()}))}};x.Z.invoke("PUT","/api/v1/namespaces/".concat(o,"/tenants/").concat(l,"/domains"),e).then((function(){g(!1),c((0,Z.y1)("Domains updated successfully")),t(!0)})).catch((function(e){g(!1),c((0,Z.zb)(e))}))},label:"Save"})]})]})})})})),_=t(57689),M=t(82295),B=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"red",n=arguments.length>1?arguments[1]:void 0;return"red"===e?n.redState:"yellow"===e?n.yellowState:"green"===e?n.greenState:n.greyState},T=function(e){var n,t=e.tenant,i=e.classes;return t?(0,b.jsx)(N,{tenant:t,label:"Storage",error:"",loading:!1,healthStatus:B(null===t||void 0===t||null===(n=t.status)||void 0===n?void 0:n.health_status,i)}):null},z=function(e){return e?(0,b.jsx)(p.Yp9,{}):(0,b.jsx)(p.cmQ,{style:{color:"grey"}})},U={display:"flex",justifyContent:"space-between",marginTop:"10px","@media (max-width: 600px)":{flexFlow:"column"}},W={stkProps:{sx:{flex:1,marginRight:10,display:"flex",alignItems:"center",justifyContent:"space-between","@media (max-width: 900px)":{marginRight:"25px"}}},lblProps:{style:{minWidth:100}}},O=(0,u.Z)((function(e){return(0,c.Z)((0,o.Z)((0,o.Z)({},d.oZ),{},{redState:{color:e.palette.error.main,"& .min-icon":{width:16,height:16,marginRight:4}},yellowState:{color:e.palette.warning.main,"& .min-icon":{width:16,height:16,marginRight:4}},greenState:{color:e.palette.success.main,"& .min-icon":{width:16,height:16,marginRight:4}},greyState:{color:"grey","& .min-icon":{width:16,height:16,marginRight:4}},linkedSection:{color:e.palette.info.main,fontFamily:"'Inter', sans-serif"},autoGeneratedLink:{fontStyle:"italic"}},d.Bz))}))((function(e){var n,t,s,c,u,d,h,f,g,x,Z,w,k,P,R,N,F,A,D,B,O,L,$,G,V=e.classes,H=(0,j.TL)(),K=(0,_.UO)(),Q=K.tenantName,Y=K.tenantNamespace,q=(0,l.v9)((function(e){return e.tenants.tenantInfo})),J=(0,l.v9)((function(e){return r()(e.tenants.tenantInfo,"encryptionEnabled",!1)})),X=(0,l.v9)((function(e){return r()(e.tenants.tenantInfo,"minioTLS",!1)})),ee=(0,l.v9)((function(e){return r()(e.tenants.tenantInfo,"idpAdEnabled",!1)})),ne=(0,l.v9)((function(e){return r()(e.tenants.tenantInfo,"idpOidcEnabled",!1)})),te=(0,a.useState)(0),ie=(0,i.Z)(te,2),oe=ie[0],ae=ie[1],le=(0,a.useState)(0),se=(0,i.Z)(le,2),re=se[0],ce=se[1],ue=(0,a.useState)(0),de=(0,i.Z)(ue,2),me=de[0],ve=de[1],pe=(0,a.useState)(!1),he=(0,i.Z)(pe,2),fe=he[0],ge=he[1],xe=(0,a.useState)(!1),Ze=(0,i.Z)(xe,2),je=Ze[0],be=Ze[1];(0,a.useEffect)((function(){var e,n,t;q&&(ae((null===q||void 0===q||null===(e=q.pools)||void 0===e?void 0:e.length)||0),ve((null===(n=q.pools)||void 0===n?void 0:n.reduce((function(e,n){return e+n.volumes_per_server*n.servers}),0))||0),ce((null===(t=q.pools)||void 0===t?void 0:t.reduce((function(e,n){return e+n.servers}),0))||0))}),[q]);return(0,b.jsxs)(a.Fragment,{children:[fe&&(0,b.jsx)(y,{open:fe,closeModalAndRefresh:function(e){ge(!1),e&&H((0,M.v)())},idTenant:Q||"",namespace:Y||""}),je&&(0,b.jsx)(E,{open:je,idTenant:Q||"",namespace:Y||"",domains:(null===q||void 0===q?void 0:q.domains)||null,closeModalAndRefresh:function(e){be(!1),e&&H((0,M.v)())}}),(0,b.jsx)(I.Z,{separator:!1,children:"Details"}),(0,b.jsx)(T,{tenant:q,classes:V}),(0,b.jsxs)(m.ZP,{container:!0,children:[(0,b.jsxs)(m.ZP,{item:!0,xs:12,sm:12,md:8,children:[(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(C.Z,{label:"State:",value:null===q||void 0===q?void 0:q.currentState})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(C.Z,{label:"MinIO:",value:(0,b.jsx)(S.Z,{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"normal",wordBreak:"break-all"},onClick:function(){ge(!0)},children:q?q.image:""})})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsxs)("h3",{children:["Domains",(0,b.jsx)(p.zxk,{id:"edit-domains",icon:(0,b.jsx)(p.dY8,{}),onClick:function(){be(!0)}})]})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(C.Z,{label:"Console:",value:(0,b.jsxs)(a.Fragment,{children:[null!==q&&void 0!==q&&null!==(n=q.domains)&&void 0!==n&&n.console&&""!==(null===q||void 0===q||null===(t=q.domains)||void 0===t?void 0:t.console)||null!==q&&void 0!==q&&null!==(s=q.endpoints)&&void 0!==s&&s.console?"":"-",(null===q||void 0===q||null===(c=q.endpoints)||void 0===c?void 0:c.console)&&(0,b.jsxs)(a.Fragment,{children:[(0,b.jsx)("a",{href:null===q||void 0===q||null===(u=q.endpoints)||void 0===u?void 0:u.console,target:"_blank",rel:"noopener",className:"".concat(V.linkedSection," ").concat(V.autoGeneratedLink),children:(null===q||void 0===q||null===(d=q.endpoints)||void 0===d?void 0:d.console)||"-"}),(0,b.jsx)("br",{})]}),(null===q||void 0===q||null===(h=q.domains)||void 0===h?void 0:h.console)&&""!==(null===q||void 0===q||null===(f=q.domains)||void 0===f?void 0:f.console)&&(0,b.jsx)("a",{href:(null===q||void 0===q||null===(g=q.domains)||void 0===g?void 0:g.console)||"",target:"_blank",rel:"noopener",className:V.linkedSection,children:(null===q||void 0===q||null===(x=q.domains)||void 0===x?void 0:x.console)||""})]})})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(C.Z,{label:"MinIO Endpoint".concat(null!==q&&void 0!==q&&null!==(Z=q.endpoints)&&void 0!==Z&&Z.minio&&1===(null===q||void 0===q||null===(w=q.endpoints)||void 0===w?void 0:w.minio.length)?"":"s",":"),value:(0,b.jsxs)(a.Fragment,{children:[null!==q&&void 0!==q&&null!==(k=q.domains)&&void 0!==k&&k.minio||null!==q&&void 0!==q&&null!==(P=q.endpoints)&&void 0!==P&&P.minio?"":"-",(null===q||void 0===q||null===(R=q.endpoints)||void 0===R?void 0:R.minio)&&(0,b.jsxs)(a.Fragment,{children:[(0,b.jsx)("a",{href:null===q||void 0===q||null===(N=q.endpoints)||void 0===N?void 0:N.minio,target:"_blank",rel:"noopener",className:"".concat(V.linkedSection," ").concat(V.autoGeneratedLink),children:(null===q||void 0===q||null===(F=q.endpoints)||void 0===F?void 0:F.minio)||"-"}),(0,b.jsx)("br",{})]}),(null===q||void 0===q||null===(A=q.domains)||void 0===A?void 0:A.minio)&&q.domains.minio.map((function(e){return(0,b.jsxs)(a.Fragment,{children:[(0,b.jsx)("a",{href:e,target:"_blank",rel:"noopener",className:V.linkedSection,children:e}),(0,b.jsx)("br",{})]},e)}))]})})})]}),(0,b.jsxs)(m.ZP,{item:!0,xs:12,sm:12,md:4,children:[(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(C.Z,{label:"Instances:",value:re})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(C.Z,{label:"Clusters:",value:oe,stkProps:{style:{marginRight:47}}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(C.Z,{label:"Total Drives:",value:me,stkProps:{style:{marginRight:43}}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(C.Z,{label:"Write Quorum:",value:null!==q&&void 0!==q&&null!==(D=q.status)&&void 0!==D&&D.write_quorum?null===q||void 0===q||null===(B=q.status)||void 0===B?void 0:B.write_quorum:0})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(C.Z,{label:"Drives Online:",value:null!==q&&void 0!==q&&null!==(O=q.status)&&void 0!==O&&O.drives_online?null===q||void 0===q||null===(L=q.status)||void 0===L?void 0:L.drives_online:0,stkProps:{style:{marginRight:8}}})}),(0,b.jsx)(m.ZP,{item:!0,xs:12,children:(0,b.jsx)(C.Z,{label:"Drives Offline:",value:null!==q&&void 0!==q&&null!==($=q.status)&&void 0!==$&&$.drives_offline?null===q||void 0===q||null===(G=q.status)||void 0===G?void 0:G.drives_offline:0,stkProps:{style:{marginRight:7}}})})]})]}),(0,b.jsx)(I.Z,{children:"Features"}),(0,b.jsxs)(v.Z,{sx:(0,o.Z)({},U),children:[(0,b.jsx)(C.Z,(0,o.Z)({orientation:"row",label:"MinIO TLS:",value:z(X,"tenant-tls")},W)),(0,b.jsx)(C.Z,(0,o.Z)({orientation:"row",label:"AD/LDAP:",value:z(ee,"tenant-sts")},W)),(0,b.jsx)(C.Z,(0,o.Z)({orientation:"row",label:"Encryption:",value:z(J,"tenant-enc")},W))]}),(0,b.jsx)(v.Z,{sx:(0,o.Z)({},U),children:(0,b.jsx)(C.Z,(0,o.Z)({orientation:"row",label:"OpenID:",value:z(ne,"tenant-oidc")},W))})]})}))},22512:function(e,n,t){var i=t(72791),o=t(20890),a=t(11135),l=t(25787),s=t(80184);n.Z=(0,l.Z)((function(e){var n;return(0,a.Z)({errorBlock:{color:(null===(n=e.palette)||void 0===n?void 0:n.error.main)||"#C83B51"}})}))((function(e){var n=e.classes,t=e.errorMessage,a=e.withBreak,l=void 0===a||a;return(0,s.jsxs)(i.Fragment,{children:[l&&(0,s.jsx)("br",{}),(0,s.jsx)(o.Z,{component:"p",variant:"body1",className:n.errorBlock,children:t})]})}))},42419:function(e,n,t){var i=t(64836);n.Z=void 0;var o=i(t(45649)),a=t(80184),l=(0,o.default)((0,a.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");n.Z=l},36314:function(e,n,t){t.d(n,{Z:function(){return R}});var i=t(4942),o=t(63366),a=t(87462),l=t(72791),s=t(28182),r=t(82466),c=t(94419),u=t(21217),d=t(93457),m=t(86083),v=t(78519),p=t(85080),h=t(51184),f=t(45682),g=t(80184),x=["component","direction","spacing","divider","children","className","useFlexGap"],Z=(0,p.Z)(),j=(0,d.Z)("div",{name:"MuiStack",slot:"Root",overridesResolver:function(e,n){return n.root}});function b(e){return(0,m.Z)({props:e,name:"MuiStack",defaultTheme:Z})}function y(e,n){var t=l.Children.toArray(e).filter(Boolean);return t.reduce((function(e,i,o){return e.push(i),o0?c[t[n-1]]:"column";c[e]=i}}));o=(0,r.Z)(o,(0,h.k9)({theme:t},u,(function(e,t){return n.useFlexGap?{gap:(0,f.NA)(l,e)}:{"& > :not(style) + :not(style)":(0,i.Z)({margin:0},"margin".concat((o=t?c[t]:n.direction,{row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"}[o])),(0,f.NA)(l,e))};var o})))}return o=(0,h.dt)(t.breakpoints,o)};var w=t(66934),k=t(31402),P=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.createStyledComponent,t=void 0===n?j:n,i=e.useThemeProps,r=void 0===i?b:i,d=e.componentName,m=void 0===d?"MuiStack":d,p=t(S),h=l.forwardRef((function(e,n){var t=r(e),i=(0,v.Z)(t),l=i.component,d=void 0===l?"div":l,h=i.direction,f=void 0===h?"column":h,Z=i.spacing,j=void 0===Z?0:Z,b=i.divider,S=i.children,w=i.className,k=i.useFlexGap,P=void 0!==k&&k,R=(0,o.Z)(i,x),C={direction:f,spacing:j,useFlexGap:P},N=(0,c.Z)({root:["root"]},(function(e){return(0,u.Z)(m,e)}),{});return(0,g.jsx)(p,(0,a.Z)({as:d,ownerState:C,ref:n,className:(0,s.Z)(N.root,w)},R,{children:b?y(S,b):S}))}));return h}({createStyledComponent:(0,w.ZP)("div",{name:"MuiStack",slot:"Root",overridesResolver:function(e,n){return n.root}}),useThemeProps:function(e){return(0,k.Z)({props:e,name:"MuiStack"})}}),R=P},93457:function(e,n,t){var i=(0,t(44046).ZP)();n.Z=i},23688:function(e,n,t){function i(){var e=this.constructor.getDerivedStateFromProps(this.props,this.state);null!==e&&void 0!==e&&this.setState(e)}function o(e){this.setState(function(n){var t=this.constructor.getDerivedStateFromProps(e,n);return null!==t&&void 0!==t?t:null}.bind(this))}function a(e,n){try{var t=this.props,i=this.state;this.props=e,this.state=n,this.__reactInternalSnapshotFlag=!0,this.__reactInternalSnapshot=this.getSnapshotBeforeUpdate(t,i)}finally{this.props=t,this.state=i}}function l(e){var n=e.prototype;if(!n||!n.isReactComponent)throw new Error("Can only polyfill class components");if("function"!==typeof e.getDerivedStateFromProps&&"function"!==typeof n.getSnapshotBeforeUpdate)return e;var t=null,l=null,s=null;if("function"===typeof n.componentWillMount?t="componentWillMount":"function"===typeof n.UNSAFE_componentWillMount&&(t="UNSAFE_componentWillMount"),"function"===typeof n.componentWillReceiveProps?l="componentWillReceiveProps":"function"===typeof n.UNSAFE_componentWillReceiveProps&&(l="UNSAFE_componentWillReceiveProps"),"function"===typeof n.componentWillUpdate?s="componentWillUpdate":"function"===typeof n.UNSAFE_componentWillUpdate&&(s="UNSAFE_componentWillUpdate"),null!==t||null!==l||null!==s){var r=e.displayName||e.name,c="function"===typeof e.getDerivedStateFromProps?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";throw Error("Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n"+r+" uses "+c+" but also contains the following legacy lifecycles:"+(null!==t?"\n "+t:"")+(null!==l?"\n "+l:"")+(null!==s?"\n "+s:"")+"\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://fb.me/react-async-component-lifecycle-hooks")}if("function"===typeof e.getDerivedStateFromProps&&(n.componentWillMount=i,n.componentWillReceiveProps=o),"function"===typeof n.getSnapshotBeforeUpdate){if("function"!==typeof n.componentDidUpdate)throw new Error("Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype");n.componentWillUpdate=a;var u=n.componentDidUpdate;n.componentDidUpdate=function(e,n,t){var i=this.__reactInternalSnapshotFlag?this.__reactInternalSnapshot:t;u.call(this,e,n,i)}}return e}t.r(n),t.d(n,{polyfill:function(){return l}}),i.__suppressDeprecationWarning=!0,o.__suppressDeprecationWarning=!0,a.__suppressDeprecationWarning=!0}}]); +//# sourceMappingURL=30.80b393c6.chunk.js.map \ No newline at end of file diff --git a/web-app/build/static/js/30.d72ddac2.chunk.js.map b/web-app/build/static/js/30.80b393c6.chunk.js.map similarity index 99% rename from web-app/build/static/js/30.d72ddac2.chunk.js.map rename to web-app/build/static/js/30.80b393c6.chunk.js.map index e0a4cb6ea4e..48c4bd74d86 100644 --- a/web-app/build/static/js/30.d72ddac2.chunk.js.map +++ b/web-app/build/static/js/30.80b393c6.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/30.d72ddac2.chunk.js","mappings":"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","sources":["screens/Console/Common/AButton/AButton.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Common/UsageBarWrapper/LabelValuePair.tsx","screens/Console/Common/UsageBar/UsageBar.tsx","screens/Console/Tenants/ListTenants/TenantCapacity.tsx","screens/Console/Tenants/TenantDetails/UpdateTenantModal.tsx","screens/Console/Common/UsageBarWrapper/SummaryUsageBar.tsx","screens/Console/Tenants/TenantDetails/EditDomains.tsx","screens/Console/Tenants/TenantDetails/TenantSummary.tsx","screens/shared/ErrorBlock.tsx","../node_modules/@mui/icons-material/Add.js","../node_modules/@mui/system/esm/Stack/createStack.js","../node_modules/@mui/material/Stack/Stack.js","../node_modules/@mui/system/esm/styled.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js"],"sourcesContent":["// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButtonProps } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 0,\n margin: 0,\n border: 0,\n backgroundColor: \"transparent\",\n textDecoration: \"underline\",\n cursor: \"pointer\",\n fontSize: \"inherit\",\n color: theme.palette.info.main,\n fontFamily: \"Inter, sans-serif\",\n },\n });\n\ninterface IAButton extends IconButtonProps {\n classes: any;\n children: any;\n}\n\nconst AButton = ({ classes, children, ...rest }: IAButton) => {\n return (\n \n );\n};\n\nexport default withStyles(styles)(AButton);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\nimport { setModalSnackMessage } from \"../../../../systemSlice\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n noContentPadding?: boolean;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n noContentPadding,\n titleIcon = null,\n}: IModalProps) => {\n const dispatch = useAppDispatch();\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n const modalSnackMessage = useSelector(\n (state: AppState) => state.system.modalSnackBar,\n );\n\n useEffect(() => {\n dispatch(setModalSnackMessage(\"\"));\n }, [dispatch]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n dispatch(setModalSnackMessage(\"\"));\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
\n {titleIcon} {title}\n
\n
\n \n \n \n
\n
\n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nexport default withStyles(styles)(ModalWrapper);\n","import React from \"react\";\nimport { Stack } from \"@mui/material\";\n\ntype LabelValuePairProps = {\n label?: any;\n value?: any;\n orientation?: any;\n stkProps?: any;\n lblProps?: any;\n valProps?: any;\n};\n\nconst LabelValuePair = ({\n label = null,\n value = \"-\",\n orientation = \"column\",\n stkProps = {},\n lblProps = {},\n valProps = {},\n}: LabelValuePairProps) => {\n return (\n \n \n \n \n );\n};\n\nexport default LabelValuePair;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\n\nexport interface ISizeBarItem {\n value: number;\n itemName: string;\n color: string;\n}\n\nexport interface IUsageBar {\n totalValue: number;\n sizeItems: ISizeBarItem[];\n bgColor?: string;\n}\n\nconst UsageBar = ({\n totalValue,\n sizeItems,\n bgColor = \"#ededed\",\n}: IUsageBar) => {\n return (\n \n {sizeItems.map((sizeElement, index) => {\n const itemPercentage = (sizeElement.value * 100) / totalValue;\n return (\n \n );\n })}\n \n );\n};\n\nexport default UsageBar;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Cell, Pie, PieChart } from \"recharts\";\nimport { CapacityValue, CapacityValues } from \"./types\";\nimport { niceBytesInt } from \"../../../../common/utils\";\nimport { CircleIcon } from \"mds\";\nimport UsageBar, { ISizeBarItem } from \"../../Common/UsageBar/UsageBar\";\n\ninterface ITenantCapacity {\n totalCapacity: number;\n usedSpaceVariants: CapacityValues[];\n statusClass: string;\n render?: \"pie\" | \"bar\";\n}\n\nconst TenantCapacity = ({\n totalCapacity,\n usedSpaceVariants,\n statusClass,\n render = \"pie\",\n}: ITenantCapacity) => {\n const colors = [\n \"#8dacd3\",\n \"#bca1ea\",\n \"#92e8d2\",\n \"#efc9ac\",\n \"#97f274\",\n \"#f7d291\",\n \"#71ACCB\",\n \"#f28282\",\n \"#e28cc1\",\n \"#2781B0\",\n ];\n\n const BGColor = \"#ededed\";\n\n const totalUsedSpace = usedSpaceVariants.reduce((acc, currValue) => {\n return acc + currValue.value;\n }, 0);\n\n const emptySpace = totalCapacity - totalUsedSpace;\n\n let tiersList: CapacityValue[] = [];\n\n const standardTier = usedSpaceVariants.find(\n (tier) => tier.variant === \"STANDARD\",\n ) || {\n value: 0,\n variant: \"empty\",\n };\n\n if (usedSpaceVariants.length > 10) {\n const totalUsedByTiers = totalUsedSpace - standardTier.value;\n\n tiersList = [\n { value: totalUsedByTiers, color: \"#2781B0\", label: \"Total Tiers Space\" },\n ];\n } else {\n tiersList = usedSpaceVariants\n .filter((variant) => variant.variant !== \"STANDARD\")\n .map((variant, index) => {\n return {\n value: variant.value,\n color: colors[index],\n label: `Tier - ${variant.variant}`,\n };\n });\n }\n\n let standardTierColor = \"#07193E\";\n\n const usedPercentage = (standardTier.value * 100) / totalCapacity;\n\n if (usedPercentage >= 90) {\n standardTierColor = \"#C83B51\";\n } else if (usedPercentage >= 75) {\n standardTierColor = \"#FFAB0F\";\n }\n\n const plotValues: CapacityValue[] = [\n {\n value: standardTier.value,\n color: standardTierColor,\n label: \"Used Space by Tenant\",\n },\n ...tiersList,\n {\n value: emptySpace,\n color: render === \"bar\" ? BGColor : \"transparent\",\n label: \"Empty Space\",\n },\n ];\n\n if (render === \"bar\") {\n const plotValuesForUsageBar: ISizeBarItem[] = plotValues.map((plotVal) => {\n return {\n value: plotVal.value,\n color: plotVal.color,\n itemName: plotVal.label,\n };\n });\n\n return (\n
\n \n
\n );\n }\n\n return (\n
\n \n \n
\n \n {!isNaN(totalUsedSpace) ? niceBytesInt(totalUsedSpace) : \"N/A\"}\n \n
\n \n \n \n {plotValues.map((entry, index) => (\n \n ))}\n \n \n
\n \n );\n};\n\nexport default TenantCapacity;\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { Button } from \"mds\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid } from \"@mui/material\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport api from \"../../../../common/api\";\nimport {\n setModalErrorSnackMessage,\n setSnackBarMessage,\n} from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface IUpdateTenantModal {\n open: boolean;\n closeModalAndRefresh: (update: boolean) => any;\n namespace: string;\n idTenant: string;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n infoText: {\n fontSize: 14,\n },\n ...formFieldStyles,\n ...modalStyleUtils,\n });\n\nconst UpdateTenantModal = ({\n open,\n closeModalAndRefresh,\n namespace,\n idTenant,\n classes,\n}: IUpdateTenantModal) => {\n const dispatch = useAppDispatch();\n const [isSending, setIsSending] = useState(false);\n const [minioImage, setMinioImage] = useState(\"\");\n const [imageRegistry, setImageRegistry] = useState(false);\n const [imageRegistryEndpoint, setImageRegistryEndpoint] =\n useState(\"\");\n const [imageRegistryUsername, setImageRegistryUsername] =\n useState(\"\");\n const [imageRegistryPassword, setImageRegistryPassword] =\n useState(\"\");\n const [validMinioImage, setValidMinioImage] = useState(true);\n\n const validateImage = useCallback(\n (fieldToCheck: string) => {\n const pattern = new RegExp(\"^$|^((.*?)/(.*?):(.+))$\");\n\n switch (fieldToCheck) {\n case \"minioImage\":\n setValidMinioImage(pattern.test(minioImage));\n break;\n }\n },\n [minioImage],\n );\n\n useEffect(() => {\n validateImage(\"minioImage\");\n }, [minioImage, validateImage]);\n\n const closeAction = () => {\n closeModalAndRefresh(false);\n };\n\n const resetForm = () => {\n setMinioImage(\"\");\n setImageRegistry(false);\n setImageRegistryEndpoint(\"\");\n setImageRegistryUsername(\"\");\n setImageRegistryPassword(\"\");\n };\n\n const updateMinIOImage = () => {\n setIsSending(true);\n\n let payload = {\n image: minioImage,\n };\n\n if (imageRegistry) {\n const registry: any = {\n image_registry: {\n registry: imageRegistryEndpoint,\n username: imageRegistryUsername,\n password: imageRegistryPassword,\n },\n };\n payload = {\n ...payload,\n ...registry,\n };\n }\n\n api\n .invoke(\n \"PUT\",\n `/api/v1/namespaces/${namespace}/tenants/${idTenant}`,\n payload,\n )\n .then(() => {\n setIsSending(false);\n dispatch(setSnackBarMessage(`Image updated successfully`));\n closeModalAndRefresh(true);\n })\n .catch((error: ErrorResponseHandler) => {\n dispatch(setModalErrorSnackMessage(error));\n setIsSending(false);\n });\n };\n\n return (\n \n \n \n
\n Please enter the MinIO image from dockerhub to use. If blank, then\n latest build will be used.\n
\n
\n
\n \n {\n setMinioImage(e.target.value);\n }}\n />\n \n \n ) => {\n setImageRegistry(!imageRegistry);\n }}\n label={\"Set Custom Image Registry\"}\n indicatorLabels={[\"Yes\", \"No\"]}\n />\n \n {imageRegistry && (\n \n \n {\n setImageRegistryEndpoint(e.target.value);\n }}\n />\n \n \n {\n setImageRegistryUsername(e.target.value);\n }}\n />\n \n \n {\n setImageRegistryPassword(e.target.value);\n }}\n />\n \n \n )}\n
\n \n \n \n \n
\n \n );\n};\n\nexport default withStyles(styles)(UpdateTenantModal);\n","import React, { Fragment } from \"react\";\nimport { Stack } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport { CapacityValues, ValueUnit } from \"../../Tenants/ListTenants/types\";\nimport { CircleIcon, Loader } from \"mds\";\nimport { niceBytes, niceBytesInt } from \"../../../../common/utils\";\nimport TenantCapacity from \"../../Tenants/ListTenants/TenantCapacity\";\nimport ErrorBlock from \"../../../shared/ErrorBlock\";\nimport LabelValuePair from \"./LabelValuePair\";\nimport { Tenant } from \"../../../../api/operatorApi\";\n\ninterface ISummaryUsageBar {\n tenant: Tenant;\n label: string;\n error: string;\n loading: boolean;\n labels?: boolean;\n healthStatus?: string;\n}\n\nconst SummaryUsageBar = ({\n tenant,\n healthStatus,\n loading,\n error,\n}: ISummaryUsageBar) => {\n let raw: ValueUnit = { value: \"n/a\", unit: \"\" };\n let capacity: ValueUnit = { value: \"n/a\", unit: \"\" };\n let used: ValueUnit = { value: \"n/a\", unit: \"\" };\n let localUse: ValueUnit = { value: \"n/a\", unit: \"\" };\n let tieredUse: ValueUnit = { value: \"n/a\", unit: \"\" };\n\n if (tenant.status?.usage?.raw) {\n const b = niceBytes(`${tenant.status.usage.raw}`, true);\n const parts = b.split(\" \");\n raw.value = parts[0];\n raw.unit = parts[1];\n }\n if (tenant.status?.usage?.capacity) {\n const b = niceBytes(`${tenant.status.usage.capacity}`, true);\n const parts = b.split(\" \");\n capacity.value = parts[0];\n capacity.unit = parts[1];\n }\n if (tenant.status?.usage?.capacity_usage) {\n const b = niceBytesInt(tenant.status.usage.capacity_usage, true);\n const parts = b.split(\" \");\n used.value = parts[0];\n used.unit = parts[1];\n }\n\n let spaceVariants: CapacityValues[] = [];\n if (!tenant.tiers || tenant.tiers.length === 0) {\n spaceVariants = [\n { value: tenant.status?.usage?.capacity_usage || 0, variant: \"STANDARD\" },\n ];\n } else {\n spaceVariants = tenant.tiers.map((itemTenant) => {\n return { value: itemTenant.size!, variant: itemTenant.name! };\n });\n let internalUsage = tenant.tiers\n .filter((itemTenant) => {\n return itemTenant.type === \"internal\";\n })\n .reduce((sum, itemTenant) => sum + itemTenant.size!, 0);\n let tieredUsage = tenant.tiers\n .filter((itemTenant) => {\n return itemTenant.type !== \"internal\";\n })\n .reduce((sum, itemTenant) => sum + itemTenant.size!, 0);\n\n const t = niceBytesInt(tieredUsage, true);\n const parts = t.split(\" \");\n tieredUse.value = parts[0];\n tieredUse.unit = parts[1];\n\n const is = niceBytesInt(internalUsage, true);\n const partsInternal = is.split(\" \");\n localUse.value = partsInternal[0];\n localUse.unit = partsInternal[1];\n }\n\n const renderComponent = () => {\n if (!loading) {\n return error !== \"\" ? (\n \n ) : (\n \n \n \n {(!tenant.tiers || tenant.tiers.length === 0) && (\n \n \n \n )}\n {tenant.tiers && tenant.tiers.length > 0 && (\n \n \n \n \n )}\n {healthStatus && (\n \n \n \n }\n />\n )}\n \n \n );\n }\n\n return null;\n };\n\n return (\n \n {loading && (\n
\n \n \n \n
\n )}\n {renderComponent()}\n
\n );\n};\n\nexport default SummaryUsageBar;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { Button, RemoveIcon } from \"mds\";\nimport { Grid, IconButton } from \"@mui/material\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport {\n ErrorResponseHandler,\n IDomainsRequest,\n} from \"../../../../common/types\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport api from \"../../../../common/api\";\nimport {\n setModalErrorSnackMessage,\n setSnackBarMessage,\n} from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface IEditDomains {\n open: boolean;\n closeModalAndRefresh: (update: boolean) => any;\n namespace: string;\n idTenant: string;\n domains: IDomainsRequest | null;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n domainInline: {\n display: \"flex\",\n marginBottom: 15,\n },\n overlayAction: {\n marginLeft: 10,\n display: \"flex\",\n alignItems: \"center\",\n \"& svg\": {\n width: 15,\n height: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n ...formFieldStyles,\n ...modalStyleUtils,\n });\n\nconst EditDomains = ({\n open,\n closeModalAndRefresh,\n namespace,\n idTenant,\n domains,\n classes,\n}: IEditDomains) => {\n const dispatch = useAppDispatch();\n const [isSending, setIsSending] = useState(false);\n const [consoleDomain, setConsoleDomain] = useState(\"\");\n const [minioDomains, setMinioDomains] = useState([\"\"]);\n const [consoleDomainValid, setConsoleDomainValid] = useState(true);\n const [minioDomainValid, setMinioDomainValid] = useState([true]);\n\n useEffect(() => {\n if (domains) {\n const consoleDomainSet = domains.console || \"\";\n setConsoleDomain(consoleDomainSet);\n\n if (consoleDomainSet !== \"\") {\n // We Validate console domain\n const consoleRegExp = new RegExp(\n /^(https?):\\/\\/([a-zA-Z0-9\\-.]+)(:[0-9]+)?(\\/[a-zA-Z0-9\\-./]*)?$/,\n );\n\n setConsoleDomainValid(consoleRegExp.test(consoleDomainSet));\n } else {\n setConsoleDomainValid(true);\n }\n\n if (domains.minio && domains.minio.length > 0) {\n setMinioDomains(domains.minio);\n\n const minioRegExp = new RegExp(\n /^(https?):\\/\\/([a-zA-Z0-9\\-.]+)(:[0-9]+)?$/,\n );\n\n const initialValidations = domains.minio.map((domain) => {\n if (domain.trim() !== \"\") {\n return minioRegExp.test(domain);\n } else {\n return true;\n }\n });\n\n setMinioDomainValid(initialValidations);\n }\n }\n }, [domains]);\n\n const closeAction = () => {\n closeModalAndRefresh(false);\n };\n\n const resetForm = () => {\n setConsoleDomain(\"\");\n setConsoleDomainValid(true);\n setMinioDomains([\"\"]);\n setMinioDomainValid([true]);\n };\n\n const updateDomainsList = () => {\n setIsSending(true);\n\n let payload = {\n domains: {\n console: consoleDomain,\n minio: minioDomains.filter((minioDomain) => minioDomain.trim() !== \"\"),\n },\n };\n api\n .invoke(\n \"PUT\",\n `/api/v1/namespaces/${namespace}/tenants/${idTenant}/domains`,\n payload,\n )\n .then(() => {\n setIsSending(false);\n dispatch(setSnackBarMessage(`Domains updated successfully`));\n closeModalAndRefresh(true);\n })\n .catch((error: ErrorResponseHandler) => {\n setIsSending(false);\n dispatch(setModalErrorSnackMessage(error));\n });\n };\n\n const updateMinIODomain = (value: string, index: number) => {\n const cloneDomains = [...minioDomains];\n cloneDomains[index] = value;\n\n setMinioDomains(cloneDomains);\n };\n\n const addNewMinIODomain = () => {\n const cloneDomains = [...minioDomains];\n const cloneValidations = [...minioDomainValid];\n\n cloneDomains.push(\"\");\n cloneValidations.push(true);\n\n setMinioDomains(cloneDomains);\n setMinioDomainValid(cloneValidations);\n };\n\n const removeMinIODomain = (removeIndex: number) => {\n const filteredDomains = minioDomains.filter(\n (_, index) => index !== removeIndex,\n );\n\n const filterValidations = minioDomainValid.filter(\n (_, index) => index !== removeIndex,\n );\n\n setMinioDomains(filteredDomains);\n setMinioDomainValid(filterValidations);\n };\n\n const setMinioDomainValidation = (domainValid: boolean, index: number) => {\n const cloneValidation = [...minioDomainValid];\n cloneValidation[index] = domainValid;\n\n setMinioDomainValid(cloneValidation);\n };\n return (\n \n \n \n \n
\n ) => {\n setConsoleDomain(e.target.value);\n\n setConsoleDomainValid(e.target.validity.valid);\n }}\n label=\"Console Domain\"\n value={consoleDomain}\n placeholder={\n \"Eg. http://subdomain.domain:port/subpath1/subpath2\"\n }\n pattern={\n \"^(https?):\\\\/\\\\/([a-zA-Z0-9\\\\-.]+)(:[0-9]+)?(\\\\/[a-zA-Z0-9\\\\-.\\\\/]*)?$\"\n }\n error={\n !consoleDomainValid\n ? \"Domain format is incorrect (http|https://subdomain.domain:port/subpath1/subpath2)\"\n : \"\"\n }\n />\n
\n
\n

MinIO Domains

\n
\n {minioDomains.map((domain, index) => {\n return (\n \n ) => {\n updateMinIODomain(e.target.value, index);\n setMinioDomainValidation(\n e.target.validity.valid,\n index,\n );\n }}\n label={`MinIO Domain ${index + 1}`}\n value={domain}\n placeholder={\"Eg. http://subdomain.domain\"}\n pattern={\n \"^(https?):\\\\/\\\\/([a-zA-Z0-9\\\\-.]+)(:[0-9]+)?$\"\n }\n error={\n !minioDomainValid[index]\n ? \"MinIO domain format is incorrect (http|https://subdomain.domain)\"\n : \"\"\n }\n />\n
\n \n \n \n
\n\n
\n removeMinIODomain(index)}\n disabled={minioDomains.length <= 1}\n >\n \n \n
\n
\n );\n })}\n
\n \n
\n \n \n !domain).length > 0\n }\n onClick={updateDomainsList}\n label={\"Save\"}\n />\n \n
\n
\n \n );\n};\n\nexport default withStyles(styles)(EditDomains);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n containerForHeader,\n tenantDetailsStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { Box, Grid } from \"@mui/material\";\nimport UpdateTenantModal from \"./UpdateTenantModal\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport AButton from \"../../Common/AButton/AButton\";\nimport SummaryUsageBar from \"../../Common/UsageBarWrapper/SummaryUsageBar\";\nimport LabelValuePair from \"../../Common/UsageBarWrapper/LabelValuePair\";\nimport SectionTitle from \"../../Common/SectionTitle\";\nimport { Button, DisableIcon, EditIcon, TierOnlineIcon } from \"mds\";\nimport EditDomains from \"./EditDomains\";\nimport { useParams } from \"react-router-dom\";\nimport { getTenantAsync } from \"../thunks/tenantDetailsAsync\";\nimport { Tenant } from \"../../../../api/operatorApi\";\n\ninterface ITenantsSummary {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n redState: {\n color: theme.palette.error.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n yellowState: {\n color: theme.palette.warning.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n greenState: {\n color: theme.palette.success.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n greyState: {\n color: \"grey\",\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n linkedSection: {\n color: theme.palette.info.main,\n fontFamily: \"'Inter', sans-serif\",\n },\n autoGeneratedLink: {\n fontStyle: \"italic\",\n },\n ...containerForHeader,\n });\n\nconst healthStatusToClass = (health_status: string = \"red\", classes: any) => {\n return health_status === \"red\"\n ? classes.redState\n : health_status === \"yellow\"\n ? classes.yellowState\n : health_status === \"green\"\n ? classes.greenState\n : classes.greyState;\n};\n\nconst StorageSummary = ({\n tenant,\n classes,\n}: {\n tenant: Tenant | null;\n classes: any;\n}) => {\n if (!tenant) {\n return null;\n }\n\n return (\n \n );\n};\n\nconst getToggle = (toggleValue: boolean, idPrefix = \"\") => {\n if (toggleValue) {\n return ;\n }\n return ;\n};\n\nconst featureRowStyle = {\n display: \"flex\",\n justifyContent: \"space-between\",\n marginTop: \"10px\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n};\n\nconst featureItemStyleProps = {\n stkProps: {\n sx: {\n flex: 1,\n marginRight: 10,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n \"@media (max-width: 900px)\": {\n marginRight: \"25px\",\n },\n },\n },\n lblProps: {\n style: {\n minWidth: 100,\n },\n },\n};\nconst TenantSummary = ({ classes }: ITenantsSummary) => {\n const dispatch = useAppDispatch();\n const { tenantName, tenantNamespace } = useParams();\n\n const tenant = useSelector((state: AppState) => state.tenants.tenantInfo);\n const encryptionEnabled = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"encryptionEnabled\", false),\n );\n const minioTLS = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"minioTLS\", false),\n );\n const adEnabled = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"idpAdEnabled\", false),\n );\n const oidcEnabled = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"idpOidcEnabled\", false),\n );\n\n const [poolCount, setPoolCount] = useState(0);\n const [instances, setInstances] = useState(0);\n const [volumes, setVolumes] = useState(0);\n const [updateMinioVersion, setUpdateMinioVersion] = useState(false);\n const [editDomainsOpen, setEditDomainsOpen] = useState(false);\n\n useEffect(() => {\n if (tenant) {\n setPoolCount(tenant?.pools?.length || 0);\n setVolumes(\n tenant.pools?.reduce(\n (sum, p) => sum + p.volumes_per_server * p.servers,\n 0,\n ) || 0,\n );\n setInstances(tenant.pools?.reduce((sum, p) => sum + p.servers, 0) || 0);\n }\n }, [tenant]);\n\n const closeEditDomainsModal = (refresh: boolean) => {\n setEditDomainsOpen(false);\n if (refresh) {\n dispatch(getTenantAsync());\n }\n };\n\n return (\n \n {updateMinioVersion && (\n {\n setUpdateMinioVersion(false);\n if (refresh) {\n dispatch(getTenantAsync());\n }\n }}\n idTenant={tenantName || \"\"}\n namespace={tenantNamespace || \"\"}\n />\n )}\n\n {editDomainsOpen && (\n \n )}\n\n Details\n\n \n\n \n \n \n \n \n \n {\n setUpdateMinioVersion(true);\n }}\n >\n {tenant ? tenant.image : \"\"}\n \n }\n />\n \n \n

\n Domains\n }\n onClick={() => {\n setEditDomainsOpen(true);\n }}\n />\n

\n
\n \n \n {(!tenant?.domains?.console ||\n tenant?.domains?.console === \"\") &&\n !tenant?.endpoints?.console\n ? \"-\"\n : \"\"}\n\n {tenant?.endpoints?.console && (\n \n \n {tenant?.endpoints?.console || \"-\"}\n \n
\n
\n )}\n\n {tenant?.domains?.console &&\n tenant?.domains?.console !== \"\" && (\n \n {tenant?.domains?.console || \"\"}\n \n )}\n
\n }\n />\n \n \n \n {!tenant?.domains?.minio && !tenant?.endpoints?.minio\n ? \"-\"\n : \"\"}\n {tenant?.endpoints?.minio && (\n \n \n {tenant?.endpoints?.minio || \"-\"}\n \n
\n
\n )}\n\n {tenant?.domains?.minio &&\n tenant.domains.minio.map((domain) => {\n return (\n \n \n {domain}\n \n
\n
\n );\n })}\n \n }\n />\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n Features\n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default withStyles(styles)(TenantSummary);\n","import React from \"react\";\nimport Typography from \"@mui/material/Typography\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n errorBlock: {\n color: theme.palette?.error.main || \"#C83B51\",\n },\n });\n\ninterface IErrorBlockProps {\n classes: any;\n errorMessage: string;\n withBreak?: boolean;\n}\n\nconst ErrorBlock = ({\n classes,\n errorMessage,\n withBreak = true,\n}: IErrorBlockProps) => {\n return (\n \n {withBreak &&
}\n \n {errorMessage}\n \n
\n );\n};\n\nexport default withStyles(styles)(ErrorBlock);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"\n}), 'Add');\nexports.default = _default;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"component\", \"direction\", \"spacing\", \"divider\", \"children\", \"className\", \"useFlexGap\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { deepmerge, unstable_composeClasses as composeClasses, unstable_generateUtilityClass as generateUtilityClass } from '@mui/utils';\nimport systemStyled from '../styled';\nimport useThemePropsSystem from '../useThemeProps';\nimport { extendSxProp } from '../styleFunctionSx';\nimport createTheme from '../createTheme';\nimport { handleBreakpoints, mergeBreakpointsInOrder, resolveBreakpointValues } from '../breakpoints';\nimport { createUnarySpacing, getValue } from '../spacing';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultTheme = createTheme();\n// widening Theme to any so that the consumer can own the theme structure.\nconst defaultCreateStyledComponent = systemStyled('div', {\n name: 'MuiStack',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n});\nfunction useThemePropsDefault(props) {\n return useThemePropsSystem({\n props,\n name: 'MuiStack',\n defaultTheme\n });\n}\n\n/**\n * Return an array with the separator React element interspersed between\n * each React node of the input children.\n *\n * > joinChildren([1,2,3], 0)\n * [1,0,2,0,3]\n */\nfunction joinChildren(children, separator) {\n const childrenArray = React.Children.toArray(children).filter(Boolean);\n return childrenArray.reduce((output, child, index) => {\n output.push(child);\n if (index < childrenArray.length - 1) {\n output.push( /*#__PURE__*/React.cloneElement(separator, {\n key: `separator-${index}`\n }));\n }\n return output;\n }, []);\n}\nconst getSideFromDirection = direction => {\n return {\n row: 'Left',\n 'row-reverse': 'Right',\n column: 'Top',\n 'column-reverse': 'Bottom'\n }[direction];\n};\nexport const style = ({\n ownerState,\n theme\n}) => {\n let styles = _extends({\n display: 'flex',\n flexDirection: 'column'\n }, handleBreakpoints({\n theme\n }, resolveBreakpointValues({\n values: ownerState.direction,\n breakpoints: theme.breakpoints.values\n }), propValue => ({\n flexDirection: propValue\n })));\n if (ownerState.spacing) {\n const transformer = createUnarySpacing(theme);\n const base = Object.keys(theme.breakpoints.values).reduce((acc, breakpoint) => {\n if (typeof ownerState.spacing === 'object' && ownerState.spacing[breakpoint] != null || typeof ownerState.direction === 'object' && ownerState.direction[breakpoint] != null) {\n acc[breakpoint] = true;\n }\n return acc;\n }, {});\n const directionValues = resolveBreakpointValues({\n values: ownerState.direction,\n base\n });\n const spacingValues = resolveBreakpointValues({\n values: ownerState.spacing,\n base\n });\n if (typeof directionValues === 'object') {\n Object.keys(directionValues).forEach((breakpoint, index, breakpoints) => {\n const directionValue = directionValues[breakpoint];\n if (!directionValue) {\n const previousDirectionValue = index > 0 ? directionValues[breakpoints[index - 1]] : 'column';\n directionValues[breakpoint] = previousDirectionValue;\n }\n });\n }\n const styleFromPropValue = (propValue, breakpoint) => {\n if (ownerState.useFlexGap) {\n return {\n gap: getValue(transformer, propValue)\n };\n }\n return {\n '& > :not(style) + :not(style)': {\n margin: 0,\n [`margin${getSideFromDirection(breakpoint ? directionValues[breakpoint] : ownerState.direction)}`]: getValue(transformer, propValue)\n }\n };\n };\n styles = deepmerge(styles, handleBreakpoints({\n theme\n }, spacingValues, styleFromPropValue));\n }\n styles = mergeBreakpointsInOrder(theme.breakpoints, styles);\n return styles;\n};\nexport default function createStack(options = {}) {\n const {\n // This will allow adding custom styled fn (for example for custom sx style function)\n createStyledComponent = defaultCreateStyledComponent,\n useThemeProps = useThemePropsDefault,\n componentName = 'MuiStack'\n } = options;\n const useUtilityClasses = () => {\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, slot => generateUtilityClass(componentName, slot), {});\n };\n const StackRoot = createStyledComponent(style);\n const Stack = /*#__PURE__*/React.forwardRef(function Grid(inProps, ref) {\n const themeProps = useThemeProps(inProps);\n const props = extendSxProp(themeProps); // `color` type conflicts with html color attribute.\n const {\n component = 'div',\n direction = 'column',\n spacing = 0,\n divider,\n children,\n className,\n useFlexGap = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = {\n direction,\n spacing,\n useFlexGap\n };\n const classes = useUtilityClasses();\n return /*#__PURE__*/_jsx(StackRoot, _extends({\n as: component,\n ownerState: ownerState,\n ref: ref,\n className: clsx(classes.root, className)\n }, other, {\n children: divider ? joinChildren(children, divider) : children\n }));\n });\n process.env.NODE_ENV !== \"production\" ? Stack.propTypes /* remove-proptypes */ = {\n children: PropTypes.node,\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n divider: PropTypes.node,\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n } : void 0;\n return Stack;\n}","import PropTypes from 'prop-types';\nimport { createStack } from '@mui/system';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nconst Stack = createStack({\n createStyledComponent: styled('div', {\n name: 'MuiStack',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n }),\n useThemeProps: inProps => useThemeProps({\n props: inProps,\n name: 'MuiStack'\n })\n});\nprocess.env.NODE_ENV !== \"production\" ? Stack.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * Defines the `flex-direction` style property.\n * It is applied for all screen sizes.\n * @default 'column'\n */\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n /**\n * Add an element between each child.\n */\n divider: PropTypes.node,\n /**\n * Defines the space between immediate children.\n * @default 0\n */\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n /**\n * The system prop, which allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * If `true`, the CSS flexbox `gap` is used instead of applying `margin` to children.\n *\n * While CSS `gap` removes the [known limitations](https://mui.com/joy-ui/react-stack/#limitations),\n * it is not fully supported in some browsers. We recommend checking https://caniuse.com/?search=flex%20gap before using this flag.\n *\n * To enable this flag globally, follow the [theme's default props](https://mui.com/material-ui/customization/theme-components/#default-props) configuration.\n * @default false\n */\n useFlexGap: PropTypes.bool\n} : void 0;\nexport default Stack;","import createStyled from './createStyled';\nconst styled = createStyled();\nexport default styled;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n"],"names":["withStyles","theme","createStyles","root","padding","margin","border","backgroundColor","textDecoration","cursor","fontSize","color","palette","info","main","fontFamily","_ref","classes","children","rest","_objectWithoutProperties","_excluded","_jsx","_objectSpread","className","deleteDialogStyles","content","paddingBottom","customDialogSize","width","maxWidth","snackBarCommon","onClose","modalOpen","title","_ref$wideLimit","wideLimit","noContentPadding","_ref$titleIcon","titleIcon","dispatch","useAppDispatch","_useState","useState","_useState2","_slicedToArray","openSnackbar","setOpenSnackbar","modalSnackMessage","useSelector","state","system","modalSnackBar","useEffect","setModalSnackMessage","message","type","customSize","paper","fullWidth","detailedErrorMsg","length","_jsxs","Dialog","open","scroll","event","reason","DialogTitle","titleText","closeContainer","IconButton","id","closeButton","onClick","disableRipple","size","CloseIcon","MainError","isModal","Snackbar","snackBarModal","ContentProps","concat","snackBar","errorSnackBar","autoHideDuration","DialogContent","_ref$label","label","_ref$value","value","_ref$orientation","orientation","_ref$stkProps","stkProps","_ref$lblProps","lblProps","_ref$valProps","valProps","Stack","direction","xs","sm","style","marginRight","fontWeight","totalValue","sizeItems","_ref$bgColor","bgColor","height","borderRadius","display","transitionDuration","overflow","map","sizeElement","index","itemPercentage","toString","totalCapacity","usedSpaceVariants","statusClass","_ref$render","render","colors","BGColor","totalUsedSpace","reduce","acc","currValue","emptySpace","tiersList","standardTier","find","tier","variant","filter","standardTierColor","usedPercentage","plotValues","_toConsumableArray","plotValuesForUsageBar","plotVal","itemName","marginBottom","UsageBar","position","right","top","zIndex","CircleIcon","left","transform","isNaN","niceBytesInt","PieChart","Pie","data","cx","cy","dataKey","outerRadius","innerRadius","fill","isAnimationActive","stroke","entry","Cell","infoText","formFieldStyles","modalStyleUtils","closeModalAndRefresh","namespace","idTenant","isSending","setIsSending","_useState3","_useState4","minioImage","setMinioImage","_useState5","_useState6","imageRegistry","setImageRegistry","_useState7","_useState8","imageRegistryEndpoint","setImageRegistryEndpoint","_useState9","_useState10","imageRegistryUsername","setImageRegistryUsername","_useState11","_useState12","imageRegistryPassword","setImageRegistryPassword","_useState13","_useState14","validMinioImage","setValidMinioImage","validateImage","useCallback","fieldToCheck","pattern","RegExp","test","ModalWrapper","Grid","container","item","modalFormScrollable","formFieldRow","InputBoxWrapper","name","placeholder","onChange","e","target","FormSwitchWrapper","checked","indicatorLabels","Fragment","modalButtonBar","Button","disabled","trim","payload","image","registry","image_registry","username","password","api","invoke","then","setSnackBarMessage","catch","error","setModalErrorSnackMessage","_tenant$status","_tenant$status$usage","_tenant$status2","_tenant$status2$usage","_tenant$status3","_tenant$status3$usage","tenant","healthStatus","loading","raw","unit","capacity","used","localUse","tieredUse","status","usage","parts","niceBytes","split","capacity_usage","spaceVariants","tiers","itemTenant","internalUsage","sum","tieredUsage","partsInternal","_tenant$status4","_tenant$status4$usage","React","textAlign","Loader","_tenant$status5","_tenant$status5$usage","ErrorBlock","errorMessage","withBreak","TenantCapacity","spacing","md","alignItems","LabelValuePair","renderComponent","domainInline","overlayAction","marginLeft","background","domains","consoleDomain","setConsoleDomain","minioDomains","setMinioDomains","consoleDomainValid","setConsoleDomainValid","minioDomainValid","setMinioDomainValid","consoleDomainSet","console","consoleRegExp","minio","minioRegExp","initialValidations","domain","addNewMinIODomain","cloneDomains","cloneValidations","push","configSectionItem","containerItem","validity","valid","updateMinIODomain","domainValid","cloneValidation","setMinioDomainValidation","AddIcon","removeIndex","filteredDomains","_","filterValidations","removeMinIODomain","RemoveIcon","minioDomain","healthStatusToClass","health_status","arguments","undefined","redState","yellowState","greenState","greyState","StorageSummary","SummaryUsageBar","getToggle","toggleValue","TierOnlineIcon","DisableIcon","featureRowStyle","justifyContent","marginTop","flexFlow","featureItemStyleProps","sx","flex","minWidth","tenantDetailsStyles","warning","success","linkedSection","autoGeneratedLink","fontStyle","containerForHeader","_ref2","_tenant$domains","_tenant$domains2","_tenant$endpoints","_tenant$endpoints2","_tenant$endpoints3","_tenant$endpoints4","_tenant$domains3","_tenant$domains4","_tenant$domains5","_tenant$domains6","_tenant$endpoints5","_tenant$endpoints6","_tenant$domains7","_tenant$endpoints7","_tenant$endpoints8","_tenant$endpoints9","_tenant$endpoints10","_tenant$domains8","_tenant$status6","_tenant$status7","_useParams","useParams","tenantName","tenantNamespace","tenants","tenantInfo","encryptionEnabled","get","minioTLS","adEnabled","oidcEnabled","poolCount","setPoolCount","instances","setInstances","volumes","setVolumes","updateMinioVersion","setUpdateMinioVersion","editDomainsOpen","setEditDomainsOpen","_tenant$pools","_tenant$pools2","_tenant$pools3","pools","p","volumes_per_server","servers","UpdateTenantModal","refresh","getTenantAsync","EditDomains","SectionTitle","separator","currentState","AButton","textOverflow","whiteSpace","wordBreak","icon","EditIcon","endpoints","href","rel","write_quorum","drives_online","drives_offline","Box","_theme$palette","errorBlock","_ref$withBreak","Typography","component","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","defaultTheme","createTheme","defaultCreateStyledComponent","systemStyled","slot","overridesResolver","props","styles","useThemePropsDefault","useThemePropsSystem","joinChildren","childrenArray","toArray","Boolean","output","child","key","ownerState","_extends","flexDirection","handleBreakpoints","resolveBreakpointValues","values","breakpoints","propValue","transformer","createUnarySpacing","base","Object","keys","breakpoint","directionValues","spacingValues","forEach","previousDirectionValue","deepmerge","useFlexGap","gap","getValue","_defineProperty","row","column","mergeBreakpointsInOrder","options","_options$createStyled","createStyledComponent","_options$useThemeProp","useThemeProps","_options$componentNam","componentName","StackRoot","inProps","ref","themeProps","extendSxProp","_props$component","_props$direction","_props$spacing","divider","_props$useFlexGap","other","_objectWithoutPropertiesLoose","composeClasses","generateUtilityClass","as","clsx","createStack","styled","createStyled","componentWillMount","this","constructor","getDerivedStateFromProps","setState","componentWillReceiveProps","nextProps","prevState","bind","componentWillUpdate","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","polyfill","Component","prototype","isReactComponent","Error","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","displayName","newApiName","componentDidUpdate","maybeSnapshot","snapshot","call","__suppressDeprecationWarning"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/30.80b393c6.chunk.js","mappings":"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","sources":["screens/Console/Common/AButton/AButton.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Common/UsageBarWrapper/LabelValuePair.tsx","screens/Console/Common/UsageBar/UsageBar.tsx","screens/Console/Tenants/ListTenants/TenantCapacity.tsx","screens/Console/Tenants/TenantDetails/UpdateTenantModal.tsx","screens/Console/Common/UsageBarWrapper/SummaryUsageBar.tsx","screens/Console/Tenants/TenantDetails/EditDomains.tsx","screens/Console/Tenants/TenantDetails/TenantSummary.tsx","screens/shared/ErrorBlock.tsx","../node_modules/@mui/icons-material/Add.js","../node_modules/@mui/system/esm/Stack/createStack.js","../node_modules/@mui/material/Stack/Stack.js","../node_modules/@mui/system/esm/styled.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js"],"sourcesContent":["// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButtonProps } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 0,\n margin: 0,\n border: 0,\n backgroundColor: \"transparent\",\n textDecoration: \"underline\",\n cursor: \"pointer\",\n fontSize: \"inherit\",\n color: theme.palette.info.main,\n fontFamily: \"Inter, sans-serif\",\n },\n });\n\ninterface IAButton extends IconButtonProps {\n classes: any;\n children: any;\n}\n\nconst AButton = ({ classes, children, ...rest }: IAButton) => {\n return (\n \n );\n};\n\nexport default withStyles(styles)(AButton);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\nimport { setModalSnackMessage } from \"../../../../systemSlice\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n noContentPadding?: boolean;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n noContentPadding,\n titleIcon = null,\n}: IModalProps) => {\n const dispatch = useAppDispatch();\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n const modalSnackMessage = useSelector(\n (state: AppState) => state.system.modalSnackBar,\n );\n\n useEffect(() => {\n dispatch(setModalSnackMessage(\"\"));\n }, [dispatch]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n dispatch(setModalSnackMessage(\"\"));\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
\n {titleIcon} {title}\n
\n
\n \n \n \n
\n
\n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nexport default withStyles(styles)(ModalWrapper);\n","import React from \"react\";\nimport { Stack } from \"@mui/material\";\n\ntype LabelValuePairProps = {\n label?: any;\n value?: any;\n orientation?: any;\n stkProps?: any;\n lblProps?: any;\n valProps?: any;\n};\n\nconst LabelValuePair = ({\n label = null,\n value = \"-\",\n orientation = \"column\",\n stkProps = {},\n lblProps = {},\n valProps = {},\n}: LabelValuePairProps) => {\n return (\n \n \n \n \n );\n};\n\nexport default LabelValuePair;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\n\nexport interface ISizeBarItem {\n value: number;\n itemName: string;\n color: string;\n}\n\nexport interface IUsageBar {\n totalValue: number;\n sizeItems: ISizeBarItem[];\n bgColor?: string;\n}\n\nconst UsageBar = ({\n totalValue,\n sizeItems,\n bgColor = \"#ededed\",\n}: IUsageBar) => {\n return (\n \n {sizeItems.map((sizeElement, index) => {\n const itemPercentage = (sizeElement.value * 100) / totalValue;\n return (\n \n );\n })}\n \n );\n};\n\nexport default UsageBar;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Cell, Pie, PieChart } from \"recharts\";\nimport { CapacityValue, CapacityValues } from \"./types\";\nimport { niceBytesInt } from \"../../../../common/utils\";\nimport { CircleIcon } from \"mds\";\nimport UsageBar, { ISizeBarItem } from \"../../Common/UsageBar/UsageBar\";\n\ninterface ITenantCapacity {\n totalCapacity: number;\n usedSpaceVariants: CapacityValues[];\n statusClass: string;\n render?: \"pie\" | \"bar\";\n}\n\nconst TenantCapacity = ({\n totalCapacity,\n usedSpaceVariants,\n statusClass,\n render = \"pie\",\n}: ITenantCapacity) => {\n const colors = [\n \"#8dacd3\",\n \"#bca1ea\",\n \"#92e8d2\",\n \"#efc9ac\",\n \"#97f274\",\n \"#f7d291\",\n \"#71ACCB\",\n \"#f28282\",\n \"#e28cc1\",\n \"#2781B0\",\n ];\n\n const BGColor = \"#ededed\";\n\n const totalUsedSpace = usedSpaceVariants.reduce((acc, currValue) => {\n return acc + currValue.value;\n }, 0);\n\n const emptySpace = totalCapacity - totalUsedSpace;\n\n let tiersList: CapacityValue[] = [];\n\n const standardTier = usedSpaceVariants.find(\n (tier) => tier.variant === \"STANDARD\",\n ) || {\n value: 0,\n variant: \"empty\",\n };\n\n if (usedSpaceVariants.length > 10) {\n const totalUsedByTiers = totalUsedSpace - standardTier.value;\n\n tiersList = [\n { value: totalUsedByTiers, color: \"#2781B0\", label: \"Total Tiers Space\" },\n ];\n } else {\n tiersList = usedSpaceVariants\n .filter((variant) => variant.variant !== \"STANDARD\")\n .map((variant, index) => {\n return {\n value: variant.value,\n color: colors[index],\n label: `Tier - ${variant.variant}`,\n };\n });\n }\n\n let standardTierColor = \"#07193E\";\n\n const usedPercentage = (standardTier.value * 100) / totalCapacity;\n\n if (usedPercentage >= 90) {\n standardTierColor = \"#C83B51\";\n } else if (usedPercentage >= 75) {\n standardTierColor = \"#FFAB0F\";\n }\n\n const plotValues: CapacityValue[] = [\n {\n value: standardTier.value,\n color: standardTierColor,\n label: \"Used Space by Tenant\",\n },\n ...tiersList,\n {\n value: emptySpace,\n color: render === \"bar\" ? BGColor : \"transparent\",\n label: \"Empty Space\",\n },\n ];\n\n if (render === \"bar\") {\n const plotValuesForUsageBar: ISizeBarItem[] = plotValues.map((plotVal) => {\n return {\n value: plotVal.value,\n color: plotVal.color,\n itemName: plotVal.label,\n };\n });\n\n return (\n
\n \n
\n );\n }\n\n return (\n
\n \n \n
\n \n {!isNaN(totalUsedSpace) ? niceBytesInt(totalUsedSpace) : \"N/A\"}\n \n
\n \n \n \n {plotValues.map((entry, index) => (\n \n ))}\n \n \n
\n \n );\n};\n\nexport default TenantCapacity;\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { Button } from \"mds\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid } from \"@mui/material\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport api from \"../../../../common/api\";\nimport {\n setModalErrorSnackMessage,\n setSnackBarMessage,\n} from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface IUpdateTenantModal {\n open: boolean;\n closeModalAndRefresh: (update: boolean) => any;\n namespace: string;\n idTenant: string;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n infoText: {\n fontSize: 14,\n },\n ...formFieldStyles,\n ...modalStyleUtils,\n });\n\nconst UpdateTenantModal = ({\n open,\n closeModalAndRefresh,\n namespace,\n idTenant,\n classes,\n}: IUpdateTenantModal) => {\n const dispatch = useAppDispatch();\n const [isSending, setIsSending] = useState(false);\n const [minioImage, setMinioImage] = useState(\"\");\n const [imageRegistry, setImageRegistry] = useState(false);\n const [imageRegistryEndpoint, setImageRegistryEndpoint] =\n useState(\"\");\n const [imageRegistryUsername, setImageRegistryUsername] =\n useState(\"\");\n const [imageRegistryPassword, setImageRegistryPassword] =\n useState(\"\");\n const [validMinioImage, setValidMinioImage] = useState(true);\n\n const validateImage = useCallback(\n (fieldToCheck: string) => {\n const pattern = new RegExp(\"^$|^((.*?)/(.*?):(.+))$\");\n\n switch (fieldToCheck) {\n case \"minioImage\":\n setValidMinioImage(pattern.test(minioImage));\n break;\n }\n },\n [minioImage],\n );\n\n useEffect(() => {\n validateImage(\"minioImage\");\n }, [minioImage, validateImage]);\n\n const closeAction = () => {\n closeModalAndRefresh(false);\n };\n\n const resetForm = () => {\n setMinioImage(\"\");\n setImageRegistry(false);\n setImageRegistryEndpoint(\"\");\n setImageRegistryUsername(\"\");\n setImageRegistryPassword(\"\");\n };\n\n const updateMinIOImage = () => {\n setIsSending(true);\n\n let payload = {\n image: minioImage,\n };\n\n if (imageRegistry) {\n const registry: any = {\n image_registry: {\n registry: imageRegistryEndpoint,\n username: imageRegistryUsername,\n password: imageRegistryPassword,\n },\n };\n payload = {\n ...payload,\n ...registry,\n };\n }\n\n api\n .invoke(\n \"PUT\",\n `/api/v1/namespaces/${namespace}/tenants/${idTenant}`,\n payload,\n )\n .then(() => {\n setIsSending(false);\n dispatch(setSnackBarMessage(`Image updated successfully`));\n closeModalAndRefresh(true);\n })\n .catch((error: ErrorResponseHandler) => {\n dispatch(setModalErrorSnackMessage(error));\n setIsSending(false);\n });\n };\n\n return (\n \n \n \n
\n Please enter the MinIO image from dockerhub to use. If blank, then\n latest build will be used.\n
\n
\n
\n \n {\n setMinioImage(e.target.value);\n }}\n />\n \n \n ) => {\n setImageRegistry(!imageRegistry);\n }}\n label={\"Set Custom Image Registry\"}\n indicatorLabels={[\"Yes\", \"No\"]}\n />\n \n {imageRegistry && (\n \n \n {\n setImageRegistryEndpoint(e.target.value);\n }}\n />\n \n \n {\n setImageRegistryUsername(e.target.value);\n }}\n />\n \n \n {\n setImageRegistryPassword(e.target.value);\n }}\n />\n \n \n )}\n
\n \n \n \n \n
\n \n );\n};\n\nexport default withStyles(styles)(UpdateTenantModal);\n","import React, { Fragment } from \"react\";\nimport { Stack } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport { CapacityValues, ValueUnit } from \"../../Tenants/ListTenants/types\";\nimport { CircleIcon, Loader } from \"mds\";\nimport { niceBytes, niceBytesInt } from \"../../../../common/utils\";\nimport TenantCapacity from \"../../Tenants/ListTenants/TenantCapacity\";\nimport ErrorBlock from \"../../../shared/ErrorBlock\";\nimport LabelValuePair from \"./LabelValuePair\";\nimport { Tenant } from \"../../../../api/operatorApi\";\n\ninterface ISummaryUsageBar {\n tenant: Tenant;\n label: string;\n error: string;\n loading: boolean;\n labels?: boolean;\n healthStatus?: string;\n}\n\nconst SummaryUsageBar = ({\n tenant,\n healthStatus,\n loading,\n error,\n}: ISummaryUsageBar) => {\n let raw: ValueUnit = { value: \"n/a\", unit: \"\" };\n let capacity: ValueUnit = { value: \"n/a\", unit: \"\" };\n let used: ValueUnit = { value: \"n/a\", unit: \"\" };\n let localUse: ValueUnit = { value: \"n/a\", unit: \"\" };\n let tieredUse: ValueUnit = { value: \"n/a\", unit: \"\" };\n\n if (tenant.status?.usage?.raw) {\n const b = niceBytes(`${tenant.status.usage.raw}`, true);\n const parts = b.split(\" \");\n raw.value = parts[0];\n raw.unit = parts[1];\n }\n if (tenant.status?.usage?.capacity) {\n const b = niceBytes(`${tenant.status.usage.capacity}`, true);\n const parts = b.split(\" \");\n capacity.value = parts[0];\n capacity.unit = parts[1];\n }\n if (tenant.status?.usage?.capacity_usage) {\n const b = niceBytesInt(tenant.status.usage.capacity_usage, true);\n const parts = b.split(\" \");\n used.value = parts[0];\n used.unit = parts[1];\n }\n\n let spaceVariants: CapacityValues[] = [];\n if (!tenant.tiers || tenant.tiers.length === 0) {\n spaceVariants = [\n { value: tenant.status?.usage?.capacity_usage || 0, variant: \"STANDARD\" },\n ];\n } else {\n spaceVariants = tenant.tiers.map((itemTenant) => {\n return { value: itemTenant.size!, variant: itemTenant.name! };\n });\n let internalUsage = tenant.tiers\n .filter((itemTenant) => {\n return itemTenant.type === \"internal\";\n })\n .reduce((sum, itemTenant) => sum + itemTenant.size!, 0);\n let tieredUsage = tenant.tiers\n .filter((itemTenant) => {\n return itemTenant.type !== \"internal\";\n })\n .reduce((sum, itemTenant) => sum + itemTenant.size!, 0);\n\n const t = niceBytesInt(tieredUsage, true);\n const parts = t.split(\" \");\n tieredUse.value = parts[0];\n tieredUse.unit = parts[1];\n\n const is = niceBytesInt(internalUsage, true);\n const partsInternal = is.split(\" \");\n localUse.value = partsInternal[0];\n localUse.unit = partsInternal[1];\n }\n\n const renderComponent = () => {\n if (!loading) {\n return error !== \"\" ? (\n \n ) : (\n \n \n \n {(!tenant.tiers || tenant.tiers.length === 0) && (\n \n \n \n )}\n {tenant.tiers && tenant.tiers.length > 0 && (\n \n \n \n \n )}\n {healthStatus && (\n \n \n \n }\n />\n )}\n \n \n );\n }\n\n return null;\n };\n\n return (\n \n {loading && (\n
\n \n \n \n
\n )}\n {renderComponent()}\n
\n );\n};\n\nexport default SummaryUsageBar;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { Button, RemoveIcon } from \"mds\";\nimport { Grid, IconButton } from \"@mui/material\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport {\n ErrorResponseHandler,\n IDomainsRequest,\n} from \"../../../../common/types\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport api from \"../../../../common/api\";\nimport {\n setModalErrorSnackMessage,\n setSnackBarMessage,\n} from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface IEditDomains {\n open: boolean;\n closeModalAndRefresh: (update: boolean) => any;\n namespace: string;\n idTenant: string;\n domains: IDomainsRequest | null;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n domainInline: {\n display: \"flex\",\n marginBottom: 15,\n },\n overlayAction: {\n marginLeft: 10,\n display: \"flex\",\n alignItems: \"center\",\n \"& svg\": {\n width: 15,\n height: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n ...formFieldStyles,\n ...modalStyleUtils,\n });\n\nconst EditDomains = ({\n open,\n closeModalAndRefresh,\n namespace,\n idTenant,\n domains,\n classes,\n}: IEditDomains) => {\n const dispatch = useAppDispatch();\n const [isSending, setIsSending] = useState(false);\n const [consoleDomain, setConsoleDomain] = useState(\"\");\n const [minioDomains, setMinioDomains] = useState([\"\"]);\n const [consoleDomainValid, setConsoleDomainValid] = useState(true);\n const [minioDomainValid, setMinioDomainValid] = useState([true]);\n\n useEffect(() => {\n if (domains) {\n const consoleDomainSet = domains.console || \"\";\n setConsoleDomain(consoleDomainSet);\n\n if (consoleDomainSet !== \"\") {\n // We Validate console domain\n const consoleRegExp = new RegExp(\n /^(https?):\\/\\/([a-zA-Z0-9\\-.]+)(:[0-9]+)?(\\/[a-zA-Z0-9\\-./]*)?$/,\n );\n\n setConsoleDomainValid(consoleRegExp.test(consoleDomainSet));\n } else {\n setConsoleDomainValid(true);\n }\n\n if (domains.minio && domains.minio.length > 0) {\n setMinioDomains(domains.minio);\n\n const minioRegExp = new RegExp(\n /^(https?):\\/\\/([a-zA-Z0-9\\-.]+)(:[0-9]+)?$/,\n );\n\n const initialValidations = domains.minio.map((domain) => {\n if (domain.trim() !== \"\") {\n return minioRegExp.test(domain);\n } else {\n return true;\n }\n });\n\n setMinioDomainValid(initialValidations);\n }\n }\n }, [domains]);\n\n const closeAction = () => {\n closeModalAndRefresh(false);\n };\n\n const resetForm = () => {\n setConsoleDomain(\"\");\n setConsoleDomainValid(true);\n setMinioDomains([\"\"]);\n setMinioDomainValid([true]);\n };\n\n const updateDomainsList = () => {\n setIsSending(true);\n\n let payload = {\n domains: {\n console: consoleDomain,\n minio: minioDomains.filter((minioDomain) => minioDomain.trim() !== \"\"),\n },\n };\n api\n .invoke(\n \"PUT\",\n `/api/v1/namespaces/${namespace}/tenants/${idTenant}/domains`,\n payload,\n )\n .then(() => {\n setIsSending(false);\n dispatch(setSnackBarMessage(`Domains updated successfully`));\n closeModalAndRefresh(true);\n })\n .catch((error: ErrorResponseHandler) => {\n setIsSending(false);\n dispatch(setModalErrorSnackMessage(error));\n });\n };\n\n const updateMinIODomain = (value: string, index: number) => {\n const cloneDomains = [...minioDomains];\n cloneDomains[index] = value;\n\n setMinioDomains(cloneDomains);\n };\n\n const addNewMinIODomain = () => {\n const cloneDomains = [...minioDomains];\n const cloneValidations = [...minioDomainValid];\n\n cloneDomains.push(\"\");\n cloneValidations.push(true);\n\n setMinioDomains(cloneDomains);\n setMinioDomainValid(cloneValidations);\n };\n\n const removeMinIODomain = (removeIndex: number) => {\n const filteredDomains = minioDomains.filter(\n (_, index) => index !== removeIndex,\n );\n\n const filterValidations = minioDomainValid.filter(\n (_, index) => index !== removeIndex,\n );\n\n setMinioDomains(filteredDomains);\n setMinioDomainValid(filterValidations);\n };\n\n const setMinioDomainValidation = (domainValid: boolean, index: number) => {\n const cloneValidation = [...minioDomainValid];\n cloneValidation[index] = domainValid;\n\n setMinioDomainValid(cloneValidation);\n };\n return (\n \n \n \n \n
\n ) => {\n setConsoleDomain(e.target.value);\n\n setConsoleDomainValid(e.target.validity.valid);\n }}\n label=\"Console Domain\"\n value={consoleDomain}\n placeholder={\n \"Eg. http://subdomain.domain:port/subpath1/subpath2\"\n }\n pattern={\n \"^(https?):\\\\/\\\\/([a-zA-Z0-9\\\\-.]+)(:[0-9]+)?(\\\\/[a-zA-Z0-9\\\\-.\\\\/]*)?$\"\n }\n error={\n !consoleDomainValid\n ? \"Domain format is incorrect (http|https://subdomain.domain:port/subpath1/subpath2)\"\n : \"\"\n }\n />\n
\n
\n

MinIO Domains

\n
\n {minioDomains.map((domain, index) => {\n return (\n \n ) => {\n updateMinIODomain(e.target.value, index);\n setMinioDomainValidation(\n e.target.validity.valid,\n index,\n );\n }}\n label={`MinIO Domain ${index + 1}`}\n value={domain}\n placeholder={\"Eg. http://subdomain.domain\"}\n pattern={\n \"^(https?):\\\\/\\\\/([a-zA-Z0-9\\\\-.]+)(:[0-9]+)?$\"\n }\n error={\n !minioDomainValid[index]\n ? \"MinIO domain format is incorrect (http|https://subdomain.domain)\"\n : \"\"\n }\n />\n
\n \n \n \n
\n\n
\n removeMinIODomain(index)}\n disabled={minioDomains.length <= 1}\n >\n \n \n
\n
\n );\n })}\n
\n \n
\n \n \n !domain).length > 0\n }\n onClick={updateDomainsList}\n label={\"Save\"}\n />\n \n
\n
\n \n );\n};\n\nexport default withStyles(styles)(EditDomains);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n containerForHeader,\n tenantDetailsStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { Box, Grid } from \"@mui/material\";\nimport UpdateTenantModal from \"./UpdateTenantModal\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport AButton from \"../../Common/AButton/AButton\";\nimport SummaryUsageBar from \"../../Common/UsageBarWrapper/SummaryUsageBar\";\nimport LabelValuePair from \"../../Common/UsageBarWrapper/LabelValuePair\";\nimport SectionTitle from \"../../Common/SectionTitle\";\nimport { Button, DisableIcon, EditIcon, TierOnlineIcon } from \"mds\";\nimport EditDomains from \"./EditDomains\";\nimport { useParams } from \"react-router-dom\";\nimport { getTenantAsync } from \"../thunks/tenantDetailsAsync\";\nimport { Tenant } from \"../../../../api/operatorApi\";\n\ninterface ITenantsSummary {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n redState: {\n color: theme.palette.error.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n yellowState: {\n color: theme.palette.warning.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n greenState: {\n color: theme.palette.success.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n greyState: {\n color: \"grey\",\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n linkedSection: {\n color: theme.palette.info.main,\n fontFamily: \"'Inter', sans-serif\",\n },\n autoGeneratedLink: {\n fontStyle: \"italic\",\n },\n ...containerForHeader,\n });\n\nconst healthStatusToClass = (health_status: string = \"red\", classes: any) => {\n return health_status === \"red\"\n ? classes.redState\n : health_status === \"yellow\"\n ? classes.yellowState\n : health_status === \"green\"\n ? classes.greenState\n : classes.greyState;\n};\n\nconst StorageSummary = ({\n tenant,\n classes,\n}: {\n tenant: Tenant | null;\n classes: any;\n}) => {\n if (!tenant) {\n return null;\n }\n\n return (\n \n );\n};\n\nconst getToggle = (toggleValue: boolean, idPrefix = \"\") => {\n if (toggleValue) {\n return ;\n }\n return ;\n};\n\nconst featureRowStyle = {\n display: \"flex\",\n justifyContent: \"space-between\",\n marginTop: \"10px\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n};\n\nconst featureItemStyleProps = {\n stkProps: {\n sx: {\n flex: 1,\n marginRight: 10,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n \"@media (max-width: 900px)\": {\n marginRight: \"25px\",\n },\n },\n },\n lblProps: {\n style: {\n minWidth: 100,\n },\n },\n};\nconst TenantSummary = ({ classes }: ITenantsSummary) => {\n const dispatch = useAppDispatch();\n const { tenantName, tenantNamespace } = useParams();\n\n const tenant = useSelector((state: AppState) => state.tenants.tenantInfo);\n const encryptionEnabled = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"encryptionEnabled\", false),\n );\n const minioTLS = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"minioTLS\", false),\n );\n const adEnabled = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"idpAdEnabled\", false),\n );\n const oidcEnabled = useSelector((state: AppState) =>\n get(state.tenants.tenantInfo, \"idpOidcEnabled\", false),\n );\n\n const [poolCount, setPoolCount] = useState(0);\n const [instances, setInstances] = useState(0);\n const [volumes, setVolumes] = useState(0);\n const [updateMinioVersion, setUpdateMinioVersion] = useState(false);\n const [editDomainsOpen, setEditDomainsOpen] = useState(false);\n\n useEffect(() => {\n if (tenant) {\n setPoolCount(tenant?.pools?.length || 0);\n setVolumes(\n tenant.pools?.reduce(\n (sum, p) => sum + p.volumes_per_server * p.servers,\n 0,\n ) || 0,\n );\n setInstances(tenant.pools?.reduce((sum, p) => sum + p.servers, 0) || 0);\n }\n }, [tenant]);\n\n const closeEditDomainsModal = (refresh: boolean) => {\n setEditDomainsOpen(false);\n if (refresh) {\n dispatch(getTenantAsync());\n }\n };\n\n return (\n \n {updateMinioVersion && (\n {\n setUpdateMinioVersion(false);\n if (refresh) {\n dispatch(getTenantAsync());\n }\n }}\n idTenant={tenantName || \"\"}\n namespace={tenantNamespace || \"\"}\n />\n )}\n\n {editDomainsOpen && (\n \n )}\n\n Details\n\n \n\n \n \n \n \n \n \n {\n setUpdateMinioVersion(true);\n }}\n >\n {tenant ? tenant.image : \"\"}\n \n }\n />\n \n \n

\n Domains\n }\n onClick={() => {\n setEditDomainsOpen(true);\n }}\n />\n

\n
\n \n \n {(!tenant?.domains?.console ||\n tenant?.domains?.console === \"\") &&\n !tenant?.endpoints?.console\n ? \"-\"\n : \"\"}\n\n {tenant?.endpoints?.console && (\n \n \n {tenant?.endpoints?.console || \"-\"}\n \n
\n
\n )}\n\n {tenant?.domains?.console &&\n tenant?.domains?.console !== \"\" && (\n \n {tenant?.domains?.console || \"\"}\n \n )}\n
\n }\n />\n \n \n \n {!tenant?.domains?.minio && !tenant?.endpoints?.minio\n ? \"-\"\n : \"\"}\n {tenant?.endpoints?.minio && (\n \n \n {tenant?.endpoints?.minio || \"-\"}\n \n
\n
\n )}\n\n {tenant?.domains?.minio &&\n tenant.domains.minio.map((domain) => {\n return (\n \n \n {domain}\n \n
\n
\n );\n })}\n \n }\n />\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n Features\n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default withStyles(styles)(TenantSummary);\n","import React from \"react\";\nimport Typography from \"@mui/material/Typography\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n errorBlock: {\n color: theme.palette?.error.main || \"#C83B51\",\n },\n });\n\ninterface IErrorBlockProps {\n classes: any;\n errorMessage: string;\n withBreak?: boolean;\n}\n\nconst ErrorBlock = ({\n classes,\n errorMessage,\n withBreak = true,\n}: IErrorBlockProps) => {\n return (\n \n {withBreak &&
}\n \n {errorMessage}\n \n
\n );\n};\n\nexport default withStyles(styles)(ErrorBlock);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"\n}), 'Add');\nexports.default = _default;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"component\", \"direction\", \"spacing\", \"divider\", \"children\", \"className\", \"useFlexGap\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { deepmerge, unstable_composeClasses as composeClasses, unstable_generateUtilityClass as generateUtilityClass } from '@mui/utils';\nimport systemStyled from '../styled';\nimport useThemePropsSystem from '../useThemeProps';\nimport { extendSxProp } from '../styleFunctionSx';\nimport createTheme from '../createTheme';\nimport { handleBreakpoints, mergeBreakpointsInOrder, resolveBreakpointValues } from '../breakpoints';\nimport { createUnarySpacing, getValue } from '../spacing';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultTheme = createTheme();\n// widening Theme to any so that the consumer can own the theme structure.\nconst defaultCreateStyledComponent = systemStyled('div', {\n name: 'MuiStack',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n});\nfunction useThemePropsDefault(props) {\n return useThemePropsSystem({\n props,\n name: 'MuiStack',\n defaultTheme\n });\n}\n\n/**\n * Return an array with the separator React element interspersed between\n * each React node of the input children.\n *\n * > joinChildren([1,2,3], 0)\n * [1,0,2,0,3]\n */\nfunction joinChildren(children, separator) {\n const childrenArray = React.Children.toArray(children).filter(Boolean);\n return childrenArray.reduce((output, child, index) => {\n output.push(child);\n if (index < childrenArray.length - 1) {\n output.push( /*#__PURE__*/React.cloneElement(separator, {\n key: `separator-${index}`\n }));\n }\n return output;\n }, []);\n}\nconst getSideFromDirection = direction => {\n return {\n row: 'Left',\n 'row-reverse': 'Right',\n column: 'Top',\n 'column-reverse': 'Bottom'\n }[direction];\n};\nexport const style = ({\n ownerState,\n theme\n}) => {\n let styles = _extends({\n display: 'flex',\n flexDirection: 'column'\n }, handleBreakpoints({\n theme\n }, resolveBreakpointValues({\n values: ownerState.direction,\n breakpoints: theme.breakpoints.values\n }), propValue => ({\n flexDirection: propValue\n })));\n if (ownerState.spacing) {\n const transformer = createUnarySpacing(theme);\n const base = Object.keys(theme.breakpoints.values).reduce((acc, breakpoint) => {\n if (typeof ownerState.spacing === 'object' && ownerState.spacing[breakpoint] != null || typeof ownerState.direction === 'object' && ownerState.direction[breakpoint] != null) {\n acc[breakpoint] = true;\n }\n return acc;\n }, {});\n const directionValues = resolveBreakpointValues({\n values: ownerState.direction,\n base\n });\n const spacingValues = resolveBreakpointValues({\n values: ownerState.spacing,\n base\n });\n if (typeof directionValues === 'object') {\n Object.keys(directionValues).forEach((breakpoint, index, breakpoints) => {\n const directionValue = directionValues[breakpoint];\n if (!directionValue) {\n const previousDirectionValue = index > 0 ? directionValues[breakpoints[index - 1]] : 'column';\n directionValues[breakpoint] = previousDirectionValue;\n }\n });\n }\n const styleFromPropValue = (propValue, breakpoint) => {\n if (ownerState.useFlexGap) {\n return {\n gap: getValue(transformer, propValue)\n };\n }\n return {\n '& > :not(style) + :not(style)': {\n margin: 0,\n [`margin${getSideFromDirection(breakpoint ? directionValues[breakpoint] : ownerState.direction)}`]: getValue(transformer, propValue)\n }\n };\n };\n styles = deepmerge(styles, handleBreakpoints({\n theme\n }, spacingValues, styleFromPropValue));\n }\n styles = mergeBreakpointsInOrder(theme.breakpoints, styles);\n return styles;\n};\nexport default function createStack(options = {}) {\n const {\n // This will allow adding custom styled fn (for example for custom sx style function)\n createStyledComponent = defaultCreateStyledComponent,\n useThemeProps = useThemePropsDefault,\n componentName = 'MuiStack'\n } = options;\n const useUtilityClasses = () => {\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, slot => generateUtilityClass(componentName, slot), {});\n };\n const StackRoot = createStyledComponent(style);\n const Stack = /*#__PURE__*/React.forwardRef(function Grid(inProps, ref) {\n const themeProps = useThemeProps(inProps);\n const props = extendSxProp(themeProps); // `color` type conflicts with html color attribute.\n const {\n component = 'div',\n direction = 'column',\n spacing = 0,\n divider,\n children,\n className,\n useFlexGap = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = {\n direction,\n spacing,\n useFlexGap\n };\n const classes = useUtilityClasses();\n return /*#__PURE__*/_jsx(StackRoot, _extends({\n as: component,\n ownerState: ownerState,\n ref: ref,\n className: clsx(classes.root, className)\n }, other, {\n children: divider ? joinChildren(children, divider) : children\n }));\n });\n process.env.NODE_ENV !== \"production\" ? Stack.propTypes /* remove-proptypes */ = {\n children: PropTypes.node,\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n divider: PropTypes.node,\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n } : void 0;\n return Stack;\n}","import PropTypes from 'prop-types';\nimport { createStack } from '@mui/system';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nconst Stack = createStack({\n createStyledComponent: styled('div', {\n name: 'MuiStack',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n }),\n useThemeProps: inProps => useThemeProps({\n props: inProps,\n name: 'MuiStack'\n })\n});\nprocess.env.NODE_ENV !== \"production\" ? Stack.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * Defines the `flex-direction` style property.\n * It is applied for all screen sizes.\n * @default 'column'\n */\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n /**\n * Add an element between each child.\n */\n divider: PropTypes.node,\n /**\n * Defines the space between immediate children.\n * @default 0\n */\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n /**\n * The system prop, which allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * If `true`, the CSS flexbox `gap` is used instead of applying `margin` to children.\n *\n * While CSS `gap` removes the [known limitations](https://mui.com/joy-ui/react-stack/#limitations),\n * it is not fully supported in some browsers. We recommend checking https://caniuse.com/?search=flex%20gap before using this flag.\n *\n * To enable this flag globally, follow the [theme's default props](https://mui.com/material-ui/customization/theme-components/#default-props) configuration.\n * @default false\n */\n useFlexGap: PropTypes.bool\n} : void 0;\nexport default Stack;","import createStyled from './createStyled';\nconst styled = createStyled();\nexport default styled;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n"],"names":["withStyles","theme","createStyles","root","padding","margin","border","backgroundColor","textDecoration","cursor","fontSize","color","palette","info","main","fontFamily","_ref","classes","children","rest","_objectWithoutProperties","_excluded","_jsx","_objectSpread","className","deleteDialogStyles","content","paddingBottom","customDialogSize","width","maxWidth","snackBarCommon","onClose","modalOpen","title","_ref$wideLimit","wideLimit","noContentPadding","_ref$titleIcon","titleIcon","dispatch","useAppDispatch","_useState","useState","_useState2","_slicedToArray","openSnackbar","setOpenSnackbar","modalSnackMessage","useSelector","state","system","modalSnackBar","useEffect","setModalSnackMessage","message","type","customSize","paper","fullWidth","detailedErrorMsg","length","_jsxs","Dialog","open","scroll","event","reason","DialogTitle","titleText","closeContainer","IconButton","id","closeButton","onClick","disableRipple","size","CloseIcon","MainError","isModal","Snackbar","snackBarModal","ContentProps","concat","snackBar","errorSnackBar","autoHideDuration","DialogContent","_ref$label","label","_ref$value","value","_ref$orientation","orientation","_ref$stkProps","stkProps","_ref$lblProps","lblProps","_ref$valProps","valProps","Stack","direction","xs","sm","style","marginRight","fontWeight","totalValue","sizeItems","_ref$bgColor","bgColor","height","borderRadius","display","transitionDuration","overflow","map","sizeElement","index","itemPercentage","toString","totalCapacity","usedSpaceVariants","statusClass","_ref$render","render","colors","BGColor","totalUsedSpace","reduce","acc","currValue","emptySpace","tiersList","standardTier","find","tier","variant","filter","standardTierColor","usedPercentage","plotValues","_toConsumableArray","plotValuesForUsageBar","plotVal","itemName","marginBottom","UsageBar","position","right","top","zIndex","CircleIcon","left","transform","isNaN","niceBytesInt","PieChart","Pie","data","cx","cy","dataKey","outerRadius","innerRadius","fill","isAnimationActive","stroke","entry","Cell","infoText","formFieldStyles","modalStyleUtils","closeModalAndRefresh","namespace","idTenant","isSending","setIsSending","_useState3","_useState4","minioImage","setMinioImage","_useState5","_useState6","imageRegistry","setImageRegistry","_useState7","_useState8","imageRegistryEndpoint","setImageRegistryEndpoint","_useState9","_useState10","imageRegistryUsername","setImageRegistryUsername","_useState11","_useState12","imageRegistryPassword","setImageRegistryPassword","_useState13","_useState14","validMinioImage","setValidMinioImage","validateImage","useCallback","fieldToCheck","pattern","RegExp","test","ModalWrapper","Grid","container","item","modalFormScrollable","formFieldRow","InputBoxWrapper","name","placeholder","onChange","e","target","FormSwitchWrapper","checked","indicatorLabels","Fragment","modalButtonBar","Button","disabled","trim","payload","image","registry","image_registry","username","password","api","invoke","then","setSnackBarMessage","catch","error","setModalErrorSnackMessage","_tenant$status","_tenant$status$usage","_tenant$status2","_tenant$status2$usage","_tenant$status3","_tenant$status3$usage","tenant","healthStatus","loading","raw","unit","capacity","used","localUse","tieredUse","status","usage","parts","niceBytes","split","capacity_usage","spaceVariants","tiers","itemTenant","internalUsage","sum","tieredUsage","partsInternal","_tenant$status4","_tenant$status4$usage","React","textAlign","Loader","_tenant$status5","_tenant$status5$usage","ErrorBlock","errorMessage","withBreak","TenantCapacity","spacing","md","alignItems","LabelValuePair","renderComponent","domainInline","overlayAction","marginLeft","background","domains","consoleDomain","setConsoleDomain","minioDomains","setMinioDomains","consoleDomainValid","setConsoleDomainValid","minioDomainValid","setMinioDomainValid","consoleDomainSet","console","consoleRegExp","minio","minioRegExp","initialValidations","domain","addNewMinIODomain","cloneDomains","cloneValidations","push","configSectionItem","containerItem","validity","valid","updateMinIODomain","domainValid","cloneValidation","setMinioDomainValidation","AddIcon","removeIndex","filteredDomains","_","filterValidations","removeMinIODomain","RemoveIcon","minioDomain","healthStatusToClass","health_status","arguments","undefined","redState","yellowState","greenState","greyState","StorageSummary","SummaryUsageBar","getToggle","toggleValue","TierOnlineIcon","DisableIcon","featureRowStyle","justifyContent","marginTop","flexFlow","featureItemStyleProps","sx","flex","minWidth","tenantDetailsStyles","warning","success","linkedSection","autoGeneratedLink","fontStyle","containerForHeader","_ref2","_tenant$domains","_tenant$domains2","_tenant$endpoints","_tenant$endpoints2","_tenant$endpoints3","_tenant$endpoints4","_tenant$domains3","_tenant$domains4","_tenant$domains5","_tenant$domains6","_tenant$endpoints5","_tenant$endpoints6","_tenant$domains7","_tenant$endpoints7","_tenant$endpoints8","_tenant$endpoints9","_tenant$endpoints10","_tenant$domains8","_tenant$status6","_tenant$status7","_useParams","useParams","tenantName","tenantNamespace","tenants","tenantInfo","encryptionEnabled","get","minioTLS","adEnabled","oidcEnabled","poolCount","setPoolCount","instances","setInstances","volumes","setVolumes","updateMinioVersion","setUpdateMinioVersion","editDomainsOpen","setEditDomainsOpen","_tenant$pools","_tenant$pools2","_tenant$pools3","pools","p","volumes_per_server","servers","UpdateTenantModal","refresh","getTenantAsync","EditDomains","SectionTitle","separator","currentState","AButton","textOverflow","whiteSpace","wordBreak","icon","EditIcon","endpoints","href","rel","write_quorum","drives_online","drives_offline","Box","_theme$palette","errorBlock","_ref$withBreak","Typography","component","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","defaultTheme","createTheme","defaultCreateStyledComponent","systemStyled","slot","overridesResolver","props","styles","useThemePropsDefault","useThemePropsSystem","joinChildren","childrenArray","toArray","Boolean","output","child","key","ownerState","_extends","flexDirection","handleBreakpoints","resolveBreakpointValues","values","breakpoints","propValue","transformer","createUnarySpacing","base","Object","keys","breakpoint","directionValues","spacingValues","forEach","previousDirectionValue","deepmerge","useFlexGap","gap","getValue","_defineProperty","row","column","mergeBreakpointsInOrder","options","_options$createStyled","createStyledComponent","_options$useThemeProp","useThemeProps","_options$componentNam","componentName","StackRoot","inProps","ref","themeProps","extendSxProp","_props$component","_props$direction","_props$spacing","divider","_props$useFlexGap","other","_objectWithoutPropertiesLoose","composeClasses","generateUtilityClass","as","clsx","createStack","styled","createStyled","componentWillMount","this","constructor","getDerivedStateFromProps","setState","componentWillReceiveProps","nextProps","prevState","bind","componentWillUpdate","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","polyfill","Component","prototype","isReactComponent","Error","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","displayName","newApiName","componentDidUpdate","maybeSnapshot","snapshot","call","__suppressDeprecationWarning"],"sourceRoot":""} \ No newline at end of file diff --git a/web-app/build/static/js/33.8113b137.chunk.js b/web-app/build/static/js/33.8113b137.chunk.js new file mode 100644 index 00000000000..8c385a13ff7 --- /dev/null +++ b/web-app/build/static/js/33.8113b137.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[33],{81806:function(e,t,n){var a=n(1413),i=n(45987),r=(n(72791),n(11135)),s=n(25787),l=n(80184),c=["classes","children"];t.Z=(0,s.Z)((function(e){return(0,r.Z)({root:{padding:0,margin:0,border:0,backgroundColor:"transparent",textDecoration:"underline",cursor:"pointer",fontSize:"inherit",color:e.palette.info.main,fontFamily:"Inter, sans-serif"}})}))((function(e){var t=e.classes,n=e.children,r=(0,i.Z)(e,c);return(0,l.jsx)("button",(0,a.Z)((0,a.Z)({},r),{},{className:t.root,children:n}))}))},75578:function(e,t,n){var a=n(1413),i=n(72791),r=n(80184);t.Z=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return function(n){return(0,r.jsx)(i.Suspense,{fallback:t,children:(0,r.jsx)(e,(0,a.Z)({},n))})}}},27454:function(e,t,n){var a=n(1413),i=n(72791),r=n(96040),s=n(80184);t.Z=function(e){var t=e.tooltip,n=e.children,l=e.errorProps,c=void 0===l?null:l,o=e.placement;return(0,s.jsx)(r.Z,{title:t,placement:o,children:(0,s.jsx)("span",{children:c?(0,i.cloneElement)(n,(0,a.Z)({},c)):n})})}},76033:function(e,t,n){n.r(t),n.d(t,{default:function(){return L}});var a=n(29439),i=n(72791),r=n(75952),s=n(61889),l=n(57482),c=n(57689),o=n(17238),u=n(82295),d=n(45248),h=n(80184),f=function(e){var t=e.label,n=e.value,a=e.unit,r=e.variant,s=void 0===r?"normal":r;return(0,h.jsxs)("div",{style:{margin:"0px 20px"},children:[(0,h.jsxs)("div",{style:{textAlign:"center"},children:[(0,h.jsx)("span",{style:{fontSize:18,color:"normal"===s?"#000":"#999",fontWeight:400},children:n}),a&&(0,h.jsxs)(i.Fragment,{children:[" ",(0,h.jsx)("span",{style:{fontSize:12,color:"#8F9090",fontWeight:"bold"},children:a})]})]}),(0,h.jsx)("div",{style:{textAlign:"center",color:"normal"===s?"#767676":"#bababa",fontSize:12,whiteSpace:"nowrap"},children:t})]})},x=n(74815),p=n(41320),v=(0,n(72455).Z)((function(e){return{redState:{color:e.palette.error.main,"& .min-icon":{width:16,height:16,float:"left",marginRight:4}},yellowState:{color:e.palette.warning.main,"& .min-icon":{width:16,height:16,float:"left",marginRight:4}},greenState:{color:e.palette.success.main,"& .min-icon":{width:16,height:16,float:"left",marginRight:4}},greyState:{color:"grey","& .min-icon":{width:16,height:16,float:"left",marginRight:4}},tenantItem:{border:"1px solid #EAEAEA",marginBottom:16,padding:"15px 30px","&:hover":{backgroundColor:"#FAFAFA",cursor:"pointer"}},titleContainer:{display:"flex",justifyContent:"space-between",width:"100%"},title:{fontSize:18,fontWeight:"bold"},namespaceLabel:{display:"inline-flex",backgroundColor:"#EAEDEF",borderRadius:2,padding:"4px 8px",fontSize:10,marginRight:20},status:{fontSize:12,color:"#8F9090"}}})),m=function(e){var t=e.tenant,n=(0,p.TL)(),a=(0,c.s0)(),l=v(),m={value:"n/a",unit:""},g={value:"n/a",unit:""},j={value:"n/a",unit:""},y={value:"n/a",unit:""},b={value:"n/a",unit:""};if(t.capacity_raw){var Z=(0,d.ae)("".concat(t.capacity_raw),!0).split(" ");m.value=Z[0],m.unit=Z[1]}if(t.capacity){var S=(0,d.ae)("".concat(t.capacity),!0).split(" ");g.value=S[0],g.unit=S[1]}if(t.capacity_usage){var C=(0,d.l5)(t.capacity_usage,!0).split(" ");j.value=C[0],j.unit=C[1]}var w=[];if(t.tiers&&0!==t.tiers.length){var A,F;w=null===(A=t.tiers)||void 0===A?void 0:A.map((function(e){return{value:e.size,variant:e.name}}));var _=null===(F=t.tiers)||void 0===F?void 0:F.filter((function(e){return"internal"===e.type})).reduce((function(e,t){return e+t.size}),0),z=t.tiers.filter((function(e){return"internal"!==e.type})).reduce((function(e,t){return e+t.size}),0),T=(0,d.l5)(z,!0).split(" ");b.value=T[0],b.unit=T[1];var P=(0,d.l5)(_,!0).split(" ");y.value=P[0],y.unit=P[1]}else w=[{value:t.capacity_usage||0,variant:"STANDARD"}];return(0,h.jsx)(i.Fragment,{children:(0,h.jsx)("div",{className:l.tenantItem,id:"list-tenant-".concat(t.name),onClick:function(){n((0,o.V7)({name:t.name,namespace:t.namespace})),n((0,u.v)()),a("/namespaces/".concat(t.namespace,"/tenants/").concat(t.name,"/summary"))},children:(0,h.jsxs)(s.ZP,{container:!0,children:[(0,h.jsxs)(s.ZP,{item:!0,xs:12,className:l.titleContainer,children:[(0,h.jsx)("div",{className:l.title,children:(0,h.jsx)("span",{children:t.name})}),(0,h.jsx)("div",{children:(0,h.jsxs)("span",{className:l.namespaceLabel,children:["Namespace:\xa0",t.namespace]})})]}),(0,h.jsx)(s.ZP,{item:!0,xs:12,sx:{marginTop:2},children:(0,h.jsxs)(s.ZP,{container:!0,children:[(0,h.jsx)(s.ZP,{item:!0,xs:2,children:(0,h.jsx)(x.Z,{totalCapacity:t.capacity||0,usedSpaceVariants:w,statusClass:function(e){switch(e){case"red":return l.redState;case"yellow":return l.yellowState;case"green":return l.greenState;default:return l.greyState}}(t.health_status)})}),(0,h.jsxs)(s.ZP,{item:!0,xs:!0,children:[(0,h.jsxs)(s.ZP,{item:!0,xs:!0,sx:{display:"flex",justifyContent:"flex-start",alignItems:"center",marginTop:"10px"},children:[(0,h.jsx)(f,{label:"Raw Capacity",value:m.value,unit:m.unit}),(0,h.jsx)(f,{label:"Usable Capacity",value:g.value,unit:g.unit}),(0,h.jsx)(f,{label:"Pools",value:"".concat(t.pool_count),variant:"faded"})]}),(0,h.jsx)(s.ZP,{item:!0,xs:12,sx:{paddingLeft:"20px",marginTop:"15px"},children:(0,h.jsxs)("span",{className:l.status,children:[(0,h.jsx)("strong",{children:"State:"})," ",t.currentState]})})]}),(0,h.jsx)(s.ZP,{item:!0,xs:3,children:(0,h.jsx)(i.Fragment,{children:(0,h.jsxs)(s.ZP,{container:!0,children:[(0,h.jsxs)(s.ZP,{item:!0,xs:2,textAlign:"center",justifyContent:"center",justifyItems:"center",children:[(0,h.jsx)(r.FU8,{style:{width:25,color:"rgb(91,91,91)"}}),(0,h.jsx)("div",{style:{color:"rgb(118, 118, 118)",fontSize:12,fontWeight:"400"},children:"Usage"})]}),(0,h.jsx)(s.ZP,{item:!0,xs:1}),(0,h.jsxs)(s.ZP,{item:!0,style:{paddingTop:8},children:[(!t.tiers||0===t.tiers.length)&&(0,h.jsxs)("div",{style:{fontSize:14,fontWeight:400},children:[(0,h.jsxs)("span",{style:{color:"rgb(62,62,62)"},children:["Internal:"," "]})," ","".concat(j.value," ").concat(j.unit)]}),t.tiers&&t.tiers.length>0&&(0,h.jsxs)(i.Fragment,{children:[(0,h.jsxs)("div",{style:{fontSize:14,fontWeight:400},children:[(0,h.jsxs)("span",{style:{color:"rgb(62,62,62)"},children:["Internal:"," "]})," ","".concat(y.value," ").concat(y.unit)]}),(0,h.jsxs)("div",{style:{fontSize:14,fontWeight:400},children:[(0,h.jsxs)("span",{style:{color:"rgb(62,62,62)"},children:["Tiered:"," "]})," ","".concat(b.value," ").concat(b.unit)]})]})]})]})})})]})})]})})})},g=n(81806),j=n(75578),y=n(22338),b=n(79762),Z=n(5171),S={},C=function(e){var t=e.rowRenderFunction,n=e.totalItems,a=e.defaultHeight,r=function(e){var n=e.index,a=e.style;return(0,h.jsx)("div",{style:a,children:t(n)})};return(0,h.jsx)(i.Fragment,{children:(0,h.jsx)(b.Z,{isItemLoaded:function(e){return!!S[e]},loadMoreItems:function(e,t){for(var n=e;n<=t;n++)S[n]=1;for(var a=e;a<=t;a++)S[a]=2},itemCount:n,children:function(e){var t=e.onItemsRendered,i=e.ref;return(0,h.jsx)(Z.qj,{children:function(e){var s=e.width,l=e.height;return(0,h.jsx)(y.t7,{itemSize:a||220,height:l,itemCount:n,width:s,ref:i,onItemsRendered:t,children:r})}})}})})},w=n(4942),A=n(1413),F=n(63466),_=n(27391),z=n(25787),T=n(11135),P=n(23814),R=(0,z.Z)((function(e){return(0,T.Z)({searchField:(0,A.Z)({},P.qg.searchField),adornment:{}})}))((function(e){var t=e.placeholder,n=void 0===t?"":t,a=e.classes,i=e.onChange,s=e.adornmentPosition,l=void 0===s?"end":s,c=e.overrideClass,o=e.value,u=(0,w.Z)({disableUnderline:!0},"".concat(l,"Adornment"),(0,h.jsx)(F.Z,{position:l,className:a.adornment,children:(0,h.jsx)(r.W1M,{})}));return(0,h.jsx)(_.Z,{placeholder:n,className:c||a.searchField,id:"search-resource",label:"",InputProps:u,onChange:function(e){i(e.target.value)},variant:"standard",value:o})})),I=n(74794),k=n(87995),N=n(90673),D=n(27454),E=n(47974),W=n(79626),B=(0,j.Z)(i.lazy((function(){return n.e(798).then(n.bind(n,37798))}))),L=function(){var e=(0,p.TL)(),t=(0,c.s0)(),n=(0,i.useState)(!1),o=(0,a.Z)(n,2),u=o[0],d=o[1],f=(0,i.useState)(""),x=(0,a.Z)(f,2),v=x[0],j=x[1],y=(0,i.useState)([]),b=(0,a.Z)(y,2),Z=b[0],S=b[1],w=(0,i.useState)(!1),A=(0,a.Z)(w,2),F=A[0],_=A[1],z=(0,i.useState)(null),T=(0,a.Z)(z,2),P=T[0],L=T[1],U=(0,i.useState)("name"),M=(0,a.Z)(U,2),V=M[0],K=M[1],q=Z.filter((function(e){return""===v||e.name.indexOf(v)>=0}));q.sort((function(e,t){switch(V){case"capacity":return e.capacity&&t.capacity?e.capacity>t.capacity?1:e.capacityt.capacity_usage?1:e.capacity_usaget.name?1:e.name10?g=[{value:v-j.value,color:"#2781B0",label:"Total Tiers Space"}]:g=n.filter((function(e){return"STANDARD"!==e.variant})).map((function(e,t){return{value:e.value,color:x[t],label:"Tier - ".concat(e.variant)}}));var y="#07193E",b=100*j.value/t;b>=90?y="#C83B51":b>=75&&(y="#FFAB0F");var Z=[{value:j.value,color:y,label:"Used Space by Tenant"}].concat((0,a.Z)(g),[{value:m,color:"bar"===f?p:"transparent",label:"Empty Space"}]);if("bar"===f){var S=Z.map((function(e){return{value:e.value,color:e.color,itemName:e.label}}));return(0,o.jsx)("div",{style:{width:"100%",marginBottom:15},children:(0,o.jsx)(u,{totalValue:t,sizeItems:S,bgColor:p})})}return(0,o.jsxs)("div",{style:{position:"relative",width:110,height:110},children:[(0,o.jsx)("div",{style:{position:"absolute",right:-5,top:15,zIndex:400},className:d,children:(0,o.jsx)(c.J$M,{style:{border:"#fff 2px solid",borderRadius:"100%",width:20,height:20}})}),(0,o.jsx)("span",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",fontWeight:"bold",color:"#000",fontSize:11},children:isNaN(v)?"N/A":(0,l.l5)(v)}),(0,o.jsx)("div",{children:(0,o.jsxs)(i.u,{width:110,height:110,children:[(0,o.jsx)(r.b,{data:[{value:100}],cx:"50%",cy:"50%",dataKey:"value",outerRadius:50,innerRadius:40,fill:p,isAnimationActive:!1,stroke:"none"}),(0,o.jsx)(r.b,{data:Z,cx:"50%",cy:"50%",dataKey:"value",outerRadius:50,innerRadius:40,children:Z.map((function(e,t){return(0,o.jsx)(s.b,{fill:e.color,stroke:"none"},"cellCapacity-".concat(t))}))})]})})]})}}}]); +//# sourceMappingURL=33.8113b137.chunk.js.map \ No newline at end of file diff --git a/web-app/build/static/js/33.8113b137.chunk.js.map b/web-app/build/static/js/33.8113b137.chunk.js.map new file mode 100644 index 00000000000..1261e58c6da --- /dev/null +++ b/web-app/build/static/js/33.8113b137.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/33.8113b137.chunk.js","mappings":"qMAkDA,KAAeA,EAAAA,EAAAA,IA5BA,SAACC,GAAY,OAC1BC,EAAAA,EAAAA,GAAa,CACXC,KAAM,CACJC,QAAS,EACTC,OAAQ,EACRC,OAAQ,EACRC,gBAAiB,cACjBC,eAAgB,YAChBC,OAAQ,UACRC,SAAU,UACVC,MAAOV,EAAMW,QAAQC,KAAKC,KAC1BC,WAAY,sBAEb,GAeL,EARgB,SAAHC,GAAkD,IAA5CC,EAAOD,EAAPC,QAASC,EAAQF,EAARE,SAAaC,GAAIC,EAAAA,EAAAA,GAAAJ,EAAAK,GAC3C,OACEC,EAAAA,EAAAA,KAAA,UAAAC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAYJ,GAAI,IAAEK,UAAWP,EAAQd,KAAKe,SACvCA,IAGP,G,4DCfA,IAfA,SACEO,GAEC,IADDC,EAAmCC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KAUtC,OARA,SAA+BG,GAC7B,OACER,EAAAA,EAAAA,KAACS,EAAAA,SAAQ,CAACL,SAAUA,EAASR,UAC3BI,EAAAA,EAAAA,KAACG,GAAgBF,EAAAA,EAAAA,GAAA,GAAMO,KAG7B,CAGF,C,uECsBA,IAfuB,SAAHd,GAKS,IAJ3BgB,EAAOhB,EAAPgB,QACAd,EAAQF,EAARE,SAAQe,EAAAjB,EACRkB,WAAAA,OAAU,IAAAD,EAAG,KAAIA,EACjBE,EAASnB,EAATmB,UAEA,OACEb,EAAAA,EAAAA,KAACc,EAAAA,EAAO,CAACC,MAAOL,EAASG,UAAWA,EAAUjB,UAC5CI,EAAAA,EAAAA,KAAA,QAAAJ,SACGgB,GAAaI,EAAAA,EAAAA,cAAapB,GAAQK,EAAAA,EAAAA,GAAA,GAAOW,IAAgBhB,KAIlE,C,uLCiBA,EA3CwB,SAAHF,GAKS,IAJ5BuB,EAAKvB,EAALuB,MACAC,EAAKxB,EAALwB,MACAC,EAAIzB,EAAJyB,KAAIC,EAAA1B,EACJ2B,QAAAA,OAAO,IAAAD,EAAG,SAAQA,EAElB,OACEE,EAAAA,EAAAA,MAAA,OAAKC,MAAO,CAAExC,OAAQ,YAAaa,SAAA,EACjC0B,EAAAA,EAAAA,MAAA,OAAKC,MAAO,CAAEC,UAAW,UAAW5B,SAAA,EAClCI,EAAAA,EAAAA,KAAA,QACEuB,MAAO,CACLnC,SAAU,GACVC,MAAmB,WAAZgC,EAAuB,OAAS,OACvCI,WAAY,KACZ7B,SAEDsB,IAEFC,IACCG,EAAAA,EAAAA,MAACI,EAAAA,SAAQ,CAAA9B,SAAA,CACN,KACDI,EAAAA,EAAAA,KAAA,QACEuB,MAAO,CAAEnC,SAAU,GAAIC,MAAO,UAAWoC,WAAY,QAAS7B,SAE7DuB,WAKTnB,EAAAA,EAAAA,KAAA,OACEuB,MAAO,CACLC,UAAW,SACXnC,MAAmB,WAAZgC,EAAuB,UAAY,UAC1CjC,SAAU,GACVuC,WAAY,UACZ/B,SAEDqB,MAIT,E,sBClCMW,GAAYC,E,SAAAA,IAAW,SAAClD,GAAY,MAAM,CAC9CmD,SAAU,CACRzC,MAAOV,EAAMW,QAAQyC,MAAMvC,KAC3B,cAAe,CACbwC,MAAO,GACPC,OAAQ,GACRC,MAAO,OACPC,YAAa,IAGjBC,YAAa,CACX/C,MAAOV,EAAMW,QAAQ+C,QAAQ7C,KAC7B,cAAe,CACbwC,MAAO,GACPC,OAAQ,GACRC,MAAO,OACPC,YAAa,IAGjBG,WAAY,CACVjD,MAAOV,EAAMW,QAAQiD,QAAQ/C,KAC7B,cAAe,CACbwC,MAAO,GACPC,OAAQ,GACRC,MAAO,OACPC,YAAa,IAGjBK,UAAW,CACTnD,MAAO,OACP,cAAe,CACb2C,MAAO,GACPC,OAAQ,GACRC,MAAO,OACPC,YAAa,IAGjBM,WAAY,CACVzD,OAAQ,oBACR0D,aAAc,GACd5D,QAAS,YACT,UAAW,CACTG,gBAAiB,UACjBE,OAAQ,YAGZwD,eAAgB,CACdC,QAAS,OACTC,eAAgB,gBAChBb,MAAO,QAETjB,MAAO,CACL3B,SAAU,GACVqC,WAAY,QAEdqB,eAAgB,CACdF,QAAS,cACT3D,gBAAiB,UACjB8D,aAAc,EACdjE,QAAS,UACTM,SAAU,GACV+C,YAAa,IAEfa,OAAQ,CACN5D,SAAU,GACVC,MAAO,WAEV,IAgPD,EA9OuB,SAAHK,GAA4C,IAAtCuD,EAAMvD,EAANuD,OAClBC,GAAWC,EAAAA,EAAAA,MACXC,GAAWC,EAAAA,EAAAA,MACX1D,EAAUiC,IAeZ0B,EAAiB,CAAEpC,MAAO,MAAOC,KAAM,IACvCoC,EAAsB,CAAErC,MAAO,MAAOC,KAAM,IAC5CqC,EAAkB,CAAEtC,MAAO,MAAOC,KAAM,IACxCsC,EAAsB,CAAEvC,MAAO,MAAOC,KAAM,IAC5CuC,EAAuB,CAAExC,MAAO,MAAOC,KAAM,IAEjD,GAAI8B,EAAOU,aAAc,CACvB,IACMC,GADIC,EAAAA,EAAAA,IAAU,GAADC,OAAIb,EAAOU,eAAgB,GAC9BI,MAAM,KACtBT,EAAIpC,MAAQ0C,EAAM,GAClBN,EAAInC,KAAOyC,EAAM,EACnB,CACA,GAAIX,EAAOM,SAAU,CACnB,IACMK,GADIC,EAAAA,EAAAA,IAAU,GAADC,OAAIb,EAAOM,WAAY,GAC1BQ,MAAM,KACtBR,EAASrC,MAAQ0C,EAAM,GACvBL,EAASpC,KAAOyC,EAAM,EACxB,CACA,GAAIX,EAAOe,eAAgB,CACzB,IACMJ,GADIK,EAAAA,EAAAA,IAAahB,EAAOe,gBAAgB,GAC9BD,MAAM,KACtBP,EAAKtC,MAAQ0C,EAAM,GACnBJ,EAAKrC,KAAOyC,EAAM,EACpB,CAEA,IAAIM,EAAkC,GACtC,GAAKjB,EAAOkB,OAAiC,IAAxBlB,EAAOkB,MAAM7D,OAI3B,CAAC,IAAD8D,EAAAC,EACLH,EAA4B,QAAfE,EAAGnB,EAAOkB,aAAK,IAAAC,OAAA,EAAZA,EAAcE,KAAI,SAACC,GACjC,MAAO,CAAErD,MAAOqD,EAAWC,KAAOnD,QAASkD,EAAWE,KACxD,IACA,IAAIC,EAA4B,QAAfL,EAAGpB,EAAOkB,aAAK,IAAAE,OAAA,EAAZA,EAChBM,QAAO,SAACJ,GACR,MAA2B,aAApBA,EAAWK,IACpB,IACCC,QAAO,SAACC,EAAKP,GAAU,OAAKO,EAAMP,EAAWC,IAAK,GAAE,GACnDO,EAAc9B,EAAOkB,MACtBQ,QAAO,SAACJ,GACP,MAA2B,aAApBA,EAAWK,IACpB,IACCC,QAAO,SAACC,EAAKP,GAAU,OAAKO,EAAMP,EAAWC,IAAK,GAAE,GAGjDZ,GADIK,EAAAA,EAAAA,IAAac,GAAa,GACpBhB,MAAM,KACtBL,EAAUxC,MAAQ0C,EAAM,GACxBF,EAAUvC,KAAOyC,EAAM,GAEvB,IACMoB,GADKf,EAAAA,EAAAA,IAAaS,GAAe,GACdX,MAAM,KAC/BN,EAASvC,MAAQ8D,EAAc,GAC/BvB,EAAStC,KAAO6D,EAAc,EAChC,MA3BEd,EAAgB,CACd,CAAEhD,MAAO+B,EAAOe,gBAAkB,EAAG3C,QAAS,aAuClD,OACErB,EAAAA,EAAAA,KAAC0B,EAAAA,SAAQ,CAAA9B,UACPI,EAAAA,EAAAA,KAAA,OACEE,UAAWP,EAAQ8C,WACnBwC,GAAE,eAAAnB,OAAiBb,EAAOwB,MAC1BS,QAhBoB,WACxBhC,GACEiC,EAAAA,EAAAA,IAAc,CACZV,KAAMxB,EAAOwB,KACbW,UAAWnC,EAAOmC,aAGtBlC,GAASmC,EAAAA,EAAAA,MACTjC,EAAS,eAADU,OAAgBb,EAAOmC,UAAS,aAAAtB,OAAYb,EAAOwB,KAAI,YACjE,EAOiC7E,UAE3B0B,EAAAA,EAAAA,MAACgE,EAAAA,GAAI,CAACC,WAAS,EAAA3F,SAAA,EACb0B,EAAAA,EAAAA,MAACgE,EAAAA,GAAI,CAACE,MAAI,EAACC,GAAI,GAAIvF,UAAWP,EAAQgD,eAAe/C,SAAA,EACnDI,EAAAA,EAAAA,KAAA,OAAKE,UAAWP,EAAQoB,MAAMnB,UAC5BI,EAAAA,EAAAA,KAAA,QAAAJ,SAAOqD,EAAOwB,UAEhBzE,EAAAA,EAAAA,KAAA,OAAAJ,UACE0B,EAAAA,EAAAA,MAAA,QAAMpB,UAAWP,EAAQmD,eAAelD,SAAA,CAAC,iBACtBqD,EAAOmC,mBAI9BpF,EAAAA,EAAAA,KAACsF,EAAAA,GAAI,CAACE,MAAI,EAACC,GAAI,GAAIC,GAAI,CAAEC,UAAW,GAAI/F,UACtC0B,EAAAA,EAAAA,MAACgE,EAAAA,GAAI,CAACC,WAAS,EAAA3F,SAAA,EACbI,EAAAA,EAAAA,KAACsF,EAAAA,GAAI,CAACE,MAAI,EAACC,GAAI,EAAE7F,UACfI,EAAAA,EAAAA,KAAC4F,EAAAA,EAAc,CACbC,cAAe5C,EAAOM,UAAY,EAClCuC,kBAAmB5B,EACnB6B,YAxGY,SAACC,GAC3B,OAAQA,GACN,IAAK,MACH,OAAOrG,EAAQmC,SACjB,IAAK,SACH,OAAOnC,EAAQyC,YACjB,IAAK,QACH,OAAOzC,EAAQ2C,WACjB,QACE,OAAO3C,EAAQ6C,UAErB,CA6F6ByD,CAAoBhD,EAAO+C,oBAG5C1E,EAAAA,EAAAA,MAACgE,EAAAA,GAAI,CAACE,MAAI,EAACC,IAAE,EAAA7F,SAAA,EACX0B,EAAAA,EAAAA,MAACgE,EAAAA,GAAI,CACHE,MAAI,EACJC,IAAE,EACFC,GAAI,CACF9C,QAAS,OACTC,eAAgB,aAChBqD,WAAY,SACZP,UAAW,QACX/F,SAAA,EAEFI,EAAAA,EAAAA,KAACmG,EAAe,CACdlF,MAAO,eACPC,MAAOoC,EAAIpC,MACXC,KAAMmC,EAAInC,QAEZnB,EAAAA,EAAAA,KAACmG,EAAe,CACdlF,MAAO,kBACPC,MAAOqC,EAASrC,MAChBC,KAAMoC,EAASpC,QAEjBnB,EAAAA,EAAAA,KAACmG,EAAe,CACdlF,MAAO,QACPC,MAAK,GAAA4C,OAAKb,EAAOmD,YACjB/E,QAAS,cAGbrB,EAAAA,EAAAA,KAACsF,EAAAA,GAAI,CACHE,MAAI,EACJC,GAAI,GACJC,GAAI,CAAEW,YAAa,OAAQV,UAAW,QAAS/F,UAE/C0B,EAAAA,EAAAA,MAAA,QAAMpB,UAAWP,EAAQqD,OAAOpD,SAAA,EAC9BI,EAAAA,EAAAA,KAAA,UAAAJ,SAAQ,WAAe,IAAEqD,EAAOqD,sBAItCtG,EAAAA,EAAAA,KAACsF,EAAAA,GAAI,CAACE,MAAI,EAACC,GAAI,EAAE7F,UACfI,EAAAA,EAAAA,KAAC0B,EAAAA,SAAQ,CAAA9B,UACP0B,EAAAA,EAAAA,MAACgE,EAAAA,GAAI,CAACC,WAAS,EAAA3F,SAAA,EACb0B,EAAAA,EAAAA,MAACgE,EAAAA,GAAI,CACHE,MAAI,EACJC,GAAI,EACJjE,UAAW,SACXqB,eAAgB,SAChB0D,aAAc,SAAS3G,SAAA,EAEvBI,EAAAA,EAAAA,KAACwG,EAAAA,IAAU,CACTjF,MAAO,CAAES,MAAO,GAAI3C,MAAO,oBAE7BW,EAAAA,EAAAA,KAAA,OACEuB,MAAO,CACLlC,MAAO,qBACPD,SAAU,GACVqC,WAAY,OACZ7B,SACH,cAIHI,EAAAA,EAAAA,KAACsF,EAAAA,GAAI,CAACE,MAAI,EAACC,GAAI,KACfnE,EAAAA,EAAAA,MAACgE,EAAAA,GAAI,CAACE,MAAI,EAACjE,MAAO,CAAEkF,WAAY,GAAI7G,SAAA,GAC/BqD,EAAOkB,OAAiC,IAAxBlB,EAAOkB,MAAM7D,UAC9BgB,EAAAA,EAAAA,MAAA,OACEC,MAAO,CACLnC,SAAU,GACVqC,WAAY,KACZ7B,SAAA,EAEF0B,EAAAA,EAAAA,MAAA,QACEC,MAAO,CACLlC,MAAO,iBACPO,SAAA,CACH,YACW,OACJ,IAAG,GAAAkE,OACPN,EAAKtC,MAAK,KAAA4C,OAAIN,EAAKrC,SAI1B8B,EAAOkB,OAASlB,EAAOkB,MAAM7D,OAAS,IACrCgB,EAAAA,EAAAA,MAACI,EAAAA,SAAQ,CAAA9B,SAAA,EACP0B,EAAAA,EAAAA,MAAA,OACEC,MAAO,CACLnC,SAAU,GACVqC,WAAY,KACZ7B,SAAA,EAEF0B,EAAAA,EAAAA,MAAA,QACEC,MAAO,CACLlC,MAAO,iBACPO,SAAA,CACH,YACW,OACJ,IAAG,GAAAkE,OACPL,EAASvC,MAAK,KAAA4C,OAAIL,EAAStC,UAEjCG,EAAAA,EAAAA,MAAA,OACEC,MAAO,CACLnC,SAAU,GACVqC,WAAY,KACZ7B,SAAA,EAEF0B,EAAAA,EAAAA,MAAA,QACEC,MAAO,CACLlC,MAAO,iBACPO,SAAA,CACH,UACS,OACF,IAAG,GAAAkE,OACPJ,EAAUxC,MAAK,KAAA4C,OAAIJ,EAAUvC,iCAc7D,E,sDCtTIuF,EAAqB,CAAC,EAwD1B,EApDwB,SAAHhH,GAII,IAHvBiH,EAAiBjH,EAAjBiH,kBACAC,EAAUlH,EAAVkH,WACAC,EAAanH,EAAbmH,cAcMC,EAAiB,SAAHC,GAA+B,IAAzBC,EAAKD,EAALC,MAAOzF,EAAKwF,EAALxF,MAC/B,OAAOvB,EAAAA,EAAAA,KAAA,OAAKuB,MAAOA,EAAM3B,SAAE+G,EAAkBK,IAC/C,EAEA,OACEhH,EAAAA,EAAAA,KAAC0B,EAAAA,SAAQ,CAAA9B,UACPI,EAAAA,EAAAA,KAACiH,EAAAA,EAAc,CACbC,aAnBe,SAACF,GAAU,QAAON,EAAcM,EAAO,EAoBtDG,cAlBgB,SAACC,EAAoBC,GACzC,IAAK,IAAIL,EAAQI,EAAYJ,GAASK,EAAWL,IAC/CN,EAAcM,GAZJ,EAeZ,IAAK,IAAIA,EAAQI,EAAYJ,GAASK,EAAWL,IAC/CN,EAAcM,GAfL,CAiBb,EAWMM,UAAWV,EAAWhH,SAErB,SAAA2H,GAAA,IAAGC,EAAeD,EAAfC,gBAAiBC,EAAGF,EAAHE,IAAG,OAEtBzH,EAAAA,EAAAA,KAAC0H,EAAAA,GAAS,CAAA9H,SACP,SAAA+H,GAAwB,IAArB3F,EAAK2F,EAAL3F,MAAOC,EAAM0F,EAAN1F,OACT,OACEjC,EAAAA,EAAAA,KAAC4H,EAAAA,GAAI,CACHC,SAAUhB,GAAiB,IAC3B5E,OAAQA,EACRqF,UAAWV,EACX5E,MAAOA,EACPyF,IAAKA,EACLD,gBAAiBA,EAAgB5H,SAEhCkH,GAGP,GACU,KAKtB,E,2ECJA,GAAepI,EAAAA,EAAAA,IApDA,SAACC,GAAY,OAC1BC,EAAAA,EAAAA,GAAa,CACXkJ,aAAW7H,EAAAA,EAAAA,GAAA,GACN6H,EAAAA,GAAYA,aAEjBC,UAAW,CAAC,GACX,GA8CL,EAnCkB,SAAHrI,GAOQ,IAADsI,EAAAtI,EANpBuI,YAAAA,OAAW,IAAAD,EAAG,GAAEA,EAChBrI,EAAOD,EAAPC,QACAuI,EAAQxI,EAARwI,SAAQC,EAAAzI,EACR0I,kBAAAA,OAAiB,IAAAD,EAAG,MAAKA,EACzBE,EAAa3I,EAAb2I,cACAnH,EAAKxB,EAALwB,MAEMoH,GAAUC,EAAAA,EAAAA,GAAA,CACdC,kBAAkB,GAAI,GAAA1E,OAClBsE,EAAiB,cACnBpI,EAAAA,EAAAA,KAACyI,EAAAA,EAAc,CACbC,SAAUN,EACVlI,UAAWP,EAAQoI,UAAUnI,UAE7BI,EAAAA,EAAAA,KAAC2I,EAAAA,IAAU,OAIjB,OACE3I,EAAAA,EAAAA,KAAC4I,EAAAA,EAAS,CACRX,YAAaA,EACb/H,UAAWmI,GAAgC1I,EAAQmI,YACnD7C,GAAG,kBACHhE,MAAM,GACN4H,WAAYP,EACZJ,SAAU,SAACY,GACTZ,EAASY,EAAEC,OAAO7H,MACpB,EACAG,QAAQ,WACRH,MAAOA,GAGb,I,kECjCM8H,GAAoBC,EAAAA,EAAAA,GACxBC,EAAAA,MAAW,kBAAM,8BAA0D,KA0S7E,EAvSoB,WAClB,IAAMhG,GAAWC,EAAAA,EAAAA,MACXC,GAAWC,EAAAA,EAAAA,MAEjB8F,GAAkCC,EAAAA,EAAAA,WAAkB,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAnDI,EAASF,EAAA,GAAEG,EAAYH,EAAA,GAC9BI,GAA0CL,EAAAA,EAAAA,UAAiB,IAAGM,GAAAJ,EAAAA,EAAAA,GAAAG,EAAA,GAAvDE,EAAaD,EAAA,GAAEE,EAAgBF,EAAA,GACtCG,GAA8BT,EAAAA,EAAAA,UAAuB,IAAGU,GAAAR,EAAAA,EAAAA,GAAAO,EAAA,GAAjDE,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GAC1BG,GAAoDb,EAAAA,EAAAA,WAAkB,GAAMc,GAAAZ,EAAAA,EAAAA,GAAAW,EAAA,GAArEE,EAAkBD,EAAA,GAAEE,EAAqBF,EAAA,GAChDG,GACEjB,EAAAA,EAAAA,UAAmC,MAAKkB,GAAAhB,EAAAA,EAAAA,GAAAe,EAAA,GADnCE,EAAcD,EAAA,GAAEE,EAAiBF,EAAA,GAExCG,GAAkCrB,EAAAA,EAAAA,UAAiB,QAAOsB,GAAApB,EAAAA,EAAAA,GAAAmB,EAAA,GAAnDE,EAASD,EAAA,GAAEE,EAAYF,EAAA,GAOxBG,EAAkBd,EAAQpF,QAAO,SAACmG,GACtC,MAAsB,KAAlBnB,GAGEmB,EAAErG,KAAKsG,QAAQpB,IAAkB,CAMzC,IAEAkB,EAAgBG,MAAK,SAACC,EAAGH,GACvB,OAAQH,GACN,IAAK,WACH,OAAKM,EAAE1H,UAAauH,EAAEvH,SAIlB0H,EAAE1H,SAAWuH,EAAEvH,SACV,EAGL0H,EAAE1H,SAAWuH,EAAEvH,UACT,EAGH,EAXE,EAYX,IAAK,QACH,OAAK0H,EAAEjH,gBAAmB8G,EAAE9G,eAIxBiH,EAAEjH,eAAiB8G,EAAE9G,eAChB,EAGLiH,EAAEjH,eAAiB8G,EAAE9G,gBACf,EAGH,EAXE,EAYX,IAAK,gBACH,MAAwB,QAApBiH,EAAEjF,eAA+C,QAApB8E,EAAE9E,cAC1B,EAGe,QAApBiF,EAAEjF,eAA+C,QAApB8E,EAAE9E,eACzB,EAGH,EACT,IAAK,iBACH,MAAwB,UAApBiF,EAAEjF,eAAiD,UAApB8E,EAAE9E,cAC5B,EAGe,UAApBiF,EAAEjF,eAAiD,UAApB8E,EAAE9E,eAC3B,EAGH,EACT,QACE,OAAIiF,EAAExG,KAAQqG,EAAErG,KACP,EAELwG,EAAExG,KAAQqG,EAAErG,MACN,EAEH,EAEb,KAEAyG,EAAAA,EAAAA,YAAU,WACR,GAAI3B,EAAW,CAEX4B,EAAAA,EAAIC,QACDC,iBACAC,MAAK,SAACC,GAAmD,IAAD7L,EACvD,GAAK6L,EAAIC,KAAT,CAIA,IAAIC,EACe,QADS/L,EACzB6L,EAAIC,KAAKJ,eAAO,IAAA1L,EAAAA,EAAqB,GAExCsK,EAAWyB,GACXjC,GAAa,EALb,MAFEA,GAAa,EAQjB,IACCkC,OAAM,SAACC,GACNzI,GAAS0I,EAAAA,EAAAA,IAAqBD,IAC9BnC,GAAa,EACf,GAGN,CACF,GAAG,CAACD,EAAWrG,KAEfgI,EAAAA,EAAAA,YAAU,WACR1B,GAAa,EACf,GAAG,IAYH,OACElI,EAAAA,EAAAA,MAACI,EAAAA,SAAQ,CAAA9B,SAAA,CACNuK,IACCnK,EAAAA,EAAAA,KAACgJ,EAAiB,CAChB6C,kBAAmBtB,EACnBuB,KAAM3B,EACN4B,WAAY,WA1HlB3B,GAAsB,GACtBI,EAAkB,KA2HZ,EACAwB,OAAO,YAGXhM,EAAAA,EAAAA,KAACiM,EAAAA,EAAiB,CAChBhL,MAAM,UACNiL,iBACElM,EAAAA,EAAAA,KAACmM,EAAS,CACRlE,YAAa,iBACbC,SAAU,SAACkE,GACTxC,EAAiBwC,EACnB,EACAlL,MAAOyI,IAGX0C,SACE/K,EAAAA,EAAAA,MAACgE,EAAAA,GAAI,CACHE,MAAI,EACJC,GAAI,GACJC,GAAI,CAAE9C,QAAS,OAAQC,eAAgB,YAAajD,SAAA,EAEpDI,EAAAA,EAAAA,KAACsM,EAAAA,EAAc,CAAC5L,QAAS,sBAAsBd,UAC7CI,EAAAA,EAAAA,KAACuM,EAAAA,IAAM,CACLtH,GAAI,sBACJC,QAAS,WACPsE,GAAa,EACf,EACAgD,MAAMxM,EAAAA,EAAAA,KAACyM,EAAAA,IAAW,IAClBpL,QAAS,eAGbrB,EAAAA,EAAAA,KAACsM,EAAAA,EAAc,CAAC5L,QAAS,gBAAgBd,UACvCI,EAAAA,EAAAA,KAACuM,EAAAA,IAAM,CACLtH,GAAI,gBACJhE,MAAO,gBACPiE,QAAS,WACP9B,EAAS,eACX,EACAoJ,MAAMxM,EAAAA,EAAAA,KAAC0M,EAAAA,IAAO,IACdrL,QAAS,uBAMnBrB,EAAAA,EAAAA,KAAC2M,EAAAA,EAAU,CAAA/M,UACT0B,EAAAA,EAAAA,MAACgE,EAAAA,GAAI,CAACE,MAAI,EAACC,GAAI,GAAIlE,MAAO,CAAEU,OAAQ,uBAAwBrC,SAAA,CACzD2J,IAAavJ,EAAAA,EAAAA,KAAC4M,EAAAA,EAAc,KAC3BrD,IACAjI,EAAAA,EAAAA,MAACI,EAAAA,SAAQ,CAAA9B,SAAA,CACqB,IAA3BiL,EAAgBvK,SACfgB,EAAAA,EAAAA,MAACI,EAAAA,SAAQ,CAAA9B,SAAA,EACPI,EAAAA,EAAAA,KAACsF,EAAAA,GAAI,CACHE,MAAI,EACJC,GAAI,GACJlE,MAAO,CACLqB,QAAS,OACTC,eAAgB,WAChBH,aAAc,IACd9C,UAEF0B,EAAAA,EAAAA,MAAA,OACEC,MAAO,CACLsL,SAAU,IACV7K,MAAO,MACPY,QAAS,OACTkK,cAAe,MACf5G,WAAY,UACZtG,SAAA,EAEFI,EAAAA,EAAAA,KAAA,QACEuB,MAAO,CACLI,WAAY,SACZvC,SAAU,GACVC,MAAO,UACPoC,WAAY,OACZU,YAAa,IACbvC,SACH,aAGDI,EAAAA,EAAAA,KAAC+M,EAAAA,EAAa,CACZ9H,GAAI,UACJhE,MAAO,GACPC,MAAOyJ,EACPzC,SAAU,SAACY,GACT8B,EAAa9B,EAAEC,OAAO7H,MACxB,EACAuD,KAAM,UACNuI,QAAS,CACP,CAAE/L,MAAO,OAAQC,MAAO,QACxB,CACED,MAAO,WACPC,MAAO,YAET,CACED,MAAO,QACPC,MAAO,SAET,CACED,MAAO,gBACPC,MAAO,iBAET,CACED,MAAO,iBACPC,MAAO,2BAMjBlB,EAAAA,EAAAA,KAACiN,EAAe,CACdtG,kBAlIK,SAACK,GACtB,IAAM/D,EAAS4H,EAAgB7D,IAAU,KAEzC,OAAI/D,GACKjD,EAAAA,EAAAA,KAACkN,EAAc,CAACjK,OAAQA,IAG1B,IACT,EA2HkB2D,WAAYiE,EAAgBvK,YAIN,IAA3BuK,EAAgBvK,SACfN,EAAAA,EAAAA,KAACsF,EAAAA,GAAI,CACHC,WAAS,EACT1C,eAAgB,SAChBsK,aAAc,SACdjH,WAAY,SAAStG,UAErBI,EAAAA,EAAAA,KAACsF,EAAAA,GAAI,CAACE,MAAI,EAACC,GAAI,EAAE7F,UACfI,EAAAA,EAAAA,KAACoN,EAAAA,IAAO,CACNC,eAAerN,EAAAA,EAAAA,KAACsN,EAAAA,IAAW,IAC3BvM,MAAO,UACPwM,MACEjM,EAAAA,EAAAA,MAACI,EAAAA,SAAQ,CAAA9B,SAAA,CAAC,4KAKRI,EAAAA,EAAAA,KAAA,UACAA,EAAAA,EAAAA,KAAA,SAAM,uBAENA,EAAAA,EAAAA,KAACwN,EAAAA,EAAO,CACNtI,QAAS,WACP9B,EAAS,eACX,EAAExD,SACH,wCAe3B,C,mJClRA,EAnCiB,SAAHF,GAII,IAHhB+N,EAAU/N,EAAV+N,WACAC,EAAShO,EAATgO,UAASC,EAAAjO,EACTkO,QAAAA,OAAO,IAAAD,EAAG,UAASA,EAEnB,OACE3N,EAAAA,EAAAA,KAAA,OACEuB,MAAO,CACLS,MAAO,OACPC,OAAQ,GACRhD,gBAAiB2O,EACjB7K,aAAc,GACdH,QAAS,OACTiL,mBAAoB,OACpBC,SAAU,UACVlO,SAED8N,EAAUpJ,KAAI,SAACyJ,EAAa/G,GAC3B,IAAMgH,EAAsC,IAApBD,EAAY7M,MAAeuM,EACnD,OACEzN,EAAAA,EAAAA,KAAA,OAEEuB,MAAO,CACLS,MAAM,GAAD8B,OAAKkK,EAAc,KACxB/L,OAAQ,OACRhD,gBAAiB8O,EAAY1O,MAC7BwO,mBAAoB,SACpB,YAAA/J,OANekD,EAAMiH,YAS7B,KAGN,ECgIA,EAjKuB,SAAHvO,GAKI,IAJtBmG,EAAanG,EAAbmG,cACAC,EAAiBpG,EAAjBoG,kBACAC,EAAWrG,EAAXqG,YAAWmI,EAAAxO,EACXyO,OAAAA,OAAM,IAAAD,EAAG,MAAKA,EAERE,EAAS,CACb,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAGIC,EAAU,UAEVC,EAAiBxI,EAAkBjB,QAAO,SAAC0J,EAAKC,GACpD,OAAOD,EAAMC,EAAUtN,KACzB,GAAG,GAEGuN,EAAa5I,EAAgByI,EAE/BI,EAA6B,GAE3BC,EAAe7I,EAAkB8I,MACrC,SAACC,GAAI,MAAsB,aAAjBA,EAAKxN,OAAsB,KAClC,CACHH,MAAO,EACPG,QAAS,SAGPyE,EAAkBxF,OAAS,GAG7BoO,EAAY,CACV,CAAExN,MAHqBoN,EAAiBK,EAAazN,MAG1B7B,MAAO,UAAW4B,MAAO,sBAGtDyN,EAAY5I,EACTnB,QAAO,SAACtD,GAAO,MAAyB,aAApBA,EAAQA,OAAsB,IAClDiD,KAAI,SAACjD,EAAS2F,GACb,MAAO,CACL9F,MAAOG,EAAQH,MACf7B,MAAO+O,EAAOpH,GACd/F,MAAM,UAAD6C,OAAYzC,EAAQA,SAE7B,IAGJ,IAAIyN,EAAoB,UAElBC,EAAuC,IAArBJ,EAAazN,MAAe2E,EAEhDkJ,GAAkB,GACpBD,EAAoB,UACXC,GAAkB,KAC3BD,EAAoB,WAGtB,IAAME,EAA2B,CAC/B,CACE9N,MAAOyN,EAAazN,MACpB7B,MAAOyP,EACP7N,MAAO,yBACR6C,QAAAmL,EAAAA,EAAAA,GACEP,GAAS,CACZ,CACExN,MAAOuN,EACPpP,MAAkB,QAAX8O,EAAmBE,EAAU,cACpCpN,MAAO,iBAIX,GAAe,QAAXkN,EAAkB,CACpB,IAAMe,EAAwCF,EAAW1K,KAAI,SAAC6K,GAC5D,MAAO,CACLjO,MAAOiO,EAAQjO,MACf7B,MAAO8P,EAAQ9P,MACf+P,SAAUD,EAAQlO,MAEtB,IAEA,OACEjB,EAAAA,EAAAA,KAAA,OAAKuB,MAAO,CAAES,MAAO,OAAQU,aAAc,IAAK9C,UAC9CI,EAAAA,EAAAA,KAACqP,EAAQ,CACP5B,WAAY5H,EACZ6H,UAAWwB,EACXtB,QAASS,KAIjB,CAEA,OACE/M,EAAAA,EAAAA,MAAA,OAAKC,MAAO,CAAEmH,SAAU,WAAY1G,MAAO,IAAKC,OAAQ,KAAMrC,SAAA,EAC5DI,EAAAA,EAAAA,KAAA,OACEuB,MAAO,CAAEmH,SAAU,WAAY4G,OAAQ,EAAGC,IAAK,GAAIC,OAAQ,KAC3DtP,UAAW6F,EAAYnG,UAEvBI,EAAAA,EAAAA,KAACyP,EAAAA,IAAU,CACTlO,MAAO,CACLvC,OAAQ,iBACR+D,aAAc,OACdf,MAAO,GACPC,OAAQ,SAIdjC,EAAAA,EAAAA,KAAA,QACEuB,MAAO,CACLmH,SAAU,WACV6G,IAAK,MACLG,KAAM,MACNC,UAAW,wBACXlO,WAAY,OACZpC,MAAO,OACPD,SAAU,IACVQ,SAEAgQ,MAAMtB,GAAiD,OAA/BrK,EAAAA,EAAAA,IAAaqK,MAEzCtO,EAAAA,EAAAA,KAAA,OAAAJ,UACE0B,EAAAA,EAAAA,MAACuO,EAAAA,EAAQ,CAAC7N,MAAO,IAAKC,OAAQ,IAAIrC,SAAA,EAChCI,EAAAA,EAAAA,KAAC8P,EAAAA,EAAG,CACFtE,KAAM,CAAC,CAAEtK,MAAO,MAChB6O,GAAI,MACJC,GAAI,MACJC,QAAQ,QACRC,YAAa,GACbC,YAAa,GACbC,KAAM/B,EACNgC,mBAAmB,EACnBC,OAAQ,UAEVtQ,EAAAA,EAAAA,KAAC8P,EAAAA,EAAG,CACFtE,KAAMwD,EACNe,GAAI,MACJC,GAAI,MACJC,QAAQ,QACRC,YAAa,GACbC,YAAa,GAAGvQ,SAEfoP,EAAW1K,KAAI,SAACiM,EAAOvJ,GAAK,OAC3BhH,EAAAA,EAAAA,KAACwQ,EAAAA,EAAI,CAEHJ,KAAMG,EAAMlR,MACZiR,OAAQ,QAAO,gBAAAxM,OAFMkD,GAGrB,aAOhB,C","sources":["screens/Console/Common/AButton/AButton.tsx","screens/Console/Common/Components/withSuspense.tsx","screens/Console/Common/TooltipWrapper/TooltipWrapper.tsx","screens/Console/Tenants/ListTenants/InformationItem.tsx","screens/Console/Tenants/ListTenants/TenantListItem.tsx","screens/Console/Common/VirtualizedList/VirtualizedList.tsx","screens/Console/Common/SearchBox.tsx","screens/Console/Tenants/ListTenants/ListTenants.tsx","screens/Console/Common/UsageBar/UsageBar.tsx","screens/Console/Tenants/ListTenants/TenantCapacity.tsx"],"sourcesContent":["// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButtonProps } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 0,\n margin: 0,\n border: 0,\n backgroundColor: \"transparent\",\n textDecoration: \"underline\",\n cursor: \"pointer\",\n fontSize: \"inherit\",\n color: theme.palette.info.main,\n fontFamily: \"Inter, sans-serif\",\n },\n });\n\ninterface IAButton extends IconButtonProps {\n classes: any;\n children: any;\n}\n\nconst AButton = ({ classes, children, ...rest }: IAButton) => {\n return (\n \n );\n};\n\nexport default withStyles(styles)(AButton);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { ComponentType, Suspense, SuspenseProps } from \"react\";\n\nfunction withSuspense

(\n WrappedComponent: ComponentType

,\n fallback: SuspenseProps[\"fallback\"] = null,\n) {\n function ComponentWithSuspense(props: P) {\n return (\n \n \n \n );\n }\n\n return ComponentWithSuspense;\n}\n\nexport default withSuspense;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { cloneElement } from \"react\";\nimport { Tooltip } from \"@mui/material\";\n\ninterface ITooltipWrapperProps {\n tooltip: string;\n children: any;\n errorProps?: any;\n placement?:\n | \"bottom-end\"\n | \"bottom-start\"\n | \"bottom\"\n | \"left-end\"\n | \"left-start\"\n | \"left\"\n | \"right-end\"\n | \"right-start\"\n | \"right\"\n | \"top-end\"\n | \"top-start\"\n | \"top\";\n}\n\nconst TooltipWrapper = ({\n tooltip,\n children,\n errorProps = null,\n placement,\n}: ITooltipWrapperProps) => {\n return (\n \n \n {errorProps ? cloneElement(children, { ...errorProps }) : children}\n \n \n );\n};\n\nexport default TooltipWrapper;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\n\ninterface IInformationItemProps {\n label: string;\n value: string;\n unit?: string;\n variant?: \"normal\" | \"faded\";\n}\n\nconst InformationItem = ({\n label,\n value,\n unit,\n variant = \"normal\",\n}: IInformationItemProps) => {\n return (\n

\n
\n \n {value}\n \n {unit && (\n \n {\" \"}\n \n {unit}\n \n \n )}\n
\n \n {label}\n
\n \n );\n};\n\nexport default InformationItem;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\n\nimport { useNavigate } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport { CapacityValues, ValueUnit } from \"./types\";\nimport { setTenantName } from \"../tenantsSlice\";\nimport { getTenantAsync } from \"../thunks/tenantDetailsAsync\";\nimport { DrivesIcon } from \"mds\";\nimport { niceBytes, niceBytesInt } from \"../../../../common/utils\";\nimport Grid from \"@mui/material/Grid\";\nimport InformationItem from \"./InformationItem\";\nimport TenantCapacity from \"./TenantCapacity\";\nimport { useAppDispatch } from \"../../../../store\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { TenantList } from \"../../../../api/operatorApi\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n redState: {\n color: theme.palette.error.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n float: \"left\",\n marginRight: 4,\n },\n },\n yellowState: {\n color: theme.palette.warning.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n float: \"left\",\n marginRight: 4,\n },\n },\n greenState: {\n color: theme.palette.success.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n float: \"left\",\n marginRight: 4,\n },\n },\n greyState: {\n color: \"grey\",\n \"& .min-icon\": {\n width: 16,\n height: 16,\n float: \"left\",\n marginRight: 4,\n },\n },\n tenantItem: {\n border: \"1px solid #EAEAEA\",\n marginBottom: 16,\n padding: \"15px 30px\",\n \"&:hover\": {\n backgroundColor: \"#FAFAFA\",\n cursor: \"pointer\",\n },\n },\n titleContainer: {\n display: \"flex\",\n justifyContent: \"space-between\",\n width: \"100%\",\n },\n title: {\n fontSize: 18,\n fontWeight: \"bold\",\n },\n namespaceLabel: {\n display: \"inline-flex\",\n backgroundColor: \"#EAEDEF\",\n borderRadius: 2,\n padding: \"4px 8px\",\n fontSize: 10,\n marginRight: 20,\n },\n status: {\n fontSize: 12,\n color: \"#8F9090\",\n },\n}));\n\nconst TenantListItem = ({ tenant }: { tenant: TenantList }) => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n const classes = useStyles();\n\n const healthStatusToClass = (health_status: string) => {\n switch (health_status) {\n case \"red\":\n return classes.redState;\n case \"yellow\":\n return classes.yellowState;\n case \"green\":\n return classes.greenState;\n default:\n return classes.greyState;\n }\n };\n\n let raw: ValueUnit = { value: \"n/a\", unit: \"\" };\n let capacity: ValueUnit = { value: \"n/a\", unit: \"\" };\n let used: ValueUnit = { value: \"n/a\", unit: \"\" };\n let localUse: ValueUnit = { value: \"n/a\", unit: \"\" };\n let tieredUse: ValueUnit = { value: \"n/a\", unit: \"\" };\n\n if (tenant.capacity_raw) {\n const b = niceBytes(`${tenant.capacity_raw}`, true);\n const parts = b.split(\" \");\n raw.value = parts[0];\n raw.unit = parts[1];\n }\n if (tenant.capacity) {\n const b = niceBytes(`${tenant.capacity}`, true);\n const parts = b.split(\" \");\n capacity.value = parts[0];\n capacity.unit = parts[1];\n }\n if (tenant.capacity_usage) {\n const b = niceBytesInt(tenant.capacity_usage, true);\n const parts = b.split(\" \");\n used.value = parts[0];\n used.unit = parts[1];\n }\n\n let spaceVariants: CapacityValues[] = [];\n if (!tenant.tiers || tenant.tiers.length === 0) {\n spaceVariants = [\n { value: tenant.capacity_usage || 0, variant: \"STANDARD\" },\n ];\n } else {\n spaceVariants = tenant.tiers?.map((itemTenant) => {\n return { value: itemTenant.size!, variant: itemTenant.name! };\n });\n let internalUsage = tenant.tiers\n ?.filter((itemTenant) => {\n return itemTenant.type === \"internal\";\n })\n .reduce((sum, itemTenant) => sum + itemTenant.size!, 0);\n let tieredUsage = tenant.tiers\n .filter((itemTenant) => {\n return itemTenant.type !== \"internal\";\n })\n .reduce((sum, itemTenant) => sum + itemTenant.size!, 0);\n\n const t = niceBytesInt(tieredUsage, true);\n const parts = t.split(\" \");\n tieredUse.value = parts[0];\n tieredUse.unit = parts[1];\n\n const is = niceBytesInt(internalUsage, true);\n const partsInternal = is.split(\" \");\n localUse.value = partsInternal[0];\n localUse.unit = partsInternal[1];\n }\n\n const openTenantDetails = () => {\n dispatch(\n setTenantName({\n name: tenant.name!,\n namespace: tenant.namespace!,\n }),\n );\n dispatch(getTenantAsync());\n navigate(`/namespaces/${tenant.namespace}/tenants/${tenant.name}/summary`);\n };\n\n return (\n \n \n \n \n
\n {tenant.name}\n
\n
\n \n Namespace: {tenant.namespace}\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n State: {tenant.currentState}\n \n \n \n \n \n \n \n \n \n Usage\n \n \n \n \n {(!tenant.tiers || tenant.tiers.length === 0) && (\n \n \n Internal:{\" \"}\n {\" \"}\n {`${used.value} ${used.unit}`}\n \n )}\n\n {tenant.tiers && tenant.tiers.length > 0 && (\n \n \n \n Internal:{\" \"}\n {\" \"}\n {`${localUse.value} ${localUse.unit}`}\n \n \n \n Tiered:{\" \"}\n {\" \"}\n {`${tieredUse.value} ${tieredUse.unit}`}\n \n \n )}\n \n \n \n \n
\n \n \n \n
\n );\n};\n\nexport default TenantListItem;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, ReactElement } from \"react\";\nimport { FixedSizeList as List } from \"react-window\";\nimport InfiniteLoader from \"react-window-infinite-loader\";\nimport { AutoSizer } from \"react-virtualized\";\n\ninterface IVirtualizedList {\n rowRenderFunction: (index: number) => ReactElement | null;\n totalItems: number;\n defaultHeight?: number;\n}\n\nlet itemStatusMap: any = {};\nconst LOADING = 1;\nconst LOADED = 2;\n\nconst VirtualizedList = ({\n rowRenderFunction,\n totalItems,\n defaultHeight,\n}: IVirtualizedList) => {\n const isItemLoaded = (index: any) => !!itemStatusMap[index];\n\n const loadMoreItems = (startIndex: number, stopIndex: number) => {\n for (let index = startIndex; index <= stopIndex; index++) {\n itemStatusMap[index] = LOADING;\n }\n\n for (let index = startIndex; index <= stopIndex; index++) {\n itemStatusMap[index] = LOADED;\n }\n };\n\n const RenderItemLine = ({ index, style }: any) => {\n return
{rowRenderFunction(index)}
;\n };\n\n return (\n \n \n {({ onItemsRendered, ref }) => (\n // @ts-ignore\n \n {({ width, height }) => {\n return (\n \n {RenderItemLine}\n \n );\n }}\n \n )}\n \n \n );\n};\n\nexport default VirtualizedList;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport { SearchIcon } from \"mds\";\nimport TextField from \"@mui/material/TextField\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"./FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n },\n adornment: {},\n });\n\ntype SearchBoxProps = {\n placeholder?: string;\n value: string;\n classes: any;\n onChange: (value: string) => void;\n adornmentPosition?: \"start\" | \"end\";\n overrideClass?: any;\n};\n\nconst SearchBox = ({\n placeholder = \"\",\n classes,\n onChange,\n adornmentPosition = \"end\",\n overrideClass,\n value,\n}: SearchBoxProps) => {\n const inputProps = {\n disableUnderline: true,\n [`${adornmentPosition}Adornment`]: (\n \n \n \n ),\n };\n return (\n {\n onChange(e.target.value);\n }}\n variant=\"standard\"\n value={value}\n />\n );\n};\n\nexport default withStyles(styles)(SearchBox);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { AddIcon, Button, HelpBox, RefreshIcon, TenantsIcon } from \"mds\";\nimport Grid from \"@mui/material/Grid\";\nimport { LinearProgress, SelectChangeEvent } from \"@mui/material\";\nimport { NewServiceAccount } from \"../../Common/CredentialsPrompt/types\";\nimport TenantListItem from \"./TenantListItem\";\nimport AButton from \"../../Common/AButton/AButton\";\n\nimport withSuspense from \"../../Common/Components/withSuspense\";\nimport VirtualizedList from \"../../Common/VirtualizedList/VirtualizedList\";\nimport SearchBox from \"../../Common/SearchBox\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\nimport SelectWrapper from \"../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useAppDispatch } from \"../../../../store\";\nimport TooltipWrapper from \"../../Common/TooltipWrapper/TooltipWrapper\";\nimport PageHeaderWrapper from \"../../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport { api } from \"../../../../api\";\nimport {\n Error,\n HttpResponse,\n ListTenantsResponse,\n TenantList,\n} from \"../../../../api/operatorApi\";\n\nconst CredentialsPrompt = withSuspense(\n React.lazy(() => import(\"../../Common/CredentialsPrompt/CredentialsPrompt\")),\n);\n\nconst ListTenants = () => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n\n const [isLoading, setIsLoading] = useState(false);\n const [filterTenants, setFilterTenants] = useState(\"\");\n const [records, setRecords] = useState([]);\n const [showNewCredentials, setShowNewCredentials] = useState(false);\n const [createdAccount, setCreatedAccount] =\n useState(null);\n const [sortValue, setSortValue] = useState(\"name\");\n\n const closeCredentialsModal = () => {\n setShowNewCredentials(false);\n setCreatedAccount(null);\n };\n\n const filteredRecords = records.filter((b: any) => {\n if (filterTenants === \"\") {\n return true;\n } else {\n if (b.name.indexOf(filterTenants) >= 0) {\n return true;\n } else {\n return false;\n }\n }\n });\n\n filteredRecords.sort((a, b) => {\n switch (sortValue) {\n case \"capacity\":\n if (!a.capacity || !b.capacity) {\n return 0;\n }\n\n if (a.capacity > b.capacity) {\n return 1;\n }\n\n if (a.capacity < b.capacity) {\n return -1;\n }\n\n return 0;\n case \"usage\":\n if (!a.capacity_usage || !b.capacity_usage) {\n return 0;\n }\n\n if (a.capacity_usage > b.capacity_usage) {\n return 1;\n }\n\n if (a.capacity_usage < b.capacity_usage) {\n return -1;\n }\n\n return 0;\n case \"active_status\":\n if (a.health_status === \"red\" && b.health_status !== \"red\") {\n return 1;\n }\n\n if (a.health_status !== \"red\" && b.health_status === \"red\") {\n return -1;\n }\n\n return 0;\n case \"failing_status\":\n if (a.health_status === \"green\" && b.health_status !== \"green\") {\n return 1;\n }\n\n if (a.health_status !== \"green\" && b.health_status === \"green\") {\n return -1;\n }\n\n return 0;\n default:\n if (a.name! > b.name!) {\n return 1;\n }\n if (a.name! < b.name!) {\n return -1;\n }\n return 0;\n }\n });\n\n useEffect(() => {\n if (isLoading) {\n const fetchRecords = () => {\n api.tenants\n .listAllTenants()\n .then((res: HttpResponse) => {\n if (!res.data) {\n setIsLoading(false);\n return;\n }\n let resTenants: TenantList[] =\n (res.data.tenants as TenantList[]) ?? [];\n\n setRecords(resTenants);\n setIsLoading(false);\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(err));\n setIsLoading(false);\n });\n };\n fetchRecords();\n }\n }, [isLoading, dispatch]);\n\n useEffect(() => {\n setIsLoading(true);\n }, []);\n\n const renderItemLine = (index: number) => {\n const tenant = filteredRecords[index] || null;\n\n if (tenant) {\n return ;\n }\n\n return null;\n };\n\n return (\n \n {showNewCredentials && (\n {\n closeCredentialsModal();\n }}\n entity=\"Tenant\"\n />\n )}\n {\n setFilterTenants(val);\n }}\n value={filterTenants}\n />\n }\n actions={\n \n \n {\n setIsLoading(true);\n }}\n icon={}\n variant={\"regular\"}\n />\n \n \n {\n navigate(\"/tenants/add\");\n }}\n icon={}\n variant={\"callAction\"}\n />\n \n \n }\n />\n \n \n {isLoading && }\n {!isLoading && (\n \n {filteredRecords.length !== 0 && (\n \n \n \n \n Sort by\n \n ) => {\n setSortValue(e.target.value as string);\n }}\n name={\"sort-by\"}\n options={[\n { label: \"Name\", value: \"name\" },\n {\n label: \"Capacity\",\n value: \"capacity\",\n },\n {\n label: \"Usage\",\n value: \"usage\",\n },\n {\n label: \"Active Status\",\n value: \"active_status\",\n },\n {\n label: \"Failing Status\",\n value: \"failing_status\",\n },\n ]}\n />\n \n \n \n \n )}\n {filteredRecords.length === 0 && (\n \n \n }\n title={\"Tenants\"}\n help={\n \n Tenant is the logical structure to represent a MinIO\n deployment. A tenant can have different size and\n configurations from other tenants, even a different\n storage class.\n
\n
\n To get started, \n {\n navigate(\"/tenants/add\");\n }}\n >\n Create a Tenant.\n \n
\n }\n />\n
\n \n )}\n \n )}\n \n \n \n );\n};\n\nexport default ListTenants;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\n\nexport interface ISizeBarItem {\n value: number;\n itemName: string;\n color: string;\n}\n\nexport interface IUsageBar {\n totalValue: number;\n sizeItems: ISizeBarItem[];\n bgColor?: string;\n}\n\nconst UsageBar = ({\n totalValue,\n sizeItems,\n bgColor = \"#ededed\",\n}: IUsageBar) => {\n return (\n \n {sizeItems.map((sizeElement, index) => {\n const itemPercentage = (sizeElement.value * 100) / totalValue;\n return (\n \n );\n })}\n \n );\n};\n\nexport default UsageBar;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Cell, Pie, PieChart } from \"recharts\";\nimport { CapacityValue, CapacityValues } from \"./types\";\nimport { niceBytesInt } from \"../../../../common/utils\";\nimport { CircleIcon } from \"mds\";\nimport UsageBar, { ISizeBarItem } from \"../../Common/UsageBar/UsageBar\";\n\ninterface ITenantCapacity {\n totalCapacity: number;\n usedSpaceVariants: CapacityValues[];\n statusClass: string;\n render?: \"pie\" | \"bar\";\n}\n\nconst TenantCapacity = ({\n totalCapacity,\n usedSpaceVariants,\n statusClass,\n render = \"pie\",\n}: ITenantCapacity) => {\n const colors = [\n \"#8dacd3\",\n \"#bca1ea\",\n \"#92e8d2\",\n \"#efc9ac\",\n \"#97f274\",\n \"#f7d291\",\n \"#71ACCB\",\n \"#f28282\",\n \"#e28cc1\",\n \"#2781B0\",\n ];\n\n const BGColor = \"#ededed\";\n\n const totalUsedSpace = usedSpaceVariants.reduce((acc, currValue) => {\n return acc + currValue.value;\n }, 0);\n\n const emptySpace = totalCapacity - totalUsedSpace;\n\n let tiersList: CapacityValue[] = [];\n\n const standardTier = usedSpaceVariants.find(\n (tier) => tier.variant === \"STANDARD\",\n ) || {\n value: 0,\n variant: \"empty\",\n };\n\n if (usedSpaceVariants.length > 10) {\n const totalUsedByTiers = totalUsedSpace - standardTier.value;\n\n tiersList = [\n { value: totalUsedByTiers, color: \"#2781B0\", label: \"Total Tiers Space\" },\n ];\n } else {\n tiersList = usedSpaceVariants\n .filter((variant) => variant.variant !== \"STANDARD\")\n .map((variant, index) => {\n return {\n value: variant.value,\n color: colors[index],\n label: `Tier - ${variant.variant}`,\n };\n });\n }\n\n let standardTierColor = \"#07193E\";\n\n const usedPercentage = (standardTier.value * 100) / totalCapacity;\n\n if (usedPercentage >= 90) {\n standardTierColor = \"#C83B51\";\n } else if (usedPercentage >= 75) {\n standardTierColor = \"#FFAB0F\";\n }\n\n const plotValues: CapacityValue[] = [\n {\n value: standardTier.value,\n color: standardTierColor,\n label: \"Used Space by Tenant\",\n },\n ...tiersList,\n {\n value: emptySpace,\n color: render === \"bar\" ? BGColor : \"transparent\",\n label: \"Empty Space\",\n },\n ];\n\n if (render === \"bar\") {\n const plotValuesForUsageBar: ISizeBarItem[] = plotValues.map((plotVal) => {\n return {\n value: plotVal.value,\n color: plotVal.color,\n itemName: plotVal.label,\n };\n });\n\n return (\n
\n \n
\n );\n }\n\n return (\n
\n \n \n
\n \n {!isNaN(totalUsedSpace) ? niceBytesInt(totalUsedSpace) : \"N/A\"}\n \n
\n \n \n \n {plotValues.map((entry, index) => (\n \n ))}\n \n \n
\n \n );\n};\n\nexport default TenantCapacity;\n"],"names":["withStyles","theme","createStyles","root","padding","margin","border","backgroundColor","textDecoration","cursor","fontSize","color","palette","info","main","fontFamily","_ref","classes","children","rest","_objectWithoutProperties","_excluded","_jsx","_objectSpread","className","WrappedComponent","fallback","arguments","length","undefined","props","Suspense","tooltip","_ref$errorProps","errorProps","placement","Tooltip","title","cloneElement","label","value","unit","_ref$variant","variant","_jsxs","style","textAlign","fontWeight","Fragment","whiteSpace","useStyles","makeStyles","redState","error","width","height","float","marginRight","yellowState","warning","greenState","success","greyState","tenantItem","marginBottom","titleContainer","display","justifyContent","namespaceLabel","borderRadius","status","tenant","dispatch","useAppDispatch","navigate","useNavigate","raw","capacity","used","localUse","tieredUse","capacity_raw","parts","niceBytes","concat","split","capacity_usage","niceBytesInt","spaceVariants","tiers","_tenant$tiers","_tenant$tiers2","map","itemTenant","size","name","internalUsage","filter","type","reduce","sum","tieredUsage","partsInternal","id","onClick","setTenantName","namespace","getTenantAsync","Grid","container","item","xs","sx","marginTop","TenantCapacity","totalCapacity","usedSpaceVariants","statusClass","health_status","healthStatusToClass","alignItems","InformationItem","pool_count","paddingLeft","currentState","justifyItems","DrivesIcon","paddingTop","itemStatusMap","rowRenderFunction","totalItems","defaultHeight","RenderItemLine","_ref2","index","InfiniteLoader","isItemLoaded","loadMoreItems","startIndex","stopIndex","itemCount","_ref3","onItemsRendered","ref","AutoSizer","_ref4","List","itemSize","searchField","adornment","_ref$placeholder","placeholder","onChange","_ref$adornmentPositio","adornmentPosition","overrideClass","inputProps","_defineProperty","disableUnderline","InputAdornment","position","SearchIcon","TextField","InputProps","e","target","CredentialsPrompt","withSuspense","React","_useState","useState","_useState2","_slicedToArray","isLoading","setIsLoading","_useState3","_useState4","filterTenants","setFilterTenants","_useState5","_useState6","records","setRecords","_useState7","_useState8","showNewCredentials","setShowNewCredentials","_useState9","_useState10","createdAccount","setCreatedAccount","_useState11","_useState12","sortValue","setSortValue","filteredRecords","b","indexOf","sort","a","useEffect","api","tenants","listAllTenants","then","res","data","resTenants","catch","err","setErrorSnackMessage","newServiceAccount","open","closeModal","entity","PageHeaderWrapper","middleComponent","SearchBox","val","actions","TooltipWrapper","Button","icon","RefreshIcon","AddIcon","PageLayout","LinearProgress","maxWidth","flexDirection","SelectWrapper","options","VirtualizedList","TenantListItem","alignContent","HelpBox","iconComponent","TenantsIcon","help","AButton","totalValue","sizeItems","_ref$bgColor","bgColor","transitionDuration","overflow","sizeElement","itemPercentage","toString","_ref$render","render","colors","BGColor","totalUsedSpace","acc","currValue","emptySpace","tiersList","standardTier","find","tier","standardTierColor","usedPercentage","plotValues","_toConsumableArray","plotValuesForUsageBar","plotVal","itemName","UsageBar","right","top","zIndex","CircleIcon","left","transform","isNaN","PieChart","Pie","cx","cy","dataKey","outerRadius","innerRadius","fill","isAnimationActive","stroke","entry","Cell"],"sourceRoot":""} \ No newline at end of file diff --git a/web-app/build/static/js/33.a6099543.chunk.js b/web-app/build/static/js/33.a6099543.chunk.js deleted file mode 100644 index 6980bbf8c7d..00000000000 --- a/web-app/build/static/js/33.a6099543.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[33],{81806:function(e,t,n){var a=n(1413),i=n(45987),r=(n(72791),n(11135)),s=n(25787),l=n(80184),c=["classes","children"];t.Z=(0,s.Z)((function(e){return(0,r.Z)({root:{padding:0,margin:0,border:0,backgroundColor:"transparent",textDecoration:"underline",cursor:"pointer",fontSize:"inherit",color:e.palette.info.main,fontFamily:"Inter, sans-serif"}})}))((function(e){var t=e.classes,n=e.children,r=(0,i.Z)(e,c);return(0,l.jsx)("button",(0,a.Z)((0,a.Z)({},r),{},{className:t.root,children:n}))}))},75578:function(e,t,n){var a=n(1413),i=n(72791),r=n(80184);t.Z=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return function(n){return(0,r.jsx)(i.Suspense,{fallback:t,children:(0,r.jsx)(e,(0,a.Z)({},n))})}}},27454:function(e,t,n){var a=n(1413),i=n(72791),r=n(96040),s=n(80184);t.Z=function(e){var t=e.tooltip,n=e.children,l=e.errorProps,c=void 0===l?null:l,o=e.placement;return(0,s.jsx)(r.Z,{title:t,placement:o,children:(0,s.jsx)("span",{children:c?(0,i.cloneElement)(n,(0,a.Z)({},c)):n})})}},76033:function(e,t,n){n.r(t),n.d(t,{default:function(){return M}});var a=n(29439),i=n(1413),r=n(72791),s=n(75952),l=n(61889),c=n(57482),o=n(23814),u=n(57689),d=n(17238),h=n(82295),f=n(45248),x=n(80184),p=function(e){var t=e.label,n=e.value,a=e.unit,i=e.variant,s=void 0===i?"normal":i;return(0,x.jsxs)("div",{style:{margin:"0px 20px"},children:[(0,x.jsxs)("div",{style:{textAlign:"center"},children:[(0,x.jsx)("span",{style:{fontSize:18,color:"normal"===s?"#000":"#999",fontWeight:400},children:n}),a&&(0,x.jsxs)(r.Fragment,{children:[" ",(0,x.jsx)("span",{style:{fontSize:12,color:"#8F9090",fontWeight:"bold"},children:a})]})]}),(0,x.jsx)("div",{style:{textAlign:"center",color:"normal"===s?"#767676":"#bababa",fontSize:12,whiteSpace:"nowrap"},children:t})]})},v=n(74815),m=n(41320),g=n(72455),j=(0,g.Z)((function(e){return{redState:{color:e.palette.error.main,"& .min-icon":{width:16,height:16,float:"left",marginRight:4}},yellowState:{color:e.palette.warning.main,"& .min-icon":{width:16,height:16,float:"left",marginRight:4}},greenState:{color:e.palette.success.main,"& .min-icon":{width:16,height:16,float:"left",marginRight:4}},greyState:{color:"grey","& .min-icon":{width:16,height:16,float:"left",marginRight:4}},tenantItem:{border:"1px solid #EAEAEA",marginBottom:16,padding:"15px 30px","&:hover":{backgroundColor:"#FAFAFA",cursor:"pointer"}},titleContainer:{display:"flex",justifyContent:"space-between",width:"100%"},title:{fontSize:18,fontWeight:"bold"},namespaceLabel:{display:"inline-flex",backgroundColor:"#EAEDEF",borderRadius:2,padding:"4px 8px",fontSize:10,marginRight:20},status:{fontSize:12,color:"#8F9090"}}})),y=function(e){var t=e.tenant,n=(0,m.TL)(),a=(0,u.s0)(),i=j(),c={value:"n/a",unit:""},o={value:"n/a",unit:""},g={value:"n/a",unit:""},y={value:"n/a",unit:""},b={value:"n/a",unit:""};if(t.capacity_raw){var Z=(0,f.ae)("".concat(t.capacity_raw),!0).split(" ");c.value=Z[0],c.unit=Z[1]}if(t.capacity){var S=(0,f.ae)("".concat(t.capacity),!0).split(" ");o.value=S[0],o.unit=S[1]}if(t.capacity_usage){var C=(0,f.l5)(t.capacity_usage,!0).split(" ");g.value=C[0],g.unit=C[1]}var w=[];if(t.tiers&&0!==t.tiers.length){var z,A;w=null===(z=t.tiers)||void 0===z?void 0:z.map((function(e){return{value:e.size,variant:e.name}}));var F=null===(A=t.tiers)||void 0===A?void 0:A.filter((function(e){return"internal"===e.type})).reduce((function(e,t){return e+t.size}),0),_=t.tiers.filter((function(e){return"internal"!==e.type})).reduce((function(e,t){return e+t.size}),0),T=(0,f.l5)(_,!0).split(" ");b.value=T[0],b.unit=T[1];var P=(0,f.l5)(F,!0).split(" ");y.value=P[0],y.unit=P[1]}else w=[{value:t.capacity_usage||0,variant:"STANDARD"}];return(0,x.jsx)(r.Fragment,{children:(0,x.jsx)("div",{className:i.tenantItem,id:"list-tenant-".concat(t.name),onClick:function(){n((0,d.V7)({name:t.name,namespace:t.namespace})),n((0,h.v)()),a("/namespaces/".concat(t.namespace,"/tenants/").concat(t.name,"/summary"))},children:(0,x.jsxs)(l.ZP,{container:!0,children:[(0,x.jsxs)(l.ZP,{item:!0,xs:12,className:i.titleContainer,children:[(0,x.jsx)("div",{className:i.title,children:(0,x.jsx)("span",{children:t.name})}),(0,x.jsx)("div",{children:(0,x.jsxs)("span",{className:i.namespaceLabel,children:["Namespace:\xa0",t.namespace]})})]}),(0,x.jsx)(l.ZP,{item:!0,xs:12,sx:{marginTop:2},children:(0,x.jsxs)(l.ZP,{container:!0,children:[(0,x.jsx)(l.ZP,{item:!0,xs:2,children:(0,x.jsx)(v.Z,{totalCapacity:t.capacity||0,usedSpaceVariants:w,statusClass:function(e){switch(e){case"red":return i.redState;case"yellow":return i.yellowState;case"green":return i.greenState;default:return i.greyState}}(t.health_status)})}),(0,x.jsxs)(l.ZP,{item:!0,xs:!0,children:[(0,x.jsxs)(l.ZP,{item:!0,xs:!0,sx:{display:"flex",justifyContent:"flex-start",alignItems:"center",marginTop:"10px"},children:[(0,x.jsx)(p,{label:"Raw Capacity",value:c.value,unit:c.unit}),(0,x.jsx)(p,{label:"Usable Capacity",value:o.value,unit:o.unit}),(0,x.jsx)(p,{label:"Pools",value:"".concat(t.pool_count),variant:"faded"})]}),(0,x.jsx)(l.ZP,{item:!0,xs:12,sx:{paddingLeft:"20px",marginTop:"15px"},children:(0,x.jsxs)("span",{className:i.status,children:[(0,x.jsx)("strong",{children:"State:"})," ",t.currentState]})})]}),(0,x.jsx)(l.ZP,{item:!0,xs:3,children:(0,x.jsx)(r.Fragment,{children:(0,x.jsxs)(l.ZP,{container:!0,children:[(0,x.jsxs)(l.ZP,{item:!0,xs:2,textAlign:"center",justifyContent:"center",justifyItems:"center",children:[(0,x.jsx)(s.FU8,{style:{width:25,color:"rgb(91,91,91)"}}),(0,x.jsx)("div",{style:{color:"rgb(118, 118, 118)",fontSize:12,fontWeight:"400"},children:"Usage"})]}),(0,x.jsx)(l.ZP,{item:!0,xs:1}),(0,x.jsxs)(l.ZP,{item:!0,style:{paddingTop:8},children:[(!t.tiers||0===t.tiers.length)&&(0,x.jsxs)("div",{style:{fontSize:14,fontWeight:400},children:[(0,x.jsxs)("span",{style:{color:"rgb(62,62,62)"},children:["Internal:"," "]})," ","".concat(g.value," ").concat(g.unit)]}),t.tiers&&t.tiers.length>0&&(0,x.jsxs)(r.Fragment,{children:[(0,x.jsxs)("div",{style:{fontSize:14,fontWeight:400},children:[(0,x.jsxs)("span",{style:{color:"rgb(62,62,62)"},children:["Internal:"," "]})," ","".concat(y.value," ").concat(y.unit)]}),(0,x.jsxs)("div",{style:{fontSize:14,fontWeight:400},children:[(0,x.jsxs)("span",{style:{color:"rgb(62,62,62)"},children:["Tiered:"," "]})," ","".concat(b.value," ").concat(b.unit)]})]})]})]})})})]})})]})})})},b=n(81806),Z=n(75578),S=n(22338),C=n(79762),w=n(5171),z={},A=function(e){var t=e.rowRenderFunction,n=e.totalItems,a=e.defaultHeight,i=function(e){var n=e.index,a=e.style;return(0,x.jsx)("div",{style:a,children:t(n)})};return(0,x.jsx)(r.Fragment,{children:(0,x.jsx)(C.Z,{isItemLoaded:function(e){return!!z[e]},loadMoreItems:function(e,t){for(var n=e;n<=t;n++)z[n]=1;for(var a=e;a<=t;a++)z[a]=2},itemCount:n,children:function(e){var t=e.onItemsRendered,r=e.ref;return(0,x.jsx)(w.qj,{children:function(e){var s=e.width,l=e.height;return(0,x.jsx)(S.t7,{itemSize:a||220,height:l,itemCount:n,width:s,ref:r,onItemsRendered:t,children:i})}})}})})},F=n(4942),_=n(63466),T=n(27391),P=n(25787),R=n(11135),N=(0,P.Z)((function(e){return(0,R.Z)({searchField:(0,i.Z)({},o.qg.searchField),adornment:{}})}))((function(e){var t=e.placeholder,n=void 0===t?"":t,a=e.classes,i=e.onChange,r=e.adornmentPosition,l=void 0===r?"end":r,c=e.overrideClass,o=e.value,u=(0,F.Z)({disableUnderline:!0},"".concat(l,"Adornment"),(0,x.jsx)(_.Z,{position:l,className:a.adornment,children:(0,x.jsx)(s.W1M,{})}));return(0,x.jsx)(T.Z,{placeholder:n,className:c||a.searchField,id:"search-resource",label:"",InputProps:u,onChange:function(e){i(e.target.value)},variant:"standard",value:o})})),I=n(74794),k=n(87995),B=n(90673),D=n(27454),E=n(47974),L=n(79626),W=(0,Z.Z)(r.lazy((function(){return n.e(798).then(n.bind(n,37798))}))),U=(0,g.Z)((function(e){return(0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},o.OR),o.qg),o.Bz),{},{tenantsList:{height:"calc(100vh - 195px)"},sortByContainer:{display:"flex",justifyContent:"flex-end",marginBottom:10},innerSort:{maxWidth:200,width:"95%",display:"flex",flexDirection:"row",alignItems:"center"},sortByLabel:{whiteSpace:"nowrap",fontSize:14,color:"#838383",fontWeight:"bold",marginRight:10}})})),M=function(){var e=(0,m.TL)(),t=(0,u.s0)(),n=U(),i=(0,r.useState)(!1),o=(0,a.Z)(i,2),d=o[0],h=o[1],f=(0,r.useState)(""),p=(0,a.Z)(f,2),v=p[0],g=p[1],j=(0,r.useState)([]),Z=(0,a.Z)(j,2),S=Z[0],C=Z[1],w=(0,r.useState)(!1),z=(0,a.Z)(w,2),F=z[0],_=z[1],T=(0,r.useState)(null),P=(0,a.Z)(T,2),R=P[0],M=P[1],V=(0,r.useState)("name"),K=(0,a.Z)(V,2),q=K[0],O=K[1],H=S.filter((function(e){return""===v||e.name.indexOf(v)>=0}));H.sort((function(e,t){switch(q){case"capacity":return e.capacity&&t.capacity?e.capacity>t.capacity?1:e.capacityt.capacity_usage?1:e.capacity_usaget.name?1:e.name10?g=[{value:v-j.value,color:"#2781B0",label:"Total Tiers Space"}]:g=n.filter((function(e){return"STANDARD"!==e.variant})).map((function(e,t){return{value:e.value,color:x[t],label:"Tier - ".concat(e.variant)}}));var y="#07193E",b=100*j.value/t;b>=90?y="#C83B51":b>=75&&(y="#FFAB0F");var Z=[{value:j.value,color:y,label:"Used Space by Tenant"}].concat((0,a.Z)(g),[{value:m,color:"bar"===f?p:"transparent",label:"Empty Space"}]);if("bar"===f){var S=Z.map((function(e){return{value:e.value,color:e.color,itemName:e.label}}));return(0,o.jsx)("div",{style:{width:"100%",marginBottom:15},children:(0,o.jsx)(u,{totalValue:t,sizeItems:S,bgColor:p})})}return(0,o.jsxs)("div",{style:{position:"relative",width:110,height:110},children:[(0,o.jsx)("div",{style:{position:"absolute",right:-5,top:15,zIndex:400},className:d,children:(0,o.jsx)(c.J$M,{style:{border:"#fff 2px solid",borderRadius:"100%",width:20,height:20}})}),(0,o.jsx)("span",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",fontWeight:"bold",color:"#000",fontSize:12},children:isNaN(v)?"N/A":(0,l.l5)(v)}),(0,o.jsx)("div",{children:(0,o.jsxs)(i.u,{width:110,height:110,children:[(0,o.jsx)(r.b,{data:[{value:100}],cx:"50%",cy:"50%",dataKey:"value",outerRadius:50,innerRadius:40,fill:p,isAnimationActive:!1,stroke:"none"}),(0,o.jsx)(r.b,{data:Z,cx:"50%",cy:"50%",dataKey:"value",outerRadius:50,innerRadius:40,children:Z.map((function(e,t){return(0,o.jsx)(s.b,{fill:e.color,stroke:"none"},"cellCapacity-".concat(t))}))})]})})]})}}}]); -//# sourceMappingURL=33.a6099543.chunk.js.map \ No newline at end of file diff --git a/web-app/build/static/js/33.a6099543.chunk.js.map b/web-app/build/static/js/33.a6099543.chunk.js.map deleted file mode 100644 index 7f97086465e..00000000000 --- a/web-app/build/static/js/33.a6099543.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/33.a6099543.chunk.js","mappings":"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","sources":["screens/Console/Common/AButton/AButton.tsx","screens/Console/Common/Components/withSuspense.tsx","screens/Console/Common/TooltipWrapper/TooltipWrapper.tsx","screens/Console/Tenants/ListTenants/InformationItem.tsx","screens/Console/Tenants/ListTenants/TenantListItem.tsx","screens/Console/Common/VirtualizedList/VirtualizedList.tsx","screens/Console/Common/SearchBox.tsx","screens/Console/Tenants/ListTenants/ListTenants.tsx","screens/Console/Common/UsageBar/UsageBar.tsx","screens/Console/Tenants/ListTenants/TenantCapacity.tsx"],"sourcesContent":["// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButtonProps } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 0,\n margin: 0,\n border: 0,\n backgroundColor: \"transparent\",\n textDecoration: \"underline\",\n cursor: \"pointer\",\n fontSize: \"inherit\",\n color: theme.palette.info.main,\n fontFamily: \"Inter, sans-serif\",\n },\n });\n\ninterface IAButton extends IconButtonProps {\n classes: any;\n children: any;\n}\n\nconst AButton = ({ classes, children, ...rest }: IAButton) => {\n return (\n \n );\n};\n\nexport default withStyles(styles)(AButton);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { ComponentType, Suspense, SuspenseProps } from \"react\";\n\nfunction withSuspense

(\n WrappedComponent: ComponentType

,\n fallback: SuspenseProps[\"fallback\"] = null,\n) {\n function ComponentWithSuspense(props: P) {\n return (\n \n \n \n );\n }\n\n return ComponentWithSuspense;\n}\n\nexport default withSuspense;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { cloneElement } from \"react\";\nimport { Tooltip } from \"@mui/material\";\n\ninterface ITooltipWrapperProps {\n tooltip: string;\n children: any;\n errorProps?: any;\n placement?:\n | \"bottom-end\"\n | \"bottom-start\"\n | \"bottom\"\n | \"left-end\"\n | \"left-start\"\n | \"left\"\n | \"right-end\"\n | \"right-start\"\n | \"right\"\n | \"top-end\"\n | \"top-start\"\n | \"top\";\n}\n\nconst TooltipWrapper = ({\n tooltip,\n children,\n errorProps = null,\n placement,\n}: ITooltipWrapperProps) => {\n return (\n \n \n {errorProps ? cloneElement(children, { ...errorProps }) : children}\n \n \n );\n};\n\nexport default TooltipWrapper;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\n\ninterface IInformationItemProps {\n label: string;\n value: string;\n unit?: string;\n variant?: \"normal\" | \"faded\";\n}\n\nconst InformationItem = ({\n label,\n value,\n unit,\n variant = \"normal\",\n}: IInformationItemProps) => {\n return (\n

\n
\n \n {value}\n \n {unit && (\n \n {\" \"}\n \n {unit}\n \n \n )}\n
\n \n {label}\n
\n \n );\n};\n\nexport default InformationItem;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\n\nimport { useNavigate } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport { CapacityValues, ValueUnit } from \"./types\";\nimport { setTenantName } from \"../tenantsSlice\";\nimport { getTenantAsync } from \"../thunks/tenantDetailsAsync\";\nimport { DrivesIcon } from \"mds\";\nimport { niceBytes, niceBytesInt } from \"../../../../common/utils\";\nimport Grid from \"@mui/material/Grid\";\nimport InformationItem from \"./InformationItem\";\nimport TenantCapacity from \"./TenantCapacity\";\nimport { useAppDispatch } from \"../../../../store\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { TenantList } from \"../../../../api/operatorApi\";\n\nconst useStyles = makeStyles((theme: Theme) => ({\n redState: {\n color: theme.palette.error.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n float: \"left\",\n marginRight: 4,\n },\n },\n yellowState: {\n color: theme.palette.warning.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n float: \"left\",\n marginRight: 4,\n },\n },\n greenState: {\n color: theme.palette.success.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n float: \"left\",\n marginRight: 4,\n },\n },\n greyState: {\n color: \"grey\",\n \"& .min-icon\": {\n width: 16,\n height: 16,\n float: \"left\",\n marginRight: 4,\n },\n },\n tenantItem: {\n border: \"1px solid #EAEAEA\",\n marginBottom: 16,\n padding: \"15px 30px\",\n \"&:hover\": {\n backgroundColor: \"#FAFAFA\",\n cursor: \"pointer\",\n },\n },\n titleContainer: {\n display: \"flex\",\n justifyContent: \"space-between\",\n width: \"100%\",\n },\n title: {\n fontSize: 18,\n fontWeight: \"bold\",\n },\n namespaceLabel: {\n display: \"inline-flex\",\n backgroundColor: \"#EAEDEF\",\n borderRadius: 2,\n padding: \"4px 8px\",\n fontSize: 10,\n marginRight: 20,\n },\n status: {\n fontSize: 12,\n color: \"#8F9090\",\n },\n}));\n\nconst TenantListItem = ({ tenant }: { tenant: TenantList }) => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n const classes = useStyles();\n\n const healthStatusToClass = (health_status: string) => {\n switch (health_status) {\n case \"red\":\n return classes.redState;\n case \"yellow\":\n return classes.yellowState;\n case \"green\":\n return classes.greenState;\n default:\n return classes.greyState;\n }\n };\n\n let raw: ValueUnit = { value: \"n/a\", unit: \"\" };\n let capacity: ValueUnit = { value: \"n/a\", unit: \"\" };\n let used: ValueUnit = { value: \"n/a\", unit: \"\" };\n let localUse: ValueUnit = { value: \"n/a\", unit: \"\" };\n let tieredUse: ValueUnit = { value: \"n/a\", unit: \"\" };\n\n if (tenant.capacity_raw) {\n const b = niceBytes(`${tenant.capacity_raw}`, true);\n const parts = b.split(\" \");\n raw.value = parts[0];\n raw.unit = parts[1];\n }\n if (tenant.capacity) {\n const b = niceBytes(`${tenant.capacity}`, true);\n const parts = b.split(\" \");\n capacity.value = parts[0];\n capacity.unit = parts[1];\n }\n if (tenant.capacity_usage) {\n const b = niceBytesInt(tenant.capacity_usage, true);\n const parts = b.split(\" \");\n used.value = parts[0];\n used.unit = parts[1];\n }\n\n let spaceVariants: CapacityValues[] = [];\n if (!tenant.tiers || tenant.tiers.length === 0) {\n spaceVariants = [\n { value: tenant.capacity_usage || 0, variant: \"STANDARD\" },\n ];\n } else {\n spaceVariants = tenant.tiers?.map((itemTenant) => {\n return { value: itemTenant.size!, variant: itemTenant.name! };\n });\n let internalUsage = tenant.tiers\n ?.filter((itemTenant) => {\n return itemTenant.type === \"internal\";\n })\n .reduce((sum, itemTenant) => sum + itemTenant.size!, 0);\n let tieredUsage = tenant.tiers\n .filter((itemTenant) => {\n return itemTenant.type !== \"internal\";\n })\n .reduce((sum, itemTenant) => sum + itemTenant.size!, 0);\n\n const t = niceBytesInt(tieredUsage, true);\n const parts = t.split(\" \");\n tieredUse.value = parts[0];\n tieredUse.unit = parts[1];\n\n const is = niceBytesInt(internalUsage, true);\n const partsInternal = is.split(\" \");\n localUse.value = partsInternal[0];\n localUse.unit = partsInternal[1];\n }\n\n const openTenantDetails = () => {\n dispatch(\n setTenantName({\n name: tenant.name!,\n namespace: tenant.namespace!,\n }),\n );\n dispatch(getTenantAsync());\n navigate(`/namespaces/${tenant.namespace}/tenants/${tenant.name}/summary`);\n };\n\n return (\n \n \n \n \n
\n {tenant.name}\n
\n
\n \n Namespace: {tenant.namespace}\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n State: {tenant.currentState}\n \n \n \n \n \n \n \n \n \n Usage\n \n \n \n \n {(!tenant.tiers || tenant.tiers.length === 0) && (\n \n \n Internal:{\" \"}\n {\" \"}\n {`${used.value} ${used.unit}`}\n \n )}\n\n {tenant.tiers && tenant.tiers.length > 0 && (\n \n \n \n Internal:{\" \"}\n {\" \"}\n {`${localUse.value} ${localUse.unit}`}\n \n \n \n Tiered:{\" \"}\n {\" \"}\n {`${tieredUse.value} ${tieredUse.unit}`}\n \n \n )}\n \n \n \n \n
\n \n \n \n
\n );\n};\n\nexport default TenantListItem;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, ReactElement } from \"react\";\nimport { FixedSizeList as List } from \"react-window\";\nimport InfiniteLoader from \"react-window-infinite-loader\";\nimport { AutoSizer } from \"react-virtualized\";\n\ninterface IVirtualizedList {\n rowRenderFunction: (index: number) => ReactElement | null;\n totalItems: number;\n defaultHeight?: number;\n}\n\nlet itemStatusMap: any = {};\nconst LOADING = 1;\nconst LOADED = 2;\n\nconst VirtualizedList = ({\n rowRenderFunction,\n totalItems,\n defaultHeight,\n}: IVirtualizedList) => {\n const isItemLoaded = (index: any) => !!itemStatusMap[index];\n\n const loadMoreItems = (startIndex: number, stopIndex: number) => {\n for (let index = startIndex; index <= stopIndex; index++) {\n itemStatusMap[index] = LOADING;\n }\n\n for (let index = startIndex; index <= stopIndex; index++) {\n itemStatusMap[index] = LOADED;\n }\n };\n\n const RenderItemLine = ({ index, style }: any) => {\n return
{rowRenderFunction(index)}
;\n };\n\n return (\n \n \n {({ onItemsRendered, ref }) => (\n // @ts-ignore\n \n {({ width, height }) => {\n return (\n \n {RenderItemLine}\n \n );\n }}\n \n )}\n \n \n );\n};\n\nexport default VirtualizedList;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport { SearchIcon } from \"mds\";\nimport TextField from \"@mui/material/TextField\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"./FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n },\n adornment: {},\n });\n\ntype SearchBoxProps = {\n placeholder?: string;\n value: string;\n classes: any;\n onChange: (value: string) => void;\n adornmentPosition?: \"start\" | \"end\";\n overrideClass?: any;\n};\n\nconst SearchBox = ({\n placeholder = \"\",\n classes,\n onChange,\n adornmentPosition = \"end\",\n overrideClass,\n value,\n}: SearchBoxProps) => {\n const inputProps = {\n disableUnderline: true,\n [`${adornmentPosition}Adornment`]: (\n \n \n \n ),\n };\n return (\n {\n onChange(e.target.value);\n }}\n variant=\"standard\"\n value={value}\n />\n );\n};\n\nexport default withStyles(styles)(SearchBox);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { AddIcon, Button, HelpBox, RefreshIcon, TenantsIcon } from \"mds\";\nimport Grid from \"@mui/material/Grid\";\nimport { LinearProgress, SelectChangeEvent } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport { NewServiceAccount } from \"../../Common/CredentialsPrompt/types\";\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport TenantListItem from \"./TenantListItem\";\nimport AButton from \"../../Common/AButton/AButton\";\n\nimport withSuspense from \"../../Common/Components/withSuspense\";\nimport VirtualizedList from \"../../Common/VirtualizedList/VirtualizedList\";\nimport SearchBox from \"../../Common/SearchBox\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\nimport SelectWrapper from \"../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useAppDispatch } from \"../../../../store\";\nimport TooltipWrapper from \"../../Common/TooltipWrapper/TooltipWrapper\";\nimport PageHeaderWrapper from \"../../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { api } from \"../../../../api\";\nimport {\n Error,\n HttpResponse,\n ListTenantsResponse,\n TenantList,\n} from \"../../../../api/operatorApi\";\n\nconst CredentialsPrompt = withSuspense(\n React.lazy(() => import(\"../../Common/CredentialsPrompt/CredentialsPrompt\")),\n);\n\nconst useStyles = makeStyles((theme: Theme) => ({\n ...actionsTray,\n ...searchField,\n ...containerForHeader,\n tenantsList: {\n height: \"calc(100vh - 195px)\",\n },\n sortByContainer: {\n display: \"flex\",\n justifyContent: \"flex-end\",\n marginBottom: 10,\n },\n innerSort: {\n maxWidth: 200,\n width: \"95%\",\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n sortByLabel: {\n whiteSpace: \"nowrap\",\n fontSize: 14,\n color: \"#838383\",\n fontWeight: \"bold\",\n marginRight: 10,\n },\n}));\n\nconst ListTenants = () => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n const classes = useStyles();\n\n const [isLoading, setIsLoading] = useState(false);\n const [filterTenants, setFilterTenants] = useState(\"\");\n const [records, setRecords] = useState([]);\n const [showNewCredentials, setShowNewCredentials] = useState(false);\n const [createdAccount, setCreatedAccount] =\n useState(null);\n const [sortValue, setSortValue] = useState(\"name\");\n\n const closeCredentialsModal = () => {\n setShowNewCredentials(false);\n setCreatedAccount(null);\n };\n\n const filteredRecords = records.filter((b: any) => {\n if (filterTenants === \"\") {\n return true;\n } else {\n if (b.name.indexOf(filterTenants) >= 0) {\n return true;\n } else {\n return false;\n }\n }\n });\n\n filteredRecords.sort((a, b) => {\n switch (sortValue) {\n case \"capacity\":\n if (!a.capacity || !b.capacity) {\n return 0;\n }\n\n if (a.capacity > b.capacity) {\n return 1;\n }\n\n if (a.capacity < b.capacity) {\n return -1;\n }\n\n return 0;\n case \"usage\":\n if (!a.capacity_usage || !b.capacity_usage) {\n return 0;\n }\n\n if (a.capacity_usage > b.capacity_usage) {\n return 1;\n }\n\n if (a.capacity_usage < b.capacity_usage) {\n return -1;\n }\n\n return 0;\n case \"active_status\":\n if (a.health_status === \"red\" && b.health_status !== \"red\") {\n return 1;\n }\n\n if (a.health_status !== \"red\" && b.health_status === \"red\") {\n return -1;\n }\n\n return 0;\n case \"failing_status\":\n if (a.health_status === \"green\" && b.health_status !== \"green\") {\n return 1;\n }\n\n if (a.health_status !== \"green\" && b.health_status === \"green\") {\n return -1;\n }\n\n return 0;\n default:\n if (a.name! > b.name!) {\n return 1;\n }\n if (a.name! < b.name!) {\n return -1;\n }\n return 0;\n }\n });\n\n useEffect(() => {\n if (isLoading) {\n const fetchRecords = () => {\n api.tenants\n .listAllTenants()\n .then((res: HttpResponse) => {\n if (!res.data) {\n setIsLoading(false);\n return;\n }\n let resTenants: TenantList[] =\n (res.data.tenants as TenantList[]) ?? [];\n\n setRecords(resTenants);\n setIsLoading(false);\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(err));\n setIsLoading(false);\n });\n };\n fetchRecords();\n }\n }, [isLoading, dispatch]);\n\n useEffect(() => {\n setIsLoading(true);\n }, []);\n\n const renderItemLine = (index: number) => {\n const tenant = filteredRecords[index] || null;\n\n if (tenant) {\n return ;\n }\n\n return null;\n };\n\n return (\n \n {showNewCredentials && (\n {\n closeCredentialsModal();\n }}\n entity=\"Tenant\"\n />\n )}\n {\n setFilterTenants(val);\n }}\n value={filterTenants}\n />\n }\n actions={\n \n \n {\n setIsLoading(true);\n }}\n icon={}\n variant={\"regular\"}\n />\n \n \n {\n navigate(\"/tenants/add\");\n }}\n icon={}\n variant={\"callAction\"}\n />\n \n \n }\n />\n \n \n {isLoading && }\n {!isLoading && (\n \n {filteredRecords.length !== 0 && (\n \n \n
\n Sort by\n ) => {\n setSortValue(e.target.value as string);\n }}\n name={\"sort-by\"}\n options={[\n { label: \"Name\", value: \"name\" },\n {\n label: \"Capacity\",\n value: \"capacity\",\n },\n {\n label: \"Usage\",\n value: \"usage\",\n },\n {\n label: \"Active Status\",\n value: \"active_status\",\n },\n {\n label: \"Failing Status\",\n value: \"failing_status\",\n },\n ]}\n />\n
\n
\n \n
\n )}\n {filteredRecords.length === 0 && (\n \n \n }\n title={\"Tenants\"}\n help={\n \n Tenant is the logical structure to represent a MinIO\n deployment. A tenant can have different size and\n configurations from other tenants, even a different\n storage class.\n
\n
\n To get started, \n {\n navigate(\"/tenants/add\");\n }}\n >\n Create a Tenant.\n \n
\n }\n />\n
\n
\n )}\n
\n )}\n \n \n \n );\n};\n\nexport default ListTenants;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\n\nexport interface ISizeBarItem {\n value: number;\n itemName: string;\n color: string;\n}\n\nexport interface IUsageBar {\n totalValue: number;\n sizeItems: ISizeBarItem[];\n bgColor?: string;\n}\n\nconst UsageBar = ({\n totalValue,\n sizeItems,\n bgColor = \"#ededed\",\n}: IUsageBar) => {\n return (\n \n {sizeItems.map((sizeElement, index) => {\n const itemPercentage = (sizeElement.value * 100) / totalValue;\n return (\n \n );\n })}\n \n );\n};\n\nexport default UsageBar;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Cell, Pie, PieChart } from \"recharts\";\nimport { CapacityValue, CapacityValues } from \"./types\";\nimport { niceBytesInt } from \"../../../../common/utils\";\nimport { CircleIcon } from \"mds\";\nimport UsageBar, { ISizeBarItem } from \"../../Common/UsageBar/UsageBar\";\n\ninterface ITenantCapacity {\n totalCapacity: number;\n usedSpaceVariants: CapacityValues[];\n statusClass: string;\n render?: \"pie\" | \"bar\";\n}\n\nconst TenantCapacity = ({\n totalCapacity,\n usedSpaceVariants,\n statusClass,\n render = \"pie\",\n}: ITenantCapacity) => {\n const colors = [\n \"#8dacd3\",\n \"#bca1ea\",\n \"#92e8d2\",\n \"#efc9ac\",\n \"#97f274\",\n \"#f7d291\",\n \"#71ACCB\",\n \"#f28282\",\n \"#e28cc1\",\n \"#2781B0\",\n ];\n\n const BGColor = \"#ededed\";\n\n const totalUsedSpace = usedSpaceVariants.reduce((acc, currValue) => {\n return acc + currValue.value;\n }, 0);\n\n const emptySpace = totalCapacity - totalUsedSpace;\n\n let tiersList: CapacityValue[] = [];\n\n const standardTier = usedSpaceVariants.find(\n (tier) => tier.variant === \"STANDARD\",\n ) || {\n value: 0,\n variant: \"empty\",\n };\n\n if (usedSpaceVariants.length > 10) {\n const totalUsedByTiers = totalUsedSpace - standardTier.value;\n\n tiersList = [\n { value: totalUsedByTiers, color: \"#2781B0\", label: \"Total Tiers Space\" },\n ];\n } else {\n tiersList = usedSpaceVariants\n .filter((variant) => variant.variant !== \"STANDARD\")\n .map((variant, index) => {\n return {\n value: variant.value,\n color: colors[index],\n label: `Tier - ${variant.variant}`,\n };\n });\n }\n\n let standardTierColor = \"#07193E\";\n\n const usedPercentage = (standardTier.value * 100) / totalCapacity;\n\n if (usedPercentage >= 90) {\n standardTierColor = \"#C83B51\";\n } else if (usedPercentage >= 75) {\n standardTierColor = \"#FFAB0F\";\n }\n\n const plotValues: CapacityValue[] = [\n {\n value: standardTier.value,\n color: standardTierColor,\n label: \"Used Space by Tenant\",\n },\n ...tiersList,\n {\n value: emptySpace,\n color: render === \"bar\" ? BGColor : \"transparent\",\n label: \"Empty Space\",\n },\n ];\n\n if (render === \"bar\") {\n const plotValuesForUsageBar: ISizeBarItem[] = plotValues.map((plotVal) => {\n return {\n value: plotVal.value,\n color: plotVal.color,\n itemName: plotVal.label,\n };\n });\n\n return (\n
\n \n
\n );\n }\n\n return (\n
\n \n \n
\n \n {!isNaN(totalUsedSpace) ? niceBytesInt(totalUsedSpace) : \"N/A\"}\n \n
\n \n \n \n {plotValues.map((entry, index) => (\n \n ))}\n \n \n
\n \n );\n};\n\nexport default TenantCapacity;\n"],"names":["withStyles","theme","createStyles","root","padding","margin","border","backgroundColor","textDecoration","cursor","fontSize","color","palette","info","main","fontFamily","_ref","classes","children","rest","_objectWithoutProperties","_excluded","_jsx","_objectSpread","className","WrappedComponent","fallback","arguments","length","undefined","props","Suspense","tooltip","_ref$errorProps","errorProps","placement","Tooltip","title","cloneElement","label","value","unit","_ref$variant","variant","_jsxs","style","textAlign","fontWeight","Fragment","whiteSpace","useStyles","makeStyles","redState","error","width","height","float","marginRight","yellowState","warning","greenState","success","greyState","tenantItem","marginBottom","titleContainer","display","justifyContent","namespaceLabel","borderRadius","status","tenant","dispatch","useAppDispatch","navigate","useNavigate","raw","capacity","used","localUse","tieredUse","capacity_raw","parts","niceBytes","concat","split","capacity_usage","niceBytesInt","spaceVariants","tiers","_tenant$tiers","_tenant$tiers2","map","itemTenant","size","name","internalUsage","filter","type","reduce","sum","tieredUsage","partsInternal","id","onClick","setTenantName","namespace","getTenantAsync","Grid","container","item","xs","sx","marginTop","TenantCapacity","totalCapacity","usedSpaceVariants","statusClass","health_status","healthStatusToClass","alignItems","InformationItem","pool_count","paddingLeft","currentState","justifyItems","DrivesIcon","paddingTop","itemStatusMap","rowRenderFunction","totalItems","defaultHeight","RenderItemLine","_ref2","index","InfiniteLoader","isItemLoaded","loadMoreItems","startIndex","stopIndex","itemCount","_ref3","onItemsRendered","ref","AutoSizer","_ref4","List","itemSize","searchField","adornment","_ref$placeholder","placeholder","onChange","_ref$adornmentPositio","adornmentPosition","overrideClass","inputProps","_defineProperty","disableUnderline","InputAdornment","position","SearchIcon","TextField","InputProps","e","target","CredentialsPrompt","withSuspense","React","actionsTray","containerForHeader","tenantsList","sortByContainer","innerSort","maxWidth","flexDirection","sortByLabel","_useState","useState","_useState2","_slicedToArray","isLoading","setIsLoading","_useState3","_useState4","filterTenants","setFilterTenants","_useState5","_useState6","records","setRecords","_useState7","_useState8","showNewCredentials","setShowNewCredentials","_useState9","_useState10","createdAccount","setCreatedAccount","_useState11","_useState12","sortValue","setSortValue","filteredRecords","b","indexOf","sort","a","useEffect","api","tenants","listAllTenants","then","res","data","resTenants","catch","err","setErrorSnackMessage","newServiceAccount","open","closeModal","entity","PageHeaderWrapper","middleComponent","SearchBox","val","actions","TooltipWrapper","Button","icon","RefreshIcon","AddIcon","PageLayout","LinearProgress","SelectWrapper","options","VirtualizedList","TenantListItem","alignContent","HelpBox","iconComponent","TenantsIcon","help","AButton","totalValue","sizeItems","_ref$bgColor","bgColor","transitionDuration","overflow","sizeElement","itemPercentage","toString","_ref$render","render","colors","BGColor","totalUsedSpace","acc","currValue","emptySpace","tiersList","standardTier","find","tier","standardTierColor","usedPercentage","plotValues","_toConsumableArray","plotValuesForUsageBar","plotVal","itemName","UsageBar","right","top","zIndex","CircleIcon","left","transform","isNaN","PieChart","Pie","cx","cy","dataKey","outerRadius","innerRadius","fill","isAnimationActive","stroke","entry","Cell"],"sourceRoot":""} \ No newline at end of file diff --git a/web-app/build/static/js/367.2251aaba.chunk.js b/web-app/build/static/js/367.2251aaba.chunk.js new file mode 100644 index 00000000000..2c412ef884a --- /dev/null +++ b/web-app/build/static/js/367.2251aaba.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[367],{92217:function(e,n,i){var l=i(1413),t=i(72791),o=i(61889),r=i(30829),a=i(96040),s=i(64554),d=i(11135),c=i(25787),u=i(75952),v=i(23814),m=i(78029),p=i.n(m),x=i(9534),g=i(27454),Z=i(80184);n.Z=(0,c.Z)((function(e){return(0,d.Z)((0,l.Z)({},v.YI))}))((function(e){var n=e.value,i=e.label,l=void 0===i?"":i,d=e.tooltip,c=void 0===d?"":d,v=e.mode,m=void 0===v?"json":v,h=e.classes,f=e.onBeforeChange,y=(e.readOnly,e.editorHeight),_=void 0===y?"250px":y;return(0,Z.jsxs)(t.Fragment,{children:[(0,Z.jsx)(o.ZP,{item:!0,xs:12,sx:{marginBottom:"10px"},children:(0,Z.jsxs)(r.Z,{className:h.inputLabel,children:[(0,Z.jsx)("span",{children:l}),""!==c&&(0,Z.jsx)("div",{className:h.tooltipContainer,children:(0,Z.jsx)(a.Z,{title:c,placement:"top-start",children:(0,Z.jsx)("div",{className:h.tooltip,children:(0,Z.jsx)(u.byK,{})})})})]})}),(0,Z.jsx)(o.ZP,{item:!0,xs:12,style:{maxHeight:_,overflow:"auto",border:"1px solid #eaeaea"},children:(0,Z.jsx)(x.Z,{value:n,language:m,onChange:function(e){f(null,null,e.target.value)},id:"code_wrapper",padding:15,style:{fontSize:12,backgroundColor:"#fefefe",fontFamily:"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace",minHeight:_||"initial",color:"#000000"}})}),(0,Z.jsx)(o.ZP,{item:!0,xs:12,sx:{background:"#f7f7f7",border:"1px solid #eaeaea",borderTop:0},children:(0,Z.jsx)(s.Z,{sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}}},children:(0,Z.jsx)(g.Z,{tooltip:"Copy to Clipboard",children:(0,Z.jsx)(p(),{text:n,children:(0,Z.jsx)(u.zxk,{type:"button",id:"copy-code-mirror",icon:(0,Z.jsx)(u.TIy,{}),color:"primary",variant:"regular"})})})})})]})}))},54639:function(e,n,i){i.d(n,{Z:function(){return y}});var l=i(29439),t=i(1413),o=i(72791),r=i(26181),a=i.n(r),s=i(61889),d=i(30829),c=i(96040),u=i(13400),v=i(99663),m=i(86711),p=i(11135),x=i(25787),g=i(23814),Z=i(75952),h=i(22512),f=i(80184),y=(0,x.Z)((function(e){return(0,p.Z)((0,t.Z)((0,t.Z)((0,t.Z)((0,t.Z)({},g.YI),g.Hr),{},{valueString:{maxWidth:350,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",marginTop:2},fileInputField:{margin:"13px 0","@media (max-width: 900px)":{flexFlow:"column"}}},g.bV),{},{inputLabel:(0,t.Z)((0,t.Z)({},g.YI.inputLabel),{},{fontWeight:"normal"}),textBoxContainer:(0,t.Z)((0,t.Z)({},g.YI.textBoxContainer),{},{maxWidth:"100%",border:"1px solid #eaeaea",paddingLeft:"15px"})}))}))((function(e){var n=e.label,i=e.classes,t=e.onChange,r=e.id,p=e.name,x=e.disabled,g=void 0!==x&&x,y=e.tooltip,_=void 0===y?"":y,j=e.required,k=e.error,b=void 0===k?"":k,C=e.accept,S=void 0===C?"":C,w=e.value,K=void 0===w?"":w,P=(0,o.useState)(!1),N=(0,l.Z)(P,2),I=N[0],A=N[1];return(0,f.jsx)(o.Fragment,{children:(0,f.jsxs)(s.ZP,{item:!0,xs:12,className:"".concat(i.fileInputField," ").concat(i.fieldBottom," ").concat(i.fieldContainer," ").concat(""!==b?i.errorInField:""),children:[""!==n&&(0,f.jsxs)(d.Z,{htmlFor:r,className:"".concat(""!==b?i.fieldLabelError:""," ").concat(i.inputLabel),children:[(0,f.jsxs)("span",{children:[n,j?"*":""]}),""!==_&&(0,f.jsx)("div",{className:i.tooltipContainer,children:(0,f.jsx)(c.Z,{title:_,placement:"top-start",children:(0,f.jsx)("div",{className:i.tooltip,children:(0,f.jsx)(Z.byK,{})})})})]}),I||""===K?(0,f.jsxs)("div",{className:i.textBoxContainer,children:[(0,f.jsx)("input",{type:"file",name:p,onChange:function(e){var n=a()(e,"target.files[0].name","");!function(e,n){var i=e.target.files[0],l=new FileReader;l.readAsDataURL(i),l.onload=function(){var e=l.result;if(e){var i=e.toString().split("base64,");2===i.length&&n(i[1])}}}(e,(function(e){t(e,n)}))},accept:S,required:j,disabled:g,className:i.fileInputField}),""!==K&&(0,f.jsx)(u.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){A(!1)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,f.jsx)(m.Z,{})}),""!==b&&(0,f.jsx)(h.Z,{errorMessage:b})]}):(0,f.jsxs)("div",{className:i.fileReselect,children:[(0,f.jsx)("div",{className:i.valueString,children:K}),(0,f.jsx)(u.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){A(!0)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,f.jsx)(v.Z,{})})]})]})})}))},13871:function(e,n,i){var l,t=i(30168),o=(0,i(26088).Z)("hr")(l||(l=(0,t.Z)(["\n border-top: 0;\n border-left: 0;\n border-right: 0;\n border-color: #999999;\n background-color: transparent;\n"])));n.Z=o},80666:function(e,n,i){i(72791);var l=i(99779),t=i(11135),o=i(25787),r=i(90983),a=i(81918),s=i(89164),d=i(61889),c=i(20890),u=i(64554),v=i(94721),m=i(90493),p=i(84852),x=i(20653),g=i(49900),Z=i(52502),h=i(69212),f=i(75952),y=i(80184);n.Z=(0,o.Z)((function(e){return(0,t.Z)({certificateIcon:{float:"left",paddingTop:"5px !important",paddingRight:"10px !important"},certificateInfo:{float:"right"},certificateWrapper:{height:"auto",margin:5,border:"1px solid #E2E2E2",userSelect:"text",borderRadius:4,"& h6":{fontWeight:"bold"},"& div":{padding:0}},certificateExpiry:{color:"#616161",display:"flex",alignItems:"center",flexWrap:"wrap",marginBottom:5,"& .label":{fontWeight:"bold"}},certificateDomains:{color:"#616161","& .label":{fontWeight:"bold"}},certificatesList:{border:"1px solid #E2E2E2",borderRadius:4,color:"#616161",textTransform:"lowercase",overflowY:"scroll",maxHeight:145,marginBottom:10},certificatesListItem:{padding:"0px 16px",borderBottom:"1px solid #E2E2E2","& div":{minWidth:0},"& svg":{fontSize:12,marginRight:10,opacity:.5},"& span":{fontSize:12}},certificateExpiring:{color:"orange","& .label":{fontWeight:"bold"}},certificateExpired:{color:"red","& .label":{fontWeight:"bold"}}})}))((function(e){var n=e.classes,i=e.certificateInfo,t=e.onDelete,o=void 0===t?function(){}:t,_=i.domains||[],j=l.ou.fromISO(i.expiry),k=l.ou.utc(),b=0,C="",S="";if(j){var w=j.diff(k);b=w.as("days"),C=w.minus(l.nL.fromObject({days:1})).shiftTo("days").toHuman({listStyle:"long",maximumFractionDigits:0}),b>=10&&b<30&&(S=n.certificateExpiring),b<10&&(S=n.certificateExpired,b<2&&(C=w.minus(l.nL.fromObject({minutes:1})).shiftTo("hours","minutes").toHuman({listStyle:"long",maximumFractionDigits:0}),w.as("minutes")<=1&&(C="EXPIRED")))}return(0,y.jsx)(a.Z,{variant:"outlined",color:"primary",className:n.certificateWrapper,label:(0,y.jsxs)(s.Z,{children:[(0,y.jsx)(d.ZP,{item:!0,xs:1,className:n.certificateIcon,children:(0,y.jsx)(f.Baz,{})}),(0,y.jsxs)(d.ZP,{item:!0,xs:11,className:n.certificateInfo,children:[(0,y.jsx)(c.Z,{variant:"subtitle1",display:"block",gutterBottom:!0,children:i.name}),(0,y.jsxs)(u.Z,{className:n.certificateExpiry,children:[(0,y.jsx)(Z.Z,{color:"inherit",fontSize:"small"}),"\xa0",(0,y.jsx)("span",{className:"label",children:"Expiry:\xa0"}),(0,y.jsx)("span",{children:j.toFormat("yyyy/MM/dd")})]}),(0,y.jsxs)(u.Z,{className:n.certificateExpiry,children:[(0,y.jsx)(h.Z,{color:"inherit",fontSize:"small"}),"\xa0",(0,y.jsx)("span",{className:"label",children:"Expires in:\xa0"}),(0,y.jsx)("span",{className:S,children:C})]}),(0,y.jsx)(v.Z,{}),(0,y.jsx)("br",{}),(0,y.jsx)(u.Z,{className:n.certificateDomains,children:(0,y.jsx)("span",{className:"label",children:"".concat(_.length," Domain (s):")})}),(0,y.jsx)(m.Z,{className:n.certificatesList,children:_.map((function(e,i){return(0,y.jsxs)(p.ZP,{className:n.certificatesListItem,children:[(0,y.jsx)(x.Z,{children:(0,y.jsx)(r.Z,{})}),(0,y.jsx)(g.Z,{primary:e})]},"".concat(e,"-").concat(i))}))})]})]}),onDelete:o},i.name)}))},7032:function(e,n,i){i.r(n),i.d(n,{default:function(){return F}});var l=i(93433),t=i(29439),o=i(1413),r=i(75952),a=i(11135),s=i(25787),d=i(23814),c=i(72791),u=i(78687),v=i(41320),m=i(81207),p=i(37516),x=i(61889),g=i(54639),Z=i(21435),h=i(83679),f=i(51691),y=i(20165),_=i(3579),j=i(84741),k=i(40968),b=i(40306),C=i(80666),S=i(87995),w=i(25228),K=i(43896),P=i(92217),N=i(13871),I=i(80184),A=function(e){var n=e.items,i=void 0===n?[]:n,l=e.title,t=void 0===l?"":l;return null!==i&&void 0!==i&&i.length?(0,I.jsxs)(c.Fragment,{children:[(0,I.jsx)("div",{style:{fontSize:"0.83em",fontWeight:"bold"},children:t}),(0,I.jsx)("div",{style:{display:"flex",gap:"2px",flexFlow:"column",marginLeft:"8px"},children:i.map((function(e){return(0,I.jsxs)("span",{style:{fontSize:"12px"},children:["- ",e]})}))})]}):null},R=function(e){var n=e.policies,i=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object.keys(e).map((function(n){var i=e[n]||{};return{name:n||"",identities:i.identities||[],paths:i.paths||[],allow:i.allow||[],deny:i.deny||[]}}))}(void 0===n?{}:n);return i.length?(0,I.jsxs)(x.ZP,{xs:12,marginBottom:"5px",children:[(0,I.jsx)("h4",{children:"Policies"}),(0,I.jsx)(r.xuv,{withBorders:!0,sx:{maxHeight:"200px",overflow:"auto",padding:0},children:i.map((function(e){return(0,I.jsxs)(r.xuv,{withBorders:!0,sx:{display:"flex",flexFlow:"column",gap:"2px",borderLeft:0,borderRight:0,borderTop:0},children:[(0,I.jsxs)("div",{children:[(0,I.jsx)("b",{style:{fontSize:"0.83em",fontWeight:"bold"},children:"Policy Name:"})," ",e.name]}),(0,I.jsx)(A,{title:"Allow",items:null===e||void 0===e?void 0:e.allow}),(0,I.jsx)(A,{title:"Deny",items:null===e||void 0===e?void 0:e.deny}),(0,I.jsx)(A,{title:"Paths",items:null===e||void 0===e?void 0:e.paths}),(0,I.jsx)(A,{title:"Identities",items:null===e||void 0===e?void 0:e.identities})]})}))})]}):null},F=(0,s.Z)((function(e){return(0,a.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)({},d.oZ),d.bK),d.Bz),d.QV),d.DF),d.oO),d.AK),{},{warningBlock:{color:"red",fontSize:".85rem",margin:".5rem 0 .5rem 0",display:"flex",alignItems:"center","& svg ":{marginRight:".3rem",height:16,width:16}}}))}))((function(e){var n,i,a,s,d,A,F,E,z,G,q,D,T,M,V,B,W,L,H,O,U,Y,Q,X,J,$,ee,ne,ie,le,te,oe,re=e.classes,ae=(0,v.TL)(),se=(0,u.v9)((function(e){return e.tenants.tenantInfo})),de=(0,c.useState)(0),ce=(0,t.Z)(de,2),ue=ce[0],ve=ce[1],me=(0,c.useState)(""),pe=(0,t.Z)(me,2),xe=pe[0],ge=pe[1],Ze=(0,c.useState)(!1),he=(0,t.Z)(Ze,2),fe=he[0],ye=he[1],_e=(0,c.useState)("vault"),je=(0,t.Z)(_e,2),ke=je[0],be=je[1],Ce=(0,c.useState)("1"),Se=(0,t.Z)(Ce,2),we=Se[0],Ke=Se[1],Pe=(0,c.useState)(""),Ne=(0,t.Z)(Pe,2),Ie=Ne[0],Ae=Ne[1],Re=(0,c.useState)(!1),Fe=(0,t.Z)(Re,2),Ee=Fe[0],ze=Fe[1],Ge=(0,c.useState)({fsGroup:"1000",fsGroupChangePolicy:"Always",runAsGroup:"1000",runAsNonRoot:!0,runAsUser:"1000"}),qe=(0,t.Z)(Ge,2),De=qe[0],Te=qe[1],Me=(0,c.useState)([]),Ve=(0,t.Z)(Me,2),Be=Ve[0],We=Ve[1],Le=(0,c.useState)(null),He=(0,t.Z)(Le,2),Oe=He[0],Ue=He[1],Ye=(0,c.useState)(null),Qe=(0,t.Z)(Ye,2),Xe=Qe[0],Je=Qe[1],$e=(0,c.useState)(null),en=(0,t.Z)($e,2),nn=en[0],ln=en[1],tn=(0,c.useState)(null),on=(0,t.Z)(tn,2),rn=on[0],an=on[1],sn=(0,c.useState)(null),dn=(0,t.Z)(sn,2),cn=dn[0],un=dn[1],vn=(0,c.useState)(!1),mn=(0,t.Z)(vn,2),pn=mn[0],xn=mn[1],gn=(0,c.useState)(!1),Zn=(0,t.Z)(gn,2),hn=Zn[0],fn=Zn[1],yn=(0,c.useState)(null),_n=(0,t.Z)(yn,2),jn=_n[0],kn=_n[1],bn=(0,c.useState)(null),Cn=(0,t.Z)(bn,2),Sn=Cn[0],wn=Cn[1],Kn=(0,c.useState)(null),Pn=(0,t.Z)(Kn,2),Nn=Pn[0],In=Pn[1],An=(0,c.useState)([]),Rn=(0,t.Z)(An,2),Fn=Rn[0],En=Rn[1],zn=(0,c.useState)(!1),Gn=(0,t.Z)(zn,2),qn=Gn[0],Dn=Gn[1],Tn=(0,c.useState)(!1),Mn=(0,t.Z)(Tn,2),Vn=Mn[0],Bn=Mn[1],Wn=(0,c.useState)(!1),Ln=(0,t.Z)(Wn,2),Hn=Ln[0],On=Ln[1],Un=(0,c.useState)(null),Yn=(0,t.Z)(Un,2),Qn=Yn[0],Xn=Yn[1],Jn=(0,c.useState)(null),$n=(0,t.Z)(Jn,2),ei=$n[0],ni=$n[1],ii=(0,c.useState)(null),li=(0,t.Z)(ii,2),ti=li[0],oi=li[1],ri=(0,c.useState)(null),ai=(0,t.Z)(ri,2),si=ai[0],di=ai[1],ci=(0,c.useState)(null),ui=(0,t.Z)(ci,2),vi=ui[0],mi=ui[1],pi=(0,c.useState)({}),xi=(0,t.Z)(pi,2),gi=xi[0],Zi=xi[1],hi=function(e){Zi((0,j.h)(gi,e))},fi=(0,c.useState)(!1),yi=(0,t.Z)(fi,2),_i=yi[0],ji=yi[1];(0,c.useEffect)((function(){var e=[];if(fe){var n,i,t,o,r,a,s,d,c,u,v,m,p,x,g,Z,h,f,y,_,j,b,C,S,w,K,P,N;if(e=[{fieldKey:"replicas",required:!0,value:we,customValidation:parseInt(we)<1,customValidationMessage:"Replicas needs to be 1 or greater"},{fieldKey:"kes_securityContext_runAsUser",required:!0,value:De.runAsUser,customValidation:""===De.runAsUser||parseInt(De.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"kes_securityContext_runAsGroup",required:!0,value:De.runAsGroup,customValidation:""===De.runAsGroup||parseInt(De.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"kes_securityContext_fsGroup",required:!0,value:De.fsGroup,customValidation:""===De.fsGroup||parseInt(De.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"}],pn&&(e=[].concat((0,l.Z)(e),[{fieldKey:"serverKey",required:!1,value:(null===si||void 0===si?void 0:si.encoded_key)||""},{fieldKey:"serverCert",required:!1,value:(null===si||void 0===si?void 0:si.encoded_cert)||""},{fieldKey:"clientKey",required:!1,value:(null===Nn||void 0===Nn?void 0:Nn.encoded_key)||""},{fieldKey:"clientCert",required:!1,value:(null===Nn||void 0===Nn?void 0:Nn.encoded_cert)||""}])),"vault"===ke)e=[].concat((0,l.Z)(e),[{fieldKey:"vault_endpoint",required:!0,value:null===Oe||void 0===Oe?void 0:Oe.endpoint},{fieldKey:"vault_id",required:!0,value:null===Oe||void 0===Oe||null===(n=Oe.approle)||void 0===n?void 0:n.id},{fieldKey:"vault_secret",required:!0,value:null===Oe||void 0===Oe||null===(i=Oe.approle)||void 0===i?void 0:i.secret},{fieldKey:"vault_ping",required:!1,value:null===Oe||void 0===Oe||null===(t=Oe.status)||void 0===t?void 0:t.ping,customValidation:parseInt(null===Oe||void 0===Oe||null===(o=Oe.status)||void 0===o?void 0:o.ping)<0,customValidationMessage:"Value needs to be 0 or greater"},{fieldKey:"vault_retry",required:!1,value:null===Oe||void 0===Oe||null===(r=Oe.approle)||void 0===r?void 0:r.retry,customValidation:parseInt(null===Oe||void 0===Oe||null===(a=Oe.approle)||void 0===a?void 0:a.retry)<0,customValidationMessage:"Value needs to be 0 or greater"}]);if("aws"===ke)e=[].concat((0,l.Z)(e),[{fieldKey:"aws_endpoint",required:!0,value:null===Xe||void 0===Xe||null===(s=Xe.secretsmanager)||void 0===s?void 0:s.endpoint},{fieldKey:"aws_region",required:!0,value:null===Xe||void 0===Xe||null===(d=Xe.secretsmanager)||void 0===d?void 0:d.region},{fieldKey:"aws_accessKey",required:!0,value:null===Xe||void 0===Xe||null===(c=Xe.secretsmanager)||void 0===c||null===(u=c.credentials)||void 0===u?void 0:u.accesskey},{fieldKey:"aws_secretKey",required:!0,value:null===Xe||void 0===Xe||null===(v=Xe.secretsmanager)||void 0===v||null===(m=v.credentials)||void 0===m?void 0:m.secretkey}]);if("gemalto"===ke)e=[].concat((0,l.Z)(e),[{fieldKey:"gemalto_endpoint",required:!0,value:null===nn||void 0===nn||null===(p=nn.keysecure)||void 0===p?void 0:p.endpoint},{fieldKey:"gemalto_token",required:!0,value:null===nn||void 0===nn||null===(x=nn.keysecure)||void 0===x||null===(g=x.credentials)||void 0===g?void 0:g.token},{fieldKey:"gemalto_domain",required:!0,value:null===nn||void 0===nn||null===(Z=nn.keysecure)||void 0===Z||null===(h=Z.credentials)||void 0===h?void 0:h.domain},{fieldKey:"gemalto_retry",required:!1,value:null===nn||void 0===nn||null===(f=nn.keysecure)||void 0===f||null===(y=f.credentials)||void 0===y?void 0:y.retry,customValidation:parseInt(null===nn||void 0===nn||null===(_=nn.keysecure)||void 0===_||null===(j=_.credentials)||void 0===j?void 0:j.retry)<0,customValidationMessage:"Value needs to be 0 or greater"}]);if("azure"===ke)e=[].concat((0,l.Z)(e),[{fieldKey:"azure_endpoint",required:!0,value:null===rn||void 0===rn||null===(b=rn.keyvault)||void 0===b?void 0:b.endpoint},{fieldKey:"azure_tenant_id",required:!0,value:null===rn||void 0===rn||null===(C=rn.keyvault)||void 0===C||null===(S=C.credentials)||void 0===S?void 0:S.tenant_id},{fieldKey:"azure_client_id",required:!0,value:null===rn||void 0===rn||null===(w=rn.keyvault)||void 0===w||null===(K=w.credentials)||void 0===K?void 0:K.client_id},{fieldKey:"azure_client_secret",required:!0,value:null===rn||void 0===rn||null===(P=rn.keyvault)||void 0===P||null===(N=P.credentials)||void 0===N?void 0:N.client_secret}])}var I=(0,k.R)(e);Bn(0===Object.keys(I).length),Zi(I)}),[pn,fe,ke,null===si||void 0===si?void 0:si.encoded_key,null===si||void 0===si?void 0:si.encoded_cert,null===Nn||void 0===Nn?void 0:Nn.encoded_key,null===Nn||void 0===Nn?void 0:Nn.encoded_cert,null===ti||void 0===ti?void 0:ti.encoded_key,null===ti||void 0===ti?void 0:ti.encoded_cert,null===vi||void 0===vi?void 0:vi.encoded_key,null===vi||void 0===vi?void 0:vi.encoded_cert,De,Oe,Xe,nn,rn,cn,we]);var ki=function(){!Ee&&null!==se&&void 0!==se&&se.namespace&&null!==se&&void 0!==se&&se.name&&(ze(!0),m.Z.invoke("GET","/api/v1/namespaces/".concat(null===se||void 0===se?void 0:se.namespace,"/tenants/").concat(null===se||void 0===se?void 0:se.name,"/encryption")).then((function(e){ge(e.raw),e.policies&&We(e.policies),e.vault?(be("vault"),Ue(e.vault)):e.aws?(be("aws"),Je(e.aws)):e.gemalto?(be("gemalto"),ln(e.gemalto)):e.gcp?(be("gcp"),un(e.gcp)):e.azure&&(be("azure"),an(e.azure)),ye(!0),Ae(e.image),Ke(e.replicas),e.securityContext&&Te(e.securityContext),(e.server_tls||e.minio_mtls||e.kms_mtls)&&xn(!0),e.server_tls&&kn(e.server_tls),e.minio_mtls&&wn(e.minio_mtls),e.kms_mtls&&(Xn(e.kms_mtls.crt),ni(e.kms_mtls.ca)),ze(!1)})).catch((function(e){console.error(e),ze(!1)})))};(0,c.useEffect)((function(){ki()}),[se]);var bi=function(e){En([].concat((0,l.Z)(Fn),[e.name])),e.name===(null===jn||void 0===jn?void 0:jn.name)&&kn(null),e.name===(null===Sn||void 0===Sn?void 0:Sn.name)&&wn(null),e.name===(null===Qn||void 0===Qn?void 0:Qn.name)&&Xn(null),e.name===(null===ei||void 0===ei?void 0:ei.name)&&ni(null)};return(0,I.jsxs)(c.Fragment,{children:[_i&&(0,I.jsx)(b.Z,{isOpen:_i,title:fe?"Enable encryption at rest for tenant?":"Disable encryption at rest for tenant?",confirmText:fe?"Enable":"Disable",cancelText:"Cancel",onClose:function(){return ji(!1)},onConfirm:function(){var e,n,i,l,t,r,a,s,d,c,u,v,p,x,g,Z,h,f,y,_,j,k,b,C,w,K,P,N,I,A,R,F,E,z,G,q,D,T;if(fe){var M={};switch(ke){case"gemalto":M={gemalto:{keysecure:{endpoint:(null===nn||void 0===nn||null===(e=nn.keysecure)||void 0===e?void 0:e.endpoint)||"",credentials:{token:(null===nn||void 0===nn||null===(n=nn.keysecure)||void 0===n||null===(i=n.credentials)||void 0===i?void 0:i.token)||"",domain:(null===nn||void 0===nn||null===(l=nn.keysecure)||void 0===l||null===(t=l.credentials)||void 0===t?void 0:t.domain)||"",retry:parseInt(null===nn||void 0===nn||null===(r=nn.keysecure)||void 0===r||null===(a=r.credentials)||void 0===a?void 0:a.retry)}}}};break;case"aws":M={aws:{secretsmanager:{endpoint:(null===Xe||void 0===Xe||null===(s=Xe.secretsmanager)||void 0===s?void 0:s.endpoint)||"",region:(null===Xe||void 0===Xe||null===(d=Xe.secretsmanager)||void 0===d?void 0:d.region)||"",kmskey:(null===Xe||void 0===Xe||null===(c=Xe.secretsmanager)||void 0===c?void 0:c.kmskey)||"",credentials:{accesskey:(null===Xe||void 0===Xe||null===(u=Xe.secretsmanager)||void 0===u||null===(v=u.credentials)||void 0===v?void 0:v.accesskey)||"",secretkey:(null===Xe||void 0===Xe||null===(p=Xe.secretsmanager)||void 0===p||null===(x=p.credentials)||void 0===x?void 0:x.secretkey)||"",token:(null===Xe||void 0===Xe||null===(g=Xe.secretsmanager)||void 0===g||null===(Z=g.credentials)||void 0===Z?void 0:Z.token)||""}}}};break;case"azure":M={azure:{keyvault:{endpoint:(null===rn||void 0===rn||null===(h=rn.keyvault)||void 0===h?void 0:h.endpoint)||"",credentials:{tenant_id:(null===rn||void 0===rn||null===(f=rn.keyvault)||void 0===f||null===(y=f.credentials)||void 0===y?void 0:y.tenant_id)||"",client_id:(null===rn||void 0===rn||null===(_=rn.keyvault)||void 0===_||null===(j=_.credentials)||void 0===j?void 0:j.client_id)||"",client_secret:(null===rn||void 0===rn||null===(k=rn.keyvault)||void 0===k||null===(b=k.credentials)||void 0===b?void 0:b.client_secret)||""}}}};break;case"gcp":M={gcp:{secretmanager:{project_id:(null===cn||void 0===cn||null===(C=cn.secretmanager)||void 0===C?void 0:C.project_id)||"",endpoint:(null===cn||void 0===cn||null===(w=cn.secretmanager)||void 0===w?void 0:w.endpoint)||"",credentials:{client_email:(null===cn||void 0===cn||null===(K=cn.secretmanager)||void 0===K||null===(P=K.credentials)||void 0===P?void 0:P.client_email)||"",client_id:(null===cn||void 0===cn||null===(N=cn.secretmanager)||void 0===N||null===(I=N.credentials)||void 0===I?void 0:I.client_id)||"",private_key_id:(null===cn||void 0===cn||null===(A=cn.secretmanager)||void 0===A||null===(R=A.credentials)||void 0===R?void 0:R.private_key_id)||"",private_key:(null===cn||void 0===cn||null===(F=cn.secretmanager)||void 0===F||null===(E=F.credentials)||void 0===E?void 0:E.private_key)||""}}}};break;case"vault":M={vault:{endpoint:(null===Oe||void 0===Oe?void 0:Oe.endpoint)||"",engine:(null===Oe||void 0===Oe?void 0:Oe.engine)||"",namespace:(null===Oe||void 0===Oe?void 0:Oe.namespace)||"",prefix:(null===Oe||void 0===Oe?void 0:Oe.prefix)||"",approle:{engine:(null===Oe||void 0===Oe||null===(z=Oe.approle)||void 0===z?void 0:z.engine)||"",id:(null===Oe||void 0===Oe||null===(G=Oe.approle)||void 0===G?void 0:G.id)||"",secret:(null===Oe||void 0===Oe||null===(q=Oe.approle)||void 0===q?void 0:q.secret)||"",retry:parseInt(null===Oe||void 0===Oe||null===(D=Oe.approle)||void 0===D?void 0:D.retry)},status:{ping:parseInt(null===Oe||void 0===Oe||null===(T=Oe.status)||void 0===T?void 0:T.ping)}}}}var V={},B={},W={};null!==Nn&&void 0!==Nn&&Nn.encoded_key&&null!==Nn&&void 0!==Nn&&Nn.encoded_cert&&(B={minio_mtls:{key:null===Nn||void 0===Nn?void 0:Nn.encoded_key,crt:null===Nn||void 0===Nn?void 0:Nn.encoded_cert}}),null!==si&&void 0!==si&&si.encoded_key&&null!==si&&void 0!==si&&si.encoded_cert&&(V={server_tls:{key:null===si||void 0===si?void 0:si.encoded_key,crt:null===si||void 0===si?void 0:si.encoded_cert}});var L=null,H=null;null!==ti&&void 0!==ti&&ti.encoded_key&&null!==ti&&void 0!==ti&&ti.encoded_cert&&(L={key:null===ti||void 0===ti?void 0:ti.encoded_key,crt:null===ti||void 0===ti?void 0:ti.encoded_cert}),null!==vi&&void 0!==vi&&vi.encoded_cert&&(H={ca:null===vi||void 0===vi?void 0:vi.encoded_cert}),(L||H)&&(W={kms_mtls:(0,o.Z)((0,o.Z)({},L),H)});var O=(0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)({raw:ue?xe:"",secretsToBeDeleted:Fn||[],replicas:we,securityContext:De,image:Ie},B),V),W),M);hn||(fn(!0),m.Z.invoke("PUT","/api/v1/namespaces/".concat(null===se||void 0===se?void 0:se.namespace,"/tenants/").concat(null===se||void 0===se?void 0:se.name,"/encryption"),O).then((function(){ji(!1),fn(!1),ki()})).catch((function(e){fn(!1),ae((0,S.Ih)(e))})))}else hn||(fn(!0),m.Z.invoke("DELETE","/api/v1/namespaces/".concat(null===se||void 0===se?void 0:se.namespace,"/tenants/").concat(null===se||void 0===se?void 0:se.name,"/encryption"),{}).then((function(){ji(!1),fn(!1),ki()})).catch((function(e){fn(!1),ae((0,S.Ih)(e))})))},confirmationContent:(0,I.jsxs)(f.Z,{children:[fe?"Data will be encrypted using and external KMS":"Current encrypted information will not be accessible",fe&&(0,I.jsxs)("div",{className:re.warningBlock,children:[(0,I.jsx)(r.e6P,{}),(0,I.jsx)("span",{children:"The content of the KES config secret will be overwritten."})]})]})}),(0,I.jsxs)(x.ZP,{container:!0,spacing:1,children:[(0,I.jsx)(x.ZP,{item:!0,xs:!0,children:(0,I.jsx)(r.NZf,{children:"Encryption"})}),(0,I.jsx)(x.ZP,{item:!0,xs:4,justifyContent:"end",textAlign:"right",children:(0,I.jsx)(p.Z,{label:"",indicatorLabels:["Enabled","Disabled"],checked:fe,value:"tenant_encryption",id:"tenant-encryption",name:"tenant-encryption",onChange:function(){ye(!fe)},description:""})}),(0,I.jsx)(x.ZP,{xs:12,children:(0,I.jsx)(N.Z,{})}),fe&&(0,I.jsxs)(c.Fragment,{children:[(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsxs)(w.Z,{value:ue,onChange:function(e,n){ve(n)},indicatorColor:"primary",textColor:"primary","aria-label":"cluster-tabs",variant:"scrollable",scrollButtons:"auto",children:[(0,I.jsx)(K.Z,{id:"kms-options",label:"Options"}),(0,I.jsx)(K.Z,{id:"kms-raw-configuration",label:"Raw Edit"})]})}),ue?(0,I.jsx)(c.Fragment,{children:(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(P.Z,{value:xe,mode:"yaml",onBeforeChange:function(e,n,i){ge(i)},editorHeight:"550px"})})}):(0,I.jsxs)(c.Fragment,{children:[(0,I.jsx)(R,{policies:Be}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.encryptionTypeOptions,children:(0,I.jsx)(h.Z,{currentSelection:ke,id:"encryptionType",name:"encryptionType",label:"KMS",onChange:function(e){be(e.target.value)},selectorOptions:[{label:"Vault",value:"vault"},{label:"AWS",value:"aws"},{label:"Gemalto",value:"gemalto"},{label:"GCP",value:"gcp"},{label:"Azure",value:"azure"}]})}),"vault"===ke&&(0,I.jsxs)(c.Fragment,{children:[(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(Z.Z,{id:"vault_endpoint",name:"vault_endpoint",onChange:function(e){return Ue((0,o.Z)((0,o.Z)({},Oe),{},{endpoint:e.target.value}))},label:"Endpoint",tooltip:"Endpoint is the Hashicorp Vault endpoint",value:(null===Oe||void 0===Oe?void 0:Oe.endpoint)||"",error:gi.vault_ping||"",required:!0})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(Z.Z,{id:"vault_engine",name:"vault_engine",onChange:function(e){return Ue((0,o.Z)((0,o.Z)({},Oe),{},{engine:e.target.value}))},label:"Engine",tooltip:"Engine is the Hashicorp Vault K/V engine path. If empty, defaults to 'kv'",value:(null===Oe||void 0===Oe?void 0:Oe.engine)||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(Z.Z,{id:"vault_namespace",name:"vault_namespace",onChange:function(e){return Ue((0,o.Z)((0,o.Z)({},Oe),{},{namespace:e.target.value}))},label:"Namespace",tooltip:"Namespace is an optional Hashicorp Vault namespace. An empty namespace means no particular namespace is used.",value:(null===Oe||void 0===Oe?void 0:Oe.namespace)||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(Z.Z,{id:"vault_prefix",name:"vault_prefix",onChange:function(e){return Ue((0,o.Z)((0,o.Z)({},Oe),{},{prefix:e.target.value}))},label:"Prefix",tooltip:"Prefix is an optional prefix / directory within the K/V engine. If empty, keys will be stored at the K/V engine top level",value:(null===Oe||void 0===Oe?void 0:Oe.prefix)||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(r.NZf,{children:"App Role"})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsxs)("fieldset",{className:re.fieldGroup,children:[(0,I.jsx)("legend",{className:re.descriptionText,children:"App Role"}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{id:"vault_approle_engine",name:"vault_approle_engine",onChange:function(e){return Ue((0,o.Z)((0,o.Z)({},Oe),{},{approle:(0,o.Z)((0,o.Z)({},null===Oe||void 0===Oe?void 0:Oe.approle),{},{engine:e.target.value})}))},label:"Engine",tooltip:"AppRoleEngine is the AppRole authentication engine path. If empty, defaults to 'approle'",value:(null===Oe||void 0===Oe||null===(n=Oe.approle)||void 0===n?void 0:n.engine)||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{type:qn?"text":"password",id:"vault_id",name:"vault_id",onChange:function(e){return Ue((0,o.Z)((0,o.Z)({},Oe),{},{approle:(0,o.Z)((0,o.Z)({},null===Oe||void 0===Oe?void 0:Oe.approle),{},{id:e.target.value})}))},label:"AppRole ID",tooltip:"AppRoleSecret is the AppRole access secret for authenticating to Hashicorp Vault via the AppRole method",value:(null===Oe||void 0===Oe||null===(i=Oe.approle)||void 0===i?void 0:i.id)||"",required:!0,error:gi.vault_id||"",overlayIcon:qn?(0,I.jsx)(y.Z,{}):(0,I.jsx)(_.Z,{}),overlayAction:function(){return Dn(!qn)}})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{type:Hn?"text":"password",id:"vault_secret",name:"vault_secret",onChange:function(e){return Ue((0,o.Z)((0,o.Z)({},Oe),{},{approle:(0,o.Z)((0,o.Z)({},null===Oe||void 0===Oe?void 0:Oe.approle),{},{secret:e.target.value})}))},label:"AppRole Secret",tooltip:"AppRoleSecret is the AppRole access secret for authenticating to Hashicorp Vault via the AppRole method",value:(null===Oe||void 0===Oe||null===(a=Oe.approle)||void 0===a?void 0:a.secret)||"",required:!0,error:gi.vault_secret||"",overlayIcon:Hn?(0,I.jsx)(y.Z,{}):(0,I.jsx)(_.Z,{}),overlayAction:function(){return On(!Hn)}})}),(0,I.jsx)(x.ZP,{xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{type:"number",min:"0",id:"vault_retry",name:"vault_retry",onChange:function(e){return Ue((0,o.Z)((0,o.Z)({},Oe),{},{approle:(0,o.Z)((0,o.Z)({},null===Oe||void 0===Oe?void 0:Oe.approle),{},{retry:e.target.value})}))},label:"Retry (Seconds)",error:gi.vault_retry||"",value:(null===Oe||void 0===Oe||null===(s=Oe.approle)||void 0===s?void 0:s.retry)||""})})]})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,style:{marginTop:15},children:(0,I.jsxs)("fieldset",{className:re.fieldGroup,children:[(0,I.jsx)("legend",{className:re.descriptionText,children:"Status"}),(0,I.jsx)(Z.Z,{type:"number",min:"0",id:"vault_ping",name:"vault_ping",onChange:function(e){return Ue((0,o.Z)((0,o.Z)({},Oe),{},{status:(0,o.Z)((0,o.Z)({},null===Oe||void 0===Oe?void 0:Oe.status),{},{ping:e.target.value})}))},label:"Ping (Seconds)",tooltip:"controls how often to Vault health status is checked. If not set, defaults to 10s",error:gi.vault_ping||"",value:(null===Oe||void 0===Oe||null===(d=Oe.status)||void 0===d?void 0:d.ping)||""})]})})]}),"azure"===ke&&(0,I.jsxs)(c.Fragment,{children:[(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(Z.Z,{id:"azure_endpoint",name:"azure_endpoint",onChange:function(e){return an((0,o.Z)((0,o.Z)({},rn),{},{keyvault:(0,o.Z)((0,o.Z)({},null===rn||void 0===rn?void 0:rn.keyvault),{},{endpoint:e.target.value})}))},label:"Endpoint",tooltip:"Endpoint is the Azure KeyVault endpoint",error:gi.azure_endpoint||"",value:(null===rn||void 0===rn||null===(A=rn.keyvault)||void 0===A?void 0:A.endpoint)||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsxs)("fieldset",{className:re.fieldGroup,children:[(0,I.jsx)("legend",{className:re.descriptionText,children:"Credentials"}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{id:"azure_tenant_id",name:"azure_tenant_id",onChange:function(e){var n;return an((0,o.Z)((0,o.Z)({},rn),{},{keyvault:(0,o.Z)((0,o.Z)({},null===rn||void 0===rn?void 0:rn.keyvault),{},{credentials:(0,o.Z)((0,o.Z)({},null===rn||void 0===rn||null===(n=rn.keyvault)||void 0===n?void 0:n.credentials),{},{tenant_id:e.target.value})})}))},label:"Tenant ID",tooltip:"TenantID is the ID of the Azure KeyVault tenant",value:(null===rn||void 0===rn||null===(F=rn.keyvault)||void 0===F||null===(E=F.credentials)||void 0===E?void 0:E.tenant_id)||"",error:gi.azure_tenant_id||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{id:"azure_client_id",name:"azure_client_id",onChange:function(e){var n;return an((0,o.Z)((0,o.Z)({},rn),{},{keyvault:(0,o.Z)((0,o.Z)({},null===rn||void 0===rn?void 0:rn.keyvault),{},{credentials:(0,o.Z)((0,o.Z)({},null===rn||void 0===rn||null===(n=rn.keyvault)||void 0===n?void 0:n.credentials),{},{client_id:e.target.value})})}))},label:"Client ID",tooltip:"ClientID is the ID of the client accessing Azure KeyVault",value:(null===rn||void 0===rn||null===(z=rn.keyvault)||void 0===z||null===(G=z.credentials)||void 0===G?void 0:G.client_id)||"",error:gi.azure_client_id||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{id:"azure_client_secret",name:"azure_client_secret",onChange:function(e){var n;return an((0,o.Z)((0,o.Z)({},rn),{},{keyvault:(0,o.Z)((0,o.Z)({},null===rn||void 0===rn?void 0:rn.keyvault),{},{credentials:(0,o.Z)((0,o.Z)({},null===rn||void 0===rn||null===(n=rn.keyvault)||void 0===n?void 0:n.credentials),{},{client_secret:e.target.value})})}))},label:"Client Secret",tooltip:"ClientSecret is the client secret accessing the Azure KeyVault",value:(null===rn||void 0===rn||null===(q=rn.keyvault)||void 0===q||null===(D=q.credentials)||void 0===D?void 0:D.client_secret)||"",error:gi.azure_client_secret||""})})]})})]}),"gcp"===ke&&(0,I.jsxs)(c.Fragment,{children:[(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(Z.Z,{id:"gcp_project_id",name:"gcp_project_id",onChange:function(e){return un((0,o.Z)((0,o.Z)({},cn),{},{secretmanager:(0,o.Z)((0,o.Z)({},null===cn||void 0===cn?void 0:cn.secretmanager),{},{project_id:e.target.value})}))},label:"Project ID",tooltip:"ProjectID is the GCP project ID",value:(null===cn||void 0===cn?void 0:cn.secretmanager.project_id)||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(Z.Z,{id:"gcp_endpoint",name:"gcp_endpoint",onChange:function(e){return un((0,o.Z)((0,o.Z)({},cn),{},{secretmanager:(0,o.Z)((0,o.Z)({},null===cn||void 0===cn?void 0:cn.secretmanager),{},{endpoint:e.target.value})}))},label:"Endpoint",tooltip:"Endpoint is the GCP project ID. If empty defaults to: secretmanager.googleapis.com:443",value:(null===cn||void 0===cn?void 0:cn.secretmanager.endpoint)||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsxs)("fieldset",{className:re.fieldGroup,children:[(0,I.jsx)("legend",{className:re.descriptionText,children:"Credentials"}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{id:"gcp_client_email",name:"gcp_client_email",onChange:function(e){return un((0,o.Z)((0,o.Z)({},cn),{},{secretmanager:(0,o.Z)((0,o.Z)({},null===cn||void 0===cn?void 0:cn.secretmanager),{},{credentials:(0,o.Z)((0,o.Z)({},null===cn||void 0===cn?void 0:cn.secretmanager.credentials),{},{client_email:e.target.value})})}))},label:"Client Email",tooltip:"Is the Client email of the GCP service account used to access the SecretManager",value:(null===cn||void 0===cn||null===(T=cn.secretmanager.credentials)||void 0===T?void 0:T.client_email)||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{id:"gcp_client_id",name:"gcp_client_id",onChange:function(e){return un((0,o.Z)((0,o.Z)({},cn),{},{secretmanager:(0,o.Z)((0,o.Z)({},null===cn||void 0===cn?void 0:cn.secretmanager),{},{credentials:(0,o.Z)((0,o.Z)({},null===cn||void 0===cn?void 0:cn.secretmanager.credentials),{},{client_id:e.target.value})})}))},label:"Client ID",tooltip:"Is the Client ID of the GCP service account used to access the SecretManager",value:(null===cn||void 0===cn||null===(M=cn.secretmanager.credentials)||void 0===M?void 0:M.client_id)||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{id:"gcp_private_key_id",name:"gcp_private_key_id",onChange:function(e){return un((0,o.Z)((0,o.Z)({},cn),{},{secretmanager:(0,o.Z)((0,o.Z)({},null===cn||void 0===cn?void 0:cn.secretmanager),{},{credentials:(0,o.Z)((0,o.Z)({},null===cn||void 0===cn?void 0:cn.secretmanager.credentials),{},{private_key_id:e.target.value})})}))},label:"Private Key ID",tooltip:"Is the private key ID of the GCP service account used to access the SecretManager",value:(null===cn||void 0===cn||null===(V=cn.secretmanager.credentials)||void 0===V?void 0:V.private_key_id)||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{id:"gcp_private_key",name:"gcp_private_key",onChange:function(e){return un((0,o.Z)((0,o.Z)({},cn),{},{secretmanager:(0,o.Z)((0,o.Z)({},null===cn||void 0===cn?void 0:cn.secretmanager),{},{credentials:(0,o.Z)((0,o.Z)({},null===cn||void 0===cn?void 0:cn.secretmanager.credentials),{},{private_key:e.target.value})})}))},label:"Private Key",tooltip:"Is the private key of the GCP service account used to access the SecretManager",value:(null===cn||void 0===cn||null===(B=cn.secretmanager.credentials)||void 0===B?void 0:B.private_key)||""})})]})})]}),"aws"===ke&&(0,I.jsxs)(c.Fragment,{children:[(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(Z.Z,{id:"aws_endpoint",name:"aws_endpoint",onChange:function(e){return Je((0,o.Z)((0,o.Z)({},Xe),{},{secretsmanager:(0,o.Z)((0,o.Z)({},null===Xe||void 0===Xe?void 0:Xe.secretsmanager),{},{endpoint:e.target.value})}))},label:"Endpoint",tooltip:"Endpoint is the AWS SecretsManager endpoint. AWS SecretsManager endpoints have the following schema: secrestmanager[-fips]..amanzonaws.com",value:(null===Xe||void 0===Xe||null===(W=Xe.secretsmanager)||void 0===W?void 0:W.endpoint)||"",required:!0,error:gi.aws_endpoint||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(Z.Z,{id:"aws_region",name:"aws_region",onChange:function(e){return Je((0,o.Z)((0,o.Z)({},Xe),{},{secretsmanager:(0,o.Z)((0,o.Z)({},null===Xe||void 0===Xe?void 0:Xe.secretsmanager),{},{region:e.target.value})}))},label:"Region",tooltip:"Region is the AWS region the SecretsManager is located",value:(null===Xe||void 0===Xe||null===(L=Xe.secretsmanager)||void 0===L?void 0:L.region)||"",error:gi.aws_region||"",required:!0})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(Z.Z,{id:"aws_kmsKey",name:"aws_kmsKey",onChange:function(e){return Je((0,o.Z)((0,o.Z)({},Xe),{},{secretsmanager:(0,o.Z)((0,o.Z)({},null===Xe||void 0===Xe?void 0:Xe.secretsmanager),{},{kmskey:e.target.value})}))},label:"KMS Key",tooltip:"KMSKey is the AWS-KMS key ID (CMK-ID) used to en/decrypt secrets managed by the SecretsManager. If empty, the default AWS KMS key is used",value:(null===Xe||void 0===Xe||null===(H=Xe.secretsmanager)||void 0===H?void 0:H.kmskey)||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsxs)("fieldset",{className:re.fieldGroup,children:[(0,I.jsx)("legend",{className:re.descriptionText,children:"Credentials"}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{id:"aws_accessKey",name:"aws_accessKey",onChange:function(e){var n;return Je((0,o.Z)((0,o.Z)({},Xe),{},{secretsmanager:(0,o.Z)((0,o.Z)({},null===Xe||void 0===Xe?void 0:Xe.secretsmanager),{},{credentials:(0,o.Z)((0,o.Z)({},null===Xe||void 0===Xe||null===(n=Xe.secretsmanager)||void 0===n?void 0:n.credentials),{},{accesskey:e.target.value})})}))},label:"Access Key",tooltip:"AccessKey is the access key for authenticating to AWS",value:(null===Xe||void 0===Xe||null===(O=Xe.secretsmanager)||void 0===O||null===(U=O.credentials)||void 0===U?void 0:U.accesskey)||"",error:gi.aws_accessKey||"",required:!0})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{id:"aws_secretKey",name:"aws_secretKey",onChange:function(e){var n;return Je((0,o.Z)((0,o.Z)({},Xe),{},{secretsmanager:(0,o.Z)((0,o.Z)({},null===Xe||void 0===Xe?void 0:Xe.secretsmanager),{},{credentials:(0,o.Z)((0,o.Z)({},null===Xe||void 0===Xe||null===(n=Xe.secretsmanager)||void 0===n?void 0:n.credentials),{},{secretkey:e.target.value})})}))},label:"Secret Key",tooltip:"SecretKey is the secret key for authenticating to AWS",value:(null===Xe||void 0===Xe||null===(Y=Xe.secretsmanager)||void 0===Y||null===(Q=Y.credentials)||void 0===Q?void 0:Q.secretkey)||"",error:gi.aws_secretKey||"",required:!0})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{id:"aws_token",name:"aws_token",onChange:function(e){var n;return Je((0,o.Z)((0,o.Z)({},Xe),{},{secretsmanager:(0,o.Z)((0,o.Z)({},null===Xe||void 0===Xe?void 0:Xe.secretsmanager),{},{credentials:(0,o.Z)((0,o.Z)({},null===Xe||void 0===Xe||null===(n=Xe.secretsmanager)||void 0===n?void 0:n.credentials),{},{token:e.target.value})})}))},label:"Token",tooltip:"SessionToken is an optional session token for authenticating to AWS when using STS",value:(null===Xe||void 0===Xe||null===(X=Xe.secretsmanager)||void 0===X||null===(J=X.credentials)||void 0===J?void 0:J.token)||""})})]})})]}),"gemalto"===ke&&(0,I.jsxs)(c.Fragment,{children:[(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(Z.Z,{id:"gemalto_endpoint",name:"gemalto_endpoint",onChange:function(e){return ln((0,o.Z)((0,o.Z)({},nn),{},{keysecure:(0,o.Z)((0,o.Z)({},null===nn||void 0===nn?void 0:nn.keysecure),{},{endpoint:e.target.value})}))},label:"Endpoint",tooltip:"Endpoint is the endpoint to the KeySecure server",value:(null===nn||void 0===nn||null===($=nn.keysecure)||void 0===$?void 0:$.endpoint)||"",error:gi.gemalto_endpoint||"",required:!0})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,style:{marginBottom:15},children:(0,I.jsxs)("fieldset",{className:re.fieldGroup,children:[(0,I.jsx)("legend",{className:re.descriptionText,children:"Credentials"}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{id:"gemalto_token",name:"gemalto_token",onChange:function(e){var n;return ln((0,o.Z)((0,o.Z)({},nn),{},{keysecure:(0,o.Z)((0,o.Z)({},null===nn||void 0===nn?void 0:nn.keysecure),{},{credentials:(0,o.Z)((0,o.Z)({},null===nn||void 0===nn||null===(n=nn.keysecure)||void 0===n?void 0:n.credentials),{},{token:e.target.value})})}))},label:"Token",tooltip:"Token is the refresh authentication token to access the KeySecure server",value:(null===nn||void 0===nn||null===(ee=nn.keysecure)||void 0===ee||null===(ne=ee.credentials)||void 0===ne?void 0:ne.token)||"",error:gi.gemalto_token||"",required:!0})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{id:"gemalto_domain",name:"gemalto_domain",onChange:function(e){var n;return ln((0,o.Z)((0,o.Z)({},nn),{},{keysecure:(0,o.Z)((0,o.Z)({},null===nn||void 0===nn?void 0:nn.keysecure),{},{credentials:(0,o.Z)((0,o.Z)({},null===nn||void 0===nn||null===(n=nn.keysecure)||void 0===n?void 0:n.credentials),{},{domain:e.target.value})})}))},label:"Domain",tooltip:"Domain is the isolated namespace within the KeySecure server. If empty, defaults to the top-level / root domain",value:(null===nn||void 0===nn||null===(ie=nn.keysecure)||void 0===ie||null===(le=ie.credentials)||void 0===le?void 0:le.domain)||"",error:gi.gemalto_domain||"",required:!0})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{type:"number",min:"0",id:"gemalto_retry",name:"gemalto_retry",onChange:function(e){var n;return ln((0,o.Z)((0,o.Z)({},nn),{},{keysecure:(0,o.Z)((0,o.Z)({},null===nn||void 0===nn?void 0:nn.keysecure),{},{credentials:(0,o.Z)((0,o.Z)({},null===nn||void 0===nn||null===(n=nn.keysecure)||void 0===n?void 0:n.credentials),{},{retry:e.target.value})})}))},label:"Retry (seconds)",value:(null===nn||void 0===nn||null===(te=nn.keysecure)||void 0===te||null===(oe=te.credentials)||void 0===oe?void 0:oe.retry)||"",error:gi.gemalto_retry||""})})]})})]})]}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(r.NZf,{children:"Additional Configuration for KES"})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(p.Z,{value:"enableCustomCertsForKES",id:"enableCustomCertsForKES",name:"enableCustomCertsForKES",checked:pn,onChange:function(){return xn(!pn)},label:"Custom Certificates"})}),pn&&(0,I.jsxs)(c.Fragment,{children:[(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsxs)("fieldset",{className:re.fieldGroup,children:[(0,I.jsx)("legend",{className:re.descriptionText,children:"Encryption server certificates"}),jn?(0,I.jsx)(C.Z,{certificateInfo:jn,onDelete:function(){return bi(jn)}}):(0,I.jsxs)(c.Fragment,{children:[(0,I.jsx)(g.Z,{onChange:function(e,n){di({encoded_key:e||"",id:(null===si||void 0===si?void 0:si.id)||"",key:n||"",cert:(null===si||void 0===si?void 0:si.cert)||"",encoded_cert:(null===si||void 0===si?void 0:si.encoded_cert)||""}),hi("serverKey")},accept:".key,.pem",id:"serverKey",name:"serverKey",label:"Key",value:null===si||void 0===si?void 0:si.key}),(0,I.jsx)(g.Z,{onChange:function(e,n){di({encoded_key:(null===si||void 0===si?void 0:si.encoded_key)||"",id:(null===si||void 0===si?void 0:si.id)||"",key:(null===si||void 0===si?void 0:si.key)||"",cert:n||"",encoded_cert:e||""}),hi("serverCert")},accept:".cer,.crt,.cert,.pem",id:"serverCert",name:"serverCert",label:"Cert",value:null===si||void 0===si?void 0:si.cert})]})]})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsxs)("fieldset",{className:re.fieldGroup,children:[(0,I.jsx)("legend",{className:re.descriptionText,children:"MinIO mTLS certificates (connection between MinIO and the Encryption server)"}),Sn?(0,I.jsx)(C.Z,{certificateInfo:Sn,onDelete:function(){return bi(Sn)}}):(0,I.jsxs)(c.Fragment,{children:[(0,I.jsx)(g.Z,{onChange:function(e,n){In({encoded_key:e||"",id:(null===Nn||void 0===Nn?void 0:Nn.id)||"",key:n||"",cert:(null===Nn||void 0===Nn?void 0:Nn.cert)||"",encoded_cert:(null===Nn||void 0===Nn?void 0:Nn.encoded_cert)||""}),hi("clientKey")},accept:".key,.pem",id:"clientKey",name:"clientKey",label:"Key",value:null===Nn||void 0===Nn?void 0:Nn.key}),(0,I.jsx)(g.Z,{onChange:function(e,n){In({encoded_key:(null===Nn||void 0===Nn?void 0:Nn.encoded_key)||"",id:(null===Nn||void 0===Nn?void 0:Nn.id)||"",key:(null===Nn||void 0===Nn?void 0:Nn.key)||"",cert:n||"",encoded_cert:e||""}),hi("clientCert")},accept:".cer,.crt,.cert,.pem",id:"clientCert",name:"clientCert",label:"Cert",value:null===Nn||void 0===Nn?void 0:Nn.cert})]})]})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsxs)("fieldset",{className:re.fieldGroup,children:[(0,I.jsx)("legend",{className:re.descriptionText,children:"KMS mTLS certificates (connection between the Encryption server and the KMS)"}),Qn?(0,I.jsx)(C.Z,{certificateInfo:Qn,onDelete:function(){return bi(Qn)}}):(0,I.jsxs)(c.Fragment,{children:[(0,I.jsx)(g.Z,{onChange:function(e,n){oi({encoded_key:e||"",id:(null===ti||void 0===ti?void 0:ti.id)||"",key:n||"",cert:(null===ti||void 0===ti?void 0:ti.cert)||"",encoded_cert:(null===ti||void 0===ti?void 0:ti.encoded_cert)||""})},accept:".key,.pem",id:"kms_mtls_key",name:"kms_mtls_key",label:"Key",value:null===ti||void 0===ti?void 0:ti.key}),(0,I.jsx)(g.Z,{onChange:function(e,n){return oi({encoded_key:(null===ti||void 0===ti?void 0:ti.encoded_key)||"",id:(null===ti||void 0===ti?void 0:ti.id)||"",key:(null===ti||void 0===ti?void 0:ti.key)||"",cert:n||"",encoded_cert:e||""})},accept:".cer,.crt,.cert,.pem",id:"kms_mtls_cert",name:"kms_mtls_cert",label:"Cert",value:(null===ti||void 0===ti?void 0:ti.cert)||""})]}),ei?(0,I.jsx)(C.Z,{certificateInfo:ei,onDelete:function(){return bi(ei)}}):(0,I.jsx)(g.Z,{onChange:function(e,n){return mi({encoded_key:(null===vi||void 0===vi?void 0:vi.encoded_key)||"",id:(null===vi||void 0===vi?void 0:vi.id)||"",key:(null===vi||void 0===vi?void 0:vi.key)||"",cert:n||"",encoded_cert:e||""})},accept:".cer,.crt,.cert,.pem",id:"kms_mtls_ca",name:"kms_mtls_ca",label:"CA",value:(null===vi||void 0===vi?void 0:vi.cert)||""})]})})]}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(Z.Z,{type:"text",id:"image",name:"image",onChange:function(e){return Ae(e.target.value)},label:"Image",tooltip:"KES container image",placeholder:"minio/kes:2023-08-19T17-27-47Z",value:Ie})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(Z.Z,{type:"number",min:"1",id:"replicas",name:"replicas",onChange:function(e){return Ke(e.target.value)},label:"Replicas",tooltip:"Numer of KES pod replicas",value:we,required:!0,error:gi.replicas||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(r.NZf,{children:"SecurityContext for KES"})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsxs)("div",{className:"".concat(re.multiContainer," ").concat(re.responsiveContainer),children:[(0,I.jsx)("div",{className:"".concat(re.formFieldRow," ").concat(re.rightSpacer),children:(0,I.jsx)(Z.Z,{type:"number",id:"kes_securityContext_runAsUser",name:"kes_securityContext_runAsUser",onChange:function(e){Te((0,o.Z)((0,o.Z)({},De),{},{runAsUser:e.target.value}))},label:"Run As User",value:De.runAsUser,required:!0,error:gi.kes_securityContext_runAsUser||"",min:"0"})}),(0,I.jsx)("div",{className:"".concat(re.formFieldRow," ").concat(re.rightSpacer),children:(0,I.jsx)(Z.Z,{type:"number",id:"kes_securityContext_runAsGroup",name:"kes_securityContext_runAsGroup",onChange:function(e){Te((0,o.Z)((0,o.Z)({},De),{},{runAsGroup:e.target.value}))},label:"Run As Group",value:De.runAsGroup,required:!0,error:gi.kes_securityContext_runAsGroup||"",min:"0"})}),(0,I.jsx)("div",{className:"".concat(re.formFieldRow," ").concat(re.rightSpacer),children:(0,I.jsx)(Z.Z,{type:"number",id:"kes_securityContext_fsGroup",name:"kes_securityContext_fsGroup",onChange:function(e){Te((0,o.Z)((0,o.Z)({},De),{},{fsGroup:e.target.value}))},label:"FsGroup",value:De.fsGroup,required:!0,error:gi.kes_securityContext_fsGroup||"",min:"0"})})]})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(p.Z,{value:"kesSecurityContextRunAsNonRoot",id:"kes_securityContext_runAsNonRoot",name:"kes_securityContext_runAsNonRoot",checked:De.runAsNonRoot,onChange:function(e){var n=e.target.checked;Te((0,o.Z)((0,o.Z)({},De),{},{runAsNonRoot:n}))},label:"Do not run as Root"})})]}),(0,I.jsx)(x.ZP,{item:!0,xs:12,sx:{display:"flex",justifyContent:"flex-end"},children:(0,I.jsx)(r.zxk,{id:"save-encryption",type:"submit",variant:"callAction",disabled:!Vn,onClick:function(){return ji(!0)},label:"Save"})})]})]})}))},22512:function(e,n,i){var l=i(72791),t=i(20890),o=i(11135),r=i(25787),a=i(80184);n.Z=(0,r.Z)((function(e){var n;return(0,o.Z)({errorBlock:{color:(null===(n=e.palette)||void 0===n?void 0:n.error.main)||"#C83B51"}})}))((function(e){var n=e.classes,i=e.errorMessage,o=e.withBreak,r=void 0===o||o;return(0,a.jsxs)(l.Fragment,{children:[r&&(0,a.jsx)("br",{}),(0,a.jsx)(t.Z,{component:"p",variant:"body1",className:n.errorBlock,children:i})]})}))}}]); +//# sourceMappingURL=367.2251aaba.chunk.js.map \ No newline at end of file diff --git a/web-app/build/static/js/367.fb267f8e.chunk.js.map b/web-app/build/static/js/367.2251aaba.chunk.js.map similarity index 99% rename from web-app/build/static/js/367.fb267f8e.chunk.js.map rename to web-app/build/static/js/367.2251aaba.chunk.js.map index 37ff2df3aaa..55743ad0535 100644 --- a/web-app/build/static/js/367.fb267f8e.chunk.js.map +++ b/web-app/build/static/js/367.2251aaba.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/367.fb267f8e.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.tsx","screens/Console/Common/FormComponents/FileSelector/FileSelector.tsx","screens/Console/Common/FormComponents/FileSelector/utils.ts","screens/Console/Common/FormHr.tsx","screens/Console/Common/TLSCertificate/TLSCertificate.tsx","screens/Console/Tenants/TenantDetails/KMSPolicyInfo.tsx","screens/Console/Tenants/TenantDetails/TenantEncryption.tsx","screens/shared/ErrorBlock.tsx"],"sourcesContent":["// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Box, InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Button, CopyIcon, HelpIcon } from \"mds\";\nimport { fieldBasic } from \"../common/styleLibrary\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport CodeEditor from \"@uiw/react-textarea-code-editor\";\nimport TooltipWrapper from \"../../TooltipWrapper/TooltipWrapper\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n classes: any;\n onChange?: (editor: any, data: any, value: string) => any;\n onBeforeChange: (editor: any, data: any, value: string) => any;\n readOnly?: boolean;\n editorHeight?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n });\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n classes,\n onBeforeChange,\n readOnly = false,\n editorHeight = \"250px\",\n}: ICodeWrapper) => {\n return (\n \n \n \n {label}\n {tooltip !== \"\" && (\n
\n \n
\n \n
\n
\n
\n )}\n
\n
\n\n \n {\n onBeforeChange(null, null, evn.target.value);\n }}\n id={\"code_wrapper\"}\n padding={15}\n style={{\n fontSize: 12,\n backgroundColor: \"#fefefe\",\n fontFamily:\n \"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace\",\n minHeight: editorHeight || \"initial\",\n color: \"#000000\",\n }}\n />\n \n \n \n \n \n }\n color={\"primary\"}\n variant={\"regular\"}\n />\n \n \n \n \n
\n );\n};\n\nexport default withStyles(styles)(CodeMirrorWrapper);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useState } from \"react\";\nimport get from \"lodash/get\";\nimport { Grid, InputLabel, Tooltip } from \"@mui/material\";\nimport IconButton from \"@mui/material/IconButton\";\nimport AttachFileIcon from \"@mui/icons-material/AttachFile\";\nimport CancelIcon from \"@mui/icons-material/Cancel\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n fieldBasic,\n fileInputStyles,\n tooltipHelper,\n} from \"../common/styleLibrary\";\nimport { fileProcess } from \"./utils\";\nimport { HelpIcon } from \"mds\";\nimport ErrorBlock from \"../../../../shared/ErrorBlock\";\n\ninterface InputBoxProps {\n label: string;\n classes: any;\n onChange: (e: string, i: string) => void;\n id: string;\n name: string;\n disabled?: boolean;\n tooltip?: string;\n required?: boolean;\n error?: string;\n accept?: string;\n value?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n valueString: {\n maxWidth: 350,\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n marginTop: 2,\n },\n fileInputField: {\n margin: \"13px 0\",\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n ...fileInputStyles,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n textBoxContainer: {\n ...fieldBasic.textBoxContainer,\n maxWidth: \"100%\",\n border: \"1px solid #eaeaea\",\n paddingLeft: \"15px\",\n },\n });\n\nconst FileSelector = ({\n label,\n classes,\n onChange,\n id,\n name,\n disabled = false,\n tooltip = \"\",\n required,\n error = \"\",\n accept = \"\",\n value = \"\",\n}: InputBoxProps) => {\n const [showFileSelector, setShowSelector] = useState(false);\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n
\n \n
\n \n
\n
\n
\n )}\n \n )}\n\n {showFileSelector || value === \"\" ? (\n
\n {\n const fileName = get(e, \"target.files[0].name\", \"\");\n fileProcess(e, (data: any) => {\n onChange(data, fileName);\n });\n }}\n accept={accept}\n required={required}\n disabled={disabled}\n className={classes.fileInputField}\n />\n\n {value !== \"\" && (\n {\n setShowSelector(false);\n }}\n disableRipple={false}\n disableFocusRipple={false}\n size=\"small\"\n >\n \n \n )}\n\n {error !== \"\" && }\n
\n ) : (\n
\n
{value}
\n {\n setShowSelector(true);\n }}\n disableRipple={false}\n disableFocusRipple={false}\n size=\"small\"\n >\n \n \n
\n )}\n \n
\n );\n};\n\nexport default withStyles(styles)(FileSelector);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nexport const fileProcess = (evt: any, callback: any) => {\n const file = evt.target.files[0];\n const reader = new FileReader();\n reader.readAsDataURL(file);\n\n reader.onload = () => {\n // reader.readAsDataURL(file) output will be something like: data:application/x-x509-ca-cert;base64,LS0tLS1CRUdJTiBDRVJUSU\n // we care only about the actual base64 part (everything after \"data:application/x-x509-ca-cert;base64,\")\n const fileBase64 = reader.result;\n if (fileBase64) {\n const fileArray = fileBase64.toString().split(\"base64,\");\n\n if (fileArray.length === 2) {\n callback(fileArray[1]);\n }\n }\n };\n};\n","// This file is part of MinIO Operator\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport styled from \"@emotion/styled\";\n\nconst FormHr = styled(\"hr\")`\n border-top: 0;\n border-left: 0;\n border-right: 0;\n border-color: #999999;\n background-color: transparent;\n`;\n\nexport default FormHr;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { DateTime, Duration } from \"luxon\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { ICertificateInfo } from \"../../Tenants/types\";\nimport LanguageIcon from \"@mui/icons-material/Language\";\nimport Chip from \"@mui/material/Chip\";\nimport {\n Box,\n Container,\n Divider,\n Grid,\n List,\n ListItem,\n ListItemAvatar,\n ListItemText,\n Typography,\n} from \"@mui/material\";\nimport EventBusyIcon from \"@mui/icons-material/EventBusy\";\nimport AccessTimeIcon from \"@mui/icons-material/AccessTime\";\nimport { CertificateIcon } from \"mds\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n certificateIcon: {\n float: \"left\",\n paddingTop: \"5px !important\",\n paddingRight: \"10px !important\",\n },\n certificateInfo: { float: \"right\" },\n certificateWrapper: {\n height: \"auto\",\n margin: 5,\n border: \"1px solid #E2E2E2\",\n userSelect: \"text\",\n borderRadius: 4,\n \"& h6\": {\n fontWeight: \"bold\",\n },\n \"& div\": {\n padding: 0,\n },\n },\n certificateExpiry: {\n color: \"#616161\",\n display: \"flex\",\n alignItems: \"center\",\n flexWrap: \"wrap\",\n marginBottom: 5,\n \"& .label\": {\n fontWeight: \"bold\",\n },\n },\n certificateDomains: {\n color: \"#616161\",\n \"& .label\": {\n fontWeight: \"bold\",\n },\n },\n certificatesList: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 4,\n color: \"#616161\",\n textTransform: \"lowercase\",\n overflowY: \"scroll\",\n maxHeight: 145,\n marginBottom: 10,\n },\n certificatesListItem: {\n padding: \"0px 16px\",\n borderBottom: \"1px solid #E2E2E2\",\n \"& div\": {\n minWidth: 0,\n },\n \"& svg\": {\n fontSize: 12,\n marginRight: 10,\n opacity: 0.5,\n },\n \"& span\": {\n fontSize: 12,\n },\n },\n certificateExpiring: {\n color: \"orange\",\n \"& .label\": {\n fontWeight: \"bold\",\n },\n },\n certificateExpired: {\n color: \"red\",\n \"& .label\": {\n fontWeight: \"bold\",\n },\n },\n });\n\ninterface ITLSCertificate {\n classes: any;\n certificateInfo: ICertificateInfo;\n onDelete: any;\n}\n\nconst TLSCertificate = ({\n classes,\n certificateInfo,\n onDelete = () => {},\n}: ITLSCertificate) => {\n const certificates = certificateInfo.domains || [];\n\n const expiry = DateTime.fromISO(certificateInfo.expiry);\n const now = DateTime.utc();\n // Expose error on Tenant if certificate is near expiration or expired\n let daysToExpiry: number = 0;\n let daysToExpiryHuman: string = \"\";\n let certificateExpiration: string = \"\";\n if (expiry) {\n let durationToExpiry = expiry.diff(now);\n daysToExpiry = durationToExpiry.as(\"days\");\n daysToExpiryHuman = durationToExpiry\n .minus(Duration.fromObject({ days: 1 }))\n .shiftTo(\"days\")\n .toHuman({ listStyle: \"long\", maximumFractionDigits: 0 });\n if (daysToExpiry >= 10 && daysToExpiry < 30) {\n certificateExpiration = classes.certificateExpiring;\n }\n if (daysToExpiry < 10) {\n certificateExpiration = classes.certificateExpired;\n if (daysToExpiry < 2) {\n daysToExpiryHuman = durationToExpiry\n .minus(Duration.fromObject({ minutes: 1 }))\n .shiftTo(\"hours\", \"minutes\")\n .toHuman({ listStyle: \"long\", maximumFractionDigits: 0 });\n if (durationToExpiry.as(\"minutes\") <= 1) {\n daysToExpiryHuman = \"EXPIRED\";\n }\n }\n }\n }\n\n return (\n \n \n \n \n \n \n {certificateInfo.name}\n \n \n \n  \n Expiry: \n {expiry.toFormat(\"yyyy/MM/dd\")}\n \n \n \n  \n Expires in: \n {daysToExpiryHuman}\n \n \n
\n \n {`${certificates.length} Domain (s):`}\n \n \n {certificates.map((dom, index) => (\n \n \n \n \n \n \n ))}\n \n
\n \n }\n onDelete={onDelete}\n />\n );\n};\n\nexport default withStyles(styles)(TLSCertificate);\n","// This file is part of MinIO Operator\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Box } from \"mds\";\n\nconst getPolicyData = (policies: Record = {}) => {\n const policyNames = Object.keys(policies);\n return policyNames.map((polName: string) => {\n const policyConfig = policies[polName] || {};\n return {\n name: polName || \"\",\n identities: policyConfig.identities || [],\n // v1 specific\n paths: policyConfig.paths || [],\n // v2 specific\n allow: policyConfig.allow || [],\n deny: policyConfig.deny || [],\n };\n });\n};\n\nconst PolicyItem = ({\n items = [],\n title = \"\",\n}: {\n items: string[];\n title: string;\n}) => {\n return items?.length ? (\n \n \n {title}\n \n \n {items.map((iTxt: string) => {\n return - {iTxt};\n })}\n \n \n ) : null;\n};\n\nconst KMSPolicyInfo = ({\n policies = {},\n}: {\n policies: Record;\n}) => {\n const fmtPolicies = getPolicyData(policies);\n return fmtPolicies.length ? (\n \n

Policies

\n \n {fmtPolicies.map((pConf: Record) => {\n return (\n \n
\n \n Policy Name:\n {\" \"}\n {pConf.name}\n
\n \n \n \n \n \n );\n })}\n \n \n ) : null;\n};\n\nexport default KMSPolicyInfo;\n","// This file is part of MinIO Operator\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { ICertificateInfo, ITenantEncryptionResponse } from \"../types\";\nimport { Theme } from \"@mui/material/styles\";\nimport { Button, WarnIcon, SectionTitle } from \"mds\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n containerForHeader,\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n spacingUtils,\n tenantDetailsStyles,\n wizardCommon,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport api from \"../../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\n\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport FileSelector from \"../../Common/FormComponents/FileSelector/FileSelector\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport RadioGroupSelector from \"../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport { DialogContentText } from \"@mui/material\";\nimport VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\nimport RemoveRedEyeIcon from \"@mui/icons-material/RemoveRedEye\";\nimport { KeyPair } from \"../ListTenants/utils\";\nimport { clearValidationError } from \"../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../utils/validationFunctions\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport TLSCertificate from \"../../Common/TLSCertificate/TLSCertificate\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\nimport Tabs from \"@mui/material/Tabs\";\nimport Tab from \"@mui/material/Tab\";\nimport CodeMirrorWrapper from \"../../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\nimport FormHr from \"../../Common/FormHr\";\nimport { SecurityContext } from \"../../../../api/operatorApi\";\nimport KMSPolicyInfo from \"./KMSPolicyInfo\";\n\ninterface ITenantEncryption {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n ...spacingUtils,\n ...containerForHeader,\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n warningBlock: {\n color: \"red\",\n fontSize: \".85rem\",\n margin: \".5rem 0 .5rem 0\",\n display: \"flex\",\n alignItems: \"center\",\n \"& svg \": {\n marginRight: \".3rem\",\n height: 16,\n width: 16,\n },\n },\n });\n\nconst TenantEncryption = ({ classes }: ITenantEncryption) => {\n const dispatch = useAppDispatch();\n\n const tenant = useSelector((state: AppState) => state.tenants.tenantInfo);\n const [editRawConfiguration, setEditRawConfiguration] = useState(0);\n const [encryptionRawConfiguration, setEncryptionRawConfiguration] =\n useState(\"\");\n const [encryptionEnabled, setEncryptionEnabled] = useState(false);\n const [encryptionType, setEncryptionType] = useState(\"vault\");\n const [replicas, setReplicas] = useState(\"1\");\n const [image, setImage] = useState(\"\");\n const [refreshEncryptionInfo, setRefreshEncryptionInfo] =\n useState(false);\n const [securityContext, setSecurityContext] = useState({\n fsGroup: \"1000\",\n fsGroupChangePolicy: \"Always\",\n runAsGroup: \"1000\",\n runAsNonRoot: true,\n runAsUser: \"1000\",\n });\n const [policies, setPolicies] = useState([]);\n const [vaultConfiguration, setVaultConfiguration] = useState(null);\n const [awsConfiguration, setAWSConfiguration] = useState(null);\n const [gemaltoConfiguration, setGemaltoConfiguration] = useState(null);\n const [azureConfiguration, setAzureConfiguration] = useState(null);\n const [gcpConfiguration, setGCPConfiguration] = useState(null);\n const [enabledCustomCertificates, setEnabledCustomCertificates] =\n useState(false);\n const [updatingEncryption, setUpdatingEncryption] = useState(false);\n const [kesServerTLSCertificateSecret, setKesServerTLSCertificateSecret] =\n useState(null);\n const [minioMTLSCertificateSecret, setMinioMTLSCertificateSecret] =\n useState(null);\n const [minioMTLSCertificate, setMinioMTLSCertificate] =\n useState(null);\n const [certificatesToBeRemoved, setCertificatesToBeRemoved] = useState<\n string[]\n >([]);\n const [showVaultAppRoleID, setShowVaultAppRoleID] = useState(false);\n const [isFormValid, setIsFormValid] = useState(false);\n const [showVaultAppRoleSecret, setShowVaultAppRoleSecret] =\n useState(false);\n const [kmsMTLSCertificateSecret, setKmsMTLSCertificateSecret] =\n useState(null);\n const [kmsCACertificateSecret, setKMSCACertificateSecret] =\n useState(null);\n const [kmsMTLSCertificate, setKmsMTLSCertificate] = useState(\n null,\n );\n const [kesServerCertificate, setKESServerCertificate] =\n useState(null);\n const [kmsCACertificate, setKmsCACertificate] = useState(\n null,\n );\n const [validationErrors, setValidationErrors] = useState({});\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n const [confirmOpen, setConfirmOpen] = useState(false);\n\n // Validation\n useEffect(() => {\n let encryptionValidation: IValidation[] = [];\n\n if (encryptionEnabled) {\n encryptionValidation = [\n {\n fieldKey: \"replicas\",\n required: true,\n value: replicas,\n customValidation: parseInt(replicas) < 1,\n customValidationMessage: \"Replicas needs to be 1 or greater\",\n },\n {\n fieldKey: \"kes_securityContext_runAsUser\",\n required: true,\n value: securityContext.runAsUser,\n customValidation:\n securityContext.runAsUser === \"\" ||\n parseInt(securityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"kes_securityContext_runAsGroup\",\n required: true,\n value: securityContext.runAsGroup,\n customValidation:\n securityContext.runAsGroup === \"\" ||\n parseInt(securityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"kes_securityContext_fsGroup\",\n required: true,\n value: securityContext.fsGroup!,\n customValidation:\n securityContext.fsGroup === \"\" ||\n parseInt(securityContext.fsGroup!) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n ];\n\n if (enabledCustomCertificates) {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"serverKey\",\n required: false,\n value: kesServerCertificate?.encoded_key || \"\",\n },\n {\n fieldKey: \"serverCert\",\n required: false,\n value: kesServerCertificate?.encoded_cert || \"\",\n },\n {\n fieldKey: \"clientKey\",\n required: false,\n value: minioMTLSCertificate?.encoded_key || \"\",\n },\n {\n fieldKey: \"clientCert\",\n required: false,\n value: minioMTLSCertificate?.encoded_cert || \"\",\n },\n ];\n }\n\n if (encryptionType === \"vault\") {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"vault_endpoint\",\n required: true,\n value: vaultConfiguration?.endpoint,\n },\n {\n fieldKey: \"vault_id\",\n required: true,\n value: vaultConfiguration?.approle?.id,\n },\n {\n fieldKey: \"vault_secret\",\n required: true,\n value: vaultConfiguration?.approle?.secret,\n },\n {\n fieldKey: \"vault_ping\",\n required: false,\n value: vaultConfiguration?.status?.ping,\n customValidation: parseInt(vaultConfiguration?.status?.ping) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n {\n fieldKey: \"vault_retry\",\n required: false,\n value: vaultConfiguration?.approle?.retry,\n customValidation: parseInt(vaultConfiguration?.approle?.retry) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n ];\n }\n\n if (encryptionType === \"aws\") {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"aws_endpoint\",\n required: true,\n value: awsConfiguration?.secretsmanager?.endpoint,\n },\n {\n fieldKey: \"aws_region\",\n required: true,\n value: awsConfiguration?.secretsmanager?.region,\n },\n {\n fieldKey: \"aws_accessKey\",\n required: true,\n value: awsConfiguration?.secretsmanager?.credentials?.accesskey,\n },\n {\n fieldKey: \"aws_secretKey\",\n required: true,\n value: awsConfiguration?.secretsmanager?.credentials?.secretkey,\n },\n ];\n }\n\n if (encryptionType === \"gemalto\") {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"gemalto_endpoint\",\n required: true,\n value: gemaltoConfiguration?.keysecure?.endpoint,\n },\n {\n fieldKey: \"gemalto_token\",\n required: true,\n value: gemaltoConfiguration?.keysecure?.credentials?.token,\n },\n {\n fieldKey: \"gemalto_domain\",\n required: true,\n value: gemaltoConfiguration?.keysecure?.credentials?.domain,\n },\n {\n fieldKey: \"gemalto_retry\",\n required: false,\n value: gemaltoConfiguration?.keysecure?.credentials?.retry,\n customValidation:\n parseInt(gemaltoConfiguration?.keysecure?.credentials?.retry) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n ];\n }\n\n if (encryptionType === \"azure\") {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"azure_endpoint\",\n required: true,\n value: azureConfiguration?.keyvault?.endpoint,\n },\n {\n fieldKey: \"azure_tenant_id\",\n required: true,\n value: azureConfiguration?.keyvault?.credentials?.tenant_id,\n },\n {\n fieldKey: \"azure_client_id\",\n required: true,\n value: azureConfiguration?.keyvault?.credentials?.client_id,\n },\n {\n fieldKey: \"azure_client_secret\",\n required: true,\n value: azureConfiguration?.keyvault?.credentials?.client_secret,\n },\n ];\n }\n }\n\n const commonVal = commonFormValidation(encryptionValidation);\n\n setIsFormValid(Object.keys(commonVal).length === 0);\n\n setValidationErrors(commonVal);\n }, [\n enabledCustomCertificates,\n encryptionEnabled,\n encryptionType,\n kesServerCertificate?.encoded_key,\n kesServerCertificate?.encoded_cert,\n minioMTLSCertificate?.encoded_key,\n minioMTLSCertificate?.encoded_cert,\n kmsMTLSCertificate?.encoded_key,\n kmsMTLSCertificate?.encoded_cert,\n kmsCACertificate?.encoded_key,\n kmsCACertificate?.encoded_cert,\n securityContext,\n vaultConfiguration,\n awsConfiguration,\n gemaltoConfiguration,\n azureConfiguration,\n gcpConfiguration,\n replicas,\n ]);\n\n const fetchEncryptionInfo = () => {\n if (!refreshEncryptionInfo && tenant?.namespace && tenant?.name) {\n setRefreshEncryptionInfo(true);\n api\n .invoke(\n \"GET\",\n `/api/v1/namespaces/${tenant?.namespace}/tenants/${tenant?.name}/encryption`,\n )\n .then((resp: ITenantEncryptionResponse) => {\n setEncryptionRawConfiguration(resp.raw);\n if (resp.policies) {\n setPolicies(resp.policies);\n }\n if (resp.vault) {\n setEncryptionType(\"vault\");\n setVaultConfiguration(resp.vault);\n } else if (resp.aws) {\n setEncryptionType(\"aws\");\n setAWSConfiguration(resp.aws);\n } else if (resp.gemalto) {\n setEncryptionType(\"gemalto\");\n setGemaltoConfiguration(resp.gemalto);\n } else if (resp.gcp) {\n setEncryptionType(\"gcp\");\n setGCPConfiguration(resp.gcp);\n } else if (resp.azure) {\n setEncryptionType(\"azure\");\n setAzureConfiguration(resp.azure);\n }\n\n setEncryptionEnabled(true);\n setImage(resp.image);\n setReplicas(resp.replicas);\n if (resp.securityContext) {\n setSecurityContext(resp.securityContext);\n }\n if (resp.server_tls || resp.minio_mtls || resp.kms_mtls) {\n setEnabledCustomCertificates(true);\n }\n if (resp.server_tls) {\n setKesServerTLSCertificateSecret(resp.server_tls);\n }\n if (resp.minio_mtls) {\n setMinioMTLSCertificateSecret(resp.minio_mtls);\n }\n if (resp.kms_mtls) {\n setKmsMTLSCertificateSecret(resp.kms_mtls.crt);\n setKMSCACertificateSecret(resp.kms_mtls.ca);\n }\n setRefreshEncryptionInfo(false);\n })\n .catch((err: ErrorResponseHandler) => {\n console.error(err);\n setRefreshEncryptionInfo(false);\n });\n }\n };\n\n useEffect(() => {\n fetchEncryptionInfo();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [tenant]);\n\n const removeCertificate = (certificateInfo: ICertificateInfo) => {\n setCertificatesToBeRemoved([\n ...certificatesToBeRemoved,\n certificateInfo.name,\n ]);\n if (certificateInfo.name === kesServerTLSCertificateSecret?.name) {\n setKesServerTLSCertificateSecret(null);\n }\n if (certificateInfo.name === minioMTLSCertificateSecret?.name) {\n setMinioMTLSCertificateSecret(null);\n }\n if (certificateInfo.name === kmsMTLSCertificateSecret?.name) {\n setKmsMTLSCertificateSecret(null);\n }\n if (certificateInfo.name === kmsCACertificateSecret?.name) {\n setKMSCACertificateSecret(null);\n }\n };\n\n const updateEncryptionConfiguration = () => {\n if (encryptionEnabled) {\n let insertEncrypt = {};\n switch (encryptionType) {\n case \"gemalto\":\n insertEncrypt = {\n gemalto: {\n keysecure: {\n endpoint: gemaltoConfiguration?.keysecure?.endpoint || \"\",\n credentials: {\n token:\n gemaltoConfiguration?.keysecure?.credentials?.token || \"\",\n domain:\n gemaltoConfiguration?.keysecure?.credentials?.domain || \"\",\n retry: parseInt(\n gemaltoConfiguration?.keysecure?.credentials?.retry,\n ),\n },\n },\n },\n };\n break;\n case \"aws\":\n insertEncrypt = {\n aws: {\n secretsmanager: {\n endpoint: awsConfiguration?.secretsmanager?.endpoint || \"\",\n region: awsConfiguration?.secretsmanager?.region || \"\",\n kmskey: awsConfiguration?.secretsmanager?.kmskey || \"\",\n credentials: {\n accesskey:\n awsConfiguration?.secretsmanager?.credentials?.accesskey ||\n \"\",\n secretkey:\n awsConfiguration?.secretsmanager?.credentials?.secretkey ||\n \"\",\n token:\n awsConfiguration?.secretsmanager?.credentials?.token || \"\",\n },\n },\n },\n };\n break;\n case \"azure\":\n insertEncrypt = {\n azure: {\n keyvault: {\n endpoint: azureConfiguration?.keyvault?.endpoint || \"\",\n credentials: {\n tenant_id:\n azureConfiguration?.keyvault?.credentials?.tenant_id || \"\",\n client_id:\n azureConfiguration?.keyvault?.credentials?.client_id || \"\",\n client_secret:\n azureConfiguration?.keyvault?.credentials?.client_secret ||\n \"\",\n },\n },\n },\n };\n break;\n case \"gcp\":\n insertEncrypt = {\n gcp: {\n secretmanager: {\n project_id: gcpConfiguration?.secretmanager?.project_id || \"\",\n endpoint: gcpConfiguration?.secretmanager?.endpoint || \"\",\n credentials: {\n client_email:\n gcpConfiguration?.secretmanager?.credentials\n ?.client_email || \"\",\n client_id:\n gcpConfiguration?.secretmanager?.credentials?.client_id ||\n \"\",\n private_key_id:\n gcpConfiguration?.secretmanager?.credentials\n ?.private_key_id || \"\",\n private_key:\n gcpConfiguration?.secretmanager?.credentials?.private_key ||\n \"\",\n },\n },\n },\n };\n break;\n case \"vault\":\n insertEncrypt = {\n vault: {\n endpoint: vaultConfiguration?.endpoint || \"\",\n engine: vaultConfiguration?.engine || \"\",\n namespace: vaultConfiguration?.namespace || \"\",\n prefix: vaultConfiguration?.prefix || \"\",\n approle: {\n engine: vaultConfiguration?.approle?.engine || \"\",\n id: vaultConfiguration?.approle?.id || \"\",\n secret: vaultConfiguration?.approle?.secret || \"\",\n retry: parseInt(vaultConfiguration?.approle?.retry),\n },\n status: {\n ping: parseInt(vaultConfiguration?.status?.ping),\n },\n },\n };\n break;\n }\n\n let encryptionServerKeyPair: any = {};\n let encryptionClientKeyPair: any = {};\n let encryptionKMSCertificates: any = {};\n\n // MinIO -> KES (mTLS certificates)\n if (\n minioMTLSCertificate?.encoded_key &&\n minioMTLSCertificate?.encoded_cert\n ) {\n encryptionClientKeyPair = {\n minio_mtls: {\n key: minioMTLSCertificate?.encoded_key,\n crt: minioMTLSCertificate?.encoded_cert,\n },\n };\n }\n\n // KES server certificates\n if (\n kesServerCertificate?.encoded_key &&\n kesServerCertificate?.encoded_cert\n ) {\n encryptionServerKeyPair = {\n server_tls: {\n key: kesServerCertificate?.encoded_key,\n crt: kesServerCertificate?.encoded_cert,\n },\n };\n }\n\n // KES -> KMS (mTLS certificates)\n let kmsMTLSKeyPair = null;\n let kmsCAInsert = null;\n if (kmsMTLSCertificate?.encoded_key && kmsMTLSCertificate?.encoded_cert) {\n kmsMTLSKeyPair = {\n key: kmsMTLSCertificate?.encoded_key,\n crt: kmsMTLSCertificate?.encoded_cert,\n };\n }\n if (kmsCACertificate?.encoded_cert) {\n kmsCAInsert = {\n ca: kmsCACertificate?.encoded_cert,\n };\n }\n if (kmsMTLSKeyPair || kmsCAInsert) {\n encryptionKMSCertificates = {\n kms_mtls: {\n ...kmsMTLSKeyPair,\n ...kmsCAInsert,\n },\n };\n }\n\n const dataSend = {\n raw: editRawConfiguration ? encryptionRawConfiguration : \"\",\n secretsToBeDeleted: certificatesToBeRemoved || [],\n replicas: replicas,\n securityContext: securityContext,\n image: image,\n ...encryptionClientKeyPair,\n ...encryptionServerKeyPair,\n ...encryptionKMSCertificates,\n ...insertEncrypt,\n };\n if (!updatingEncryption) {\n setUpdatingEncryption(true);\n api\n .invoke(\n \"PUT\",\n `/api/v1/namespaces/${tenant?.namespace}/tenants/${tenant?.name}/encryption`,\n dataSend,\n )\n .then(() => {\n setConfirmOpen(false);\n setUpdatingEncryption(false);\n fetchEncryptionInfo();\n })\n .catch((err: ErrorResponseHandler) => {\n setUpdatingEncryption(false);\n dispatch(setErrorSnackMessage(err));\n });\n }\n } else {\n if (!updatingEncryption) {\n setUpdatingEncryption(true);\n api\n .invoke(\n \"DELETE\",\n `/api/v1/namespaces/${tenant?.namespace}/tenants/${tenant?.name}/encryption`,\n {},\n )\n .then(() => {\n setConfirmOpen(false);\n setUpdatingEncryption(false);\n fetchEncryptionInfo();\n })\n .catch((err: ErrorResponseHandler) => {\n setUpdatingEncryption(false);\n dispatch(setErrorSnackMessage(err));\n });\n }\n }\n };\n\n return (\n \n {confirmOpen && (\n setConfirmOpen(false)}\n onConfirm={updateEncryptionConfiguration}\n confirmationContent={\n \n {encryptionEnabled\n ? \"Data will be encrypted using and external KMS\"\n : \"Current encrypted information will not be accessible\"}\n {encryptionEnabled && (\n
\n \n \n The content of the KES config secret will be overwritten.\n \n
\n )}\n
\n }\n />\n )}\n \n \n Encryption\n \n \n {\n setEncryptionEnabled(!encryptionEnabled);\n }}\n description=\"\"\n />\n \n \n \n \n {encryptionEnabled && (\n \n \n , newValue: number) => {\n setEditRawConfiguration(newValue);\n }}\n indicatorColor=\"primary\"\n textColor=\"primary\"\n aria-label=\"cluster-tabs\"\n variant=\"scrollable\"\n scrollButtons=\"auto\"\n >\n \n \n \n \n\n {editRawConfiguration ? (\n \n \n {\n setEncryptionRawConfiguration(value);\n }}\n editorHeight={\"550px\"}\n />\n \n \n ) : (\n \n \n \n {\n setEncryptionType(e.target.value);\n }}\n selectorOptions={[\n { label: \"Vault\", value: \"vault\" },\n { label: \"AWS\", value: \"aws\" },\n { label: \"Gemalto\", value: \"gemalto\" },\n { label: \"GCP\", value: \"gcp\" },\n { label: \"Azure\", value: \"azure\" },\n ]}\n />\n \n\n {encryptionType === \"vault\" && (\n \n \n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n endpoint: e.target.value,\n })\n }\n label=\"Endpoint\"\n tooltip=\"Endpoint is the Hashicorp Vault endpoint\"\n value={vaultConfiguration?.endpoint || \"\"}\n error={validationErrors[\"vault_ping\"] || \"\"}\n required\n />\n \n \n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n engine: e.target.value,\n })\n }\n label=\"Engine\"\n tooltip=\"Engine is the Hashicorp Vault K/V engine path. If empty, defaults to 'kv'\"\n value={vaultConfiguration?.engine || \"\"}\n />\n \n \n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n namespace: e.target.value,\n })\n }\n label=\"Namespace\"\n tooltip=\"Namespace is an optional Hashicorp Vault namespace. An empty namespace means no particular namespace is used.\"\n value={vaultConfiguration?.namespace || \"\"}\n />\n \n \n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n prefix: e.target.value,\n })\n }\n label=\"Prefix\"\n tooltip=\"Prefix is an optional prefix / directory within the K/V engine. If empty, keys will be stored at the K/V engine top level\"\n value={vaultConfiguration?.prefix || \"\"}\n />\n \n \n App Role\n \n \n
\n \n App Role\n \n \n ,\n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n approle: {\n ...vaultConfiguration?.approle,\n engine: e.target.value,\n },\n })\n }\n label=\"Engine\"\n tooltip=\"AppRoleEngine is the AppRole authentication engine path. If empty, defaults to 'approle'\"\n value={vaultConfiguration?.approle?.engine || \"\"}\n />\n \n \n ,\n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n approle: {\n ...vaultConfiguration?.approle,\n id: e.target.value,\n },\n })\n }\n label=\"AppRole ID\"\n tooltip=\"AppRoleSecret is the AppRole access secret for authenticating to Hashicorp Vault via the AppRole method\"\n value={vaultConfiguration?.approle?.id || \"\"}\n required\n error={validationErrors[\"vault_id\"] || \"\"}\n overlayIcon={\n showVaultAppRoleID ? (\n \n ) : (\n \n )\n }\n overlayAction={() =>\n setShowVaultAppRoleID(!showVaultAppRoleID)\n }\n />\n \n \n ,\n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n approle: {\n ...vaultConfiguration?.approle,\n secret: e.target.value,\n },\n })\n }\n label=\"AppRole Secret\"\n tooltip=\"AppRoleSecret is the AppRole access secret for authenticating to Hashicorp Vault via the AppRole method\"\n value={vaultConfiguration?.approle?.secret || \"\"}\n required\n error={validationErrors[\"vault_secret\"] || \"\"}\n overlayIcon={\n showVaultAppRoleSecret ? (\n \n ) : (\n \n )\n }\n overlayAction={() =>\n setShowVaultAppRoleSecret(!showVaultAppRoleSecret)\n }\n />\n \n \n ,\n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n approle: {\n ...vaultConfiguration?.approle,\n retry: e.target.value,\n },\n })\n }\n label=\"Retry (Seconds)\"\n error={validationErrors[\"vault_retry\"] || \"\"}\n value={vaultConfiguration?.approle?.retry || \"\"}\n />\n \n
\n
\n \n
\n \n Status\n \n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n status: {\n ...vaultConfiguration?.status,\n ping: e.target.value,\n },\n })\n }\n label=\"Ping (Seconds)\"\n tooltip=\"controls how often to Vault health status is checked. If not set, defaults to 10s\"\n error={validationErrors[\"vault_ping\"] || \"\"}\n value={vaultConfiguration?.status?.ping || \"\"}\n />\n
\n
\n \n )}\n {encryptionType === \"azure\" && (\n \n \n ) =>\n setAzureConfiguration({\n ...azureConfiguration,\n keyvault: {\n ...azureConfiguration?.keyvault,\n endpoint: e.target.value,\n },\n })\n }\n label=\"Endpoint\"\n tooltip=\"Endpoint is the Azure KeyVault endpoint\"\n error={validationErrors[\"azure_endpoint\"] || \"\"}\n value={azureConfiguration?.keyvault?.endpoint || \"\"}\n />\n \n \n
\n \n Credentials\n \n \n ,\n ) =>\n setAzureConfiguration({\n ...azureConfiguration,\n keyvault: {\n ...azureConfiguration?.keyvault,\n credentials: {\n ...azureConfiguration?.keyvault\n ?.credentials,\n tenant_id: e.target.value,\n },\n },\n })\n }\n label=\"Tenant ID\"\n tooltip=\"TenantID is the ID of the Azure KeyVault tenant\"\n value={\n azureConfiguration?.keyvault?.credentials\n ?.tenant_id || \"\"\n }\n error={validationErrors[\"azure_tenant_id\"] || \"\"}\n />\n \n \n ,\n ) =>\n setAzureConfiguration({\n ...azureConfiguration,\n keyvault: {\n ...azureConfiguration?.keyvault,\n credentials: {\n ...azureConfiguration?.keyvault\n ?.credentials,\n client_id: e.target.value,\n },\n },\n })\n }\n label=\"Client ID\"\n tooltip=\"ClientID is the ID of the client accessing Azure KeyVault\"\n value={\n azureConfiguration?.keyvault?.credentials\n ?.client_id || \"\"\n }\n error={validationErrors[\"azure_client_id\"] || \"\"}\n />\n \n \n ,\n ) =>\n setAzureConfiguration({\n ...azureConfiguration,\n keyvault: {\n ...azureConfiguration?.keyvault,\n credentials: {\n ...azureConfiguration?.keyvault\n ?.credentials,\n client_secret: e.target.value,\n },\n },\n })\n }\n label=\"Client Secret\"\n tooltip=\"ClientSecret is the client secret accessing the Azure KeyVault\"\n value={\n azureConfiguration?.keyvault?.credentials\n ?.client_secret || \"\"\n }\n error={\n validationErrors[\"azure_client_secret\"] || \"\"\n }\n />\n \n
\n
\n
\n )}\n {encryptionType === \"gcp\" && (\n \n \n ) =>\n setGCPConfiguration({\n ...gcpConfiguration,\n secretmanager: {\n ...gcpConfiguration?.secretmanager,\n project_id: e.target.value,\n },\n })\n }\n label=\"Project ID\"\n tooltip=\"ProjectID is the GCP project ID\"\n value={gcpConfiguration?.secretmanager.project_id || \"\"}\n />\n \n \n ) =>\n setGCPConfiguration({\n ...gcpConfiguration,\n secretmanager: {\n ...gcpConfiguration?.secretmanager,\n endpoint: e.target.value,\n },\n })\n }\n label=\"Endpoint\"\n tooltip=\"Endpoint is the GCP project ID. If empty defaults to: secretmanager.googleapis.com:443\"\n value={gcpConfiguration?.secretmanager.endpoint || \"\"}\n />\n \n \n
\n \n Credentials\n \n \n ,\n ) =>\n setGCPConfiguration({\n ...gcpConfiguration,\n secretmanager: {\n ...gcpConfiguration?.secretmanager,\n credentials: {\n ...gcpConfiguration?.secretmanager\n .credentials,\n client_email: e.target.value,\n },\n },\n })\n }\n label=\"Client Email\"\n tooltip=\"Is the Client email of the GCP service account used to access the SecretManager\"\n value={\n gcpConfiguration?.secretmanager.credentials\n ?.client_email || \"\"\n }\n />\n \n \n ,\n ) =>\n setGCPConfiguration({\n ...gcpConfiguration,\n secretmanager: {\n ...gcpConfiguration?.secretmanager,\n credentials: {\n ...gcpConfiguration?.secretmanager\n .credentials,\n client_id: e.target.value,\n },\n },\n })\n }\n label=\"Client ID\"\n tooltip=\"Is the Client ID of the GCP service account used to access the SecretManager\"\n value={\n gcpConfiguration?.secretmanager.credentials\n ?.client_id || \"\"\n }\n />\n \n \n ,\n ) =>\n setGCPConfiguration({\n ...gcpConfiguration,\n secretmanager: {\n ...gcpConfiguration?.secretmanager,\n credentials: {\n ...gcpConfiguration?.secretmanager\n .credentials,\n private_key_id: e.target.value,\n },\n },\n })\n }\n label=\"Private Key ID\"\n tooltip=\"Is the private key ID of the GCP service account used to access the SecretManager\"\n value={\n gcpConfiguration?.secretmanager.credentials\n ?.private_key_id || \"\"\n }\n />\n \n \n ,\n ) =>\n setGCPConfiguration({\n ...gcpConfiguration,\n secretmanager: {\n ...gcpConfiguration?.secretmanager,\n credentials: {\n ...gcpConfiguration?.secretmanager\n .credentials,\n private_key: e.target.value,\n },\n },\n })\n }\n label=\"Private Key\"\n tooltip=\"Is the private key of the GCP service account used to access the SecretManager\"\n value={\n gcpConfiguration?.secretmanager.credentials\n ?.private_key || \"\"\n }\n />\n \n
\n
\n
\n )}\n {encryptionType === \"aws\" && (\n \n \n ) =>\n setAWSConfiguration({\n ...awsConfiguration,\n secretsmanager: {\n ...awsConfiguration?.secretsmanager,\n endpoint: e.target.value,\n },\n })\n }\n label=\"Endpoint\"\n tooltip=\"Endpoint is the AWS SecretsManager endpoint. AWS SecretsManager endpoints have the following schema: secrestmanager[-fips]..amanzonaws.com\"\n value={awsConfiguration?.secretsmanager?.endpoint || \"\"}\n required\n error={validationErrors[\"aws_endpoint\"] || \"\"}\n />\n \n \n ) =>\n setAWSConfiguration({\n ...awsConfiguration,\n secretsmanager: {\n ...awsConfiguration?.secretsmanager,\n region: e.target.value,\n },\n })\n }\n label=\"Region\"\n tooltip=\"Region is the AWS region the SecretsManager is located\"\n value={awsConfiguration?.secretsmanager?.region || \"\"}\n error={validationErrors[\"aws_region\"] || \"\"}\n required\n />\n \n \n ) =>\n setAWSConfiguration({\n ...awsConfiguration,\n secretsmanager: {\n ...awsConfiguration?.secretsmanager,\n kmskey: e.target.value,\n },\n })\n }\n label=\"KMS Key\"\n tooltip=\"KMSKey is the AWS-KMS key ID (CMK-ID) used to en/decrypt secrets managed by the SecretsManager. If empty, the default AWS KMS key is used\"\n value={awsConfiguration?.secretsmanager?.kmskey || \"\"}\n />\n \n \n
\n \n Credentials\n \n \n ,\n ) =>\n setAWSConfiguration({\n ...awsConfiguration,\n secretsmanager: {\n ...awsConfiguration?.secretsmanager,\n credentials: {\n ...awsConfiguration?.secretsmanager\n ?.credentials,\n accesskey: e.target.value,\n },\n },\n })\n }\n label=\"Access Key\"\n tooltip=\"AccessKey is the access key for authenticating to AWS\"\n value={\n awsConfiguration?.secretsmanager?.credentials\n ?.accesskey || \"\"\n }\n error={validationErrors[\"aws_accessKey\"] || \"\"}\n required\n />\n \n \n ,\n ) =>\n setAWSConfiguration({\n ...awsConfiguration,\n secretsmanager: {\n ...awsConfiguration?.secretsmanager,\n credentials: {\n ...awsConfiguration?.secretsmanager\n ?.credentials,\n secretkey: e.target.value,\n },\n },\n })\n }\n label=\"Secret Key\"\n tooltip=\"SecretKey is the secret key for authenticating to AWS\"\n value={\n awsConfiguration?.secretsmanager?.credentials\n ?.secretkey || \"\"\n }\n error={validationErrors[\"aws_secretKey\"] || \"\"}\n required\n />\n \n \n ,\n ) =>\n setAWSConfiguration({\n ...awsConfiguration,\n secretsmanager: {\n ...awsConfiguration?.secretsmanager,\n credentials: {\n ...awsConfiguration?.secretsmanager\n ?.credentials,\n token: e.target.value,\n },\n },\n })\n }\n label=\"Token\"\n tooltip=\"SessionToken is an optional session token for authenticating to AWS when using STS\"\n value={\n awsConfiguration?.secretsmanager?.credentials\n ?.token || \"\"\n }\n />\n \n
\n
\n
\n )}\n {encryptionType === \"gemalto\" && (\n \n \n ) =>\n setGemaltoConfiguration({\n ...gemaltoConfiguration,\n keysecure: {\n ...gemaltoConfiguration?.keysecure,\n endpoint: e.target.value,\n },\n })\n }\n label=\"Endpoint\"\n tooltip=\"Endpoint is the endpoint to the KeySecure server\"\n value={gemaltoConfiguration?.keysecure?.endpoint || \"\"}\n error={validationErrors[\"gemalto_endpoint\"] || \"\"}\n required\n />\n \n \n
\n \n Credentials\n \n \n ,\n ) =>\n setGemaltoConfiguration({\n ...gemaltoConfiguration,\n keysecure: {\n ...gemaltoConfiguration?.keysecure,\n credentials: {\n ...gemaltoConfiguration?.keysecure\n ?.credentials,\n token: e.target.value,\n },\n },\n })\n }\n label=\"Token\"\n tooltip=\"Token is the refresh authentication token to access the KeySecure server\"\n value={\n gemaltoConfiguration?.keysecure?.credentials\n ?.token || \"\"\n }\n error={validationErrors[\"gemalto_token\"] || \"\"}\n required\n />\n \n \n ,\n ) =>\n setGemaltoConfiguration({\n ...gemaltoConfiguration,\n keysecure: {\n ...gemaltoConfiguration?.keysecure,\n credentials: {\n ...gemaltoConfiguration?.keysecure\n ?.credentials,\n domain: e.target.value,\n },\n },\n })\n }\n label=\"Domain\"\n tooltip=\"Domain is the isolated namespace within the KeySecure server. If empty, defaults to the top-level / root domain\"\n value={\n gemaltoConfiguration?.keysecure?.credentials\n ?.domain || \"\"\n }\n error={validationErrors[\"gemalto_domain\"] || \"\"}\n required\n />\n \n \n ,\n ) =>\n setGemaltoConfiguration({\n ...gemaltoConfiguration,\n keysecure: {\n ...gemaltoConfiguration?.keysecure,\n credentials: {\n ...gemaltoConfiguration?.keysecure\n ?.credentials,\n retry: e.target.value,\n },\n },\n })\n }\n label=\"Retry (seconds)\"\n value={\n gemaltoConfiguration?.keysecure?.credentials\n ?.retry || \"\"\n }\n error={validationErrors[\"gemalto_retry\"] || \"\"}\n />\n \n
\n \n
\n )}\n \n )}\n\n \n Additional Configuration for KES\n \n \n \n setEnabledCustomCertificates(!enabledCustomCertificates)\n }\n label={\"Custom Certificates\"}\n />\n \n {enabledCustomCertificates && (\n \n \n
\n \n Encryption server certificates\n \n {kesServerTLSCertificateSecret ? (\n \n removeCertificate(kesServerTLSCertificateSecret)\n }\n />\n ) : (\n \n {\n setKESServerCertificate({\n encoded_key: encodedValue || \"\",\n id: kesServerCertificate?.id || \"\",\n key: fileName || \"\",\n cert: kesServerCertificate?.cert || \"\",\n encoded_cert:\n kesServerCertificate?.encoded_cert || \"\",\n });\n cleanValidation(\"serverKey\");\n }}\n accept=\".key,.pem\"\n id=\"serverKey\"\n name=\"serverKey\"\n label=\"Key\"\n value={kesServerCertificate?.key}\n />\n {\n setKESServerCertificate({\n encoded_key:\n kesServerCertificate?.encoded_key || \"\",\n id: kesServerCertificate?.id || \"\",\n key: kesServerCertificate?.key || \"\",\n cert: fileName || \"\",\n encoded_cert: encodedValue || \"\",\n });\n cleanValidation(\"serverCert\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"serverCert\"\n name=\"serverCert\"\n label=\"Cert\"\n value={kesServerCertificate?.cert}\n />\n \n )}\n
\n
\n \n
\n \n MinIO mTLS certificates (connection between MinIO and the\n Encryption server)\n \n {minioMTLSCertificateSecret ? (\n \n removeCertificate(minioMTLSCertificateSecret)\n }\n />\n ) : (\n \n {\n setMinioMTLSCertificate({\n encoded_key: encodedValue || \"\",\n id: minioMTLSCertificate?.id || \"\",\n key: fileName || \"\",\n cert: minioMTLSCertificate?.cert || \"\",\n encoded_cert:\n minioMTLSCertificate?.encoded_cert || \"\",\n });\n cleanValidation(\"clientKey\");\n }}\n accept=\".key,.pem\"\n id=\"clientKey\"\n name=\"clientKey\"\n label=\"Key\"\n value={minioMTLSCertificate?.key}\n />\n {\n setMinioMTLSCertificate({\n encoded_key:\n minioMTLSCertificate?.encoded_key || \"\",\n id: minioMTLSCertificate?.id || \"\",\n key: minioMTLSCertificate?.key || \"\",\n cert: fileName || \"\",\n encoded_cert: encodedValue || \"\",\n });\n cleanValidation(\"clientCert\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"clientCert\"\n name=\"clientCert\"\n label=\"Cert\"\n value={minioMTLSCertificate?.cert}\n />\n \n )}\n
\n
\n \n
\n \n KMS mTLS certificates (connection between the Encryption\n server and the KMS)\n \n {kmsMTLSCertificateSecret ? (\n \n removeCertificate(kmsMTLSCertificateSecret)\n }\n />\n ) : (\n \n {\n setKmsMTLSCertificate({\n encoded_key: encodedValue || \"\",\n id: kmsMTLSCertificate?.id || \"\",\n key: fileName || \"\",\n cert: kmsMTLSCertificate?.cert || \"\",\n encoded_cert:\n kmsMTLSCertificate?.encoded_cert || \"\",\n });\n }}\n accept=\".key,.pem\"\n id=\"kms_mtls_key\"\n name=\"kms_mtls_key\"\n label=\"Key\"\n value={kmsMTLSCertificate?.key}\n />\n \n setKmsMTLSCertificate({\n encoded_key:\n kmsMTLSCertificate?.encoded_key || \"\",\n id: kmsMTLSCertificate?.id || \"\",\n key: kmsMTLSCertificate?.key || \"\",\n cert: fileName || \"\",\n encoded_cert: encodedValue || \"\",\n })\n }\n accept=\".cer,.crt,.cert,.pem\"\n id=\"kms_mtls_cert\"\n name=\"kms_mtls_cert\"\n label=\"Cert\"\n value={kmsMTLSCertificate?.cert || \"\"}\n />\n \n )}\n {kmsCACertificateSecret ? (\n \n removeCertificate(kmsCACertificateSecret)\n }\n />\n ) : (\n \n setKmsCACertificate({\n encoded_key: kmsCACertificate?.encoded_key || \"\",\n id: kmsCACertificate?.id || \"\",\n key: kmsCACertificate?.key || \"\",\n cert: fileName || \"\",\n encoded_cert: encodedValue || \"\",\n })\n }\n accept=\".cer,.crt,.cert,.pem\"\n id=\"kms_mtls_ca\"\n name=\"kms_mtls_ca\"\n label=\"CA\"\n value={kmsCACertificate?.cert || \"\"}\n />\n )}\n
\n
\n
\n )}\n \n ) =>\n setImage(e.target.value)\n }\n label=\"Image\"\n tooltip=\"KES container image\"\n placeholder=\"minio/kes:2023-08-19T17-27-47Z\"\n value={image}\n />\n \n \n ) =>\n setReplicas(e.target.value)\n }\n label=\"Replicas\"\n tooltip=\"Numer of KES pod replicas\"\n value={replicas}\n required\n error={validationErrors[\"replicas\"] || \"\"}\n />\n \n \n SecurityContext for KES\n \n \n \n \n ) => {\n setSecurityContext({\n ...securityContext,\n runAsUser: e.target.value,\n });\n }}\n label=\"Run As User\"\n value={securityContext.runAsUser}\n required\n error={\n validationErrors[\"kes_securityContext_runAsUser\"] || \"\"\n }\n min=\"0\"\n />\n \n \n ) => {\n setSecurityContext({\n ...securityContext,\n runAsGroup: e.target.value,\n });\n }}\n label=\"Run As Group\"\n value={securityContext.runAsGroup}\n required\n error={\n validationErrors[\"kes_securityContext_runAsGroup\"] || \"\"\n }\n min=\"0\"\n />\n \n \n ) => {\n setSecurityContext({\n ...securityContext,\n fsGroup: e.target.value,\n });\n }}\n label=\"FsGroup\"\n value={securityContext.fsGroup!}\n required\n error={\n validationErrors[\"kes_securityContext_fsGroup\"] || \"\"\n }\n min=\"0\"\n />\n \n \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n setSecurityContext({\n ...securityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n \n \n )}\n \n setConfirmOpen(true)}\n label={\"Save\"}\n />\n \n \n
\n );\n};\n\nexport default withStyles(styles)(TenantEncryption);\n","import React from \"react\";\nimport Typography from \"@mui/material/Typography\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n errorBlock: {\n color: theme.palette?.error.main || \"#C83B51\",\n },\n });\n\ninterface IErrorBlockProps {\n classes: any;\n errorMessage: string;\n withBreak?: boolean;\n}\n\nconst ErrorBlock = ({\n classes,\n errorMessage,\n withBreak = true,\n}: IErrorBlockProps) => {\n return (\n \n {withBreak &&
}\n \n {errorMessage}\n \n
\n );\n};\n\nexport default withStyles(styles)(ErrorBlock);\n"],"names":["withStyles","theme","createStyles","_objectSpread","fieldBasic","_ref","value","_ref$label","label","_ref$tooltip","tooltip","_ref$mode","mode","classes","onBeforeChange","_ref$editorHeight","readOnly","editorHeight","_jsxs","React","children","_jsx","Grid","item","xs","sx","marginBottom","InputLabel","className","inputLabel","tooltipContainer","Tooltip","title","placement","HelpIcon","style","maxHeight","overflow","border","CodeEditor","language","onChange","evn","target","id","padding","fontSize","backgroundColor","fontFamily","minHeight","color","background","borderTop","Box","display","alignItems","paddingRight","justifyContent","height","width","marginLeft","TooltipWrapper","CopyToClipboard","text","Button","type","icon","CopyIcon","variant","tooltipHelper","valueString","maxWidth","whiteSpace","textOverflow","marginTop","fileInputField","margin","flexFlow","fileInputStyles","fontWeight","textBoxContainer","paddingLeft","name","_ref$disabled","disabled","required","_ref$error","error","_ref$accept","accept","_ref$value","_useState","useState","_useState2","_slicedToArray","showFileSelector","setShowSelector","concat","fieldBottom","fieldContainer","errorInField","htmlFor","fieldLabelError","e","fileName","get","evt","callback","file","files","reader","FileReader","readAsDataURL","onload","fileBase64","result","fileArray","toString","split","length","fileProcess","data","IconButton","component","onClick","disableRipple","disableFocusRipple","size","CancelIcon","ErrorBlock","errorMessage","fileReselect","AttachFileIcon","FormHr","styled","_templateObject","_taggedTemplateLiteral","certificateIcon","float","paddingTop","certificateInfo","certificateWrapper","userSelect","borderRadius","certificateExpiry","flexWrap","certificateDomains","certificatesList","textTransform","overflowY","certificatesListItem","borderBottom","minWidth","marginRight","opacity","certificateExpiring","certificateExpired","_ref$onDelete","onDelete","certificates","domains","expiry","DateTime","fromISO","now","utc","daysToExpiry","daysToExpiryHuman","certificateExpiration","durationToExpiry","diff","as","minus","Duration","fromObject","days","shiftTo","toHuman","listStyle","maximumFractionDigits","minutes","Chip","Container","CertificateIcon","Typography","gutterBottom","EventBusyIcon","toFormat","AccessTimeIcon","Divider","List","map","dom","index","ListItem","ListItemAvatar","LanguageIcon","ListItemText","primary","PolicyItem","_ref$items","items","_ref$title","Fragment","gap","iTxt","_ref2","_ref2$policies","policies","fmtPolicies","arguments","undefined","Object","keys","polName","policyConfig","identities","paths","allow","deny","getPolicyData","withBorders","pConf","borderLeft","borderRight","tenantDetailsStyles","spacingUtils","containerForHeader","createTenantCommon","formFieldStyles","modalBasic","wizardCommon","warningBlock","_vaultConfiguration$a9","_vaultConfiguration$a10","_vaultConfiguration$a11","_vaultConfiguration$a12","_vaultConfiguration$s4","_azureConfiguration$k15","_azureConfiguration$k17","_azureConfiguration$k18","_azureConfiguration$k20","_azureConfiguration$k21","_azureConfiguration$k23","_azureConfiguration$k24","_gcpConfiguration$sec11","_gcpConfiguration$sec12","_gcpConfiguration$sec13","_gcpConfiguration$sec14","_awsConfiguration$sec16","_awsConfiguration$sec17","_awsConfiguration$sec18","_awsConfiguration$sec20","_awsConfiguration$sec21","_awsConfiguration$sec23","_awsConfiguration$sec24","_awsConfiguration$sec26","_awsConfiguration$sec27","_gemaltoConfiguration17","_gemaltoConfiguration19","_gemaltoConfiguration20","_gemaltoConfiguration22","_gemaltoConfiguration23","_gemaltoConfiguration25","_gemaltoConfiguration26","dispatch","useAppDispatch","tenant","useSelector","state","tenants","tenantInfo","editRawConfiguration","setEditRawConfiguration","_useState3","_useState4","encryptionRawConfiguration","setEncryptionRawConfiguration","_useState5","_useState6","encryptionEnabled","setEncryptionEnabled","_useState7","_useState8","encryptionType","setEncryptionType","_useState9","_useState10","replicas","setReplicas","_useState11","_useState12","image","setImage","_useState13","_useState14","refreshEncryptionInfo","setRefreshEncryptionInfo","_useState15","fsGroup","fsGroupChangePolicy","runAsGroup","runAsNonRoot","runAsUser","_useState16","securityContext","setSecurityContext","_useState17","_useState18","setPolicies","_useState19","_useState20","vaultConfiguration","setVaultConfiguration","_useState21","_useState22","awsConfiguration","setAWSConfiguration","_useState23","_useState24","gemaltoConfiguration","setGemaltoConfiguration","_useState25","_useState26","azureConfiguration","setAzureConfiguration","_useState27","_useState28","gcpConfiguration","setGCPConfiguration","_useState29","_useState30","enabledCustomCertificates","setEnabledCustomCertificates","_useState31","_useState32","updatingEncryption","setUpdatingEncryption","_useState33","_useState34","kesServerTLSCertificateSecret","setKesServerTLSCertificateSecret","_useState35","_useState36","minioMTLSCertificateSecret","setMinioMTLSCertificateSecret","_useState37","_useState38","minioMTLSCertificate","setMinioMTLSCertificate","_useState39","_useState40","certificatesToBeRemoved","setCertificatesToBeRemoved","_useState41","_useState42","showVaultAppRoleID","setShowVaultAppRoleID","_useState43","_useState44","isFormValid","setIsFormValid","_useState45","_useState46","showVaultAppRoleSecret","setShowVaultAppRoleSecret","_useState47","_useState48","kmsMTLSCertificateSecret","setKmsMTLSCertificateSecret","_useState49","_useState50","kmsCACertificateSecret","setKMSCACertificateSecret","_useState51","_useState52","kmsMTLSCertificate","setKmsMTLSCertificate","_useState53","_useState54","kesServerCertificate","setKESServerCertificate","_useState55","_useState56","kmsCACertificate","setKmsCACertificate","_useState57","_useState58","validationErrors","setValidationErrors","cleanValidation","fieldName","clearValidationError","_useState59","_useState60","confirmOpen","setConfirmOpen","useEffect","encryptionValidation","_vaultConfiguration$a","_vaultConfiguration$a2","_vaultConfiguration$s","_vaultConfiguration$s2","_vaultConfiguration$a3","_vaultConfiguration$a4","_awsConfiguration$sec","_awsConfiguration$sec2","_awsConfiguration$sec3","_awsConfiguration$sec4","_awsConfiguration$sec5","_awsConfiguration$sec6","_gemaltoConfiguration","_gemaltoConfiguration2","_gemaltoConfiguration3","_gemaltoConfiguration4","_gemaltoConfiguration5","_gemaltoConfiguration6","_gemaltoConfiguration7","_gemaltoConfiguration8","_gemaltoConfiguration9","_azureConfiguration$k","_azureConfiguration$k2","_azureConfiguration$k3","_azureConfiguration$k4","_azureConfiguration$k5","_azureConfiguration$k6","_azureConfiguration$k7","fieldKey","customValidation","parseInt","customValidationMessage","_toConsumableArray","encoded_key","encoded_cert","endpoint","approle","secret","status","ping","retry","secretsmanager","region","credentials","accesskey","secretkey","keysecure","token","domain","keyvault","tenant_id","client_id","client_secret","commonVal","commonFormValidation","fetchEncryptionInfo","namespace","api","invoke","then","resp","raw","vault","aws","gemalto","gcp","azure","server_tls","minio_mtls","kms_mtls","crt","ca","catch","err","console","removeCertificate","ConfirmDialog","isOpen","confirmText","cancelText","onClose","onConfirm","_gemaltoConfiguration10","_gemaltoConfiguration11","_gemaltoConfiguration12","_gemaltoConfiguration13","_gemaltoConfiguration14","_gemaltoConfiguration15","_gemaltoConfiguration16","_awsConfiguration$sec7","_awsConfiguration$sec8","_awsConfiguration$sec9","_awsConfiguration$sec10","_awsConfiguration$sec11","_awsConfiguration$sec12","_awsConfiguration$sec13","_awsConfiguration$sec14","_awsConfiguration$sec15","_azureConfiguration$k8","_azureConfiguration$k9","_azureConfiguration$k10","_azureConfiguration$k11","_azureConfiguration$k12","_azureConfiguration$k13","_azureConfiguration$k14","_gcpConfiguration$sec","_gcpConfiguration$sec2","_gcpConfiguration$sec3","_gcpConfiguration$sec4","_gcpConfiguration$sec5","_gcpConfiguration$sec6","_gcpConfiguration$sec7","_gcpConfiguration$sec8","_gcpConfiguration$sec9","_gcpConfiguration$sec10","_vaultConfiguration$a5","_vaultConfiguration$a6","_vaultConfiguration$a7","_vaultConfiguration$a8","_vaultConfiguration$s3","insertEncrypt","kmskey","secretmanager","project_id","client_email","private_key_id","private_key","engine","prefix","encryptionServerKeyPair","encryptionClientKeyPair","encryptionKMSCertificates","key","kmsMTLSKeyPair","kmsCAInsert","dataSend","secretsToBeDeleted","setErrorSnackMessage","confirmationContent","DialogContentText","WarnIcon","container","spacing","SectionTitle","textAlign","FormSwitchWrapper","indicatorLabels","checked","description","Tabs","newValue","indicatorColor","textColor","scrollButtons","Tab","CodeMirrorWrapper","editor","KMSPolicyInfo","encryptionTypeOptions","RadioGroupSelector","currentSelection","selectorOptions","InputBoxWrapper","fieldGroup","descriptionText","formFieldRow","overlayIcon","VisibilityOffIcon","RemoveRedEyeIcon","overlayAction","min","_azureConfiguration$k16","_azureConfiguration$k19","_azureConfiguration$k22","_awsConfiguration$sec19","_awsConfiguration$sec22","_awsConfiguration$sec25","_gemaltoConfiguration18","_gemaltoConfiguration21","_gemaltoConfiguration24","TLSCertificate","FileSelector","encodedValue","cert","placeholder","multiContainer","responsiveContainer","rightSpacer","_theme$palette","errorBlock","palette","main","_ref$withBreak","withBreak"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/367.2251aaba.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.tsx","screens/Console/Common/FormComponents/FileSelector/FileSelector.tsx","screens/Console/Common/FormComponents/FileSelector/utils.ts","screens/Console/Common/FormHr.tsx","screens/Console/Common/TLSCertificate/TLSCertificate.tsx","screens/Console/Tenants/TenantDetails/KMSPolicyInfo.tsx","screens/Console/Tenants/TenantDetails/TenantEncryption.tsx","screens/shared/ErrorBlock.tsx"],"sourcesContent":["// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Box, InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Button, CopyIcon, HelpIcon } from \"mds\";\nimport { fieldBasic } from \"../common/styleLibrary\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport CodeEditor from \"@uiw/react-textarea-code-editor\";\nimport TooltipWrapper from \"../../TooltipWrapper/TooltipWrapper\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n classes: any;\n onChange?: (editor: any, data: any, value: string) => any;\n onBeforeChange: (editor: any, data: any, value: string) => any;\n readOnly?: boolean;\n editorHeight?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n });\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n classes,\n onBeforeChange,\n readOnly = false,\n editorHeight = \"250px\",\n}: ICodeWrapper) => {\n return (\n \n \n \n {label}\n {tooltip !== \"\" && (\n
\n \n
\n \n
\n
\n
\n )}\n
\n
\n\n \n {\n onBeforeChange(null, null, evn.target.value);\n }}\n id={\"code_wrapper\"}\n padding={15}\n style={{\n fontSize: 12,\n backgroundColor: \"#fefefe\",\n fontFamily:\n \"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace\",\n minHeight: editorHeight || \"initial\",\n color: \"#000000\",\n }}\n />\n \n \n \n \n \n }\n color={\"primary\"}\n variant={\"regular\"}\n />\n \n \n \n \n
\n );\n};\n\nexport default withStyles(styles)(CodeMirrorWrapper);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useState } from \"react\";\nimport get from \"lodash/get\";\nimport { Grid, InputLabel, Tooltip } from \"@mui/material\";\nimport IconButton from \"@mui/material/IconButton\";\nimport AttachFileIcon from \"@mui/icons-material/AttachFile\";\nimport CancelIcon from \"@mui/icons-material/Cancel\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n fieldBasic,\n fileInputStyles,\n tooltipHelper,\n} from \"../common/styleLibrary\";\nimport { fileProcess } from \"./utils\";\nimport { HelpIcon } from \"mds\";\nimport ErrorBlock from \"../../../../shared/ErrorBlock\";\n\ninterface InputBoxProps {\n label: string;\n classes: any;\n onChange: (e: string, i: string) => void;\n id: string;\n name: string;\n disabled?: boolean;\n tooltip?: string;\n required?: boolean;\n error?: string;\n accept?: string;\n value?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n valueString: {\n maxWidth: 350,\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n marginTop: 2,\n },\n fileInputField: {\n margin: \"13px 0\",\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n ...fileInputStyles,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n textBoxContainer: {\n ...fieldBasic.textBoxContainer,\n maxWidth: \"100%\",\n border: \"1px solid #eaeaea\",\n paddingLeft: \"15px\",\n },\n });\n\nconst FileSelector = ({\n label,\n classes,\n onChange,\n id,\n name,\n disabled = false,\n tooltip = \"\",\n required,\n error = \"\",\n accept = \"\",\n value = \"\",\n}: InputBoxProps) => {\n const [showFileSelector, setShowSelector] = useState(false);\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n
\n \n
\n \n
\n
\n
\n )}\n \n )}\n\n {showFileSelector || value === \"\" ? (\n
\n {\n const fileName = get(e, \"target.files[0].name\", \"\");\n fileProcess(e, (data: any) => {\n onChange(data, fileName);\n });\n }}\n accept={accept}\n required={required}\n disabled={disabled}\n className={classes.fileInputField}\n />\n\n {value !== \"\" && (\n {\n setShowSelector(false);\n }}\n disableRipple={false}\n disableFocusRipple={false}\n size=\"small\"\n >\n \n \n )}\n\n {error !== \"\" && }\n
\n ) : (\n
\n
{value}
\n {\n setShowSelector(true);\n }}\n disableRipple={false}\n disableFocusRipple={false}\n size=\"small\"\n >\n \n \n
\n )}\n \n
\n );\n};\n\nexport default withStyles(styles)(FileSelector);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nexport const fileProcess = (evt: any, callback: any) => {\n const file = evt.target.files[0];\n const reader = new FileReader();\n reader.readAsDataURL(file);\n\n reader.onload = () => {\n // reader.readAsDataURL(file) output will be something like: data:application/x-x509-ca-cert;base64,LS0tLS1CRUdJTiBDRVJUSU\n // we care only about the actual base64 part (everything after \"data:application/x-x509-ca-cert;base64,\")\n const fileBase64 = reader.result;\n if (fileBase64) {\n const fileArray = fileBase64.toString().split(\"base64,\");\n\n if (fileArray.length === 2) {\n callback(fileArray[1]);\n }\n }\n };\n};\n","// This file is part of MinIO Operator\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport styled from \"@emotion/styled\";\n\nconst FormHr = styled(\"hr\")`\n border-top: 0;\n border-left: 0;\n border-right: 0;\n border-color: #999999;\n background-color: transparent;\n`;\n\nexport default FormHr;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { DateTime, Duration } from \"luxon\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { ICertificateInfo } from \"../../Tenants/types\";\nimport LanguageIcon from \"@mui/icons-material/Language\";\nimport Chip from \"@mui/material/Chip\";\nimport {\n Box,\n Container,\n Divider,\n Grid,\n List,\n ListItem,\n ListItemAvatar,\n ListItemText,\n Typography,\n} from \"@mui/material\";\nimport EventBusyIcon from \"@mui/icons-material/EventBusy\";\nimport AccessTimeIcon from \"@mui/icons-material/AccessTime\";\nimport { CertificateIcon } from \"mds\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n certificateIcon: {\n float: \"left\",\n paddingTop: \"5px !important\",\n paddingRight: \"10px !important\",\n },\n certificateInfo: { float: \"right\" },\n certificateWrapper: {\n height: \"auto\",\n margin: 5,\n border: \"1px solid #E2E2E2\",\n userSelect: \"text\",\n borderRadius: 4,\n \"& h6\": {\n fontWeight: \"bold\",\n },\n \"& div\": {\n padding: 0,\n },\n },\n certificateExpiry: {\n color: \"#616161\",\n display: \"flex\",\n alignItems: \"center\",\n flexWrap: \"wrap\",\n marginBottom: 5,\n \"& .label\": {\n fontWeight: \"bold\",\n },\n },\n certificateDomains: {\n color: \"#616161\",\n \"& .label\": {\n fontWeight: \"bold\",\n },\n },\n certificatesList: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 4,\n color: \"#616161\",\n textTransform: \"lowercase\",\n overflowY: \"scroll\",\n maxHeight: 145,\n marginBottom: 10,\n },\n certificatesListItem: {\n padding: \"0px 16px\",\n borderBottom: \"1px solid #E2E2E2\",\n \"& div\": {\n minWidth: 0,\n },\n \"& svg\": {\n fontSize: 12,\n marginRight: 10,\n opacity: 0.5,\n },\n \"& span\": {\n fontSize: 12,\n },\n },\n certificateExpiring: {\n color: \"orange\",\n \"& .label\": {\n fontWeight: \"bold\",\n },\n },\n certificateExpired: {\n color: \"red\",\n \"& .label\": {\n fontWeight: \"bold\",\n },\n },\n });\n\ninterface ITLSCertificate {\n classes: any;\n certificateInfo: ICertificateInfo;\n onDelete: any;\n}\n\nconst TLSCertificate = ({\n classes,\n certificateInfo,\n onDelete = () => {},\n}: ITLSCertificate) => {\n const certificates = certificateInfo.domains || [];\n\n const expiry = DateTime.fromISO(certificateInfo.expiry);\n const now = DateTime.utc();\n // Expose error on Tenant if certificate is near expiration or expired\n let daysToExpiry: number = 0;\n let daysToExpiryHuman: string = \"\";\n let certificateExpiration: string = \"\";\n if (expiry) {\n let durationToExpiry = expiry.diff(now);\n daysToExpiry = durationToExpiry.as(\"days\");\n daysToExpiryHuman = durationToExpiry\n .minus(Duration.fromObject({ days: 1 }))\n .shiftTo(\"days\")\n .toHuman({ listStyle: \"long\", maximumFractionDigits: 0 });\n if (daysToExpiry >= 10 && daysToExpiry < 30) {\n certificateExpiration = classes.certificateExpiring;\n }\n if (daysToExpiry < 10) {\n certificateExpiration = classes.certificateExpired;\n if (daysToExpiry < 2) {\n daysToExpiryHuman = durationToExpiry\n .minus(Duration.fromObject({ minutes: 1 }))\n .shiftTo(\"hours\", \"minutes\")\n .toHuman({ listStyle: \"long\", maximumFractionDigits: 0 });\n if (durationToExpiry.as(\"minutes\") <= 1) {\n daysToExpiryHuman = \"EXPIRED\";\n }\n }\n }\n }\n\n return (\n \n \n \n \n \n \n {certificateInfo.name}\n \n \n \n  \n Expiry: \n {expiry.toFormat(\"yyyy/MM/dd\")}\n \n \n \n  \n Expires in: \n {daysToExpiryHuman}\n \n \n
\n \n {`${certificates.length} Domain (s):`}\n \n \n {certificates.map((dom, index) => (\n \n \n \n \n \n \n ))}\n \n
\n \n }\n onDelete={onDelete}\n />\n );\n};\n\nexport default withStyles(styles)(TLSCertificate);\n","// This file is part of MinIO Operator\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Box } from \"mds\";\n\nconst getPolicyData = (policies: Record = {}) => {\n const policyNames = Object.keys(policies);\n return policyNames.map((polName: string) => {\n const policyConfig = policies[polName] || {};\n return {\n name: polName || \"\",\n identities: policyConfig.identities || [],\n // v1 specific\n paths: policyConfig.paths || [],\n // v2 specific\n allow: policyConfig.allow || [],\n deny: policyConfig.deny || [],\n };\n });\n};\n\nconst PolicyItem = ({\n items = [],\n title = \"\",\n}: {\n items: string[];\n title: string;\n}) => {\n return items?.length ? (\n \n \n {title}\n \n \n {items.map((iTxt: string) => {\n return - {iTxt};\n })}\n \n \n ) : null;\n};\n\nconst KMSPolicyInfo = ({\n policies = {},\n}: {\n policies: Record;\n}) => {\n const fmtPolicies = getPolicyData(policies);\n return fmtPolicies.length ? (\n \n

Policies

\n \n {fmtPolicies.map((pConf: Record) => {\n return (\n \n
\n \n Policy Name:\n {\" \"}\n {pConf.name}\n
\n \n \n \n \n \n );\n })}\n \n
\n ) : null;\n};\n\nexport default KMSPolicyInfo;\n","// This file is part of MinIO Operator\n// Copyright (c) 2023 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { ICertificateInfo, ITenantEncryptionResponse } from \"../types\";\nimport { Theme } from \"@mui/material/styles\";\nimport { Button, WarnIcon, SectionTitle } from \"mds\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n containerForHeader,\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n spacingUtils,\n tenantDetailsStyles,\n wizardCommon,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport api from \"../../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\n\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport FileSelector from \"../../Common/FormComponents/FileSelector/FileSelector\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport RadioGroupSelector from \"../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport { DialogContentText } from \"@mui/material\";\nimport VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\nimport RemoveRedEyeIcon from \"@mui/icons-material/RemoveRedEye\";\nimport { KeyPair } from \"../ListTenants/utils\";\nimport { clearValidationError } from \"../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../utils/validationFunctions\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport TLSCertificate from \"../../Common/TLSCertificate/TLSCertificate\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\nimport Tabs from \"@mui/material/Tabs\";\nimport Tab from \"@mui/material/Tab\";\nimport CodeMirrorWrapper from \"../../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\nimport FormHr from \"../../Common/FormHr\";\nimport { SecurityContext } from \"../../../../api/operatorApi\";\nimport KMSPolicyInfo from \"./KMSPolicyInfo\";\n\ninterface ITenantEncryption {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n ...spacingUtils,\n ...containerForHeader,\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n warningBlock: {\n color: \"red\",\n fontSize: \".85rem\",\n margin: \".5rem 0 .5rem 0\",\n display: \"flex\",\n alignItems: \"center\",\n \"& svg \": {\n marginRight: \".3rem\",\n height: 16,\n width: 16,\n },\n },\n });\n\nconst TenantEncryption = ({ classes }: ITenantEncryption) => {\n const dispatch = useAppDispatch();\n\n const tenant = useSelector((state: AppState) => state.tenants.tenantInfo);\n const [editRawConfiguration, setEditRawConfiguration] = useState(0);\n const [encryptionRawConfiguration, setEncryptionRawConfiguration] =\n useState(\"\");\n const [encryptionEnabled, setEncryptionEnabled] = useState(false);\n const [encryptionType, setEncryptionType] = useState(\"vault\");\n const [replicas, setReplicas] = useState(\"1\");\n const [image, setImage] = useState(\"\");\n const [refreshEncryptionInfo, setRefreshEncryptionInfo] =\n useState(false);\n const [securityContext, setSecurityContext] = useState({\n fsGroup: \"1000\",\n fsGroupChangePolicy: \"Always\",\n runAsGroup: \"1000\",\n runAsNonRoot: true,\n runAsUser: \"1000\",\n });\n const [policies, setPolicies] = useState([]);\n const [vaultConfiguration, setVaultConfiguration] = useState(null);\n const [awsConfiguration, setAWSConfiguration] = useState(null);\n const [gemaltoConfiguration, setGemaltoConfiguration] = useState(null);\n const [azureConfiguration, setAzureConfiguration] = useState(null);\n const [gcpConfiguration, setGCPConfiguration] = useState(null);\n const [enabledCustomCertificates, setEnabledCustomCertificates] =\n useState(false);\n const [updatingEncryption, setUpdatingEncryption] = useState(false);\n const [kesServerTLSCertificateSecret, setKesServerTLSCertificateSecret] =\n useState(null);\n const [minioMTLSCertificateSecret, setMinioMTLSCertificateSecret] =\n useState(null);\n const [minioMTLSCertificate, setMinioMTLSCertificate] =\n useState(null);\n const [certificatesToBeRemoved, setCertificatesToBeRemoved] = useState<\n string[]\n >([]);\n const [showVaultAppRoleID, setShowVaultAppRoleID] = useState(false);\n const [isFormValid, setIsFormValid] = useState(false);\n const [showVaultAppRoleSecret, setShowVaultAppRoleSecret] =\n useState(false);\n const [kmsMTLSCertificateSecret, setKmsMTLSCertificateSecret] =\n useState(null);\n const [kmsCACertificateSecret, setKMSCACertificateSecret] =\n useState(null);\n const [kmsMTLSCertificate, setKmsMTLSCertificate] = useState(\n null,\n );\n const [kesServerCertificate, setKESServerCertificate] =\n useState(null);\n const [kmsCACertificate, setKmsCACertificate] = useState(\n null,\n );\n const [validationErrors, setValidationErrors] = useState({});\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n const [confirmOpen, setConfirmOpen] = useState(false);\n\n // Validation\n useEffect(() => {\n let encryptionValidation: IValidation[] = [];\n\n if (encryptionEnabled) {\n encryptionValidation = [\n {\n fieldKey: \"replicas\",\n required: true,\n value: replicas,\n customValidation: parseInt(replicas) < 1,\n customValidationMessage: \"Replicas needs to be 1 or greater\",\n },\n {\n fieldKey: \"kes_securityContext_runAsUser\",\n required: true,\n value: securityContext.runAsUser,\n customValidation:\n securityContext.runAsUser === \"\" ||\n parseInt(securityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"kes_securityContext_runAsGroup\",\n required: true,\n value: securityContext.runAsGroup,\n customValidation:\n securityContext.runAsGroup === \"\" ||\n parseInt(securityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"kes_securityContext_fsGroup\",\n required: true,\n value: securityContext.fsGroup!,\n customValidation:\n securityContext.fsGroup === \"\" ||\n parseInt(securityContext.fsGroup!) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n ];\n\n if (enabledCustomCertificates) {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"serverKey\",\n required: false,\n value: kesServerCertificate?.encoded_key || \"\",\n },\n {\n fieldKey: \"serverCert\",\n required: false,\n value: kesServerCertificate?.encoded_cert || \"\",\n },\n {\n fieldKey: \"clientKey\",\n required: false,\n value: minioMTLSCertificate?.encoded_key || \"\",\n },\n {\n fieldKey: \"clientCert\",\n required: false,\n value: minioMTLSCertificate?.encoded_cert || \"\",\n },\n ];\n }\n\n if (encryptionType === \"vault\") {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"vault_endpoint\",\n required: true,\n value: vaultConfiguration?.endpoint,\n },\n {\n fieldKey: \"vault_id\",\n required: true,\n value: vaultConfiguration?.approle?.id,\n },\n {\n fieldKey: \"vault_secret\",\n required: true,\n value: vaultConfiguration?.approle?.secret,\n },\n {\n fieldKey: \"vault_ping\",\n required: false,\n value: vaultConfiguration?.status?.ping,\n customValidation: parseInt(vaultConfiguration?.status?.ping) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n {\n fieldKey: \"vault_retry\",\n required: false,\n value: vaultConfiguration?.approle?.retry,\n customValidation: parseInt(vaultConfiguration?.approle?.retry) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n ];\n }\n\n if (encryptionType === \"aws\") {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"aws_endpoint\",\n required: true,\n value: awsConfiguration?.secretsmanager?.endpoint,\n },\n {\n fieldKey: \"aws_region\",\n required: true,\n value: awsConfiguration?.secretsmanager?.region,\n },\n {\n fieldKey: \"aws_accessKey\",\n required: true,\n value: awsConfiguration?.secretsmanager?.credentials?.accesskey,\n },\n {\n fieldKey: \"aws_secretKey\",\n required: true,\n value: awsConfiguration?.secretsmanager?.credentials?.secretkey,\n },\n ];\n }\n\n if (encryptionType === \"gemalto\") {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"gemalto_endpoint\",\n required: true,\n value: gemaltoConfiguration?.keysecure?.endpoint,\n },\n {\n fieldKey: \"gemalto_token\",\n required: true,\n value: gemaltoConfiguration?.keysecure?.credentials?.token,\n },\n {\n fieldKey: \"gemalto_domain\",\n required: true,\n value: gemaltoConfiguration?.keysecure?.credentials?.domain,\n },\n {\n fieldKey: \"gemalto_retry\",\n required: false,\n value: gemaltoConfiguration?.keysecure?.credentials?.retry,\n customValidation:\n parseInt(gemaltoConfiguration?.keysecure?.credentials?.retry) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n ];\n }\n\n if (encryptionType === \"azure\") {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"azure_endpoint\",\n required: true,\n value: azureConfiguration?.keyvault?.endpoint,\n },\n {\n fieldKey: \"azure_tenant_id\",\n required: true,\n value: azureConfiguration?.keyvault?.credentials?.tenant_id,\n },\n {\n fieldKey: \"azure_client_id\",\n required: true,\n value: azureConfiguration?.keyvault?.credentials?.client_id,\n },\n {\n fieldKey: \"azure_client_secret\",\n required: true,\n value: azureConfiguration?.keyvault?.credentials?.client_secret,\n },\n ];\n }\n }\n\n const commonVal = commonFormValidation(encryptionValidation);\n\n setIsFormValid(Object.keys(commonVal).length === 0);\n\n setValidationErrors(commonVal);\n }, [\n enabledCustomCertificates,\n encryptionEnabled,\n encryptionType,\n kesServerCertificate?.encoded_key,\n kesServerCertificate?.encoded_cert,\n minioMTLSCertificate?.encoded_key,\n minioMTLSCertificate?.encoded_cert,\n kmsMTLSCertificate?.encoded_key,\n kmsMTLSCertificate?.encoded_cert,\n kmsCACertificate?.encoded_key,\n kmsCACertificate?.encoded_cert,\n securityContext,\n vaultConfiguration,\n awsConfiguration,\n gemaltoConfiguration,\n azureConfiguration,\n gcpConfiguration,\n replicas,\n ]);\n\n const fetchEncryptionInfo = () => {\n if (!refreshEncryptionInfo && tenant?.namespace && tenant?.name) {\n setRefreshEncryptionInfo(true);\n api\n .invoke(\n \"GET\",\n `/api/v1/namespaces/${tenant?.namespace}/tenants/${tenant?.name}/encryption`,\n )\n .then((resp: ITenantEncryptionResponse) => {\n setEncryptionRawConfiguration(resp.raw);\n if (resp.policies) {\n setPolicies(resp.policies);\n }\n if (resp.vault) {\n setEncryptionType(\"vault\");\n setVaultConfiguration(resp.vault);\n } else if (resp.aws) {\n setEncryptionType(\"aws\");\n setAWSConfiguration(resp.aws);\n } else if (resp.gemalto) {\n setEncryptionType(\"gemalto\");\n setGemaltoConfiguration(resp.gemalto);\n } else if (resp.gcp) {\n setEncryptionType(\"gcp\");\n setGCPConfiguration(resp.gcp);\n } else if (resp.azure) {\n setEncryptionType(\"azure\");\n setAzureConfiguration(resp.azure);\n }\n\n setEncryptionEnabled(true);\n setImage(resp.image);\n setReplicas(resp.replicas);\n if (resp.securityContext) {\n setSecurityContext(resp.securityContext);\n }\n if (resp.server_tls || resp.minio_mtls || resp.kms_mtls) {\n setEnabledCustomCertificates(true);\n }\n if (resp.server_tls) {\n setKesServerTLSCertificateSecret(resp.server_tls);\n }\n if (resp.minio_mtls) {\n setMinioMTLSCertificateSecret(resp.minio_mtls);\n }\n if (resp.kms_mtls) {\n setKmsMTLSCertificateSecret(resp.kms_mtls.crt);\n setKMSCACertificateSecret(resp.kms_mtls.ca);\n }\n setRefreshEncryptionInfo(false);\n })\n .catch((err: ErrorResponseHandler) => {\n console.error(err);\n setRefreshEncryptionInfo(false);\n });\n }\n };\n\n useEffect(() => {\n fetchEncryptionInfo();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [tenant]);\n\n const removeCertificate = (certificateInfo: ICertificateInfo) => {\n setCertificatesToBeRemoved([\n ...certificatesToBeRemoved,\n certificateInfo.name,\n ]);\n if (certificateInfo.name === kesServerTLSCertificateSecret?.name) {\n setKesServerTLSCertificateSecret(null);\n }\n if (certificateInfo.name === minioMTLSCertificateSecret?.name) {\n setMinioMTLSCertificateSecret(null);\n }\n if (certificateInfo.name === kmsMTLSCertificateSecret?.name) {\n setKmsMTLSCertificateSecret(null);\n }\n if (certificateInfo.name === kmsCACertificateSecret?.name) {\n setKMSCACertificateSecret(null);\n }\n };\n\n const updateEncryptionConfiguration = () => {\n if (encryptionEnabled) {\n let insertEncrypt = {};\n switch (encryptionType) {\n case \"gemalto\":\n insertEncrypt = {\n gemalto: {\n keysecure: {\n endpoint: gemaltoConfiguration?.keysecure?.endpoint || \"\",\n credentials: {\n token:\n gemaltoConfiguration?.keysecure?.credentials?.token || \"\",\n domain:\n gemaltoConfiguration?.keysecure?.credentials?.domain || \"\",\n retry: parseInt(\n gemaltoConfiguration?.keysecure?.credentials?.retry,\n ),\n },\n },\n },\n };\n break;\n case \"aws\":\n insertEncrypt = {\n aws: {\n secretsmanager: {\n endpoint: awsConfiguration?.secretsmanager?.endpoint || \"\",\n region: awsConfiguration?.secretsmanager?.region || \"\",\n kmskey: awsConfiguration?.secretsmanager?.kmskey || \"\",\n credentials: {\n accesskey:\n awsConfiguration?.secretsmanager?.credentials?.accesskey ||\n \"\",\n secretkey:\n awsConfiguration?.secretsmanager?.credentials?.secretkey ||\n \"\",\n token:\n awsConfiguration?.secretsmanager?.credentials?.token || \"\",\n },\n },\n },\n };\n break;\n case \"azure\":\n insertEncrypt = {\n azure: {\n keyvault: {\n endpoint: azureConfiguration?.keyvault?.endpoint || \"\",\n credentials: {\n tenant_id:\n azureConfiguration?.keyvault?.credentials?.tenant_id || \"\",\n client_id:\n azureConfiguration?.keyvault?.credentials?.client_id || \"\",\n client_secret:\n azureConfiguration?.keyvault?.credentials?.client_secret ||\n \"\",\n },\n },\n },\n };\n break;\n case \"gcp\":\n insertEncrypt = {\n gcp: {\n secretmanager: {\n project_id: gcpConfiguration?.secretmanager?.project_id || \"\",\n endpoint: gcpConfiguration?.secretmanager?.endpoint || \"\",\n credentials: {\n client_email:\n gcpConfiguration?.secretmanager?.credentials\n ?.client_email || \"\",\n client_id:\n gcpConfiguration?.secretmanager?.credentials?.client_id ||\n \"\",\n private_key_id:\n gcpConfiguration?.secretmanager?.credentials\n ?.private_key_id || \"\",\n private_key:\n gcpConfiguration?.secretmanager?.credentials?.private_key ||\n \"\",\n },\n },\n },\n };\n break;\n case \"vault\":\n insertEncrypt = {\n vault: {\n endpoint: vaultConfiguration?.endpoint || \"\",\n engine: vaultConfiguration?.engine || \"\",\n namespace: vaultConfiguration?.namespace || \"\",\n prefix: vaultConfiguration?.prefix || \"\",\n approle: {\n engine: vaultConfiguration?.approle?.engine || \"\",\n id: vaultConfiguration?.approle?.id || \"\",\n secret: vaultConfiguration?.approle?.secret || \"\",\n retry: parseInt(vaultConfiguration?.approle?.retry),\n },\n status: {\n ping: parseInt(vaultConfiguration?.status?.ping),\n },\n },\n };\n break;\n }\n\n let encryptionServerKeyPair: any = {};\n let encryptionClientKeyPair: any = {};\n let encryptionKMSCertificates: any = {};\n\n // MinIO -> KES (mTLS certificates)\n if (\n minioMTLSCertificate?.encoded_key &&\n minioMTLSCertificate?.encoded_cert\n ) {\n encryptionClientKeyPair = {\n minio_mtls: {\n key: minioMTLSCertificate?.encoded_key,\n crt: minioMTLSCertificate?.encoded_cert,\n },\n };\n }\n\n // KES server certificates\n if (\n kesServerCertificate?.encoded_key &&\n kesServerCertificate?.encoded_cert\n ) {\n encryptionServerKeyPair = {\n server_tls: {\n key: kesServerCertificate?.encoded_key,\n crt: kesServerCertificate?.encoded_cert,\n },\n };\n }\n\n // KES -> KMS (mTLS certificates)\n let kmsMTLSKeyPair = null;\n let kmsCAInsert = null;\n if (kmsMTLSCertificate?.encoded_key && kmsMTLSCertificate?.encoded_cert) {\n kmsMTLSKeyPair = {\n key: kmsMTLSCertificate?.encoded_key,\n crt: kmsMTLSCertificate?.encoded_cert,\n };\n }\n if (kmsCACertificate?.encoded_cert) {\n kmsCAInsert = {\n ca: kmsCACertificate?.encoded_cert,\n };\n }\n if (kmsMTLSKeyPair || kmsCAInsert) {\n encryptionKMSCertificates = {\n kms_mtls: {\n ...kmsMTLSKeyPair,\n ...kmsCAInsert,\n },\n };\n }\n\n const dataSend = {\n raw: editRawConfiguration ? encryptionRawConfiguration : \"\",\n secretsToBeDeleted: certificatesToBeRemoved || [],\n replicas: replicas,\n securityContext: securityContext,\n image: image,\n ...encryptionClientKeyPair,\n ...encryptionServerKeyPair,\n ...encryptionKMSCertificates,\n ...insertEncrypt,\n };\n if (!updatingEncryption) {\n setUpdatingEncryption(true);\n api\n .invoke(\n \"PUT\",\n `/api/v1/namespaces/${tenant?.namespace}/tenants/${tenant?.name}/encryption`,\n dataSend,\n )\n .then(() => {\n setConfirmOpen(false);\n setUpdatingEncryption(false);\n fetchEncryptionInfo();\n })\n .catch((err: ErrorResponseHandler) => {\n setUpdatingEncryption(false);\n dispatch(setErrorSnackMessage(err));\n });\n }\n } else {\n if (!updatingEncryption) {\n setUpdatingEncryption(true);\n api\n .invoke(\n \"DELETE\",\n `/api/v1/namespaces/${tenant?.namespace}/tenants/${tenant?.name}/encryption`,\n {},\n )\n .then(() => {\n setConfirmOpen(false);\n setUpdatingEncryption(false);\n fetchEncryptionInfo();\n })\n .catch((err: ErrorResponseHandler) => {\n setUpdatingEncryption(false);\n dispatch(setErrorSnackMessage(err));\n });\n }\n }\n };\n\n return (\n \n {confirmOpen && (\n setConfirmOpen(false)}\n onConfirm={updateEncryptionConfiguration}\n confirmationContent={\n \n {encryptionEnabled\n ? \"Data will be encrypted using and external KMS\"\n : \"Current encrypted information will not be accessible\"}\n {encryptionEnabled && (\n
\n \n \n The content of the KES config secret will be overwritten.\n \n
\n )}\n
\n }\n />\n )}\n \n \n Encryption\n \n \n {\n setEncryptionEnabled(!encryptionEnabled);\n }}\n description=\"\"\n />\n \n \n \n \n {encryptionEnabled && (\n \n \n , newValue: number) => {\n setEditRawConfiguration(newValue);\n }}\n indicatorColor=\"primary\"\n textColor=\"primary\"\n aria-label=\"cluster-tabs\"\n variant=\"scrollable\"\n scrollButtons=\"auto\"\n >\n \n \n \n \n\n {editRawConfiguration ? (\n \n \n {\n setEncryptionRawConfiguration(value);\n }}\n editorHeight={\"550px\"}\n />\n \n \n ) : (\n \n \n \n {\n setEncryptionType(e.target.value);\n }}\n selectorOptions={[\n { label: \"Vault\", value: \"vault\" },\n { label: \"AWS\", value: \"aws\" },\n { label: \"Gemalto\", value: \"gemalto\" },\n { label: \"GCP\", value: \"gcp\" },\n { label: \"Azure\", value: \"azure\" },\n ]}\n />\n \n\n {encryptionType === \"vault\" && (\n \n \n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n endpoint: e.target.value,\n })\n }\n label=\"Endpoint\"\n tooltip=\"Endpoint is the Hashicorp Vault endpoint\"\n value={vaultConfiguration?.endpoint || \"\"}\n error={validationErrors[\"vault_ping\"] || \"\"}\n required\n />\n \n \n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n engine: e.target.value,\n })\n }\n label=\"Engine\"\n tooltip=\"Engine is the Hashicorp Vault K/V engine path. If empty, defaults to 'kv'\"\n value={vaultConfiguration?.engine || \"\"}\n />\n \n \n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n namespace: e.target.value,\n })\n }\n label=\"Namespace\"\n tooltip=\"Namespace is an optional Hashicorp Vault namespace. An empty namespace means no particular namespace is used.\"\n value={vaultConfiguration?.namespace || \"\"}\n />\n \n \n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n prefix: e.target.value,\n })\n }\n label=\"Prefix\"\n tooltip=\"Prefix is an optional prefix / directory within the K/V engine. If empty, keys will be stored at the K/V engine top level\"\n value={vaultConfiguration?.prefix || \"\"}\n />\n \n \n App Role\n \n \n
\n \n App Role\n \n \n ,\n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n approle: {\n ...vaultConfiguration?.approle,\n engine: e.target.value,\n },\n })\n }\n label=\"Engine\"\n tooltip=\"AppRoleEngine is the AppRole authentication engine path. If empty, defaults to 'approle'\"\n value={vaultConfiguration?.approle?.engine || \"\"}\n />\n \n \n ,\n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n approle: {\n ...vaultConfiguration?.approle,\n id: e.target.value,\n },\n })\n }\n label=\"AppRole ID\"\n tooltip=\"AppRoleSecret is the AppRole access secret for authenticating to Hashicorp Vault via the AppRole method\"\n value={vaultConfiguration?.approle?.id || \"\"}\n required\n error={validationErrors[\"vault_id\"] || \"\"}\n overlayIcon={\n showVaultAppRoleID ? (\n \n ) : (\n \n )\n }\n overlayAction={() =>\n setShowVaultAppRoleID(!showVaultAppRoleID)\n }\n />\n \n \n ,\n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n approle: {\n ...vaultConfiguration?.approle,\n secret: e.target.value,\n },\n })\n }\n label=\"AppRole Secret\"\n tooltip=\"AppRoleSecret is the AppRole access secret for authenticating to Hashicorp Vault via the AppRole method\"\n value={vaultConfiguration?.approle?.secret || \"\"}\n required\n error={validationErrors[\"vault_secret\"] || \"\"}\n overlayIcon={\n showVaultAppRoleSecret ? (\n \n ) : (\n \n )\n }\n overlayAction={() =>\n setShowVaultAppRoleSecret(!showVaultAppRoleSecret)\n }\n />\n \n \n ,\n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n approle: {\n ...vaultConfiguration?.approle,\n retry: e.target.value,\n },\n })\n }\n label=\"Retry (Seconds)\"\n error={validationErrors[\"vault_retry\"] || \"\"}\n value={vaultConfiguration?.approle?.retry || \"\"}\n />\n \n
\n
\n \n
\n \n Status\n \n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n status: {\n ...vaultConfiguration?.status,\n ping: e.target.value,\n },\n })\n }\n label=\"Ping (Seconds)\"\n tooltip=\"controls how often to Vault health status is checked. If not set, defaults to 10s\"\n error={validationErrors[\"vault_ping\"] || \"\"}\n value={vaultConfiguration?.status?.ping || \"\"}\n />\n
\n
\n \n )}\n {encryptionType === \"azure\" && (\n \n \n ) =>\n setAzureConfiguration({\n ...azureConfiguration,\n keyvault: {\n ...azureConfiguration?.keyvault,\n endpoint: e.target.value,\n },\n })\n }\n label=\"Endpoint\"\n tooltip=\"Endpoint is the Azure KeyVault endpoint\"\n error={validationErrors[\"azure_endpoint\"] || \"\"}\n value={azureConfiguration?.keyvault?.endpoint || \"\"}\n />\n \n \n
\n \n Credentials\n \n \n ,\n ) =>\n setAzureConfiguration({\n ...azureConfiguration,\n keyvault: {\n ...azureConfiguration?.keyvault,\n credentials: {\n ...azureConfiguration?.keyvault\n ?.credentials,\n tenant_id: e.target.value,\n },\n },\n })\n }\n label=\"Tenant ID\"\n tooltip=\"TenantID is the ID of the Azure KeyVault tenant\"\n value={\n azureConfiguration?.keyvault?.credentials\n ?.tenant_id || \"\"\n }\n error={validationErrors[\"azure_tenant_id\"] || \"\"}\n />\n \n \n ,\n ) =>\n setAzureConfiguration({\n ...azureConfiguration,\n keyvault: {\n ...azureConfiguration?.keyvault,\n credentials: {\n ...azureConfiguration?.keyvault\n ?.credentials,\n client_id: e.target.value,\n },\n },\n })\n }\n label=\"Client ID\"\n tooltip=\"ClientID is the ID of the client accessing Azure KeyVault\"\n value={\n azureConfiguration?.keyvault?.credentials\n ?.client_id || \"\"\n }\n error={validationErrors[\"azure_client_id\"] || \"\"}\n />\n \n \n ,\n ) =>\n setAzureConfiguration({\n ...azureConfiguration,\n keyvault: {\n ...azureConfiguration?.keyvault,\n credentials: {\n ...azureConfiguration?.keyvault\n ?.credentials,\n client_secret: e.target.value,\n },\n },\n })\n }\n label=\"Client Secret\"\n tooltip=\"ClientSecret is the client secret accessing the Azure KeyVault\"\n value={\n azureConfiguration?.keyvault?.credentials\n ?.client_secret || \"\"\n }\n error={\n validationErrors[\"azure_client_secret\"] || \"\"\n }\n />\n \n
\n
\n
\n )}\n {encryptionType === \"gcp\" && (\n \n \n ) =>\n setGCPConfiguration({\n ...gcpConfiguration,\n secretmanager: {\n ...gcpConfiguration?.secretmanager,\n project_id: e.target.value,\n },\n })\n }\n label=\"Project ID\"\n tooltip=\"ProjectID is the GCP project ID\"\n value={gcpConfiguration?.secretmanager.project_id || \"\"}\n />\n \n \n ) =>\n setGCPConfiguration({\n ...gcpConfiguration,\n secretmanager: {\n ...gcpConfiguration?.secretmanager,\n endpoint: e.target.value,\n },\n })\n }\n label=\"Endpoint\"\n tooltip=\"Endpoint is the GCP project ID. If empty defaults to: secretmanager.googleapis.com:443\"\n value={gcpConfiguration?.secretmanager.endpoint || \"\"}\n />\n \n \n
\n \n Credentials\n \n \n ,\n ) =>\n setGCPConfiguration({\n ...gcpConfiguration,\n secretmanager: {\n ...gcpConfiguration?.secretmanager,\n credentials: {\n ...gcpConfiguration?.secretmanager\n .credentials,\n client_email: e.target.value,\n },\n },\n })\n }\n label=\"Client Email\"\n tooltip=\"Is the Client email of the GCP service account used to access the SecretManager\"\n value={\n gcpConfiguration?.secretmanager.credentials\n ?.client_email || \"\"\n }\n />\n \n \n ,\n ) =>\n setGCPConfiguration({\n ...gcpConfiguration,\n secretmanager: {\n ...gcpConfiguration?.secretmanager,\n credentials: {\n ...gcpConfiguration?.secretmanager\n .credentials,\n client_id: e.target.value,\n },\n },\n })\n }\n label=\"Client ID\"\n tooltip=\"Is the Client ID of the GCP service account used to access the SecretManager\"\n value={\n gcpConfiguration?.secretmanager.credentials\n ?.client_id || \"\"\n }\n />\n \n \n ,\n ) =>\n setGCPConfiguration({\n ...gcpConfiguration,\n secretmanager: {\n ...gcpConfiguration?.secretmanager,\n credentials: {\n ...gcpConfiguration?.secretmanager\n .credentials,\n private_key_id: e.target.value,\n },\n },\n })\n }\n label=\"Private Key ID\"\n tooltip=\"Is the private key ID of the GCP service account used to access the SecretManager\"\n value={\n gcpConfiguration?.secretmanager.credentials\n ?.private_key_id || \"\"\n }\n />\n \n \n ,\n ) =>\n setGCPConfiguration({\n ...gcpConfiguration,\n secretmanager: {\n ...gcpConfiguration?.secretmanager,\n credentials: {\n ...gcpConfiguration?.secretmanager\n .credentials,\n private_key: e.target.value,\n },\n },\n })\n }\n label=\"Private Key\"\n tooltip=\"Is the private key of the GCP service account used to access the SecretManager\"\n value={\n gcpConfiguration?.secretmanager.credentials\n ?.private_key || \"\"\n }\n />\n \n
\n
\n
\n )}\n {encryptionType === \"aws\" && (\n \n \n ) =>\n setAWSConfiguration({\n ...awsConfiguration,\n secretsmanager: {\n ...awsConfiguration?.secretsmanager,\n endpoint: e.target.value,\n },\n })\n }\n label=\"Endpoint\"\n tooltip=\"Endpoint is the AWS SecretsManager endpoint. AWS SecretsManager endpoints have the following schema: secrestmanager[-fips]..amanzonaws.com\"\n value={awsConfiguration?.secretsmanager?.endpoint || \"\"}\n required\n error={validationErrors[\"aws_endpoint\"] || \"\"}\n />\n \n \n ) =>\n setAWSConfiguration({\n ...awsConfiguration,\n secretsmanager: {\n ...awsConfiguration?.secretsmanager,\n region: e.target.value,\n },\n })\n }\n label=\"Region\"\n tooltip=\"Region is the AWS region the SecretsManager is located\"\n value={awsConfiguration?.secretsmanager?.region || \"\"}\n error={validationErrors[\"aws_region\"] || \"\"}\n required\n />\n \n \n ) =>\n setAWSConfiguration({\n ...awsConfiguration,\n secretsmanager: {\n ...awsConfiguration?.secretsmanager,\n kmskey: e.target.value,\n },\n })\n }\n label=\"KMS Key\"\n tooltip=\"KMSKey is the AWS-KMS key ID (CMK-ID) used to en/decrypt secrets managed by the SecretsManager. If empty, the default AWS KMS key is used\"\n value={awsConfiguration?.secretsmanager?.kmskey || \"\"}\n />\n \n \n
\n \n Credentials\n \n \n ,\n ) =>\n setAWSConfiguration({\n ...awsConfiguration,\n secretsmanager: {\n ...awsConfiguration?.secretsmanager,\n credentials: {\n ...awsConfiguration?.secretsmanager\n ?.credentials,\n accesskey: e.target.value,\n },\n },\n })\n }\n label=\"Access Key\"\n tooltip=\"AccessKey is the access key for authenticating to AWS\"\n value={\n awsConfiguration?.secretsmanager?.credentials\n ?.accesskey || \"\"\n }\n error={validationErrors[\"aws_accessKey\"] || \"\"}\n required\n />\n \n \n ,\n ) =>\n setAWSConfiguration({\n ...awsConfiguration,\n secretsmanager: {\n ...awsConfiguration?.secretsmanager,\n credentials: {\n ...awsConfiguration?.secretsmanager\n ?.credentials,\n secretkey: e.target.value,\n },\n },\n })\n }\n label=\"Secret Key\"\n tooltip=\"SecretKey is the secret key for authenticating to AWS\"\n value={\n awsConfiguration?.secretsmanager?.credentials\n ?.secretkey || \"\"\n }\n error={validationErrors[\"aws_secretKey\"] || \"\"}\n required\n />\n \n \n ,\n ) =>\n setAWSConfiguration({\n ...awsConfiguration,\n secretsmanager: {\n ...awsConfiguration?.secretsmanager,\n credentials: {\n ...awsConfiguration?.secretsmanager\n ?.credentials,\n token: e.target.value,\n },\n },\n })\n }\n label=\"Token\"\n tooltip=\"SessionToken is an optional session token for authenticating to AWS when using STS\"\n value={\n awsConfiguration?.secretsmanager?.credentials\n ?.token || \"\"\n }\n />\n \n
\n
\n
\n )}\n {encryptionType === \"gemalto\" && (\n \n \n ) =>\n setGemaltoConfiguration({\n ...gemaltoConfiguration,\n keysecure: {\n ...gemaltoConfiguration?.keysecure,\n endpoint: e.target.value,\n },\n })\n }\n label=\"Endpoint\"\n tooltip=\"Endpoint is the endpoint to the KeySecure server\"\n value={gemaltoConfiguration?.keysecure?.endpoint || \"\"}\n error={validationErrors[\"gemalto_endpoint\"] || \"\"}\n required\n />\n \n \n
\n \n Credentials\n \n \n ,\n ) =>\n setGemaltoConfiguration({\n ...gemaltoConfiguration,\n keysecure: {\n ...gemaltoConfiguration?.keysecure,\n credentials: {\n ...gemaltoConfiguration?.keysecure\n ?.credentials,\n token: e.target.value,\n },\n },\n })\n }\n label=\"Token\"\n tooltip=\"Token is the refresh authentication token to access the KeySecure server\"\n value={\n gemaltoConfiguration?.keysecure?.credentials\n ?.token || \"\"\n }\n error={validationErrors[\"gemalto_token\"] || \"\"}\n required\n />\n \n \n ,\n ) =>\n setGemaltoConfiguration({\n ...gemaltoConfiguration,\n keysecure: {\n ...gemaltoConfiguration?.keysecure,\n credentials: {\n ...gemaltoConfiguration?.keysecure\n ?.credentials,\n domain: e.target.value,\n },\n },\n })\n }\n label=\"Domain\"\n tooltip=\"Domain is the isolated namespace within the KeySecure server. If empty, defaults to the top-level / root domain\"\n value={\n gemaltoConfiguration?.keysecure?.credentials\n ?.domain || \"\"\n }\n error={validationErrors[\"gemalto_domain\"] || \"\"}\n required\n />\n \n \n ,\n ) =>\n setGemaltoConfiguration({\n ...gemaltoConfiguration,\n keysecure: {\n ...gemaltoConfiguration?.keysecure,\n credentials: {\n ...gemaltoConfiguration?.keysecure\n ?.credentials,\n retry: e.target.value,\n },\n },\n })\n }\n label=\"Retry (seconds)\"\n value={\n gemaltoConfiguration?.keysecure?.credentials\n ?.retry || \"\"\n }\n error={validationErrors[\"gemalto_retry\"] || \"\"}\n />\n \n
\n \n
\n )}\n \n )}\n\n \n Additional Configuration for KES\n \n \n \n setEnabledCustomCertificates(!enabledCustomCertificates)\n }\n label={\"Custom Certificates\"}\n />\n \n {enabledCustomCertificates && (\n \n \n
\n \n Encryption server certificates\n \n {kesServerTLSCertificateSecret ? (\n \n removeCertificate(kesServerTLSCertificateSecret)\n }\n />\n ) : (\n \n {\n setKESServerCertificate({\n encoded_key: encodedValue || \"\",\n id: kesServerCertificate?.id || \"\",\n key: fileName || \"\",\n cert: kesServerCertificate?.cert || \"\",\n encoded_cert:\n kesServerCertificate?.encoded_cert || \"\",\n });\n cleanValidation(\"serverKey\");\n }}\n accept=\".key,.pem\"\n id=\"serverKey\"\n name=\"serverKey\"\n label=\"Key\"\n value={kesServerCertificate?.key}\n />\n {\n setKESServerCertificate({\n encoded_key:\n kesServerCertificate?.encoded_key || \"\",\n id: kesServerCertificate?.id || \"\",\n key: kesServerCertificate?.key || \"\",\n cert: fileName || \"\",\n encoded_cert: encodedValue || \"\",\n });\n cleanValidation(\"serverCert\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"serverCert\"\n name=\"serverCert\"\n label=\"Cert\"\n value={kesServerCertificate?.cert}\n />\n \n )}\n
\n
\n \n
\n \n MinIO mTLS certificates (connection between MinIO and the\n Encryption server)\n \n {minioMTLSCertificateSecret ? (\n \n removeCertificate(minioMTLSCertificateSecret)\n }\n />\n ) : (\n \n {\n setMinioMTLSCertificate({\n encoded_key: encodedValue || \"\",\n id: minioMTLSCertificate?.id || \"\",\n key: fileName || \"\",\n cert: minioMTLSCertificate?.cert || \"\",\n encoded_cert:\n minioMTLSCertificate?.encoded_cert || \"\",\n });\n cleanValidation(\"clientKey\");\n }}\n accept=\".key,.pem\"\n id=\"clientKey\"\n name=\"clientKey\"\n label=\"Key\"\n value={minioMTLSCertificate?.key}\n />\n {\n setMinioMTLSCertificate({\n encoded_key:\n minioMTLSCertificate?.encoded_key || \"\",\n id: minioMTLSCertificate?.id || \"\",\n key: minioMTLSCertificate?.key || \"\",\n cert: fileName || \"\",\n encoded_cert: encodedValue || \"\",\n });\n cleanValidation(\"clientCert\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"clientCert\"\n name=\"clientCert\"\n label=\"Cert\"\n value={minioMTLSCertificate?.cert}\n />\n \n )}\n
\n
\n \n
\n \n KMS mTLS certificates (connection between the Encryption\n server and the KMS)\n \n {kmsMTLSCertificateSecret ? (\n \n removeCertificate(kmsMTLSCertificateSecret)\n }\n />\n ) : (\n \n {\n setKmsMTLSCertificate({\n encoded_key: encodedValue || \"\",\n id: kmsMTLSCertificate?.id || \"\",\n key: fileName || \"\",\n cert: kmsMTLSCertificate?.cert || \"\",\n encoded_cert:\n kmsMTLSCertificate?.encoded_cert || \"\",\n });\n }}\n accept=\".key,.pem\"\n id=\"kms_mtls_key\"\n name=\"kms_mtls_key\"\n label=\"Key\"\n value={kmsMTLSCertificate?.key}\n />\n \n setKmsMTLSCertificate({\n encoded_key:\n kmsMTLSCertificate?.encoded_key || \"\",\n id: kmsMTLSCertificate?.id || \"\",\n key: kmsMTLSCertificate?.key || \"\",\n cert: fileName || \"\",\n encoded_cert: encodedValue || \"\",\n })\n }\n accept=\".cer,.crt,.cert,.pem\"\n id=\"kms_mtls_cert\"\n name=\"kms_mtls_cert\"\n label=\"Cert\"\n value={kmsMTLSCertificate?.cert || \"\"}\n />\n \n )}\n {kmsCACertificateSecret ? (\n \n removeCertificate(kmsCACertificateSecret)\n }\n />\n ) : (\n \n setKmsCACertificate({\n encoded_key: kmsCACertificate?.encoded_key || \"\",\n id: kmsCACertificate?.id || \"\",\n key: kmsCACertificate?.key || \"\",\n cert: fileName || \"\",\n encoded_cert: encodedValue || \"\",\n })\n }\n accept=\".cer,.crt,.cert,.pem\"\n id=\"kms_mtls_ca\"\n name=\"kms_mtls_ca\"\n label=\"CA\"\n value={kmsCACertificate?.cert || \"\"}\n />\n )}\n
\n
\n
\n )}\n \n ) =>\n setImage(e.target.value)\n }\n label=\"Image\"\n tooltip=\"KES container image\"\n placeholder=\"minio/kes:2023-08-19T17-27-47Z\"\n value={image}\n />\n \n \n ) =>\n setReplicas(e.target.value)\n }\n label=\"Replicas\"\n tooltip=\"Numer of KES pod replicas\"\n value={replicas}\n required\n error={validationErrors[\"replicas\"] || \"\"}\n />\n \n \n SecurityContext for KES\n \n \n \n \n ) => {\n setSecurityContext({\n ...securityContext,\n runAsUser: e.target.value,\n });\n }}\n label=\"Run As User\"\n value={securityContext.runAsUser}\n required\n error={\n validationErrors[\"kes_securityContext_runAsUser\"] || \"\"\n }\n min=\"0\"\n />\n \n \n ) => {\n setSecurityContext({\n ...securityContext,\n runAsGroup: e.target.value,\n });\n }}\n label=\"Run As Group\"\n value={securityContext.runAsGroup}\n required\n error={\n validationErrors[\"kes_securityContext_runAsGroup\"] || \"\"\n }\n min=\"0\"\n />\n \n \n ) => {\n setSecurityContext({\n ...securityContext,\n fsGroup: e.target.value,\n });\n }}\n label=\"FsGroup\"\n value={securityContext.fsGroup!}\n required\n error={\n validationErrors[\"kes_securityContext_fsGroup\"] || \"\"\n }\n min=\"0\"\n />\n \n \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n setSecurityContext({\n ...securityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n \n \n )}\n \n setConfirmOpen(true)}\n label={\"Save\"}\n />\n \n \n
\n );\n};\n\nexport default withStyles(styles)(TenantEncryption);\n","import React from \"react\";\nimport Typography from \"@mui/material/Typography\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n errorBlock: {\n color: theme.palette?.error.main || \"#C83B51\",\n },\n });\n\ninterface IErrorBlockProps {\n classes: any;\n errorMessage: string;\n withBreak?: boolean;\n}\n\nconst ErrorBlock = ({\n classes,\n errorMessage,\n withBreak = true,\n}: IErrorBlockProps) => {\n return (\n \n {withBreak &&
}\n \n {errorMessage}\n \n
\n );\n};\n\nexport default withStyles(styles)(ErrorBlock);\n"],"names":["withStyles","theme","createStyles","_objectSpread","fieldBasic","_ref","value","_ref$label","label","_ref$tooltip","tooltip","_ref$mode","mode","classes","onBeforeChange","_ref$editorHeight","readOnly","editorHeight","_jsxs","React","children","_jsx","Grid","item","xs","sx","marginBottom","InputLabel","className","inputLabel","tooltipContainer","Tooltip","title","placement","HelpIcon","style","maxHeight","overflow","border","CodeEditor","language","onChange","evn","target","id","padding","fontSize","backgroundColor","fontFamily","minHeight","color","background","borderTop","Box","display","alignItems","paddingRight","justifyContent","height","width","marginLeft","TooltipWrapper","CopyToClipboard","text","Button","type","icon","CopyIcon","variant","tooltipHelper","valueString","maxWidth","whiteSpace","textOverflow","marginTop","fileInputField","margin","flexFlow","fileInputStyles","fontWeight","textBoxContainer","paddingLeft","name","_ref$disabled","disabled","required","_ref$error","error","_ref$accept","accept","_ref$value","_useState","useState","_useState2","_slicedToArray","showFileSelector","setShowSelector","concat","fieldBottom","fieldContainer","errorInField","htmlFor","fieldLabelError","e","fileName","get","evt","callback","file","files","reader","FileReader","readAsDataURL","onload","fileBase64","result","fileArray","toString","split","length","fileProcess","data","IconButton","component","onClick","disableRipple","disableFocusRipple","size","CancelIcon","ErrorBlock","errorMessage","fileReselect","AttachFileIcon","FormHr","styled","_templateObject","_taggedTemplateLiteral","certificateIcon","float","paddingTop","certificateInfo","certificateWrapper","userSelect","borderRadius","certificateExpiry","flexWrap","certificateDomains","certificatesList","textTransform","overflowY","certificatesListItem","borderBottom","minWidth","marginRight","opacity","certificateExpiring","certificateExpired","_ref$onDelete","onDelete","certificates","domains","expiry","DateTime","fromISO","now","utc","daysToExpiry","daysToExpiryHuman","certificateExpiration","durationToExpiry","diff","as","minus","Duration","fromObject","days","shiftTo","toHuman","listStyle","maximumFractionDigits","minutes","Chip","Container","CertificateIcon","Typography","gutterBottom","EventBusyIcon","toFormat","AccessTimeIcon","Divider","List","map","dom","index","ListItem","ListItemAvatar","LanguageIcon","ListItemText","primary","PolicyItem","_ref$items","items","_ref$title","Fragment","gap","iTxt","_ref2","_ref2$policies","policies","fmtPolicies","arguments","undefined","Object","keys","polName","policyConfig","identities","paths","allow","deny","getPolicyData","withBorders","pConf","borderLeft","borderRight","tenantDetailsStyles","spacingUtils","containerForHeader","createTenantCommon","formFieldStyles","modalBasic","wizardCommon","warningBlock","_vaultConfiguration$a9","_vaultConfiguration$a10","_vaultConfiguration$a11","_vaultConfiguration$a12","_vaultConfiguration$s4","_azureConfiguration$k15","_azureConfiguration$k17","_azureConfiguration$k18","_azureConfiguration$k20","_azureConfiguration$k21","_azureConfiguration$k23","_azureConfiguration$k24","_gcpConfiguration$sec11","_gcpConfiguration$sec12","_gcpConfiguration$sec13","_gcpConfiguration$sec14","_awsConfiguration$sec16","_awsConfiguration$sec17","_awsConfiguration$sec18","_awsConfiguration$sec20","_awsConfiguration$sec21","_awsConfiguration$sec23","_awsConfiguration$sec24","_awsConfiguration$sec26","_awsConfiguration$sec27","_gemaltoConfiguration17","_gemaltoConfiguration19","_gemaltoConfiguration20","_gemaltoConfiguration22","_gemaltoConfiguration23","_gemaltoConfiguration25","_gemaltoConfiguration26","dispatch","useAppDispatch","tenant","useSelector","state","tenants","tenantInfo","editRawConfiguration","setEditRawConfiguration","_useState3","_useState4","encryptionRawConfiguration","setEncryptionRawConfiguration","_useState5","_useState6","encryptionEnabled","setEncryptionEnabled","_useState7","_useState8","encryptionType","setEncryptionType","_useState9","_useState10","replicas","setReplicas","_useState11","_useState12","image","setImage","_useState13","_useState14","refreshEncryptionInfo","setRefreshEncryptionInfo","_useState15","fsGroup","fsGroupChangePolicy","runAsGroup","runAsNonRoot","runAsUser","_useState16","securityContext","setSecurityContext","_useState17","_useState18","setPolicies","_useState19","_useState20","vaultConfiguration","setVaultConfiguration","_useState21","_useState22","awsConfiguration","setAWSConfiguration","_useState23","_useState24","gemaltoConfiguration","setGemaltoConfiguration","_useState25","_useState26","azureConfiguration","setAzureConfiguration","_useState27","_useState28","gcpConfiguration","setGCPConfiguration","_useState29","_useState30","enabledCustomCertificates","setEnabledCustomCertificates","_useState31","_useState32","updatingEncryption","setUpdatingEncryption","_useState33","_useState34","kesServerTLSCertificateSecret","setKesServerTLSCertificateSecret","_useState35","_useState36","minioMTLSCertificateSecret","setMinioMTLSCertificateSecret","_useState37","_useState38","minioMTLSCertificate","setMinioMTLSCertificate","_useState39","_useState40","certificatesToBeRemoved","setCertificatesToBeRemoved","_useState41","_useState42","showVaultAppRoleID","setShowVaultAppRoleID","_useState43","_useState44","isFormValid","setIsFormValid","_useState45","_useState46","showVaultAppRoleSecret","setShowVaultAppRoleSecret","_useState47","_useState48","kmsMTLSCertificateSecret","setKmsMTLSCertificateSecret","_useState49","_useState50","kmsCACertificateSecret","setKMSCACertificateSecret","_useState51","_useState52","kmsMTLSCertificate","setKmsMTLSCertificate","_useState53","_useState54","kesServerCertificate","setKESServerCertificate","_useState55","_useState56","kmsCACertificate","setKmsCACertificate","_useState57","_useState58","validationErrors","setValidationErrors","cleanValidation","fieldName","clearValidationError","_useState59","_useState60","confirmOpen","setConfirmOpen","useEffect","encryptionValidation","_vaultConfiguration$a","_vaultConfiguration$a2","_vaultConfiguration$s","_vaultConfiguration$s2","_vaultConfiguration$a3","_vaultConfiguration$a4","_awsConfiguration$sec","_awsConfiguration$sec2","_awsConfiguration$sec3","_awsConfiguration$sec4","_awsConfiguration$sec5","_awsConfiguration$sec6","_gemaltoConfiguration","_gemaltoConfiguration2","_gemaltoConfiguration3","_gemaltoConfiguration4","_gemaltoConfiguration5","_gemaltoConfiguration6","_gemaltoConfiguration7","_gemaltoConfiguration8","_gemaltoConfiguration9","_azureConfiguration$k","_azureConfiguration$k2","_azureConfiguration$k3","_azureConfiguration$k4","_azureConfiguration$k5","_azureConfiguration$k6","_azureConfiguration$k7","fieldKey","customValidation","parseInt","customValidationMessage","_toConsumableArray","encoded_key","encoded_cert","endpoint","approle","secret","status","ping","retry","secretsmanager","region","credentials","accesskey","secretkey","keysecure","token","domain","keyvault","tenant_id","client_id","client_secret","commonVal","commonFormValidation","fetchEncryptionInfo","namespace","api","invoke","then","resp","raw","vault","aws","gemalto","gcp","azure","server_tls","minio_mtls","kms_mtls","crt","ca","catch","err","console","removeCertificate","ConfirmDialog","isOpen","confirmText","cancelText","onClose","onConfirm","_gemaltoConfiguration10","_gemaltoConfiguration11","_gemaltoConfiguration12","_gemaltoConfiguration13","_gemaltoConfiguration14","_gemaltoConfiguration15","_gemaltoConfiguration16","_awsConfiguration$sec7","_awsConfiguration$sec8","_awsConfiguration$sec9","_awsConfiguration$sec10","_awsConfiguration$sec11","_awsConfiguration$sec12","_awsConfiguration$sec13","_awsConfiguration$sec14","_awsConfiguration$sec15","_azureConfiguration$k8","_azureConfiguration$k9","_azureConfiguration$k10","_azureConfiguration$k11","_azureConfiguration$k12","_azureConfiguration$k13","_azureConfiguration$k14","_gcpConfiguration$sec","_gcpConfiguration$sec2","_gcpConfiguration$sec3","_gcpConfiguration$sec4","_gcpConfiguration$sec5","_gcpConfiguration$sec6","_gcpConfiguration$sec7","_gcpConfiguration$sec8","_gcpConfiguration$sec9","_gcpConfiguration$sec10","_vaultConfiguration$a5","_vaultConfiguration$a6","_vaultConfiguration$a7","_vaultConfiguration$a8","_vaultConfiguration$s3","insertEncrypt","kmskey","secretmanager","project_id","client_email","private_key_id","private_key","engine","prefix","encryptionServerKeyPair","encryptionClientKeyPair","encryptionKMSCertificates","key","kmsMTLSKeyPair","kmsCAInsert","dataSend","secretsToBeDeleted","setErrorSnackMessage","confirmationContent","DialogContentText","WarnIcon","container","spacing","SectionTitle","textAlign","FormSwitchWrapper","indicatorLabels","checked","description","Tabs","newValue","indicatorColor","textColor","scrollButtons","Tab","CodeMirrorWrapper","editor","KMSPolicyInfo","encryptionTypeOptions","RadioGroupSelector","currentSelection","selectorOptions","InputBoxWrapper","fieldGroup","descriptionText","formFieldRow","overlayIcon","VisibilityOffIcon","RemoveRedEyeIcon","overlayAction","min","_azureConfiguration$k16","_azureConfiguration$k19","_azureConfiguration$k22","_awsConfiguration$sec19","_awsConfiguration$sec22","_awsConfiguration$sec25","_gemaltoConfiguration18","_gemaltoConfiguration21","_gemaltoConfiguration24","TLSCertificate","FileSelector","encodedValue","cert","placeholder","multiContainer","responsiveContainer","rightSpacer","_theme$palette","errorBlock","palette","main","_ref$withBreak","withBreak"],"sourceRoot":""} \ No newline at end of file diff --git a/web-app/build/static/js/367.fb267f8e.chunk.js b/web-app/build/static/js/367.fb267f8e.chunk.js deleted file mode 100644 index 24fe6943098..00000000000 --- a/web-app/build/static/js/367.fb267f8e.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[367],{92217:function(e,n,i){var l=i(1413),t=i(72791),o=i(61889),r=i(30829),a=i(96040),s=i(64554),d=i(11135),c=i(25787),u=i(75952),v=i(23814),m=i(78029),p=i.n(m),x=i(9534),g=i(27454),Z=i(80184);n.Z=(0,c.Z)((function(e){return(0,d.Z)((0,l.Z)({},v.YI))}))((function(e){var n=e.value,i=e.label,l=void 0===i?"":i,d=e.tooltip,c=void 0===d?"":d,v=e.mode,m=void 0===v?"json":v,h=e.classes,f=e.onBeforeChange,y=(e.readOnly,e.editorHeight),_=void 0===y?"250px":y;return(0,Z.jsxs)(t.Fragment,{children:[(0,Z.jsx)(o.ZP,{item:!0,xs:12,sx:{marginBottom:"10px"},children:(0,Z.jsxs)(r.Z,{className:h.inputLabel,children:[(0,Z.jsx)("span",{children:l}),""!==c&&(0,Z.jsx)("div",{className:h.tooltipContainer,children:(0,Z.jsx)(a.Z,{title:c,placement:"top-start",children:(0,Z.jsx)("div",{className:h.tooltip,children:(0,Z.jsx)(u.byK,{})})})})]})}),(0,Z.jsx)(o.ZP,{item:!0,xs:12,style:{maxHeight:_,overflow:"auto",border:"1px solid #eaeaea"},children:(0,Z.jsx)(x.Z,{value:n,language:m,onChange:function(e){f(null,null,e.target.value)},id:"code_wrapper",padding:15,style:{fontSize:12,backgroundColor:"#fefefe",fontFamily:"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace",minHeight:_||"initial",color:"#000000"}})}),(0,Z.jsx)(o.ZP,{item:!0,xs:12,sx:{background:"#f7f7f7",border:"1px solid #eaeaea",borderTop:0},children:(0,Z.jsx)(s.Z,{sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}}},children:(0,Z.jsx)(g.Z,{tooltip:"Copy to Clipboard",children:(0,Z.jsx)(p(),{text:n,children:(0,Z.jsx)(u.zxk,{type:"button",id:"copy-code-mirror",icon:(0,Z.jsx)(u.TIy,{}),color:"primary",variant:"regular"})})})})})]})}))},54639:function(e,n,i){i.d(n,{Z:function(){return y}});var l=i(29439),t=i(1413),o=i(72791),r=i(26181),a=i.n(r),s=i(61889),d=i(30829),c=i(96040),u=i(13400),v=i(99663),m=i(86711),p=i(11135),x=i(25787),g=i(23814),Z=i(75952),h=i(22512),f=i(80184),y=(0,x.Z)((function(e){return(0,p.Z)((0,t.Z)((0,t.Z)((0,t.Z)((0,t.Z)({},g.YI),g.Hr),{},{valueString:{maxWidth:350,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",marginTop:2},fileInputField:{margin:"13px 0","@media (max-width: 900px)":{flexFlow:"column"}}},g.bV),{},{inputLabel:(0,t.Z)((0,t.Z)({},g.YI.inputLabel),{},{fontWeight:"normal"}),textBoxContainer:(0,t.Z)((0,t.Z)({},g.YI.textBoxContainer),{},{maxWidth:"100%",border:"1px solid #eaeaea",paddingLeft:"15px"})}))}))((function(e){var n=e.label,i=e.classes,t=e.onChange,r=e.id,p=e.name,x=e.disabled,g=void 0!==x&&x,y=e.tooltip,_=void 0===y?"":y,j=e.required,k=e.error,b=void 0===k?"":k,C=e.accept,S=void 0===C?"":C,w=e.value,K=void 0===w?"":w,P=(0,o.useState)(!1),N=(0,l.Z)(P,2),I=N[0],A=N[1];return(0,f.jsx)(o.Fragment,{children:(0,f.jsxs)(s.ZP,{item:!0,xs:12,className:"".concat(i.fileInputField," ").concat(i.fieldBottom," ").concat(i.fieldContainer," ").concat(""!==b?i.errorInField:""),children:[""!==n&&(0,f.jsxs)(d.Z,{htmlFor:r,className:"".concat(""!==b?i.fieldLabelError:""," ").concat(i.inputLabel),children:[(0,f.jsxs)("span",{children:[n,j?"*":""]}),""!==_&&(0,f.jsx)("div",{className:i.tooltipContainer,children:(0,f.jsx)(c.Z,{title:_,placement:"top-start",children:(0,f.jsx)("div",{className:i.tooltip,children:(0,f.jsx)(Z.byK,{})})})})]}),I||""===K?(0,f.jsxs)("div",{className:i.textBoxContainer,children:[(0,f.jsx)("input",{type:"file",name:p,onChange:function(e){var n=a()(e,"target.files[0].name","");!function(e,n){var i=e.target.files[0],l=new FileReader;l.readAsDataURL(i),l.onload=function(){var e=l.result;if(e){var i=e.toString().split("base64,");2===i.length&&n(i[1])}}}(e,(function(e){t(e,n)}))},accept:S,required:j,disabled:g,className:i.fileInputField}),""!==K&&(0,f.jsx)(u.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){A(!1)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,f.jsx)(m.Z,{})}),""!==b&&(0,f.jsx)(h.Z,{errorMessage:b})]}):(0,f.jsxs)("div",{className:i.fileReselect,children:[(0,f.jsx)("div",{className:i.valueString,children:K}),(0,f.jsx)(u.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){A(!0)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,f.jsx)(v.Z,{})})]})]})})}))},13871:function(e,n,i){var l,t=i(30168),o=(0,i(26088).Z)("hr")(l||(l=(0,t.Z)(["\n border-top: 0;\n border-left: 0;\n border-right: 0;\n border-color: #999999;\n background-color: transparent;\n"])));n.Z=o},80666:function(e,n,i){i(72791);var l=i(99779),t=i(11135),o=i(25787),r=i(90983),a=i(81918),s=i(89164),d=i(61889),c=i(20890),u=i(64554),v=i(94721),m=i(90493),p=i(84852),x=i(20653),g=i(49900),Z=i(52502),h=i(69212),f=i(75952),y=i(80184);n.Z=(0,o.Z)((function(e){return(0,t.Z)({certificateIcon:{float:"left",paddingTop:"5px !important",paddingRight:"10px !important"},certificateInfo:{float:"right"},certificateWrapper:{height:"auto",margin:5,border:"1px solid #E2E2E2",userSelect:"text",borderRadius:4,"& h6":{fontWeight:"bold"},"& div":{padding:0}},certificateExpiry:{color:"#616161",display:"flex",alignItems:"center",flexWrap:"wrap",marginBottom:5,"& .label":{fontWeight:"bold"}},certificateDomains:{color:"#616161","& .label":{fontWeight:"bold"}},certificatesList:{border:"1px solid #E2E2E2",borderRadius:4,color:"#616161",textTransform:"lowercase",overflowY:"scroll",maxHeight:145,marginBottom:10},certificatesListItem:{padding:"0px 16px",borderBottom:"1px solid #E2E2E2","& div":{minWidth:0},"& svg":{fontSize:12,marginRight:10,opacity:.5},"& span":{fontSize:12}},certificateExpiring:{color:"orange","& .label":{fontWeight:"bold"}},certificateExpired:{color:"red","& .label":{fontWeight:"bold"}}})}))((function(e){var n=e.classes,i=e.certificateInfo,t=e.onDelete,o=void 0===t?function(){}:t,_=i.domains||[],j=l.ou.fromISO(i.expiry),k=l.ou.utc(),b=0,C="",S="";if(j){var w=j.diff(k);b=w.as("days"),C=w.minus(l.nL.fromObject({days:1})).shiftTo("days").toHuman({listStyle:"long",maximumFractionDigits:0}),b>=10&&b<30&&(S=n.certificateExpiring),b<10&&(S=n.certificateExpired,b<2&&(C=w.minus(l.nL.fromObject({minutes:1})).shiftTo("hours","minutes").toHuman({listStyle:"long",maximumFractionDigits:0}),w.as("minutes")<=1&&(C="EXPIRED")))}return(0,y.jsx)(a.Z,{variant:"outlined",color:"primary",className:n.certificateWrapper,label:(0,y.jsxs)(s.Z,{children:[(0,y.jsx)(d.ZP,{item:!0,xs:1,className:n.certificateIcon,children:(0,y.jsx)(f.Baz,{})}),(0,y.jsxs)(d.ZP,{item:!0,xs:11,className:n.certificateInfo,children:[(0,y.jsx)(c.Z,{variant:"subtitle1",display:"block",gutterBottom:!0,children:i.name}),(0,y.jsxs)(u.Z,{className:n.certificateExpiry,children:[(0,y.jsx)(Z.Z,{color:"inherit",fontSize:"small"}),"\xa0",(0,y.jsx)("span",{className:"label",children:"Expiry:\xa0"}),(0,y.jsx)("span",{children:j.toFormat("yyyy/MM/dd")})]}),(0,y.jsxs)(u.Z,{className:n.certificateExpiry,children:[(0,y.jsx)(h.Z,{color:"inherit",fontSize:"small"}),"\xa0",(0,y.jsx)("span",{className:"label",children:"Expires in:\xa0"}),(0,y.jsx)("span",{className:S,children:C})]}),(0,y.jsx)(v.Z,{}),(0,y.jsx)("br",{}),(0,y.jsx)(u.Z,{className:n.certificateDomains,children:(0,y.jsx)("span",{className:"label",children:"".concat(_.length," Domain (s):")})}),(0,y.jsx)(m.Z,{className:n.certificatesList,children:_.map((function(e,i){return(0,y.jsxs)(p.ZP,{className:n.certificatesListItem,children:[(0,y.jsx)(x.Z,{children:(0,y.jsx)(r.Z,{})}),(0,y.jsx)(g.Z,{primary:e})]},"".concat(e,"-").concat(i))}))})]})]}),onDelete:o},i.name)}))},7032:function(e,n,i){i.r(n),i.d(n,{default:function(){return F}});var l=i(93433),t=i(29439),o=i(1413),r=i(75952),a=i(11135),s=i(25787),d=i(23814),c=i(72791),u=i(78687),v=i(41320),m=i(81207),p=i(37516),x=i(61889),g=i(54639),Z=i(21435),h=i(83679),f=i(51691),y=i(20165),_=i(3579),j=i(84741),k=i(40968),b=i(40306),C=i(80666),S=i(87995),w=i(25228),K=i(43896),P=i(92217),N=i(13871),I=i(80184),A=function(e){var n=e.items,i=void 0===n?[]:n,l=e.title,t=void 0===l?"":l;return null!==i&&void 0!==i&&i.length?(0,I.jsxs)(c.Fragment,{children:[(0,I.jsx)("div",{style:{fontSize:"0.83em",fontWeight:"bold"},children:t}),(0,I.jsx)("div",{style:{display:"flex",gap:"2px",flexFlow:"column",marginLeft:"8px"},children:i.map((function(e){return(0,I.jsxs)("span",{style:{fontSize:"12px"},children:["- ",e]})}))})]}):null},R=function(e){var n=e.policies,i=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object.keys(e).map((function(n){var i=e[n]||{};return{name:n||"",identities:i.identities||[],paths:i.paths||[],allow:i.allow||[],deny:i.deny||[]}}))}(void 0===n?{}:n);return i.length?(0,I.jsxs)(x.ZP,{xs:12,marginBottom:"5px",children:[(0,I.jsx)("h4",{children:"Policies"}),(0,I.jsx)(r.xuv,{withBorders:!0,sx:{maxHeight:"200px",overflow:"auto",padding:0},children:i.map((function(e){return(0,I.jsxs)(r.xuv,{withBorders:!0,sx:{display:"flex",flexFlow:"column",gap:"2px",borderLeft:0,borderRight:0,borderTop:0},children:[(0,I.jsxs)("div",{children:[(0,I.jsx)("b",{style:{fontSize:"0.83em",fontWeight:"bold"},children:"Policy Name:"})," ",e.name]}),(0,I.jsx)(A,{title:"Allow",items:null===e||void 0===e?void 0:e.allow}),(0,I.jsx)(A,{title:"Deny",items:null===e||void 0===e?void 0:e.deny}),(0,I.jsx)(A,{title:"Paths",items:null===e||void 0===e?void 0:e.paths}),(0,I.jsx)(A,{title:"Identities",items:null===e||void 0===e?void 0:e.identities})]})}))})]}):null},F=(0,s.Z)((function(e){return(0,a.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)({},d.oZ),d.bK),d.Bz),d.QV),d.DF),d.oO),d.AK),{},{warningBlock:{color:"red",fontSize:".85rem",margin:".5rem 0 .5rem 0",display:"flex",alignItems:"center","& svg ":{marginRight:".3rem",height:16,width:16}}}))}))((function(e){var n,i,a,s,d,A,F,E,z,G,q,D,T,M,V,B,W,L,H,O,U,Y,Q,X,J,$,ee,ne,ie,le,te,oe,re=e.classes,ae=(0,v.TL)(),se=(0,u.v9)((function(e){return e.tenants.tenantInfo})),de=(0,c.useState)(0),ce=(0,t.Z)(de,2),ue=ce[0],ve=ce[1],me=(0,c.useState)(""),pe=(0,t.Z)(me,2),xe=pe[0],ge=pe[1],Ze=(0,c.useState)(!1),he=(0,t.Z)(Ze,2),fe=he[0],ye=he[1],_e=(0,c.useState)("vault"),je=(0,t.Z)(_e,2),ke=je[0],be=je[1],Ce=(0,c.useState)("1"),Se=(0,t.Z)(Ce,2),we=Se[0],Ke=Se[1],Pe=(0,c.useState)(""),Ne=(0,t.Z)(Pe,2),Ie=Ne[0],Ae=Ne[1],Re=(0,c.useState)(!1),Fe=(0,t.Z)(Re,2),Ee=Fe[0],ze=Fe[1],Ge=(0,c.useState)({fsGroup:"1000",fsGroupChangePolicy:"Always",runAsGroup:"1000",runAsNonRoot:!0,runAsUser:"1000"}),qe=(0,t.Z)(Ge,2),De=qe[0],Te=qe[1],Me=(0,c.useState)([]),Ve=(0,t.Z)(Me,2),Be=Ve[0],We=Ve[1],Le=(0,c.useState)(null),He=(0,t.Z)(Le,2),Oe=He[0],Ue=He[1],Ye=(0,c.useState)(null),Qe=(0,t.Z)(Ye,2),Xe=Qe[0],Je=Qe[1],$e=(0,c.useState)(null),en=(0,t.Z)($e,2),nn=en[0],ln=en[1],tn=(0,c.useState)(null),on=(0,t.Z)(tn,2),rn=on[0],an=on[1],sn=(0,c.useState)(null),dn=(0,t.Z)(sn,2),cn=dn[0],un=dn[1],vn=(0,c.useState)(!1),mn=(0,t.Z)(vn,2),pn=mn[0],xn=mn[1],gn=(0,c.useState)(!1),Zn=(0,t.Z)(gn,2),hn=Zn[0],fn=Zn[1],yn=(0,c.useState)(null),_n=(0,t.Z)(yn,2),jn=_n[0],kn=_n[1],bn=(0,c.useState)(null),Cn=(0,t.Z)(bn,2),Sn=Cn[0],wn=Cn[1],Kn=(0,c.useState)(null),Pn=(0,t.Z)(Kn,2),Nn=Pn[0],In=Pn[1],An=(0,c.useState)([]),Rn=(0,t.Z)(An,2),Fn=Rn[0],En=Rn[1],zn=(0,c.useState)(!1),Gn=(0,t.Z)(zn,2),qn=Gn[0],Dn=Gn[1],Tn=(0,c.useState)(!1),Mn=(0,t.Z)(Tn,2),Vn=Mn[0],Bn=Mn[1],Wn=(0,c.useState)(!1),Ln=(0,t.Z)(Wn,2),Hn=Ln[0],On=Ln[1],Un=(0,c.useState)(null),Yn=(0,t.Z)(Un,2),Qn=Yn[0],Xn=Yn[1],Jn=(0,c.useState)(null),$n=(0,t.Z)(Jn,2),ei=$n[0],ni=$n[1],ii=(0,c.useState)(null),li=(0,t.Z)(ii,2),ti=li[0],oi=li[1],ri=(0,c.useState)(null),ai=(0,t.Z)(ri,2),si=ai[0],di=ai[1],ci=(0,c.useState)(null),ui=(0,t.Z)(ci,2),vi=ui[0],mi=ui[1],pi=(0,c.useState)({}),xi=(0,t.Z)(pi,2),gi=xi[0],Zi=xi[1],hi=function(e){Zi((0,j.he)(gi,e))},fi=(0,c.useState)(!1),yi=(0,t.Z)(fi,2),_i=yi[0],ji=yi[1];(0,c.useEffect)((function(){var e=[];if(fe){var n,i,t,o,r,a,s,d,c,u,v,m,p,x,g,Z,h,f,y,_,j,b,C,S,w,K,P,N;if(e=[{fieldKey:"replicas",required:!0,value:we,customValidation:parseInt(we)<1,customValidationMessage:"Replicas needs to be 1 or greater"},{fieldKey:"kes_securityContext_runAsUser",required:!0,value:De.runAsUser,customValidation:""===De.runAsUser||parseInt(De.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"kes_securityContext_runAsGroup",required:!0,value:De.runAsGroup,customValidation:""===De.runAsGroup||parseInt(De.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"kes_securityContext_fsGroup",required:!0,value:De.fsGroup,customValidation:""===De.fsGroup||parseInt(De.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"}],pn&&(e=[].concat((0,l.Z)(e),[{fieldKey:"serverKey",required:!1,value:(null===si||void 0===si?void 0:si.encoded_key)||""},{fieldKey:"serverCert",required:!1,value:(null===si||void 0===si?void 0:si.encoded_cert)||""},{fieldKey:"clientKey",required:!1,value:(null===Nn||void 0===Nn?void 0:Nn.encoded_key)||""},{fieldKey:"clientCert",required:!1,value:(null===Nn||void 0===Nn?void 0:Nn.encoded_cert)||""}])),"vault"===ke)e=[].concat((0,l.Z)(e),[{fieldKey:"vault_endpoint",required:!0,value:null===Oe||void 0===Oe?void 0:Oe.endpoint},{fieldKey:"vault_id",required:!0,value:null===Oe||void 0===Oe||null===(n=Oe.approle)||void 0===n?void 0:n.id},{fieldKey:"vault_secret",required:!0,value:null===Oe||void 0===Oe||null===(i=Oe.approle)||void 0===i?void 0:i.secret},{fieldKey:"vault_ping",required:!1,value:null===Oe||void 0===Oe||null===(t=Oe.status)||void 0===t?void 0:t.ping,customValidation:parseInt(null===Oe||void 0===Oe||null===(o=Oe.status)||void 0===o?void 0:o.ping)<0,customValidationMessage:"Value needs to be 0 or greater"},{fieldKey:"vault_retry",required:!1,value:null===Oe||void 0===Oe||null===(r=Oe.approle)||void 0===r?void 0:r.retry,customValidation:parseInt(null===Oe||void 0===Oe||null===(a=Oe.approle)||void 0===a?void 0:a.retry)<0,customValidationMessage:"Value needs to be 0 or greater"}]);if("aws"===ke)e=[].concat((0,l.Z)(e),[{fieldKey:"aws_endpoint",required:!0,value:null===Xe||void 0===Xe||null===(s=Xe.secretsmanager)||void 0===s?void 0:s.endpoint},{fieldKey:"aws_region",required:!0,value:null===Xe||void 0===Xe||null===(d=Xe.secretsmanager)||void 0===d?void 0:d.region},{fieldKey:"aws_accessKey",required:!0,value:null===Xe||void 0===Xe||null===(c=Xe.secretsmanager)||void 0===c||null===(u=c.credentials)||void 0===u?void 0:u.accesskey},{fieldKey:"aws_secretKey",required:!0,value:null===Xe||void 0===Xe||null===(v=Xe.secretsmanager)||void 0===v||null===(m=v.credentials)||void 0===m?void 0:m.secretkey}]);if("gemalto"===ke)e=[].concat((0,l.Z)(e),[{fieldKey:"gemalto_endpoint",required:!0,value:null===nn||void 0===nn||null===(p=nn.keysecure)||void 0===p?void 0:p.endpoint},{fieldKey:"gemalto_token",required:!0,value:null===nn||void 0===nn||null===(x=nn.keysecure)||void 0===x||null===(g=x.credentials)||void 0===g?void 0:g.token},{fieldKey:"gemalto_domain",required:!0,value:null===nn||void 0===nn||null===(Z=nn.keysecure)||void 0===Z||null===(h=Z.credentials)||void 0===h?void 0:h.domain},{fieldKey:"gemalto_retry",required:!1,value:null===nn||void 0===nn||null===(f=nn.keysecure)||void 0===f||null===(y=f.credentials)||void 0===y?void 0:y.retry,customValidation:parseInt(null===nn||void 0===nn||null===(_=nn.keysecure)||void 0===_||null===(j=_.credentials)||void 0===j?void 0:j.retry)<0,customValidationMessage:"Value needs to be 0 or greater"}]);if("azure"===ke)e=[].concat((0,l.Z)(e),[{fieldKey:"azure_endpoint",required:!0,value:null===rn||void 0===rn||null===(b=rn.keyvault)||void 0===b?void 0:b.endpoint},{fieldKey:"azure_tenant_id",required:!0,value:null===rn||void 0===rn||null===(C=rn.keyvault)||void 0===C||null===(S=C.credentials)||void 0===S?void 0:S.tenant_id},{fieldKey:"azure_client_id",required:!0,value:null===rn||void 0===rn||null===(w=rn.keyvault)||void 0===w||null===(K=w.credentials)||void 0===K?void 0:K.client_id},{fieldKey:"azure_client_secret",required:!0,value:null===rn||void 0===rn||null===(P=rn.keyvault)||void 0===P||null===(N=P.credentials)||void 0===N?void 0:N.client_secret}])}var I=(0,k.R)(e);Bn(0===Object.keys(I).length),Zi(I)}),[pn,fe,ke,null===si||void 0===si?void 0:si.encoded_key,null===si||void 0===si?void 0:si.encoded_cert,null===Nn||void 0===Nn?void 0:Nn.encoded_key,null===Nn||void 0===Nn?void 0:Nn.encoded_cert,null===ti||void 0===ti?void 0:ti.encoded_key,null===ti||void 0===ti?void 0:ti.encoded_cert,null===vi||void 0===vi?void 0:vi.encoded_key,null===vi||void 0===vi?void 0:vi.encoded_cert,De,Oe,Xe,nn,rn,cn,we]);var ki=function(){!Ee&&null!==se&&void 0!==se&&se.namespace&&null!==se&&void 0!==se&&se.name&&(ze(!0),m.Z.invoke("GET","/api/v1/namespaces/".concat(null===se||void 0===se?void 0:se.namespace,"/tenants/").concat(null===se||void 0===se?void 0:se.name,"/encryption")).then((function(e){ge(e.raw),e.policies&&We(e.policies),e.vault?(be("vault"),Ue(e.vault)):e.aws?(be("aws"),Je(e.aws)):e.gemalto?(be("gemalto"),ln(e.gemalto)):e.gcp?(be("gcp"),un(e.gcp)):e.azure&&(be("azure"),an(e.azure)),ye(!0),Ae(e.image),Ke(e.replicas),e.securityContext&&Te(e.securityContext),(e.server_tls||e.minio_mtls||e.kms_mtls)&&xn(!0),e.server_tls&&kn(e.server_tls),e.minio_mtls&&wn(e.minio_mtls),e.kms_mtls&&(Xn(e.kms_mtls.crt),ni(e.kms_mtls.ca)),ze(!1)})).catch((function(e){console.error(e),ze(!1)})))};(0,c.useEffect)((function(){ki()}),[se]);var bi=function(e){En([].concat((0,l.Z)(Fn),[e.name])),e.name===(null===jn||void 0===jn?void 0:jn.name)&&kn(null),e.name===(null===Sn||void 0===Sn?void 0:Sn.name)&&wn(null),e.name===(null===Qn||void 0===Qn?void 0:Qn.name)&&Xn(null),e.name===(null===ei||void 0===ei?void 0:ei.name)&&ni(null)};return(0,I.jsxs)(c.Fragment,{children:[_i&&(0,I.jsx)(b.Z,{isOpen:_i,title:fe?"Enable encryption at rest for tenant?":"Disable encryption at rest for tenant?",confirmText:fe?"Enable":"Disable",cancelText:"Cancel",onClose:function(){return ji(!1)},onConfirm:function(){var e,n,i,l,t,r,a,s,d,c,u,v,p,x,g,Z,h,f,y,_,j,k,b,C,w,K,P,N,I,A,R,F,E,z,G,q,D,T;if(fe){var M={};switch(ke){case"gemalto":M={gemalto:{keysecure:{endpoint:(null===nn||void 0===nn||null===(e=nn.keysecure)||void 0===e?void 0:e.endpoint)||"",credentials:{token:(null===nn||void 0===nn||null===(n=nn.keysecure)||void 0===n||null===(i=n.credentials)||void 0===i?void 0:i.token)||"",domain:(null===nn||void 0===nn||null===(l=nn.keysecure)||void 0===l||null===(t=l.credentials)||void 0===t?void 0:t.domain)||"",retry:parseInt(null===nn||void 0===nn||null===(r=nn.keysecure)||void 0===r||null===(a=r.credentials)||void 0===a?void 0:a.retry)}}}};break;case"aws":M={aws:{secretsmanager:{endpoint:(null===Xe||void 0===Xe||null===(s=Xe.secretsmanager)||void 0===s?void 0:s.endpoint)||"",region:(null===Xe||void 0===Xe||null===(d=Xe.secretsmanager)||void 0===d?void 0:d.region)||"",kmskey:(null===Xe||void 0===Xe||null===(c=Xe.secretsmanager)||void 0===c?void 0:c.kmskey)||"",credentials:{accesskey:(null===Xe||void 0===Xe||null===(u=Xe.secretsmanager)||void 0===u||null===(v=u.credentials)||void 0===v?void 0:v.accesskey)||"",secretkey:(null===Xe||void 0===Xe||null===(p=Xe.secretsmanager)||void 0===p||null===(x=p.credentials)||void 0===x?void 0:x.secretkey)||"",token:(null===Xe||void 0===Xe||null===(g=Xe.secretsmanager)||void 0===g||null===(Z=g.credentials)||void 0===Z?void 0:Z.token)||""}}}};break;case"azure":M={azure:{keyvault:{endpoint:(null===rn||void 0===rn||null===(h=rn.keyvault)||void 0===h?void 0:h.endpoint)||"",credentials:{tenant_id:(null===rn||void 0===rn||null===(f=rn.keyvault)||void 0===f||null===(y=f.credentials)||void 0===y?void 0:y.tenant_id)||"",client_id:(null===rn||void 0===rn||null===(_=rn.keyvault)||void 0===_||null===(j=_.credentials)||void 0===j?void 0:j.client_id)||"",client_secret:(null===rn||void 0===rn||null===(k=rn.keyvault)||void 0===k||null===(b=k.credentials)||void 0===b?void 0:b.client_secret)||""}}}};break;case"gcp":M={gcp:{secretmanager:{project_id:(null===cn||void 0===cn||null===(C=cn.secretmanager)||void 0===C?void 0:C.project_id)||"",endpoint:(null===cn||void 0===cn||null===(w=cn.secretmanager)||void 0===w?void 0:w.endpoint)||"",credentials:{client_email:(null===cn||void 0===cn||null===(K=cn.secretmanager)||void 0===K||null===(P=K.credentials)||void 0===P?void 0:P.client_email)||"",client_id:(null===cn||void 0===cn||null===(N=cn.secretmanager)||void 0===N||null===(I=N.credentials)||void 0===I?void 0:I.client_id)||"",private_key_id:(null===cn||void 0===cn||null===(A=cn.secretmanager)||void 0===A||null===(R=A.credentials)||void 0===R?void 0:R.private_key_id)||"",private_key:(null===cn||void 0===cn||null===(F=cn.secretmanager)||void 0===F||null===(E=F.credentials)||void 0===E?void 0:E.private_key)||""}}}};break;case"vault":M={vault:{endpoint:(null===Oe||void 0===Oe?void 0:Oe.endpoint)||"",engine:(null===Oe||void 0===Oe?void 0:Oe.engine)||"",namespace:(null===Oe||void 0===Oe?void 0:Oe.namespace)||"",prefix:(null===Oe||void 0===Oe?void 0:Oe.prefix)||"",approle:{engine:(null===Oe||void 0===Oe||null===(z=Oe.approle)||void 0===z?void 0:z.engine)||"",id:(null===Oe||void 0===Oe||null===(G=Oe.approle)||void 0===G?void 0:G.id)||"",secret:(null===Oe||void 0===Oe||null===(q=Oe.approle)||void 0===q?void 0:q.secret)||"",retry:parseInt(null===Oe||void 0===Oe||null===(D=Oe.approle)||void 0===D?void 0:D.retry)},status:{ping:parseInt(null===Oe||void 0===Oe||null===(T=Oe.status)||void 0===T?void 0:T.ping)}}}}var V={},B={},W={};null!==Nn&&void 0!==Nn&&Nn.encoded_key&&null!==Nn&&void 0!==Nn&&Nn.encoded_cert&&(B={minio_mtls:{key:null===Nn||void 0===Nn?void 0:Nn.encoded_key,crt:null===Nn||void 0===Nn?void 0:Nn.encoded_cert}}),null!==si&&void 0!==si&&si.encoded_key&&null!==si&&void 0!==si&&si.encoded_cert&&(V={server_tls:{key:null===si||void 0===si?void 0:si.encoded_key,crt:null===si||void 0===si?void 0:si.encoded_cert}});var L=null,H=null;null!==ti&&void 0!==ti&&ti.encoded_key&&null!==ti&&void 0!==ti&&ti.encoded_cert&&(L={key:null===ti||void 0===ti?void 0:ti.encoded_key,crt:null===ti||void 0===ti?void 0:ti.encoded_cert}),null!==vi&&void 0!==vi&&vi.encoded_cert&&(H={ca:null===vi||void 0===vi?void 0:vi.encoded_cert}),(L||H)&&(W={kms_mtls:(0,o.Z)((0,o.Z)({},L),H)});var O=(0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)({raw:ue?xe:"",secretsToBeDeleted:Fn||[],replicas:we,securityContext:De,image:Ie},B),V),W),M);hn||(fn(!0),m.Z.invoke("PUT","/api/v1/namespaces/".concat(null===se||void 0===se?void 0:se.namespace,"/tenants/").concat(null===se||void 0===se?void 0:se.name,"/encryption"),O).then((function(){ji(!1),fn(!1),ki()})).catch((function(e){fn(!1),ae((0,S.Ih)(e))})))}else hn||(fn(!0),m.Z.invoke("DELETE","/api/v1/namespaces/".concat(null===se||void 0===se?void 0:se.namespace,"/tenants/").concat(null===se||void 0===se?void 0:se.name,"/encryption"),{}).then((function(){ji(!1),fn(!1),ki()})).catch((function(e){fn(!1),ae((0,S.Ih)(e))})))},confirmationContent:(0,I.jsxs)(f.Z,{children:[fe?"Data will be encrypted using and external KMS":"Current encrypted information will not be accessible",fe&&(0,I.jsxs)("div",{className:re.warningBlock,children:[(0,I.jsx)(r.e6P,{}),(0,I.jsx)("span",{children:"The content of the KES config secret will be overwritten."})]})]})}),(0,I.jsxs)(x.ZP,{container:!0,spacing:1,children:[(0,I.jsx)(x.ZP,{item:!0,xs:!0,children:(0,I.jsx)(r.NZf,{children:"Encryption"})}),(0,I.jsx)(x.ZP,{item:!0,xs:4,justifyContent:"end",textAlign:"right",children:(0,I.jsx)(p.Z,{label:"",indicatorLabels:["Enabled","Disabled"],checked:fe,value:"tenant_encryption",id:"tenant-encryption",name:"tenant-encryption",onChange:function(){ye(!fe)},description:""})}),(0,I.jsx)(x.ZP,{xs:12,children:(0,I.jsx)(N.Z,{})}),fe&&(0,I.jsxs)(c.Fragment,{children:[(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsxs)(w.Z,{value:ue,onChange:function(e,n){ve(n)},indicatorColor:"primary",textColor:"primary","aria-label":"cluster-tabs",variant:"scrollable",scrollButtons:"auto",children:[(0,I.jsx)(K.Z,{id:"kms-options",label:"Options"}),(0,I.jsx)(K.Z,{id:"kms-raw-configuration",label:"Raw Edit"})]})}),ue?(0,I.jsx)(c.Fragment,{children:(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(P.Z,{value:xe,mode:"yaml",onBeforeChange:function(e,n,i){ge(i)},editorHeight:"550px"})})}):(0,I.jsxs)(c.Fragment,{children:[(0,I.jsx)(R,{policies:Be}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.encryptionTypeOptions,children:(0,I.jsx)(h.Z,{currentSelection:ke,id:"encryptionType",name:"encryptionType",label:"KMS",onChange:function(e){be(e.target.value)},selectorOptions:[{label:"Vault",value:"vault"},{label:"AWS",value:"aws"},{label:"Gemalto",value:"gemalto"},{label:"GCP",value:"gcp"},{label:"Azure",value:"azure"}]})}),"vault"===ke&&(0,I.jsxs)(c.Fragment,{children:[(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(Z.Z,{id:"vault_endpoint",name:"vault_endpoint",onChange:function(e){return Ue((0,o.Z)((0,o.Z)({},Oe),{},{endpoint:e.target.value}))},label:"Endpoint",tooltip:"Endpoint is the Hashicorp Vault endpoint",value:(null===Oe||void 0===Oe?void 0:Oe.endpoint)||"",error:gi.vault_ping||"",required:!0})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(Z.Z,{id:"vault_engine",name:"vault_engine",onChange:function(e){return Ue((0,o.Z)((0,o.Z)({},Oe),{},{engine:e.target.value}))},label:"Engine",tooltip:"Engine is the Hashicorp Vault K/V engine path. If empty, defaults to 'kv'",value:(null===Oe||void 0===Oe?void 0:Oe.engine)||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(Z.Z,{id:"vault_namespace",name:"vault_namespace",onChange:function(e){return Ue((0,o.Z)((0,o.Z)({},Oe),{},{namespace:e.target.value}))},label:"Namespace",tooltip:"Namespace is an optional Hashicorp Vault namespace. An empty namespace means no particular namespace is used.",value:(null===Oe||void 0===Oe?void 0:Oe.namespace)||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(Z.Z,{id:"vault_prefix",name:"vault_prefix",onChange:function(e){return Ue((0,o.Z)((0,o.Z)({},Oe),{},{prefix:e.target.value}))},label:"Prefix",tooltip:"Prefix is an optional prefix / directory within the K/V engine. If empty, keys will be stored at the K/V engine top level",value:(null===Oe||void 0===Oe?void 0:Oe.prefix)||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(r.NZf,{children:"App Role"})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsxs)("fieldset",{className:re.fieldGroup,children:[(0,I.jsx)("legend",{className:re.descriptionText,children:"App Role"}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{id:"vault_approle_engine",name:"vault_approle_engine",onChange:function(e){return Ue((0,o.Z)((0,o.Z)({},Oe),{},{approle:(0,o.Z)((0,o.Z)({},null===Oe||void 0===Oe?void 0:Oe.approle),{},{engine:e.target.value})}))},label:"Engine",tooltip:"AppRoleEngine is the AppRole authentication engine path. If empty, defaults to 'approle'",value:(null===Oe||void 0===Oe||null===(n=Oe.approle)||void 0===n?void 0:n.engine)||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{type:qn?"text":"password",id:"vault_id",name:"vault_id",onChange:function(e){return Ue((0,o.Z)((0,o.Z)({},Oe),{},{approle:(0,o.Z)((0,o.Z)({},null===Oe||void 0===Oe?void 0:Oe.approle),{},{id:e.target.value})}))},label:"AppRole ID",tooltip:"AppRoleSecret is the AppRole access secret for authenticating to Hashicorp Vault via the AppRole method",value:(null===Oe||void 0===Oe||null===(i=Oe.approle)||void 0===i?void 0:i.id)||"",required:!0,error:gi.vault_id||"",overlayIcon:qn?(0,I.jsx)(y.Z,{}):(0,I.jsx)(_.Z,{}),overlayAction:function(){return Dn(!qn)}})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{type:Hn?"text":"password",id:"vault_secret",name:"vault_secret",onChange:function(e){return Ue((0,o.Z)((0,o.Z)({},Oe),{},{approle:(0,o.Z)((0,o.Z)({},null===Oe||void 0===Oe?void 0:Oe.approle),{},{secret:e.target.value})}))},label:"AppRole Secret",tooltip:"AppRoleSecret is the AppRole access secret for authenticating to Hashicorp Vault via the AppRole method",value:(null===Oe||void 0===Oe||null===(a=Oe.approle)||void 0===a?void 0:a.secret)||"",required:!0,error:gi.vault_secret||"",overlayIcon:Hn?(0,I.jsx)(y.Z,{}):(0,I.jsx)(_.Z,{}),overlayAction:function(){return On(!Hn)}})}),(0,I.jsx)(x.ZP,{xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{type:"number",min:"0",id:"vault_retry",name:"vault_retry",onChange:function(e){return Ue((0,o.Z)((0,o.Z)({},Oe),{},{approle:(0,o.Z)((0,o.Z)({},null===Oe||void 0===Oe?void 0:Oe.approle),{},{retry:e.target.value})}))},label:"Retry (Seconds)",error:gi.vault_retry||"",value:(null===Oe||void 0===Oe||null===(s=Oe.approle)||void 0===s?void 0:s.retry)||""})})]})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,style:{marginTop:15},children:(0,I.jsxs)("fieldset",{className:re.fieldGroup,children:[(0,I.jsx)("legend",{className:re.descriptionText,children:"Status"}),(0,I.jsx)(Z.Z,{type:"number",min:"0",id:"vault_ping",name:"vault_ping",onChange:function(e){return Ue((0,o.Z)((0,o.Z)({},Oe),{},{status:(0,o.Z)((0,o.Z)({},null===Oe||void 0===Oe?void 0:Oe.status),{},{ping:e.target.value})}))},label:"Ping (Seconds)",tooltip:"controls how often to Vault health status is checked. If not set, defaults to 10s",error:gi.vault_ping||"",value:(null===Oe||void 0===Oe||null===(d=Oe.status)||void 0===d?void 0:d.ping)||""})]})})]}),"azure"===ke&&(0,I.jsxs)(c.Fragment,{children:[(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(Z.Z,{id:"azure_endpoint",name:"azure_endpoint",onChange:function(e){return an((0,o.Z)((0,o.Z)({},rn),{},{keyvault:(0,o.Z)((0,o.Z)({},null===rn||void 0===rn?void 0:rn.keyvault),{},{endpoint:e.target.value})}))},label:"Endpoint",tooltip:"Endpoint is the Azure KeyVault endpoint",error:gi.azure_endpoint||"",value:(null===rn||void 0===rn||null===(A=rn.keyvault)||void 0===A?void 0:A.endpoint)||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsxs)("fieldset",{className:re.fieldGroup,children:[(0,I.jsx)("legend",{className:re.descriptionText,children:"Credentials"}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{id:"azure_tenant_id",name:"azure_tenant_id",onChange:function(e){var n;return an((0,o.Z)((0,o.Z)({},rn),{},{keyvault:(0,o.Z)((0,o.Z)({},null===rn||void 0===rn?void 0:rn.keyvault),{},{credentials:(0,o.Z)((0,o.Z)({},null===rn||void 0===rn||null===(n=rn.keyvault)||void 0===n?void 0:n.credentials),{},{tenant_id:e.target.value})})}))},label:"Tenant ID",tooltip:"TenantID is the ID of the Azure KeyVault tenant",value:(null===rn||void 0===rn||null===(F=rn.keyvault)||void 0===F||null===(E=F.credentials)||void 0===E?void 0:E.tenant_id)||"",error:gi.azure_tenant_id||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{id:"azure_client_id",name:"azure_client_id",onChange:function(e){var n;return an((0,o.Z)((0,o.Z)({},rn),{},{keyvault:(0,o.Z)((0,o.Z)({},null===rn||void 0===rn?void 0:rn.keyvault),{},{credentials:(0,o.Z)((0,o.Z)({},null===rn||void 0===rn||null===(n=rn.keyvault)||void 0===n?void 0:n.credentials),{},{client_id:e.target.value})})}))},label:"Client ID",tooltip:"ClientID is the ID of the client accessing Azure KeyVault",value:(null===rn||void 0===rn||null===(z=rn.keyvault)||void 0===z||null===(G=z.credentials)||void 0===G?void 0:G.client_id)||"",error:gi.azure_client_id||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{id:"azure_client_secret",name:"azure_client_secret",onChange:function(e){var n;return an((0,o.Z)((0,o.Z)({},rn),{},{keyvault:(0,o.Z)((0,o.Z)({},null===rn||void 0===rn?void 0:rn.keyvault),{},{credentials:(0,o.Z)((0,o.Z)({},null===rn||void 0===rn||null===(n=rn.keyvault)||void 0===n?void 0:n.credentials),{},{client_secret:e.target.value})})}))},label:"Client Secret",tooltip:"ClientSecret is the client secret accessing the Azure KeyVault",value:(null===rn||void 0===rn||null===(q=rn.keyvault)||void 0===q||null===(D=q.credentials)||void 0===D?void 0:D.client_secret)||"",error:gi.azure_client_secret||""})})]})})]}),"gcp"===ke&&(0,I.jsxs)(c.Fragment,{children:[(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(Z.Z,{id:"gcp_project_id",name:"gcp_project_id",onChange:function(e){return un((0,o.Z)((0,o.Z)({},cn),{},{secretmanager:(0,o.Z)((0,o.Z)({},null===cn||void 0===cn?void 0:cn.secretmanager),{},{project_id:e.target.value})}))},label:"Project ID",tooltip:"ProjectID is the GCP project ID",value:(null===cn||void 0===cn?void 0:cn.secretmanager.project_id)||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(Z.Z,{id:"gcp_endpoint",name:"gcp_endpoint",onChange:function(e){return un((0,o.Z)((0,o.Z)({},cn),{},{secretmanager:(0,o.Z)((0,o.Z)({},null===cn||void 0===cn?void 0:cn.secretmanager),{},{endpoint:e.target.value})}))},label:"Endpoint",tooltip:"Endpoint is the GCP project ID. If empty defaults to: secretmanager.googleapis.com:443",value:(null===cn||void 0===cn?void 0:cn.secretmanager.endpoint)||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsxs)("fieldset",{className:re.fieldGroup,children:[(0,I.jsx)("legend",{className:re.descriptionText,children:"Credentials"}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{id:"gcp_client_email",name:"gcp_client_email",onChange:function(e){return un((0,o.Z)((0,o.Z)({},cn),{},{secretmanager:(0,o.Z)((0,o.Z)({},null===cn||void 0===cn?void 0:cn.secretmanager),{},{credentials:(0,o.Z)((0,o.Z)({},null===cn||void 0===cn?void 0:cn.secretmanager.credentials),{},{client_email:e.target.value})})}))},label:"Client Email",tooltip:"Is the Client email of the GCP service account used to access the SecretManager",value:(null===cn||void 0===cn||null===(T=cn.secretmanager.credentials)||void 0===T?void 0:T.client_email)||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{id:"gcp_client_id",name:"gcp_client_id",onChange:function(e){return un((0,o.Z)((0,o.Z)({},cn),{},{secretmanager:(0,o.Z)((0,o.Z)({},null===cn||void 0===cn?void 0:cn.secretmanager),{},{credentials:(0,o.Z)((0,o.Z)({},null===cn||void 0===cn?void 0:cn.secretmanager.credentials),{},{client_id:e.target.value})})}))},label:"Client ID",tooltip:"Is the Client ID of the GCP service account used to access the SecretManager",value:(null===cn||void 0===cn||null===(M=cn.secretmanager.credentials)||void 0===M?void 0:M.client_id)||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{id:"gcp_private_key_id",name:"gcp_private_key_id",onChange:function(e){return un((0,o.Z)((0,o.Z)({},cn),{},{secretmanager:(0,o.Z)((0,o.Z)({},null===cn||void 0===cn?void 0:cn.secretmanager),{},{credentials:(0,o.Z)((0,o.Z)({},null===cn||void 0===cn?void 0:cn.secretmanager.credentials),{},{private_key_id:e.target.value})})}))},label:"Private Key ID",tooltip:"Is the private key ID of the GCP service account used to access the SecretManager",value:(null===cn||void 0===cn||null===(V=cn.secretmanager.credentials)||void 0===V?void 0:V.private_key_id)||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{id:"gcp_private_key",name:"gcp_private_key",onChange:function(e){return un((0,o.Z)((0,o.Z)({},cn),{},{secretmanager:(0,o.Z)((0,o.Z)({},null===cn||void 0===cn?void 0:cn.secretmanager),{},{credentials:(0,o.Z)((0,o.Z)({},null===cn||void 0===cn?void 0:cn.secretmanager.credentials),{},{private_key:e.target.value})})}))},label:"Private Key",tooltip:"Is the private key of the GCP service account used to access the SecretManager",value:(null===cn||void 0===cn||null===(B=cn.secretmanager.credentials)||void 0===B?void 0:B.private_key)||""})})]})})]}),"aws"===ke&&(0,I.jsxs)(c.Fragment,{children:[(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(Z.Z,{id:"aws_endpoint",name:"aws_endpoint",onChange:function(e){return Je((0,o.Z)((0,o.Z)({},Xe),{},{secretsmanager:(0,o.Z)((0,o.Z)({},null===Xe||void 0===Xe?void 0:Xe.secretsmanager),{},{endpoint:e.target.value})}))},label:"Endpoint",tooltip:"Endpoint is the AWS SecretsManager endpoint. AWS SecretsManager endpoints have the following schema: secrestmanager[-fips]..amanzonaws.com",value:(null===Xe||void 0===Xe||null===(W=Xe.secretsmanager)||void 0===W?void 0:W.endpoint)||"",required:!0,error:gi.aws_endpoint||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(Z.Z,{id:"aws_region",name:"aws_region",onChange:function(e){return Je((0,o.Z)((0,o.Z)({},Xe),{},{secretsmanager:(0,o.Z)((0,o.Z)({},null===Xe||void 0===Xe?void 0:Xe.secretsmanager),{},{region:e.target.value})}))},label:"Region",tooltip:"Region is the AWS region the SecretsManager is located",value:(null===Xe||void 0===Xe||null===(L=Xe.secretsmanager)||void 0===L?void 0:L.region)||"",error:gi.aws_region||"",required:!0})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(Z.Z,{id:"aws_kmsKey",name:"aws_kmsKey",onChange:function(e){return Je((0,o.Z)((0,o.Z)({},Xe),{},{secretsmanager:(0,o.Z)((0,o.Z)({},null===Xe||void 0===Xe?void 0:Xe.secretsmanager),{},{kmskey:e.target.value})}))},label:"KMS Key",tooltip:"KMSKey is the AWS-KMS key ID (CMK-ID) used to en/decrypt secrets managed by the SecretsManager. If empty, the default AWS KMS key is used",value:(null===Xe||void 0===Xe||null===(H=Xe.secretsmanager)||void 0===H?void 0:H.kmskey)||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsxs)("fieldset",{className:re.fieldGroup,children:[(0,I.jsx)("legend",{className:re.descriptionText,children:"Credentials"}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{id:"aws_accessKey",name:"aws_accessKey",onChange:function(e){var n;return Je((0,o.Z)((0,o.Z)({},Xe),{},{secretsmanager:(0,o.Z)((0,o.Z)({},null===Xe||void 0===Xe?void 0:Xe.secretsmanager),{},{credentials:(0,o.Z)((0,o.Z)({},null===Xe||void 0===Xe||null===(n=Xe.secretsmanager)||void 0===n?void 0:n.credentials),{},{accesskey:e.target.value})})}))},label:"Access Key",tooltip:"AccessKey is the access key for authenticating to AWS",value:(null===Xe||void 0===Xe||null===(O=Xe.secretsmanager)||void 0===O||null===(U=O.credentials)||void 0===U?void 0:U.accesskey)||"",error:gi.aws_accessKey||"",required:!0})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{id:"aws_secretKey",name:"aws_secretKey",onChange:function(e){var n;return Je((0,o.Z)((0,o.Z)({},Xe),{},{secretsmanager:(0,o.Z)((0,o.Z)({},null===Xe||void 0===Xe?void 0:Xe.secretsmanager),{},{credentials:(0,o.Z)((0,o.Z)({},null===Xe||void 0===Xe||null===(n=Xe.secretsmanager)||void 0===n?void 0:n.credentials),{},{secretkey:e.target.value})})}))},label:"Secret Key",tooltip:"SecretKey is the secret key for authenticating to AWS",value:(null===Xe||void 0===Xe||null===(Y=Xe.secretsmanager)||void 0===Y||null===(Q=Y.credentials)||void 0===Q?void 0:Q.secretkey)||"",error:gi.aws_secretKey||"",required:!0})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{id:"aws_token",name:"aws_token",onChange:function(e){var n;return Je((0,o.Z)((0,o.Z)({},Xe),{},{secretsmanager:(0,o.Z)((0,o.Z)({},null===Xe||void 0===Xe?void 0:Xe.secretsmanager),{},{credentials:(0,o.Z)((0,o.Z)({},null===Xe||void 0===Xe||null===(n=Xe.secretsmanager)||void 0===n?void 0:n.credentials),{},{token:e.target.value})})}))},label:"Token",tooltip:"SessionToken is an optional session token for authenticating to AWS when using STS",value:(null===Xe||void 0===Xe||null===(X=Xe.secretsmanager)||void 0===X||null===(J=X.credentials)||void 0===J?void 0:J.token)||""})})]})})]}),"gemalto"===ke&&(0,I.jsxs)(c.Fragment,{children:[(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(Z.Z,{id:"gemalto_endpoint",name:"gemalto_endpoint",onChange:function(e){return ln((0,o.Z)((0,o.Z)({},nn),{},{keysecure:(0,o.Z)((0,o.Z)({},null===nn||void 0===nn?void 0:nn.keysecure),{},{endpoint:e.target.value})}))},label:"Endpoint",tooltip:"Endpoint is the endpoint to the KeySecure server",value:(null===nn||void 0===nn||null===($=nn.keysecure)||void 0===$?void 0:$.endpoint)||"",error:gi.gemalto_endpoint||"",required:!0})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,style:{marginBottom:15},children:(0,I.jsxs)("fieldset",{className:re.fieldGroup,children:[(0,I.jsx)("legend",{className:re.descriptionText,children:"Credentials"}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{id:"gemalto_token",name:"gemalto_token",onChange:function(e){var n;return ln((0,o.Z)((0,o.Z)({},nn),{},{keysecure:(0,o.Z)((0,o.Z)({},null===nn||void 0===nn?void 0:nn.keysecure),{},{credentials:(0,o.Z)((0,o.Z)({},null===nn||void 0===nn||null===(n=nn.keysecure)||void 0===n?void 0:n.credentials),{},{token:e.target.value})})}))},label:"Token",tooltip:"Token is the refresh authentication token to access the KeySecure server",value:(null===nn||void 0===nn||null===(ee=nn.keysecure)||void 0===ee||null===(ne=ee.credentials)||void 0===ne?void 0:ne.token)||"",error:gi.gemalto_token||"",required:!0})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{id:"gemalto_domain",name:"gemalto_domain",onChange:function(e){var n;return ln((0,o.Z)((0,o.Z)({},nn),{},{keysecure:(0,o.Z)((0,o.Z)({},null===nn||void 0===nn?void 0:nn.keysecure),{},{credentials:(0,o.Z)((0,o.Z)({},null===nn||void 0===nn||null===(n=nn.keysecure)||void 0===n?void 0:n.credentials),{},{domain:e.target.value})})}))},label:"Domain",tooltip:"Domain is the isolated namespace within the KeySecure server. If empty, defaults to the top-level / root domain",value:(null===nn||void 0===nn||null===(ie=nn.keysecure)||void 0===ie||null===(le=ie.credentials)||void 0===le?void 0:le.domain)||"",error:gi.gemalto_domain||"",required:!0})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,className:re.formFieldRow,children:(0,I.jsx)(Z.Z,{type:"number",min:"0",id:"gemalto_retry",name:"gemalto_retry",onChange:function(e){var n;return ln((0,o.Z)((0,o.Z)({},nn),{},{keysecure:(0,o.Z)((0,o.Z)({},null===nn||void 0===nn?void 0:nn.keysecure),{},{credentials:(0,o.Z)((0,o.Z)({},null===nn||void 0===nn||null===(n=nn.keysecure)||void 0===n?void 0:n.credentials),{},{retry:e.target.value})})}))},label:"Retry (seconds)",value:(null===nn||void 0===nn||null===(te=nn.keysecure)||void 0===te||null===(oe=te.credentials)||void 0===oe?void 0:oe.retry)||"",error:gi.gemalto_retry||""})})]})})]})]}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(r.NZf,{children:"Additional Configuration for KES"})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(p.Z,{value:"enableCustomCertsForKES",id:"enableCustomCertsForKES",name:"enableCustomCertsForKES",checked:pn,onChange:function(){return xn(!pn)},label:"Custom Certificates"})}),pn&&(0,I.jsxs)(c.Fragment,{children:[(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsxs)("fieldset",{className:re.fieldGroup,children:[(0,I.jsx)("legend",{className:re.descriptionText,children:"Encryption server certificates"}),jn?(0,I.jsx)(C.Z,{certificateInfo:jn,onDelete:function(){return bi(jn)}}):(0,I.jsxs)(c.Fragment,{children:[(0,I.jsx)(g.Z,{onChange:function(e,n){di({encoded_key:e||"",id:(null===si||void 0===si?void 0:si.id)||"",key:n||"",cert:(null===si||void 0===si?void 0:si.cert)||"",encoded_cert:(null===si||void 0===si?void 0:si.encoded_cert)||""}),hi("serverKey")},accept:".key,.pem",id:"serverKey",name:"serverKey",label:"Key",value:null===si||void 0===si?void 0:si.key}),(0,I.jsx)(g.Z,{onChange:function(e,n){di({encoded_key:(null===si||void 0===si?void 0:si.encoded_key)||"",id:(null===si||void 0===si?void 0:si.id)||"",key:(null===si||void 0===si?void 0:si.key)||"",cert:n||"",encoded_cert:e||""}),hi("serverCert")},accept:".cer,.crt,.cert,.pem",id:"serverCert",name:"serverCert",label:"Cert",value:null===si||void 0===si?void 0:si.cert})]})]})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsxs)("fieldset",{className:re.fieldGroup,children:[(0,I.jsx)("legend",{className:re.descriptionText,children:"MinIO mTLS certificates (connection between MinIO and the Encryption server)"}),Sn?(0,I.jsx)(C.Z,{certificateInfo:Sn,onDelete:function(){return bi(Sn)}}):(0,I.jsxs)(c.Fragment,{children:[(0,I.jsx)(g.Z,{onChange:function(e,n){In({encoded_key:e||"",id:(null===Nn||void 0===Nn?void 0:Nn.id)||"",key:n||"",cert:(null===Nn||void 0===Nn?void 0:Nn.cert)||"",encoded_cert:(null===Nn||void 0===Nn?void 0:Nn.encoded_cert)||""}),hi("clientKey")},accept:".key,.pem",id:"clientKey",name:"clientKey",label:"Key",value:null===Nn||void 0===Nn?void 0:Nn.key}),(0,I.jsx)(g.Z,{onChange:function(e,n){In({encoded_key:(null===Nn||void 0===Nn?void 0:Nn.encoded_key)||"",id:(null===Nn||void 0===Nn?void 0:Nn.id)||"",key:(null===Nn||void 0===Nn?void 0:Nn.key)||"",cert:n||"",encoded_cert:e||""}),hi("clientCert")},accept:".cer,.crt,.cert,.pem",id:"clientCert",name:"clientCert",label:"Cert",value:null===Nn||void 0===Nn?void 0:Nn.cert})]})]})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsxs)("fieldset",{className:re.fieldGroup,children:[(0,I.jsx)("legend",{className:re.descriptionText,children:"KMS mTLS certificates (connection between the Encryption server and the KMS)"}),Qn?(0,I.jsx)(C.Z,{certificateInfo:Qn,onDelete:function(){return bi(Qn)}}):(0,I.jsxs)(c.Fragment,{children:[(0,I.jsx)(g.Z,{onChange:function(e,n){oi({encoded_key:e||"",id:(null===ti||void 0===ti?void 0:ti.id)||"",key:n||"",cert:(null===ti||void 0===ti?void 0:ti.cert)||"",encoded_cert:(null===ti||void 0===ti?void 0:ti.encoded_cert)||""})},accept:".key,.pem",id:"kms_mtls_key",name:"kms_mtls_key",label:"Key",value:null===ti||void 0===ti?void 0:ti.key}),(0,I.jsx)(g.Z,{onChange:function(e,n){return oi({encoded_key:(null===ti||void 0===ti?void 0:ti.encoded_key)||"",id:(null===ti||void 0===ti?void 0:ti.id)||"",key:(null===ti||void 0===ti?void 0:ti.key)||"",cert:n||"",encoded_cert:e||""})},accept:".cer,.crt,.cert,.pem",id:"kms_mtls_cert",name:"kms_mtls_cert",label:"Cert",value:(null===ti||void 0===ti?void 0:ti.cert)||""})]}),ei?(0,I.jsx)(C.Z,{certificateInfo:ei,onDelete:function(){return bi(ei)}}):(0,I.jsx)(g.Z,{onChange:function(e,n){return mi({encoded_key:(null===vi||void 0===vi?void 0:vi.encoded_key)||"",id:(null===vi||void 0===vi?void 0:vi.id)||"",key:(null===vi||void 0===vi?void 0:vi.key)||"",cert:n||"",encoded_cert:e||""})},accept:".cer,.crt,.cert,.pem",id:"kms_mtls_ca",name:"kms_mtls_ca",label:"CA",value:(null===vi||void 0===vi?void 0:vi.cert)||""})]})})]}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(Z.Z,{type:"text",id:"image",name:"image",onChange:function(e){return Ae(e.target.value)},label:"Image",tooltip:"KES container image",placeholder:"minio/kes:2023-08-19T17-27-47Z",value:Ie})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(Z.Z,{type:"number",min:"1",id:"replicas",name:"replicas",onChange:function(e){return Ke(e.target.value)},label:"Replicas",tooltip:"Numer of KES pod replicas",value:we,required:!0,error:gi.replicas||""})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(r.NZf,{children:"SecurityContext for KES"})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsxs)("div",{className:"".concat(re.multiContainer," ").concat(re.responsiveContainer),children:[(0,I.jsx)("div",{className:"".concat(re.formFieldRow," ").concat(re.rightSpacer),children:(0,I.jsx)(Z.Z,{type:"number",id:"kes_securityContext_runAsUser",name:"kes_securityContext_runAsUser",onChange:function(e){Te((0,o.Z)((0,o.Z)({},De),{},{runAsUser:e.target.value}))},label:"Run As User",value:De.runAsUser,required:!0,error:gi.kes_securityContext_runAsUser||"",min:"0"})}),(0,I.jsx)("div",{className:"".concat(re.formFieldRow," ").concat(re.rightSpacer),children:(0,I.jsx)(Z.Z,{type:"number",id:"kes_securityContext_runAsGroup",name:"kes_securityContext_runAsGroup",onChange:function(e){Te((0,o.Z)((0,o.Z)({},De),{},{runAsGroup:e.target.value}))},label:"Run As Group",value:De.runAsGroup,required:!0,error:gi.kes_securityContext_runAsGroup||"",min:"0"})}),(0,I.jsx)("div",{className:"".concat(re.formFieldRow," ").concat(re.rightSpacer),children:(0,I.jsx)(Z.Z,{type:"number",id:"kes_securityContext_fsGroup",name:"kes_securityContext_fsGroup",onChange:function(e){Te((0,o.Z)((0,o.Z)({},De),{},{fsGroup:e.target.value}))},label:"FsGroup",value:De.fsGroup,required:!0,error:gi.kes_securityContext_fsGroup||"",min:"0"})})]})}),(0,I.jsx)(x.ZP,{item:!0,xs:12,children:(0,I.jsx)(p.Z,{value:"kesSecurityContextRunAsNonRoot",id:"kes_securityContext_runAsNonRoot",name:"kes_securityContext_runAsNonRoot",checked:De.runAsNonRoot,onChange:function(e){var n=e.target.checked;Te((0,o.Z)((0,o.Z)({},De),{},{runAsNonRoot:n}))},label:"Do not run as Root"})})]}),(0,I.jsx)(x.ZP,{item:!0,xs:12,sx:{display:"flex",justifyContent:"flex-end"},children:(0,I.jsx)(r.zxk,{id:"save-encryption",type:"submit",variant:"callAction",disabled:!Vn,onClick:function(){return ji(!0)},label:"Save"})})]})]})}))},22512:function(e,n,i){var l=i(72791),t=i(20890),o=i(11135),r=i(25787),a=i(80184);n.Z=(0,r.Z)((function(e){var n;return(0,o.Z)({errorBlock:{color:(null===(n=e.palette)||void 0===n?void 0:n.error.main)||"#C83B51"}})}))((function(e){var n=e.classes,i=e.errorMessage,o=e.withBreak,r=void 0===o||o;return(0,a.jsxs)(l.Fragment,{children:[r&&(0,a.jsx)("br",{}),(0,a.jsx)(t.Z,{component:"p",variant:"body1",className:n.errorBlock,children:i})]})}))}}]); -//# sourceMappingURL=367.fb267f8e.chunk.js.map \ No newline at end of file diff --git a/web-app/build/static/js/692.173a6fa7.chunk.js b/web-app/build/static/js/692.173a6fa7.chunk.js new file mode 100644 index 00000000000..fe126322276 --- /dev/null +++ b/web-app/build/static/js/692.173a6fa7.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[692],{99604:function(e,n,t){t.r(n),t.d(n,{default:function(){return D}});var a=t(1413),i=t(72791),o=t(57689),s=t(11135),r=t(23814),l=t(61889),c=t(45248),u=t(57482),d=t(74794),f=t(28371),m=t(29439),x=t(26181),p=t.n(x),v=t(25787),g=t(21435),h=t(35527),y=t(81207),j=t(90673),b=t(41320),C=t(78687),Z=t(40968),N=t(56578),_=t(45830),P=t(80007),A=t(80184),S=(0,v.Z)((function(e){return(0,s.Z)((0,a.Z)((0,a.Z)({bottomContainer:{display:"flex",flexGrow:1,alignItems:"center",margin:"auto",justifyContent:"center","& div":{width:150,"@media (max-width: 900px)":{flexFlow:"column"}}},factorElements:{display:"flex",justifyContent:"flex-start",marginLeft:30},sizeNumber:{fontSize:35,fontWeight:700,textAlign:"center"},sizeDescription:{fontSize:14,color:"#777",textAlign:"center"}},r.DF),r.AK))}))((function(e){var n=e.classes,t=(0,b.TL)(),a=(0,C.v9)((function(e){return e.tenants.tenantInfo})),o=(0,C.v9)((function(e){return e.addPool.storageClasses})),s=(0,C.v9)((function(e){return e.addPool.setup.numberOfNodes.toString()})),r=(0,C.v9)((function(e){return e.addPool.setup.storageClass})),u=(0,C.v9)((function(e){return e.addPool.setup.volumeSize.toString()})),d=(0,C.v9)((function(e){return e.addPool.setup.volumesPerServer.toString()})),f=(0,i.useState)({}),x=(0,m.Z)(f,2),v=x[0],S=x[1],k=1073741824*parseInt(u)*parseInt(d),I=k*parseInt(s);(0,i.useEffect)((function(){var e=[{fieldKey:"number_of_nodes",required:!0,value:s.toString(),customValidation:parseInt(s)<1||isNaN(parseInt(s)),customValidationMessage:"Number of servers must be at least 1"},{fieldKey:"pool_size",required:!0,value:u.toString(),customValidation:parseInt(u)<1||isNaN(parseInt(u)),customValidationMessage:"Pool Size cannot be 0"},{fieldKey:"volumes_per_server",required:!0,value:d.toString(),customValidation:parseInt(d)<1||isNaN(parseInt(d)),customValidationMessage:"1 volume or more are required"}],n=(0,Z.R)(e);t((0,_.LJ)({page:"setup",status:0===Object.keys(n).length})),S(n)}),[t,s,u,d,r]),(0,i.useEffect)((function(){0===o.length&&a&&y.Z.invoke("GET","/api/v1/namespaces/".concat(a.namespace,"/resourcequotas/").concat(a.namespace,"-storagequota")).then((function(e){var n=p()(e,"elements",[]).map((function(e){var n=p()(e,"name","").split(".storageclass.storage.k8s.io/requests.storage")[0];return{label:n,value:n}}));t((0,_.oo)({page:"setup",field:"storageClass",value:n[0].value})),t((0,_.TU)(n))})).catch((function(e){console.error(e)}))}),[a,o,t]);var w=function(e,n){t((0,_.oo)({page:"setup",field:e,value:n}))};return(0,A.jsxs)(h.Z,{className:n.paperWrapper,children:[(0,A.jsxs)("div",{className:n.headerElement,children:[(0,A.jsx)(P.Z,{children:"New Pool Configuration"}),(0,A.jsx)("span",{className:n.descriptionText,children:"Configure a new Pool to expand MinIO storage"})]}),(0,A.jsx)(l.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(g.Z,{id:"number_of_nodes",name:"number_of_nodes",onChange:function(e){var n=parseInt(e.target.value);e.target.validity.valid&&!isNaN(n)?w("numberOfNodes",n):isNaN(n)&&w("numberOfNodes",0)},label:"Number of Servers",value:s,error:v.number_of_nodes||"",pattern:"[0-9]*"})}),(0,A.jsx)(l.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(g.Z,{id:"pool_size",name:"pool_size",onChange:function(e){var n=parseInt(e.target.value);e.target.validity.valid&&!isNaN(n)?w("volumeSize",n):isNaN(n)&&w("volumeSize",0)},label:"Volume Size",value:u,error:v.pool_size||"",pattern:"[0-9]*",overlayObject:(0,A.jsx)(N.Z,{id:"quota_unit",onUnitChange:function(){},unitSelected:"Gi",unitsList:[{label:"Gi",value:"Gi"}],disabled:!0})})}),(0,A.jsx)(l.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(g.Z,{id:"volumes_per_sever",name:"volumes_per_sever",onChange:function(e){var n=parseInt(e.target.value);e.target.validity.valid&&!isNaN(n)?w("volumesPerServer",n):isNaN(n)&&w("volumesPerServer",0)},label:"Volumes per Server",value:d,error:v.volumes_per_server||"",pattern:"[0-9]*"})}),(0,A.jsx)(l.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(j.Z,{id:"storage_class",name:"storage_class",onChange:function(e){w("storageClass",e.target.value)},label:"Storage Class",value:r,options:o,disabled:o.length<1})}),(0,A.jsx)(l.ZP,{item:!0,xs:12,className:n.bottomContainer,children:(0,A.jsxs)("div",{className:n.factorElements,children:[(0,A.jsxs)("div",{children:[(0,A.jsx)("div",{className:n.sizeNumber,children:(0,c.ae)(k.toString(10))}),(0,A.jsx)("div",{className:n.sizeDescription,children:"Instance Capacity"})]}),(0,A.jsxs)("div",{children:[(0,A.jsx)("div",{className:n.sizeNumber,children:(0,c.ae)(I.toString(10))}),(0,A.jsx)("div",{className:n.sizeDescription,children:"Total Capacity"})]})]})})]})})),k=t(14917),I=t(75952),w=t(84741),F=t(37516),G=(0,v.Z)((function(e){return(0,s.Z)((0,a.Z)((0,a.Z)({configSectionItem:{marginRight:15,"& .multiContainer":{border:"1px solid red"}},tenantCustomizationFields:{marginLeft:30,width:"88%",margin:"auto"},containerItem:{marginRight:15},fieldGroup:(0,a.Z)((0,a.Z)({},r.QV.fieldGroup),{},{paddingTop:15,marginBottom:25}),responsiveSectionItem:{"@media (max-width: 900px)":{flexFlow:"column",alignItems:"flex-start","& div > div":{marginBottom:5,marginRight:0}}}},r.oO),r.AK))}))((function(e){var n=e.classes,t=(0,b.TL)(),o=(0,C.v9)((function(e){return e.addPool.configuration.securityContextEnabled})),s=(0,C.v9)((function(e){return e.addPool.configuration.securityContext})),r=(0,C.v9)((function(e){return e.addPool.configuration.customRuntime})),c=(0,C.v9)((function(e){return e.addPool.configuration.runtimeClassName})),u=(0,i.useState)({}),d=(0,m.Z)(u,2),f=d[0],x=d[1],p=(0,i.useCallback)((function(e,n){t((0,_.oo)({page:"configuration",field:e,value:n}))}),[t]);(0,i.useEffect)((function(){var e=[];o&&(e=[{fieldKey:"pool_securityContext_runAsUser",required:!0,value:s.runAsUser,customValidation:""===s.runAsUser||parseInt(s.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"pool_securityContext_runAsGroup",required:!0,value:s.runAsGroup,customValidation:""===s.runAsGroup||parseInt(s.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"pool_securityContext_fsGroup",required:!0,value:s.fsGroup,customValidation:""===s.fsGroup||parseInt(s.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"}]);var n=(0,Z.R)(e);t((0,_.LJ)({page:"configure",status:0===Object.keys(n).length})),x(n)}),[t,o,s]);var v=function(e){x((0,w.h)(f,e))};return(0,A.jsxs)(h.Z,{className:n.paperWrapper,children:[(0,A.jsxs)("div",{className:n.headerElement,children:[(0,A.jsx)(P.Z,{children:"Configure"}),(0,A.jsx)("span",{className:n.descriptionText,children:"Aditional Configurations for the new Pool"})]}),(0,A.jsx)(l.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,A.jsx)(F.Z,{value:"tenantConfig",id:"pool_configuration",name:"pool_configuration",checked:o,onChange:function(e){var n=e.target.checked;p("securityContextEnabled",n)},label:"Security Context"})}),o&&(0,A.jsx)(l.ZP,{item:!0,xs:12,className:n.tenantCustomizationFields,children:(0,A.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,A.jsx)("legend",{className:n.descriptionText,children:"Pool's Security Context"}),(0,A.jsx)(l.ZP,{item:!0,xs:12,className:"".concat(n.configSectionItem),children:(0,A.jsxs)("div",{className:"".concat(n.multiContainer," ").concat(n.responsiveSectionItem),children:[(0,A.jsx)("div",{className:n.containerItem,children:(0,A.jsx)(g.Z,{type:"number",id:"pool_securityContext_runAsUser",name:"pool_securityContext_runAsUser",onChange:function(e){p("securityContext",(0,a.Z)((0,a.Z)({},s),{},{runAsUser:e.target.value})),v("pool_securityContext_runAsUser")},label:"Run As User",value:s.runAsUser,required:!0,error:f.pool_securityContext_runAsUser||"",min:"0"})}),(0,A.jsx)("div",{className:n.containerItem,children:(0,A.jsx)(g.Z,{type:"number",id:"pool_securityContext_runAsGroup",name:"pool_securityContext_runAsGroup",onChange:function(e){p("securityContext",(0,a.Z)((0,a.Z)({},s),{},{runAsGroup:e.target.value})),v("pool_securityContext_runAsGroup")},label:"Run As Group",value:s.runAsGroup,required:!0,error:f.pool_securityContext_runAsGroup||"",min:"0"})}),(0,A.jsx)("div",{className:n.containerItem,children:(0,A.jsx)(g.Z,{type:"number",id:"pool_securityContext_fsGroup",name:"pool_securityContext_fsGroup",onChange:function(e){p("securityContext",(0,a.Z)((0,a.Z)({},s),{},{fsGroup:e.target.value})),v("pool_securityContext_fsGroup")},label:"FsGroup",value:s.fsGroup,required:!0,error:f.pool_securityContext_fsGroup||"",min:"0"})})]})}),(0,A.jsx)("br",{}),(0,A.jsx)(l.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,A.jsx)("div",{className:n.multiContainer,children:(0,A.jsx)(F.Z,{value:"securityContextRunAsNonRoot",id:"pool_securityContext_runAsNonRoot",name:"pool_securityContext_runAsNonRoot",checked:s.runAsNonRoot,onChange:function(e){var n=e.target.checked;p("securityContext",(0,a.Z)((0,a.Z)({},s),{},{runAsNonRoot:n}))},label:"Do not run as Root"})})})]})}),(0,A.jsx)(l.ZP,{item:!0,xs:12,className:n.configSectionItem,sx:{marginTop:"10px"},children:(0,A.jsx)(F.Z,{value:"customRuntime",id:"tenant_custom_runtime",name:"tenant_custom_runtime",checked:r,onChange:function(e){var n=e.target.checked;p("customRuntime",n)},label:"Custom Runtime Configurations"})}),r&&(0,A.jsx)(l.ZP,{item:!0,xs:12,className:n.tenantCustomizationFields,children:(0,A.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,A.jsx)("legend",{className:n.descriptionText,children:"Custom Runtime Configurations"}),(0,A.jsx)(l.ZP,{item:!0,xs:12,className:"".concat(n.configSectionItem),children:(0,A.jsx)("div",{className:n.containerItem,children:(0,A.jsx)(g.Z,{id:"tenant_runtime_runtimeClassName",name:"tenant_runtime_runtimeClassName",onChange:function(e){p("runtimeClassName",e.target.value),v("tenant_runtime_runtimeClassName")},label:"Runtime Class Name",value:c,error:f.tenant_runtime_runtimeClassName||""})})})]})})]})})),R=t(4942),z=t(93433),T=t(13400),E=t(83679),L=t(45660),V=t(87995),O=(0,v.Z)((function(e){return(0,s.Z)((0,a.Z)((0,a.Z)({overlayAction:{marginLeft:10,display:"flex",alignItems:"center","& svg":{maxWidth:15,maxHeight:15},"& button":{background:"#EAEAEA"}},affinityConfigField:{display:"flex"},affinityFieldLabel:{display:"flex",flexFlow:"column",flex:1},radioField:{display:"flex",alignItems:"flex-start",marginTop:10,"& div:first-child":{display:"flex",flexFlow:"column",alignItems:"baseline",textAlign:"left !important"}},affinityLabelKey:{"& div:first-child":{marginBottom:0}},affinityLabelValue:{marginLeft:10,"& div:first-child":{marginBottom:0}},rowActions:{display:"flex",alignItems:"center"},affinityRow:{marginBottom:10,display:"flex"}},r.oO),r.AK))}))((function(e){var n=e.classes,t=(0,b.TL)(),o=(0,C.v9)((function(e){return e.addPool.affinity.podAffinity})),s=(0,C.v9)((function(e){return e.addPool.affinity.nodeSelectorLabels})),r=(0,C.v9)((function(e){return e.addPool.affinity.withPodAntiAffinity})),c=(0,C.v9)((function(e){return e.addPool.nodeSelectorPairs})),u=(0,C.v9)((function(e){return e.addPool.tolerations})),d=(0,i.useState)({}),f=(0,m.Z)(d,2),x=f[0],p=f[1],v=(0,i.useState)(!0),N=(0,m.Z)(v,2),S=N[0],k=N[1],w=(0,i.useState)({}),G=(0,m.Z)(w,2),O=G[0],U=G[1],q=(0,i.useState)([]),K=(0,m.Z)(q,2),M=K[0],B=K[1],D=(0,i.useCallback)((function(e,n){t((0,_.oo)({page:"affinity",field:e,value:n}))}),[t]);(0,i.useEffect)((function(){S&&y.Z.invoke("GET","/api/v1/nodes/labels").then((function(e){k(!1),U(e);var n=[];for(var t in e)n.push({label:t,value:t});B(n)})).catch((function(e){k(!1),t((0,V.zb)(e)),U({})}))}),[t,S]),(0,i.useEffect)((function(){if(c){var e=c.filter((function(e){return""!==e.key})).map((function(e){return"".concat(e.key,"=").concat(e.value)})).filter((function(e,n,t){return t.indexOf(e)===n})).join("&");D("nodeSelectorLabels",e)}}),[c,D]),(0,i.useEffect)((function(){var e=[];if("nodeSelector"===o){var n=!0,a=s.split("&");1===a.length&&""===a[0]&&(n=!1),a.forEach((function(e,t){var i=e.split("=");2!==i.length&&(n=!1),t+1!==a.length&&(""!==i[0]&&""!==i[1]||(n=!1))})),e=[].concat((0,z.Z)(e),[{fieldKey:"labels",required:!0,value:s,customValidation:!n,customValidationMessage:"You need to add at least one label key-pair"}])}var i=(0,Z.R)(e);t((0,_.LJ)({page:"affinity",status:0===Object.keys(i).length})),p(i)}),[t,o,s]);var W=function(e,n,i){var o=(0,a.Z)((0,a.Z)({},u[e]),{},(0,R.Z)({},n,i));t((0,_.fu)({index:e,tolerationValue:o}))};return(0,A.jsxs)(h.Z,{className:n.paperWrapper,children:[(0,A.jsxs)("div",{className:n.headerElement,children:[(0,A.jsx)(P.Z,{children:"Pod Placement"}),(0,A.jsx)("span",{className:n.descriptionText,children:"Configure how pods will be assigned to nodes"})]}),(0,A.jsx)(l.ZP,{item:!0,xs:12,className:n.affinityConfigField,children:(0,A.jsxs)(l.ZP,{item:!0,className:n.affinityFieldLabel,children:[(0,A.jsx)("div",{className:n.label,children:"Type"}),(0,A.jsx)("div",{className:"".concat(n.descriptionText," ").concat(n.affinityHelpText),children:"MinIO supports multiple configurations for Pod Affinity"}),(0,A.jsx)(l.ZP,{item:!0,className:n.radioField,children:(0,A.jsx)(E.Z,{currentSelection:o,id:"affinity-options",name:"affinity-options",label:" ",onChange:function(e){D("podAffinity",e.target.value)},selectorOptions:[{label:"None",value:"none"},{label:"Default (Pod Anti-Affinity)",value:"default"},{label:"Node Selector",value:"nodeSelector"}]})})]})}),"nodeSelector"===o&&(0,A.jsxs)(i.Fragment,{children:[(0,A.jsx)("br",{}),(0,A.jsx)(l.ZP,{item:!0,xs:12,children:(0,A.jsx)(F.Z,{value:"with_pod_anti_affinity",id:"with_pod_anti_affinity",name:"with_pod_anti_affinity",checked:r,onChange:function(e){var n=e.target.checked;D("withPodAntiAffinity",n)},label:"With Pod Anti-Affinity"})}),(0,A.jsxs)(l.ZP,{item:!0,xs:12,children:[(0,A.jsx)("h3",{children:"Labels"}),(0,A.jsx)("span",{className:n.error,children:x.labels}),(0,A.jsx)(l.ZP,{container:!0,children:c&&c.map((function(e,a){return(0,A.jsxs)(l.ZP,{item:!0,xs:12,className:n.affinityRow,children:[(0,A.jsxs)(l.ZP,{item:!0,xs:5,className:n.affinityLabelKey,children:[M.length>0&&(0,A.jsx)(j.Z,{onChange:function(e){var n=e.target.value,i={key:n,value:O[n][0]},o=(0,z.Z)(c);o[a]=i,t((0,_.bF)(o))},id:"select-access-policy",name:"select-access-policy",label:"",value:e.key,options:M}),0===M.length&&(0,A.jsx)(g.Z,{id:"nodeselector-key-".concat(a.toString()),label:"",name:"nodeselector-".concat(a.toString()),value:e.key,onChange:function(e){var n=(0,z.Z)(c);n[a]={key:n[a].key,value:e.target.value},t((0,_.bF)(n))},index:a,placeholder:"Key"})]}),(0,A.jsxs)(l.ZP,{item:!0,xs:5,className:n.affinityLabelValue,children:[M.length>0&&(0,A.jsx)(j.Z,{onChange:function(e){var n=(0,z.Z)(c);n[a]={key:n[a].key,value:e.target.value},t((0,_.bF)(n))},id:"select-access-policy",name:"select-access-policy",label:"",value:e.value,options:O[e.key]?O[e.key].map((function(e){return{label:e,value:e}})):[]}),0===M.length&&(0,A.jsx)(g.Z,{id:"nodeselector-value-".concat(a.toString()),label:"",name:"nodeselector-".concat(a.toString()),value:e.value,onChange:function(e){var n=(0,z.Z)(c);n[a]={key:n[a].key,value:e.target.value},t((0,_.bF)(n))},index:a,placeholder:"value"})]}),(0,A.jsxs)(l.ZP,{item:!0,xs:2,className:n.rowActions,children:[(0,A.jsx)("div",{className:n.overlayAction,children:(0,A.jsx)(T.Z,{size:"small",onClick:function(){var e=(0,z.Z)(c);M.length>0?e.push({key:M[0].value,value:O[M[0].value][0]}):e.push({key:"",value:""}),t((0,_.bF)(e))},children:(0,A.jsx)(I.dtP,{})})}),c.length>1&&(0,A.jsx)("div",{className:n.overlayAction,children:(0,A.jsx)(T.Z,{size:"small",onClick:function(){var e=c.filter((function(e,n){return n!==a}));t((0,_.bF)(e))},children:(0,A.jsx)(I.HFL,{})})})]})]},"affinity-keyVal-".concat(a.toString()))}))})]})]}),(0,A.jsx)(l.ZP,{item:!0,xs:12,className:n.affinityConfigField,children:(0,A.jsxs)(l.ZP,{item:!0,className:n.affinityFieldLabel,children:[(0,A.jsx)("h3",{children:"Tolerations"}),(0,A.jsx)("span",{className:n.error,children:x.tolerations}),(0,A.jsx)(l.ZP,{container:!0,children:u&&u.map((function(e,a){var i;return(0,A.jsxs)(l.ZP,{item:!0,xs:12,className:n.affinityRow,children:[(0,A.jsx)(L.Z,{effect:e.effect,onEffectChange:function(e){W(a,"effect",e)},tolerationKey:e.key,onTolerationKeyChange:function(e){W(a,"key",e)},operator:e.operator,onOperatorChange:function(e){W(a,"operator",e)},value:e.value,onValueChange:function(e){W(a,"value",e)},tolerationSeconds:(null===(i=e.tolerationSeconds)||void 0===i?void 0:i.seconds)||0,onSecondsChange:function(e){W(a,"tolerationSeconds",{seconds:e})},index:a}),(0,A.jsx)("div",{className:n.overlayAction,children:(0,A.jsx)(T.Z,{size:"small",onClick:function(){t((0,_.hw)())},disabled:a!==u.length-1,children:(0,A.jsx)(I.dtP,{})})}),(0,A.jsx)("div",{className:n.overlayAction,children:(0,A.jsx)(T.Z,{size:"small",onClick:function(){return t((0,_.GF)(a))},disabled:u.length<=1,children:(0,A.jsx)(I.HFL,{})})})]},"affinity-keyVal-".concat(a.toString()))}))})]})})]})})),U=t(85617),q=function(){var e=(0,b.TL)(),n=(0,C.v9)((function(e){return e.addPool.setup.storageClass})),t=(0,C.v9)((function(e){return e.addPool.validPages})),a=!(0,C.v9)((function(e){return e.addPool.sending}))&&""!==n&&["setup","affinity","configure"].every((function(e){return t.includes(e)}));return(0,A.jsx)(I.zxk,{id:"wizard-button-Create",variant:"callAction",onClick:function(){e((0,U.P)())},disabled:!a,label:"Create"},"button-AddTenant-Create")},K=t(72455),M=t(47974),B=(0,K.Z)((function(e){return(0,s.Z)((0,a.Z)((0,a.Z)({bottomContainer:{display:"flex",flexGrow:1,alignItems:"center",margin:"auto",justifyContent:"center","& div":{width:150,"@media (max-width: 900px)":{flexFlow:"column"}}},pageBox:{border:"1px solid #EAEAEA",borderTop:0},addPoolTitle:{border:"1px solid #EAEAEA",borderBottom:0}},r.DF),r.ID))})),D=function(){var e=(0,b.TL)(),n=(0,o.s0)(),t=B(),a=(0,C.v9)((function(e){return e.tenants.tenantInfo})),s=(0,C.v9)((function(e){return e.addPool.sending})),r=(0,C.v9)((function(e){return e.addPool.navigateTo})),m="/namespaces/".concat((null===a||void 0===a?void 0:a.namespace)||"","/tenants/").concat((null===a||void 0===a?void 0:a.name)||"","/pools");(0,i.useEffect)((function(){if(""!==r){var t="".concat(r);e((0,_.bU)()),n(t)}}),[r,n,e]);var x={label:"Cancel",type:"other",enabled:!0,action:function(){e((0,_.bU)()),n(m)}},p={componentRender:(0,A.jsx)(q,{},"add-pool-crate")},v=[{label:"Setup",componentRender:(0,A.jsx)(S,{}),buttons:[x,p]},{label:"Configuration",advancedOnly:!0,componentRender:(0,A.jsx)(G,{}),buttons:[x,p]},{label:"Pod Placement",advancedOnly:!0,componentRender:(0,A.jsx)(O,{}),buttons:[x,p]}];return(0,A.jsx)(i.Fragment,{children:(0,A.jsxs)(l.ZP,{item:!0,xs:12,children:[(0,A.jsx)(M.Z,{label:(0,A.jsx)(i.Fragment,{children:(0,A.jsx)(I.hbI,{label:"Tenant Pools",onClick:function(){return n(m)}})})}),(0,A.jsxs)(d.Z,{children:[(0,A.jsx)(l.ZP,{item:!0,xs:12,className:t.addPoolTitle,children:(0,A.jsx)(k.Z,{icon:(0,A.jsx)(I.zb0,{}),title:"Add New Pool to ".concat((null===a||void 0===a?void 0:a.name)||""),subTitle:(0,A.jsxs)(i.Fragment,{children:["Namespace: ",(null===a||void 0===a?void 0:a.namespace)||""," / Current Capacity:"," ",(0,c.ae)(((null===a||void 0===a?void 0:a.total_size)||0).toString(10))]})})}),s&&(0,A.jsx)(l.ZP,{item:!0,xs:12,children:(0,A.jsx)(u.Z,{})}),(0,A.jsx)(l.ZP,{item:!0,xs:12,className:t.pageBox,children:(0,A.jsx)(f.Z,{wizardSteps:v})})]})]})})}}}]); +//# sourceMappingURL=692.173a6fa7.chunk.js.map \ No newline at end of file diff --git a/web-app/build/static/js/692.8957e493.chunk.js.map b/web-app/build/static/js/692.173a6fa7.chunk.js.map similarity index 99% rename from web-app/build/static/js/692.8957e493.chunk.js.map rename to web-app/build/static/js/692.173a6fa7.chunk.js.map index b9e7a882406..da13e82bf96 100644 --- a/web-app/build/static/js/692.8957e493.chunk.js.map +++ b/web-app/build/static/js/692.173a6fa7.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/692.8957e493.chunk.js","mappings":"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","sources":["screens/Console/Tenants/TenantDetails/Pools/AddPool/PoolResources.tsx","screens/Console/Tenants/TenantDetails/Pools/AddPool/PoolConfiguration.tsx","screens/Console/Tenants/TenantDetails/Pools/AddPool/PoolPodPlacement.tsx","screens/Console/Tenants/TenantDetails/Pools/AddPool/AddPoolCreateButton.tsx","screens/Console/Tenants/TenantDetails/Pools/AddPool/AddPool.tsx"],"sourcesContent":["// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n formFieldStyles,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport { niceBytes } from \"../../../../../../common/utils\";\nimport { Paper, SelectChangeEvent } from \"@mui/material\";\nimport api from \"../../../../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport SelectWrapper from \"../../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport { IQuotaElement, IQuotas } from \"../../../ListTenants/utils\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { useSelector } from \"react-redux\";\n\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\nimport InputUnitMenu from \"../../../../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\nimport {\n isPoolPageValid,\n setPoolField,\n setPoolStorageClasses,\n} from \"./addPoolSlice\";\nimport H3Section from \"../../../../Common/H3Section\";\n\ninterface IPoolResourcesProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n bottomContainer: {\n display: \"flex\",\n flexGrow: 1,\n alignItems: \"center\",\n margin: \"auto\",\n justifyContent: \"center\",\n \"& div\": {\n width: 150,\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n },\n factorElements: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n marginLeft: 30,\n },\n sizeNumber: {\n fontSize: 35,\n fontWeight: 700,\n textAlign: \"center\",\n },\n sizeDescription: {\n fontSize: 14,\n color: \"#777\",\n textAlign: \"center\",\n },\n ...formFieldStyles,\n ...wizardCommon,\n });\n\nconst PoolResources = ({ classes }: IPoolResourcesProps) => {\n const dispatch = useAppDispatch();\n\n const tenant = useSelector((state: AppState) => state.tenants.tenantInfo);\n const storageClasses = useSelector(\n (state: AppState) => state.addPool.storageClasses,\n );\n const numberOfNodes = useSelector((state: AppState) =>\n state.addPool.setup.numberOfNodes.toString(),\n );\n const storageClass = useSelector(\n (state: AppState) => state.addPool.setup.storageClass,\n );\n const volumeSize = useSelector((state: AppState) =>\n state.addPool.setup.volumeSize.toString(),\n );\n const volumesPerServer = useSelector((state: AppState) =>\n state.addPool.setup.volumesPerServer.toString(),\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n const instanceCapacity: number =\n parseInt(volumeSize) * 1073741824 * parseInt(volumesPerServer);\n const totalCapacity: number = instanceCapacity * parseInt(numberOfNodes);\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [\n {\n fieldKey: \"number_of_nodes\",\n required: true,\n value: numberOfNodes.toString(),\n customValidation:\n parseInt(numberOfNodes) < 1 || isNaN(parseInt(numberOfNodes)),\n customValidationMessage: \"Number of servers must be at least 1\",\n },\n {\n fieldKey: \"pool_size\",\n required: true,\n value: volumeSize.toString(),\n customValidation:\n parseInt(volumeSize) < 1 || isNaN(parseInt(volumeSize)),\n customValidationMessage: \"Pool Size cannot be 0\",\n },\n {\n fieldKey: \"volumes_per_server\",\n required: true,\n value: volumesPerServer.toString(),\n customValidation:\n parseInt(volumesPerServer) < 1 || isNaN(parseInt(volumesPerServer)),\n customValidationMessage: \"1 volume or more are required\",\n },\n ];\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n dispatch(\n isPoolPageValid({\n page: \"setup\",\n status: Object.keys(commonVal).length === 0,\n }),\n );\n\n setValidationErrors(commonVal);\n }, [dispatch, numberOfNodes, volumeSize, volumesPerServer, storageClass]);\n\n useEffect(() => {\n if (storageClasses.length === 0 && tenant) {\n api\n .invoke(\n \"GET\",\n `/api/v1/namespaces/${tenant.namespace}/resourcequotas/${tenant.namespace}-storagequota`,\n )\n .then((res: IQuotas) => {\n const elements: IQuotaElement[] = get(res, \"elements\", []);\n\n const newStorage = elements.map((storageClass: any) => {\n const name = get(storageClass, \"name\", \"\").split(\n \".storageclass.storage.k8s.io/requests.storage\",\n )[0];\n\n return { label: name, value: name };\n });\n\n dispatch(\n setPoolField({\n page: \"setup\",\n field: \"storageClass\",\n value: newStorage[0].value,\n }),\n );\n\n dispatch(setPoolStorageClasses(newStorage));\n })\n .catch((err: ErrorResponseHandler) => {\n console.error(err);\n });\n }\n }, [tenant, storageClasses, dispatch]);\n\n const setFieldInfo = (fieldName: string, value: any) => {\n dispatch(\n setPoolField({\n page: \"setup\",\n field: fieldName,\n value: value,\n }),\n );\n };\n\n return (\n \n
\n New Pool Configuration\n \n Configure a new Pool to expand MinIO storage\n \n
\n\n \n ) => {\n const intValue = parseInt(e.target.value);\n\n if (e.target.validity.valid && !isNaN(intValue)) {\n setFieldInfo(\"numberOfNodes\", intValue);\n } else if (isNaN(intValue)) {\n setFieldInfo(\"numberOfNodes\", 0);\n }\n }}\n label=\"Number of Servers\"\n value={numberOfNodes}\n error={validationErrors[\"number_of_nodes\"] || \"\"}\n pattern={\"[0-9]*\"}\n />\n \n \n ) => {\n const intValue = parseInt(e.target.value);\n\n if (e.target.validity.valid && !isNaN(intValue)) {\n setFieldInfo(\"volumeSize\", intValue);\n } else if (isNaN(intValue)) {\n setFieldInfo(\"volumeSize\", 0);\n }\n }}\n label=\"Volume Size\"\n value={volumeSize}\n error={validationErrors[\"pool_size\"] || \"\"}\n pattern={\"[0-9]*\"}\n overlayObject={\n {}}\n unitSelected={\"Gi\"}\n unitsList={[{ label: \"Gi\", value: \"Gi\" }]}\n disabled={true}\n />\n }\n />\n \n \n ) => {\n const intValue = parseInt(e.target.value);\n\n if (e.target.validity.valid && !isNaN(intValue)) {\n setFieldInfo(\"volumesPerServer\", intValue);\n } else if (isNaN(intValue)) {\n setFieldInfo(\"volumesPerServer\", 0);\n }\n }}\n label=\"Volumes per Server\"\n value={volumesPerServer}\n error={validationErrors[\"volumes_per_server\"] || \"\"}\n pattern={\"[0-9]*\"}\n />\n \n \n ) => {\n setFieldInfo(\"storageClass\", e.target.value as string);\n }}\n label=\"Storage Class\"\n value={storageClass}\n options={storageClasses}\n disabled={storageClasses.length < 1}\n />\n \n \n
\n
\n
\n {niceBytes(instanceCapacity.toString(10))}\n
\n
Instance Capacity
\n
\n
\n
\n {niceBytes(totalCapacity.toString(10))}\n
\n
Total Capacity
\n
\n
\n
\n
\n );\n};\n\nexport default withStyles(styles)(PoolResources);\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useCallback, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, Paper } from \"@mui/material\";\nimport {\n createTenantCommon,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { clearValidationError } from \"../../../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\nimport FormSwitchWrapper from \"../../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { isPoolPageValid, setPoolField } from \"./addPoolSlice\";\nimport H3Section from \"../../../../Common/H3Section\";\n\ninterface IConfigureProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n configSectionItem: {\n marginRight: 15,\n\n \"& .multiContainer\": {\n border: \"1px solid red\",\n },\n },\n tenantCustomizationFields: {\n marginLeft: 30, // 2nd Level(15+15)\n width: \"88%\",\n margin: \"auto\",\n },\n containerItem: {\n marginRight: 15,\n },\n fieldGroup: {\n ...createTenantCommon.fieldGroup,\n paddingTop: 15,\n marginBottom: 25,\n },\n responsiveSectionItem: {\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n\n \"& div > div\": {\n marginBottom: 5,\n marginRight: 0,\n },\n },\n },\n\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst PoolConfiguration = ({ classes }: IConfigureProps) => {\n const dispatch = useAppDispatch();\n\n const securityContextEnabled = useSelector(\n (state: AppState) => state.addPool.configuration.securityContextEnabled,\n );\n const securityContext = useSelector(\n (state: AppState) => state.addPool.configuration.securityContext,\n );\n const customRuntime = useSelector(\n (state: AppState) => state.addPool.configuration.customRuntime,\n );\n const runtimeClassName = useSelector(\n (state: AppState) => state.addPool.configuration.runtimeClassName,\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n setPoolField({\n page: \"configuration\",\n field: field,\n value: value,\n }),\n );\n },\n [dispatch],\n );\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n if (securityContextEnabled) {\n customAccountValidation = [\n {\n fieldKey: \"pool_securityContext_runAsUser\",\n required: true,\n value: securityContext.runAsUser,\n customValidation:\n securityContext.runAsUser === \"\" ||\n parseInt(securityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"pool_securityContext_runAsGroup\",\n required: true,\n value: securityContext.runAsGroup,\n customValidation:\n securityContext.runAsGroup === \"\" ||\n parseInt(securityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"pool_securityContext_fsGroup\",\n required: true,\n value: securityContext.fsGroup!,\n customValidation:\n securityContext.fsGroup === \"\" ||\n parseInt(securityContext.fsGroup!) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n ];\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n dispatch(\n isPoolPageValid({\n page: \"configure\",\n status: Object.keys(commonVal).length === 0,\n }),\n );\n\n setValidationErrors(commonVal);\n }, [dispatch, securityContextEnabled, securityContext]);\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n
\n Configure\n \n Aditional Configurations for the new Pool\n \n
\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"securityContextEnabled\", checked);\n }}\n label={\"Security Context\"}\n />\n \n {securityContextEnabled && (\n \n
\n \n Pool's Security Context\n \n \n \n
\n ) => {\n updateField(\"securityContext\", {\n ...securityContext,\n runAsUser: e.target.value,\n });\n cleanValidation(\"pool_securityContext_runAsUser\");\n }}\n label=\"Run As User\"\n value={securityContext.runAsUser}\n required\n error={\n validationErrors[\"pool_securityContext_runAsUser\"] || \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"securityContext\", {\n ...securityContext,\n runAsGroup: e.target.value,\n });\n cleanValidation(\"pool_securityContext_runAsGroup\");\n }}\n label=\"Run As Group\"\n value={securityContext.runAsGroup}\n required\n error={\n validationErrors[\"pool_securityContext_runAsGroup\"] || \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"securityContext\", {\n ...securityContext,\n fsGroup: e.target.value,\n });\n cleanValidation(\"pool_securityContext_fsGroup\");\n }}\n label=\"FsGroup\"\n value={securityContext.fsGroup!}\n required\n error={\n validationErrors[\"pool_securityContext_fsGroup\"] || \"\"\n }\n min=\"0\"\n />\n
\n \n
\n
\n \n
\n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"securityContext\", {\n ...securityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n
\n
\n
\n
\n )}\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"customRuntime\", checked);\n }}\n label={\"Custom Runtime Configurations\"}\n />\n \n {customRuntime && (\n \n
\n \n Custom Runtime Configurations\n \n \n
\n ) => {\n updateField(\"runtimeClassName\", e.target.value);\n cleanValidation(\"tenant_runtime_runtimeClassName\");\n }}\n label=\"Runtime Class Name\"\n value={runtimeClassName}\n error={\n validationErrors[\"tenant_runtime_runtimeClassName\"] || \"\"\n }\n />\n
\n
\n
\n
\n )}\n
\n );\n};\n\nexport default withStyles(styles)(PoolConfiguration);\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, IconButton, Paper, SelectChangeEvent } from \"@mui/material\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\n\nimport {\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport { LabelKeyPair } from \"../../../types\";\nimport RadioGroupSelector from \"../../../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport FormSwitchWrapper from \"../../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport api from \"../../../../../../common/api\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { AddIcon, RemoveIcon } from \"mds\";\nimport SelectWrapper from \"../../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport TolerationSelector from \"../../../../Common/TolerationSelector/TolerationSelector\";\nimport { setModalErrorSnackMessage } from \"../../../../../../systemSlice\";\nimport {\n addNewPoolToleration,\n isPoolPageValid,\n removePoolToleration,\n setPoolField,\n setPoolKeyValuePairs,\n setPoolTolerationInfo,\n} from \"./addPoolSlice\";\nimport H3Section from \"../../../../Common/H3Section\";\n\ninterface IAffinityProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n overlayAction: {\n marginLeft: 10,\n display: \"flex\",\n alignItems: \"center\",\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n affinityConfigField: {\n display: \"flex\",\n },\n affinityFieldLabel: {\n display: \"flex\",\n flexFlow: \"column\",\n flex: 1,\n },\n radioField: {\n display: \"flex\",\n alignItems: \"flex-start\",\n marginTop: 10,\n \"& div:first-child\": {\n display: \"flex\",\n flexFlow: \"column\",\n alignItems: \"baseline\",\n textAlign: \"left !important\",\n },\n },\n affinityLabelKey: {\n \"& div:first-child\": {\n marginBottom: 0,\n },\n },\n affinityLabelValue: {\n marginLeft: 10,\n \"& div:first-child\": {\n marginBottom: 0,\n },\n },\n rowActions: {\n display: \"flex\",\n alignItems: \"center\",\n },\n affinityRow: {\n marginBottom: 10,\n display: \"flex\",\n },\n ...modalBasic,\n ...wizardCommon,\n });\n\ninterface OptionPair {\n label: string;\n value: string;\n}\n\nconst Affinity = ({ classes }: IAffinityProps) => {\n const dispatch = useAppDispatch();\n\n const podAffinity = useSelector(\n (state: AppState) => state.addPool.affinity.podAffinity,\n );\n const nodeSelectorLabels = useSelector(\n (state: AppState) => state.addPool.affinity.nodeSelectorLabels,\n );\n const withPodAntiAffinity = useSelector(\n (state: AppState) => state.addPool.affinity.withPodAntiAffinity,\n );\n const keyValuePairs = useSelector(\n (state: AppState) => state.addPool.nodeSelectorPairs,\n );\n const tolerations = useSelector(\n (state: AppState) => state.addPool.tolerations,\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n const [loading, setLoading] = useState(true);\n const [keyValueMap, setKeyValueMap] = useState<{ [key: string]: string[] }>(\n {},\n );\n const [keyOptions, setKeyOptions] = useState([]);\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n setPoolField({\n page: \"affinity\",\n field: field,\n value: value,\n }),\n );\n },\n [dispatch],\n );\n\n useEffect(() => {\n if (loading) {\n api\n .invoke(\"GET\", `/api/v1/nodes/labels`)\n .then((res: { [key: string]: string[] }) => {\n setLoading(false);\n setKeyValueMap(res);\n let keys: OptionPair[] = [];\n for (let k in res) {\n keys.push({\n label: k,\n value: k,\n });\n }\n setKeyOptions(keys);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n dispatch(setModalErrorSnackMessage(err));\n setKeyValueMap({});\n });\n }\n }, [dispatch, loading]);\n\n useEffect(() => {\n if (keyValuePairs) {\n const vlr = keyValuePairs\n .filter((kvp) => kvp.key !== \"\")\n .map((kvp) => `${kvp.key}=${kvp.value}`)\n .filter((kvs, i, a) => a.indexOf(kvs) === i);\n const vl = vlr.join(\"&\");\n updateField(\"nodeSelectorLabels\", vl);\n }\n }, [keyValuePairs, updateField]);\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n\n if (podAffinity === \"nodeSelector\") {\n let valid = true;\n\n const splittedLabels = nodeSelectorLabels.split(\"&\");\n\n if (splittedLabels.length === 1 && splittedLabels[0] === \"\") {\n valid = false;\n }\n\n splittedLabels.forEach((item: string, index: number) => {\n const splitItem = item.split(\"=\");\n\n if (splitItem.length !== 2) {\n valid = false;\n }\n\n if (index + 1 !== splittedLabels.length) {\n if (splitItem[0] === \"\" || splitItem[1] === \"\") {\n valid = false;\n }\n }\n });\n\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"labels\",\n required: true,\n value: nodeSelectorLabels,\n customValidation: !valid,\n customValidationMessage:\n \"You need to add at least one label key-pair\",\n },\n ];\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n dispatch(\n isPoolPageValid({\n page: \"affinity\",\n status: Object.keys(commonVal).length === 0,\n }),\n );\n\n setValidationErrors(commonVal);\n }, [dispatch, podAffinity, nodeSelectorLabels]);\n\n const updateToleration = (index: number, field: string, value: any) => {\n const alterToleration = { ...tolerations[index], [field]: value };\n\n dispatch(\n setPoolTolerationInfo({\n index: index,\n tolerationValue: alterToleration,\n }),\n );\n };\n\n return (\n \n
\n Pod Placement\n \n Configure how pods will be assigned to nodes\n \n
\n \n \n
Type
\n \n MinIO supports multiple configurations for Pod Affinity\n \n \n {\n updateField(\"podAffinity\", e.target.value);\n }}\n selectorOptions={[\n { label: \"None\", value: \"none\" },\n { label: \"Default (Pod Anti-Affinity)\", value: \"default\" },\n { label: \"Node Selector\", value: \"nodeSelector\" },\n ]}\n />\n \n
\n
\n {podAffinity === \"nodeSelector\" && (\n \n
\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"withPodAntiAffinity\", checked);\n }}\n label={\"With Pod Anti-Affinity\"}\n />\n \n \n

Labels

\n {validationErrors[\"labels\"]}\n \n {keyValuePairs &&\n keyValuePairs.map((kvp, i) => {\n return (\n \n \n {keyOptions.length > 0 && (\n ) => {\n const newKey = e.target.value as string;\n const newLKP: LabelKeyPair = {\n key: newKey,\n value: keyValueMap[newKey][0],\n };\n const arrCp: LabelKeyPair[] = [...keyValuePairs];\n arrCp[i] = newLKP;\n dispatch(setPoolKeyValuePairs(arrCp));\n }}\n id=\"select-access-policy\"\n name=\"select-access-policy\"\n label={\"\"}\n value={kvp.key}\n options={keyOptions}\n />\n )}\n {keyOptions.length === 0 && (\n {\n const arrCp: LabelKeyPair[] = [...keyValuePairs];\n arrCp[i] = {\n key: arrCp[i].key,\n value: e.target.value as string,\n };\n dispatch(setPoolKeyValuePairs(arrCp));\n }}\n index={i}\n placeholder={\"Key\"}\n />\n )}\n \n \n {keyOptions.length > 0 && (\n ) => {\n const arrCp: LabelKeyPair[] = [...keyValuePairs];\n arrCp[i] = {\n key: arrCp[i].key,\n value: e.target.value as string,\n };\n dispatch(setPoolKeyValuePairs(arrCp));\n }}\n id=\"select-access-policy\"\n name=\"select-access-policy\"\n label={\"\"}\n value={kvp.value}\n options={\n keyValueMap[kvp.key]\n ? keyValueMap[kvp.key].map((v) => {\n return { label: v, value: v };\n })\n : []\n }\n />\n )}\n {keyOptions.length === 0 && (\n {\n const arrCp: LabelKeyPair[] = [...keyValuePairs];\n arrCp[i] = {\n key: arrCp[i].key,\n value: e.target.value as string,\n };\n dispatch(setPoolKeyValuePairs(arrCp));\n }}\n index={i}\n placeholder={\"value\"}\n />\n )}\n \n \n
\n {\n const arrCp = [...keyValuePairs];\n if (keyOptions.length > 0) {\n arrCp.push({\n key: keyOptions[0].value,\n value: keyValueMap[keyOptions[0].value][0],\n });\n } else {\n arrCp.push({ key: \"\", value: \"\" });\n }\n\n dispatch(setPoolKeyValuePairs(arrCp));\n }}\n >\n \n \n
\n {keyValuePairs.length > 1 && (\n
\n {\n const arrCp = keyValuePairs.filter(\n (item, index) => index !== i,\n );\n dispatch(setPoolKeyValuePairs(arrCp));\n }}\n >\n \n \n
\n )}\n
\n
\n );\n })}\n
\n \n
\n )}\n \n \n

Tolerations

\n \n {validationErrors[\"tolerations\"]}\n \n \n {tolerations &&\n tolerations.map((tol, i) => {\n return (\n \n {\n updateToleration(i, \"effect\", value);\n }}\n tolerationKey={tol.key}\n onTolerationKeyChange={(value) => {\n updateToleration(i, \"key\", value);\n }}\n operator={tol.operator}\n onOperatorChange={(value) => {\n updateToleration(i, \"operator\", value);\n }}\n value={tol.value}\n onValueChange={(value) => {\n updateToleration(i, \"value\", value);\n }}\n tolerationSeconds={tol.tolerationSeconds?.seconds || 0}\n onSecondsChange={(value) => {\n updateToleration(i, \"tolerationSeconds\", {\n seconds: value,\n });\n }}\n index={i}\n />\n
\n {\n dispatch(addNewPoolToleration());\n }}\n disabled={i !== tolerations.length - 1}\n >\n \n \n
\n\n
\n dispatch(removePoolToleration(i))}\n disabled={tolerations.length <= 1}\n >\n \n \n
\n
\n );\n })}\n
\n
\n \n
\n );\n};\n\nexport default withStyles(styles)(Affinity);\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Button } from \"mds\";\nimport React from \"react\";\nimport { addPoolAsync } from \"./addPoolThunks\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\n\nconst AddPoolCreateButton = () => {\n const dispatch = useAppDispatch();\n\n const selectedStorageClass = useSelector(\n (state: AppState) => state.addPool.setup.storageClass,\n );\n const validPages = useSelector((state: AppState) => state.addPool.validPages);\n\n const sending = useSelector((state: AppState) => state.addPool.sending);\n const requiredPages = [\"setup\", \"affinity\", \"configure\"];\n const enabled =\n !sending &&\n selectedStorageClass !== \"\" &&\n requiredPages.every((v) => validPages.includes(v));\n return (\n {\n dispatch(addPoolAsync());\n }}\n disabled={!enabled}\n key={`button-AddTenant-Create`}\n label={\"Create\"}\n />\n );\n};\n\nexport default AddPoolCreateButton;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { useNavigate } from \"react-router-dom\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport Grid from \"@mui/material/Grid\";\nimport { niceBytes } from \"../../../../../../common/utils\";\nimport { LinearProgress } from \"@mui/material\";\nimport PageLayout from \"../../../../Common/Layout/PageLayout\";\nimport GenericWizard from \"../../../../Common/GenericWizard/GenericWizard\";\nimport { IWizardElement } from \"../../../../Common/GenericWizard/types\";\nimport PoolResources from \"./PoolResources\";\nimport ScreenTitle from \"../../../../Common/ScreenTitle/ScreenTitle\";\nimport { BackLink, TenantsIcon } from \"mds\";\n\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { useSelector } from \"react-redux\";\nimport PoolConfiguration from \"./PoolConfiguration\";\nimport PoolPodPlacement from \"./PoolPodPlacement\";\n\nimport { resetPoolForm } from \"./addPoolSlice\";\nimport AddPoolCreateButton from \"./AddPoolCreateButton\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport PageHeaderWrapper from \"../../../../Common/PageHeaderWrapper/PageHeaderWrapper\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n bottomContainer: {\n display: \"flex\",\n flexGrow: 1,\n alignItems: \"center\",\n margin: \"auto\",\n justifyContent: \"center\",\n \"& div\": {\n width: 150,\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n },\n pageBox: {\n border: \"1px solid #EAEAEA\",\n borderTop: 0,\n },\n addPoolTitle: {\n border: \"1px solid #EAEAEA\",\n borderBottom: 0,\n },\n ...formFieldStyles,\n ...modalStyleUtils,\n }),\n);\n\nconst AddPool = () => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n const classes = useStyles();\n\n const tenant = useSelector((state: AppState) => state.tenants.tenantInfo);\n const sending = useSelector((state: AppState) => state.addPool.sending);\n const navigateTo = useSelector((state: AppState) => state.addPool.navigateTo);\n\n const poolsURL = `/namespaces/${tenant?.namespace || \"\"}/tenants/${\n tenant?.name || \"\"\n }/pools`;\n\n useEffect(() => {\n if (navigateTo !== \"\") {\n const goTo = `${navigateTo}`;\n dispatch(resetPoolForm());\n navigate(goTo);\n }\n }, [navigateTo, navigate, dispatch]);\n\n const cancelButton = {\n label: \"Cancel\",\n type: \"other\",\n enabled: true,\n action: () => {\n dispatch(resetPoolForm());\n navigate(poolsURL);\n },\n };\n\n const createButton = {\n componentRender: ,\n };\n\n const wizardSteps: IWizardElement[] = [\n {\n label: \"Setup\",\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Configuration\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Pod Placement\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n ];\n\n return (\n \n \n \n navigate(poolsURL)}\n />\n \n }\n />\n \n \n }\n title={`Add New Pool to ${tenant?.name || \"\"}`}\n subTitle={\n \n Namespace: {tenant?.namespace || \"\"} / Current Capacity:{\" \"}\n {niceBytes((tenant?.total_size || 0).toString(10))}\n \n }\n />\n \n {sending && (\n \n \n \n )}\n \n \n \n \n \n \n );\n};\n\nexport default AddPool;\n"],"names":["withStyles","theme","createStyles","_objectSpread","bottomContainer","display","flexGrow","alignItems","margin","justifyContent","width","flexFlow","factorElements","marginLeft","sizeNumber","fontSize","fontWeight","textAlign","sizeDescription","color","formFieldStyles","wizardCommon","_ref","classes","dispatch","useAppDispatch","tenant","useSelector","state","tenants","tenantInfo","storageClasses","addPool","numberOfNodes","setup","toString","storageClass","volumeSize","volumesPerServer","_useState","useState","_useState2","_slicedToArray","validationErrors","setValidationErrors","instanceCapacity","parseInt","totalCapacity","useEffect","customAccountValidation","fieldKey","required","value","customValidation","isNaN","customValidationMessage","commonVal","commonFormValidation","isPoolPageValid","page","status","Object","keys","length","api","invoke","concat","namespace","then","res","newStorage","get","map","name","split","label","setPoolField","field","setPoolStorageClasses","catch","err","console","error","setFieldInfo","fieldName","_jsxs","Paper","className","paperWrapper","children","headerElement","_jsx","H3Section","descriptionText","Grid","item","xs","formFieldRow","InputBoxWrapper","id","onChange","e","intValue","target","validity","valid","pattern","overlayObject","InputUnitMenu","onUnitChange","unitSelected","unitsList","disabled","SelectWrapper","options","niceBytes","configSectionItem","marginRight","border","tenantCustomizationFields","containerItem","fieldGroup","createTenantCommon","paddingTop","marginBottom","responsiveSectionItem","modalBasic","securityContextEnabled","configuration","securityContext","customRuntime","runtimeClassName","updateField","useCallback","runAsUser","runAsGroup","fsGroup","cleanValidation","clearValidationError","FormSwitchWrapper","checked","multiContainer","type","min","runAsNonRoot","sx","marginTop","overlayAction","maxWidth","maxHeight","background","affinityConfigField","affinityFieldLabel","flex","radioField","affinityLabelKey","affinityLabelValue","rowActions","affinityRow","podAffinity","affinity","nodeSelectorLabels","withPodAntiAffinity","keyValuePairs","nodeSelectorPairs","tolerations","_useState3","_useState4","loading","setLoading","_useState5","_useState6","keyValueMap","setKeyValueMap","_useState7","_useState8","keyOptions","setKeyOptions","k","push","setModalErrorSnackMessage","vl","filter","kvp","key","kvs","i","a","indexOf","join","splittedLabels","forEach","index","splitItem","_toConsumableArray","updateToleration","alterToleration","_defineProperty","setPoolTolerationInfo","tolerationValue","affinityHelpText","RadioGroupSelector","currentSelection","selectorOptions","Fragment","container","newKey","newLKP","arrCp","setPoolKeyValuePairs","placeholder","v","IconButton","size","onClick","AddIcon","RemoveIcon","tol","_tol$tolerationSecond","TolerationSelector","effect","onEffectChange","tolerationKey","onTolerationKeyChange","operator","onOperatorChange","onValueChange","tolerationSeconds","seconds","onSecondsChange","addNewPoolToleration","removePoolToleration","selectedStorageClass","validPages","enabled","sending","every","includes","Button","variant","addPoolAsync","useStyles","makeStyles","pageBox","borderTop","addPoolTitle","borderBottom","modalStyleUtils","navigate","useNavigate","navigateTo","poolsURL","goTo","resetPoolForm","cancelButton","action","createButton","componentRender","AddPoolCreateButton","wizardSteps","PoolResources","buttons","advancedOnly","PoolConfiguration","PoolPodPlacement","PageHeaderWrapper","BackLink","PageLayout","ScreenTitle","icon","TenantsIcon","title","subTitle","total_size","LinearProgress","GenericWizard"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/692.173a6fa7.chunk.js","mappings":"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","sources":["screens/Console/Tenants/TenantDetails/Pools/AddPool/PoolResources.tsx","screens/Console/Tenants/TenantDetails/Pools/AddPool/PoolConfiguration.tsx","screens/Console/Tenants/TenantDetails/Pools/AddPool/PoolPodPlacement.tsx","screens/Console/Tenants/TenantDetails/Pools/AddPool/AddPoolCreateButton.tsx","screens/Console/Tenants/TenantDetails/Pools/AddPool/AddPool.tsx"],"sourcesContent":["// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n formFieldStyles,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport { niceBytes } from \"../../../../../../common/utils\";\nimport { Paper, SelectChangeEvent } from \"@mui/material\";\nimport api from \"../../../../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport SelectWrapper from \"../../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport { IQuotaElement, IQuotas } from \"../../../ListTenants/utils\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { useSelector } from \"react-redux\";\n\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\nimport InputUnitMenu from \"../../../../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\nimport {\n isPoolPageValid,\n setPoolField,\n setPoolStorageClasses,\n} from \"./addPoolSlice\";\nimport H3Section from \"../../../../Common/H3Section\";\n\ninterface IPoolResourcesProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n bottomContainer: {\n display: \"flex\",\n flexGrow: 1,\n alignItems: \"center\",\n margin: \"auto\",\n justifyContent: \"center\",\n \"& div\": {\n width: 150,\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n },\n factorElements: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n marginLeft: 30,\n },\n sizeNumber: {\n fontSize: 35,\n fontWeight: 700,\n textAlign: \"center\",\n },\n sizeDescription: {\n fontSize: 14,\n color: \"#777\",\n textAlign: \"center\",\n },\n ...formFieldStyles,\n ...wizardCommon,\n });\n\nconst PoolResources = ({ classes }: IPoolResourcesProps) => {\n const dispatch = useAppDispatch();\n\n const tenant = useSelector((state: AppState) => state.tenants.tenantInfo);\n const storageClasses = useSelector(\n (state: AppState) => state.addPool.storageClasses,\n );\n const numberOfNodes = useSelector((state: AppState) =>\n state.addPool.setup.numberOfNodes.toString(),\n );\n const storageClass = useSelector(\n (state: AppState) => state.addPool.setup.storageClass,\n );\n const volumeSize = useSelector((state: AppState) =>\n state.addPool.setup.volumeSize.toString(),\n );\n const volumesPerServer = useSelector((state: AppState) =>\n state.addPool.setup.volumesPerServer.toString(),\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n const instanceCapacity: number =\n parseInt(volumeSize) * 1073741824 * parseInt(volumesPerServer);\n const totalCapacity: number = instanceCapacity * parseInt(numberOfNodes);\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [\n {\n fieldKey: \"number_of_nodes\",\n required: true,\n value: numberOfNodes.toString(),\n customValidation:\n parseInt(numberOfNodes) < 1 || isNaN(parseInt(numberOfNodes)),\n customValidationMessage: \"Number of servers must be at least 1\",\n },\n {\n fieldKey: \"pool_size\",\n required: true,\n value: volumeSize.toString(),\n customValidation:\n parseInt(volumeSize) < 1 || isNaN(parseInt(volumeSize)),\n customValidationMessage: \"Pool Size cannot be 0\",\n },\n {\n fieldKey: \"volumes_per_server\",\n required: true,\n value: volumesPerServer.toString(),\n customValidation:\n parseInt(volumesPerServer) < 1 || isNaN(parseInt(volumesPerServer)),\n customValidationMessage: \"1 volume or more are required\",\n },\n ];\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n dispatch(\n isPoolPageValid({\n page: \"setup\",\n status: Object.keys(commonVal).length === 0,\n }),\n );\n\n setValidationErrors(commonVal);\n }, [dispatch, numberOfNodes, volumeSize, volumesPerServer, storageClass]);\n\n useEffect(() => {\n if (storageClasses.length === 0 && tenant) {\n api\n .invoke(\n \"GET\",\n `/api/v1/namespaces/${tenant.namespace}/resourcequotas/${tenant.namespace}-storagequota`,\n )\n .then((res: IQuotas) => {\n const elements: IQuotaElement[] = get(res, \"elements\", []);\n\n const newStorage = elements.map((storageClass: any) => {\n const name = get(storageClass, \"name\", \"\").split(\n \".storageclass.storage.k8s.io/requests.storage\",\n )[0];\n\n return { label: name, value: name };\n });\n\n dispatch(\n setPoolField({\n page: \"setup\",\n field: \"storageClass\",\n value: newStorage[0].value,\n }),\n );\n\n dispatch(setPoolStorageClasses(newStorage));\n })\n .catch((err: ErrorResponseHandler) => {\n console.error(err);\n });\n }\n }, [tenant, storageClasses, dispatch]);\n\n const setFieldInfo = (fieldName: string, value: any) => {\n dispatch(\n setPoolField({\n page: \"setup\",\n field: fieldName,\n value: value,\n }),\n );\n };\n\n return (\n \n
\n New Pool Configuration\n \n Configure a new Pool to expand MinIO storage\n \n
\n\n \n ) => {\n const intValue = parseInt(e.target.value);\n\n if (e.target.validity.valid && !isNaN(intValue)) {\n setFieldInfo(\"numberOfNodes\", intValue);\n } else if (isNaN(intValue)) {\n setFieldInfo(\"numberOfNodes\", 0);\n }\n }}\n label=\"Number of Servers\"\n value={numberOfNodes}\n error={validationErrors[\"number_of_nodes\"] || \"\"}\n pattern={\"[0-9]*\"}\n />\n \n \n ) => {\n const intValue = parseInt(e.target.value);\n\n if (e.target.validity.valid && !isNaN(intValue)) {\n setFieldInfo(\"volumeSize\", intValue);\n } else if (isNaN(intValue)) {\n setFieldInfo(\"volumeSize\", 0);\n }\n }}\n label=\"Volume Size\"\n value={volumeSize}\n error={validationErrors[\"pool_size\"] || \"\"}\n pattern={\"[0-9]*\"}\n overlayObject={\n {}}\n unitSelected={\"Gi\"}\n unitsList={[{ label: \"Gi\", value: \"Gi\" }]}\n disabled={true}\n />\n }\n />\n \n \n ) => {\n const intValue = parseInt(e.target.value);\n\n if (e.target.validity.valid && !isNaN(intValue)) {\n setFieldInfo(\"volumesPerServer\", intValue);\n } else if (isNaN(intValue)) {\n setFieldInfo(\"volumesPerServer\", 0);\n }\n }}\n label=\"Volumes per Server\"\n value={volumesPerServer}\n error={validationErrors[\"volumes_per_server\"] || \"\"}\n pattern={\"[0-9]*\"}\n />\n \n \n ) => {\n setFieldInfo(\"storageClass\", e.target.value as string);\n }}\n label=\"Storage Class\"\n value={storageClass}\n options={storageClasses}\n disabled={storageClasses.length < 1}\n />\n \n \n
\n
\n
\n {niceBytes(instanceCapacity.toString(10))}\n
\n
Instance Capacity
\n
\n
\n
\n {niceBytes(totalCapacity.toString(10))}\n
\n
Total Capacity
\n
\n
\n
\n
\n );\n};\n\nexport default withStyles(styles)(PoolResources);\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useCallback, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, Paper } from \"@mui/material\";\nimport {\n createTenantCommon,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { clearValidationError } from \"../../../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\nimport FormSwitchWrapper from \"../../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { isPoolPageValid, setPoolField } from \"./addPoolSlice\";\nimport H3Section from \"../../../../Common/H3Section\";\n\ninterface IConfigureProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n configSectionItem: {\n marginRight: 15,\n\n \"& .multiContainer\": {\n border: \"1px solid red\",\n },\n },\n tenantCustomizationFields: {\n marginLeft: 30, // 2nd Level(15+15)\n width: \"88%\",\n margin: \"auto\",\n },\n containerItem: {\n marginRight: 15,\n },\n fieldGroup: {\n ...createTenantCommon.fieldGroup,\n paddingTop: 15,\n marginBottom: 25,\n },\n responsiveSectionItem: {\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n\n \"& div > div\": {\n marginBottom: 5,\n marginRight: 0,\n },\n },\n },\n\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst PoolConfiguration = ({ classes }: IConfigureProps) => {\n const dispatch = useAppDispatch();\n\n const securityContextEnabled = useSelector(\n (state: AppState) => state.addPool.configuration.securityContextEnabled,\n );\n const securityContext = useSelector(\n (state: AppState) => state.addPool.configuration.securityContext,\n );\n const customRuntime = useSelector(\n (state: AppState) => state.addPool.configuration.customRuntime,\n );\n const runtimeClassName = useSelector(\n (state: AppState) => state.addPool.configuration.runtimeClassName,\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n setPoolField({\n page: \"configuration\",\n field: field,\n value: value,\n }),\n );\n },\n [dispatch],\n );\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n if (securityContextEnabled) {\n customAccountValidation = [\n {\n fieldKey: \"pool_securityContext_runAsUser\",\n required: true,\n value: securityContext.runAsUser,\n customValidation:\n securityContext.runAsUser === \"\" ||\n parseInt(securityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"pool_securityContext_runAsGroup\",\n required: true,\n value: securityContext.runAsGroup,\n customValidation:\n securityContext.runAsGroup === \"\" ||\n parseInt(securityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"pool_securityContext_fsGroup\",\n required: true,\n value: securityContext.fsGroup!,\n customValidation:\n securityContext.fsGroup === \"\" ||\n parseInt(securityContext.fsGroup!) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n ];\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n dispatch(\n isPoolPageValid({\n page: \"configure\",\n status: Object.keys(commonVal).length === 0,\n }),\n );\n\n setValidationErrors(commonVal);\n }, [dispatch, securityContextEnabled, securityContext]);\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n
\n Configure\n \n Aditional Configurations for the new Pool\n \n
\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"securityContextEnabled\", checked);\n }}\n label={\"Security Context\"}\n />\n \n {securityContextEnabled && (\n \n
\n \n Pool's Security Context\n \n \n \n
\n ) => {\n updateField(\"securityContext\", {\n ...securityContext,\n runAsUser: e.target.value,\n });\n cleanValidation(\"pool_securityContext_runAsUser\");\n }}\n label=\"Run As User\"\n value={securityContext.runAsUser}\n required\n error={\n validationErrors[\"pool_securityContext_runAsUser\"] || \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"securityContext\", {\n ...securityContext,\n runAsGroup: e.target.value,\n });\n cleanValidation(\"pool_securityContext_runAsGroup\");\n }}\n label=\"Run As Group\"\n value={securityContext.runAsGroup}\n required\n error={\n validationErrors[\"pool_securityContext_runAsGroup\"] || \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"securityContext\", {\n ...securityContext,\n fsGroup: e.target.value,\n });\n cleanValidation(\"pool_securityContext_fsGroup\");\n }}\n label=\"FsGroup\"\n value={securityContext.fsGroup!}\n required\n error={\n validationErrors[\"pool_securityContext_fsGroup\"] || \"\"\n }\n min=\"0\"\n />\n
\n \n
\n
\n \n
\n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"securityContext\", {\n ...securityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n
\n
\n
\n
\n )}\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"customRuntime\", checked);\n }}\n label={\"Custom Runtime Configurations\"}\n />\n \n {customRuntime && (\n \n
\n \n Custom Runtime Configurations\n \n \n
\n ) => {\n updateField(\"runtimeClassName\", e.target.value);\n cleanValidation(\"tenant_runtime_runtimeClassName\");\n }}\n label=\"Runtime Class Name\"\n value={runtimeClassName}\n error={\n validationErrors[\"tenant_runtime_runtimeClassName\"] || \"\"\n }\n />\n
\n
\n
\n
\n )}\n
\n );\n};\n\nexport default withStyles(styles)(PoolConfiguration);\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, IconButton, Paper, SelectChangeEvent } from \"@mui/material\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\n\nimport {\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../../utils/validationFunctions\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport { LabelKeyPair } from \"../../../types\";\nimport RadioGroupSelector from \"../../../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport FormSwitchWrapper from \"../../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport api from \"../../../../../../common/api\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { AddIcon, RemoveIcon } from \"mds\";\nimport SelectWrapper from \"../../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport TolerationSelector from \"../../../../Common/TolerationSelector/TolerationSelector\";\nimport { setModalErrorSnackMessage } from \"../../../../../../systemSlice\";\nimport {\n addNewPoolToleration,\n isPoolPageValid,\n removePoolToleration,\n setPoolField,\n setPoolKeyValuePairs,\n setPoolTolerationInfo,\n} from \"./addPoolSlice\";\nimport H3Section from \"../../../../Common/H3Section\";\n\ninterface IAffinityProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n overlayAction: {\n marginLeft: 10,\n display: \"flex\",\n alignItems: \"center\",\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n affinityConfigField: {\n display: \"flex\",\n },\n affinityFieldLabel: {\n display: \"flex\",\n flexFlow: \"column\",\n flex: 1,\n },\n radioField: {\n display: \"flex\",\n alignItems: \"flex-start\",\n marginTop: 10,\n \"& div:first-child\": {\n display: \"flex\",\n flexFlow: \"column\",\n alignItems: \"baseline\",\n textAlign: \"left !important\",\n },\n },\n affinityLabelKey: {\n \"& div:first-child\": {\n marginBottom: 0,\n },\n },\n affinityLabelValue: {\n marginLeft: 10,\n \"& div:first-child\": {\n marginBottom: 0,\n },\n },\n rowActions: {\n display: \"flex\",\n alignItems: \"center\",\n },\n affinityRow: {\n marginBottom: 10,\n display: \"flex\",\n },\n ...modalBasic,\n ...wizardCommon,\n });\n\ninterface OptionPair {\n label: string;\n value: string;\n}\n\nconst Affinity = ({ classes }: IAffinityProps) => {\n const dispatch = useAppDispatch();\n\n const podAffinity = useSelector(\n (state: AppState) => state.addPool.affinity.podAffinity,\n );\n const nodeSelectorLabels = useSelector(\n (state: AppState) => state.addPool.affinity.nodeSelectorLabels,\n );\n const withPodAntiAffinity = useSelector(\n (state: AppState) => state.addPool.affinity.withPodAntiAffinity,\n );\n const keyValuePairs = useSelector(\n (state: AppState) => state.addPool.nodeSelectorPairs,\n );\n const tolerations = useSelector(\n (state: AppState) => state.addPool.tolerations,\n );\n\n const [validationErrors, setValidationErrors] = useState({});\n const [loading, setLoading] = useState(true);\n const [keyValueMap, setKeyValueMap] = useState<{ [key: string]: string[] }>(\n {},\n );\n const [keyOptions, setKeyOptions] = useState([]);\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n dispatch(\n setPoolField({\n page: \"affinity\",\n field: field,\n value: value,\n }),\n );\n },\n [dispatch],\n );\n\n useEffect(() => {\n if (loading) {\n api\n .invoke(\"GET\", `/api/v1/nodes/labels`)\n .then((res: { [key: string]: string[] }) => {\n setLoading(false);\n setKeyValueMap(res);\n let keys: OptionPair[] = [];\n for (let k in res) {\n keys.push({\n label: k,\n value: k,\n });\n }\n setKeyOptions(keys);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n dispatch(setModalErrorSnackMessage(err));\n setKeyValueMap({});\n });\n }\n }, [dispatch, loading]);\n\n useEffect(() => {\n if (keyValuePairs) {\n const vlr = keyValuePairs\n .filter((kvp) => kvp.key !== \"\")\n .map((kvp) => `${kvp.key}=${kvp.value}`)\n .filter((kvs, i, a) => a.indexOf(kvs) === i);\n const vl = vlr.join(\"&\");\n updateField(\"nodeSelectorLabels\", vl);\n }\n }, [keyValuePairs, updateField]);\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n\n if (podAffinity === \"nodeSelector\") {\n let valid = true;\n\n const splittedLabels = nodeSelectorLabels.split(\"&\");\n\n if (splittedLabels.length === 1 && splittedLabels[0] === \"\") {\n valid = false;\n }\n\n splittedLabels.forEach((item: string, index: number) => {\n const splitItem = item.split(\"=\");\n\n if (splitItem.length !== 2) {\n valid = false;\n }\n\n if (index + 1 !== splittedLabels.length) {\n if (splitItem[0] === \"\" || splitItem[1] === \"\") {\n valid = false;\n }\n }\n });\n\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"labels\",\n required: true,\n value: nodeSelectorLabels,\n customValidation: !valid,\n customValidationMessage:\n \"You need to add at least one label key-pair\",\n },\n ];\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n dispatch(\n isPoolPageValid({\n page: \"affinity\",\n status: Object.keys(commonVal).length === 0,\n }),\n );\n\n setValidationErrors(commonVal);\n }, [dispatch, podAffinity, nodeSelectorLabels]);\n\n const updateToleration = (index: number, field: string, value: any) => {\n const alterToleration = { ...tolerations[index], [field]: value };\n\n dispatch(\n setPoolTolerationInfo({\n index: index,\n tolerationValue: alterToleration,\n }),\n );\n };\n\n return (\n \n
\n Pod Placement\n \n Configure how pods will be assigned to nodes\n \n
\n \n \n
Type
\n \n MinIO supports multiple configurations for Pod Affinity\n \n \n {\n updateField(\"podAffinity\", e.target.value);\n }}\n selectorOptions={[\n { label: \"None\", value: \"none\" },\n { label: \"Default (Pod Anti-Affinity)\", value: \"default\" },\n { label: \"Node Selector\", value: \"nodeSelector\" },\n ]}\n />\n \n
\n
\n {podAffinity === \"nodeSelector\" && (\n \n
\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"withPodAntiAffinity\", checked);\n }}\n label={\"With Pod Anti-Affinity\"}\n />\n \n \n

Labels

\n {validationErrors[\"labels\"]}\n \n {keyValuePairs &&\n keyValuePairs.map((kvp, i) => {\n return (\n \n \n {keyOptions.length > 0 && (\n ) => {\n const newKey = e.target.value as string;\n const newLKP: LabelKeyPair = {\n key: newKey,\n value: keyValueMap[newKey][0],\n };\n const arrCp: LabelKeyPair[] = [...keyValuePairs];\n arrCp[i] = newLKP;\n dispatch(setPoolKeyValuePairs(arrCp));\n }}\n id=\"select-access-policy\"\n name=\"select-access-policy\"\n label={\"\"}\n value={kvp.key}\n options={keyOptions}\n />\n )}\n {keyOptions.length === 0 && (\n {\n const arrCp: LabelKeyPair[] = [...keyValuePairs];\n arrCp[i] = {\n key: arrCp[i].key,\n value: e.target.value as string,\n };\n dispatch(setPoolKeyValuePairs(arrCp));\n }}\n index={i}\n placeholder={\"Key\"}\n />\n )}\n \n \n {keyOptions.length > 0 && (\n ) => {\n const arrCp: LabelKeyPair[] = [...keyValuePairs];\n arrCp[i] = {\n key: arrCp[i].key,\n value: e.target.value as string,\n };\n dispatch(setPoolKeyValuePairs(arrCp));\n }}\n id=\"select-access-policy\"\n name=\"select-access-policy\"\n label={\"\"}\n value={kvp.value}\n options={\n keyValueMap[kvp.key]\n ? keyValueMap[kvp.key].map((v) => {\n return { label: v, value: v };\n })\n : []\n }\n />\n )}\n {keyOptions.length === 0 && (\n {\n const arrCp: LabelKeyPair[] = [...keyValuePairs];\n arrCp[i] = {\n key: arrCp[i].key,\n value: e.target.value as string,\n };\n dispatch(setPoolKeyValuePairs(arrCp));\n }}\n index={i}\n placeholder={\"value\"}\n />\n )}\n \n \n
\n {\n const arrCp = [...keyValuePairs];\n if (keyOptions.length > 0) {\n arrCp.push({\n key: keyOptions[0].value,\n value: keyValueMap[keyOptions[0].value][0],\n });\n } else {\n arrCp.push({ key: \"\", value: \"\" });\n }\n\n dispatch(setPoolKeyValuePairs(arrCp));\n }}\n >\n \n \n
\n {keyValuePairs.length > 1 && (\n
\n {\n const arrCp = keyValuePairs.filter(\n (item, index) => index !== i,\n );\n dispatch(setPoolKeyValuePairs(arrCp));\n }}\n >\n \n \n
\n )}\n
\n
\n );\n })}\n
\n \n
\n )}\n \n \n

Tolerations

\n \n {validationErrors[\"tolerations\"]}\n \n \n {tolerations &&\n tolerations.map((tol, i) => {\n return (\n \n {\n updateToleration(i, \"effect\", value);\n }}\n tolerationKey={tol.key}\n onTolerationKeyChange={(value) => {\n updateToleration(i, \"key\", value);\n }}\n operator={tol.operator}\n onOperatorChange={(value) => {\n updateToleration(i, \"operator\", value);\n }}\n value={tol.value}\n onValueChange={(value) => {\n updateToleration(i, \"value\", value);\n }}\n tolerationSeconds={tol.tolerationSeconds?.seconds || 0}\n onSecondsChange={(value) => {\n updateToleration(i, \"tolerationSeconds\", {\n seconds: value,\n });\n }}\n index={i}\n />\n
\n {\n dispatch(addNewPoolToleration());\n }}\n disabled={i !== tolerations.length - 1}\n >\n \n \n
\n\n
\n dispatch(removePoolToleration(i))}\n disabled={tolerations.length <= 1}\n >\n \n \n
\n
\n );\n })}\n
\n
\n \n
\n );\n};\n\nexport default withStyles(styles)(Affinity);\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Button } from \"mds\";\nimport React from \"react\";\nimport { addPoolAsync } from \"./addPoolThunks\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\n\nconst AddPoolCreateButton = () => {\n const dispatch = useAppDispatch();\n\n const selectedStorageClass = useSelector(\n (state: AppState) => state.addPool.setup.storageClass,\n );\n const validPages = useSelector((state: AppState) => state.addPool.validPages);\n\n const sending = useSelector((state: AppState) => state.addPool.sending);\n const requiredPages = [\"setup\", \"affinity\", \"configure\"];\n const enabled =\n !sending &&\n selectedStorageClass !== \"\" &&\n requiredPages.every((v) => validPages.includes(v));\n return (\n {\n dispatch(addPoolAsync());\n }}\n disabled={!enabled}\n key={`button-AddTenant-Create`}\n label={\"Create\"}\n />\n );\n};\n\nexport default AddPoolCreateButton;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { useNavigate } from \"react-router-dom\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport Grid from \"@mui/material/Grid\";\nimport { niceBytes } from \"../../../../../../common/utils\";\nimport { LinearProgress } from \"@mui/material\";\nimport PageLayout from \"../../../../Common/Layout/PageLayout\";\nimport GenericWizard from \"../../../../Common/GenericWizard/GenericWizard\";\nimport { IWizardElement } from \"../../../../Common/GenericWizard/types\";\nimport PoolResources from \"./PoolResources\";\nimport ScreenTitle from \"../../../../Common/ScreenTitle/ScreenTitle\";\nimport { BackLink, TenantsIcon } from \"mds\";\n\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { useSelector } from \"react-redux\";\nimport PoolConfiguration from \"./PoolConfiguration\";\nimport PoolPodPlacement from \"./PoolPodPlacement\";\n\nimport { resetPoolForm } from \"./addPoolSlice\";\nimport AddPoolCreateButton from \"./AddPoolCreateButton\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport PageHeaderWrapper from \"../../../../Common/PageHeaderWrapper/PageHeaderWrapper\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n bottomContainer: {\n display: \"flex\",\n flexGrow: 1,\n alignItems: \"center\",\n margin: \"auto\",\n justifyContent: \"center\",\n \"& div\": {\n width: 150,\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n },\n pageBox: {\n border: \"1px solid #EAEAEA\",\n borderTop: 0,\n },\n addPoolTitle: {\n border: \"1px solid #EAEAEA\",\n borderBottom: 0,\n },\n ...formFieldStyles,\n ...modalStyleUtils,\n }),\n);\n\nconst AddPool = () => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n const classes = useStyles();\n\n const tenant = useSelector((state: AppState) => state.tenants.tenantInfo);\n const sending = useSelector((state: AppState) => state.addPool.sending);\n const navigateTo = useSelector((state: AppState) => state.addPool.navigateTo);\n\n const poolsURL = `/namespaces/${tenant?.namespace || \"\"}/tenants/${\n tenant?.name || \"\"\n }/pools`;\n\n useEffect(() => {\n if (navigateTo !== \"\") {\n const goTo = `${navigateTo}`;\n dispatch(resetPoolForm());\n navigate(goTo);\n }\n }, [navigateTo, navigate, dispatch]);\n\n const cancelButton = {\n label: \"Cancel\",\n type: \"other\",\n enabled: true,\n action: () => {\n dispatch(resetPoolForm());\n navigate(poolsURL);\n },\n };\n\n const createButton = {\n componentRender: ,\n };\n\n const wizardSteps: IWizardElement[] = [\n {\n label: \"Setup\",\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Configuration\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Pod Placement\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n ];\n\n return (\n \n \n \n navigate(poolsURL)}\n />\n \n }\n />\n \n \n }\n title={`Add New Pool to ${tenant?.name || \"\"}`}\n subTitle={\n \n Namespace: {tenant?.namespace || \"\"} / Current Capacity:{\" \"}\n {niceBytes((tenant?.total_size || 0).toString(10))}\n \n }\n />\n \n {sending && (\n \n \n \n )}\n \n \n \n \n \n \n );\n};\n\nexport default AddPool;\n"],"names":["withStyles","theme","createStyles","_objectSpread","bottomContainer","display","flexGrow","alignItems","margin","justifyContent","width","flexFlow","factorElements","marginLeft","sizeNumber","fontSize","fontWeight","textAlign","sizeDescription","color","formFieldStyles","wizardCommon","_ref","classes","dispatch","useAppDispatch","tenant","useSelector","state","tenants","tenantInfo","storageClasses","addPool","numberOfNodes","setup","toString","storageClass","volumeSize","volumesPerServer","_useState","useState","_useState2","_slicedToArray","validationErrors","setValidationErrors","instanceCapacity","parseInt","totalCapacity","useEffect","customAccountValidation","fieldKey","required","value","customValidation","isNaN","customValidationMessage","commonVal","commonFormValidation","isPoolPageValid","page","status","Object","keys","length","api","invoke","concat","namespace","then","res","newStorage","get","map","name","split","label","setPoolField","field","setPoolStorageClasses","catch","err","console","error","setFieldInfo","fieldName","_jsxs","Paper","className","paperWrapper","children","headerElement","_jsx","H3Section","descriptionText","Grid","item","xs","formFieldRow","InputBoxWrapper","id","onChange","e","intValue","target","validity","valid","pattern","overlayObject","InputUnitMenu","onUnitChange","unitSelected","unitsList","disabled","SelectWrapper","options","niceBytes","configSectionItem","marginRight","border","tenantCustomizationFields","containerItem","fieldGroup","createTenantCommon","paddingTop","marginBottom","responsiveSectionItem","modalBasic","securityContextEnabled","configuration","securityContext","customRuntime","runtimeClassName","updateField","useCallback","runAsUser","runAsGroup","fsGroup","cleanValidation","clearValidationError","FormSwitchWrapper","checked","multiContainer","type","min","runAsNonRoot","sx","marginTop","overlayAction","maxWidth","maxHeight","background","affinityConfigField","affinityFieldLabel","flex","radioField","affinityLabelKey","affinityLabelValue","rowActions","affinityRow","podAffinity","affinity","nodeSelectorLabels","withPodAntiAffinity","keyValuePairs","nodeSelectorPairs","tolerations","_useState3","_useState4","loading","setLoading","_useState5","_useState6","keyValueMap","setKeyValueMap","_useState7","_useState8","keyOptions","setKeyOptions","k","push","setModalErrorSnackMessage","vl","filter","kvp","key","kvs","i","a","indexOf","join","splittedLabels","forEach","index","splitItem","_toConsumableArray","updateToleration","alterToleration","_defineProperty","setPoolTolerationInfo","tolerationValue","affinityHelpText","RadioGroupSelector","currentSelection","selectorOptions","Fragment","container","newKey","newLKP","arrCp","setPoolKeyValuePairs","placeholder","v","IconButton","size","onClick","AddIcon","RemoveIcon","tol","_tol$tolerationSecond","TolerationSelector","effect","onEffectChange","tolerationKey","onTolerationKeyChange","operator","onOperatorChange","onValueChange","tolerationSeconds","seconds","onSecondsChange","addNewPoolToleration","removePoolToleration","selectedStorageClass","validPages","enabled","sending","every","includes","Button","variant","addPoolAsync","useStyles","makeStyles","pageBox","borderTop","addPoolTitle","borderBottom","modalStyleUtils","navigate","useNavigate","navigateTo","poolsURL","goTo","resetPoolForm","cancelButton","action","createButton","componentRender","AddPoolCreateButton","wizardSteps","PoolResources","buttons","advancedOnly","PoolConfiguration","PoolPodPlacement","PageHeaderWrapper","BackLink","PageLayout","ScreenTitle","icon","TenantsIcon","title","subTitle","total_size","LinearProgress","GenericWizard"],"sourceRoot":""} \ No newline at end of file diff --git a/web-app/build/static/js/692.8957e493.chunk.js b/web-app/build/static/js/692.8957e493.chunk.js deleted file mode 100644 index 31219b851bc..00000000000 --- a/web-app/build/static/js/692.8957e493.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[692],{99604:function(e,n,t){t.r(n),t.d(n,{default:function(){return D}});var a=t(1413),i=t(72791),o=t(57689),s=t(11135),r=t(23814),l=t(61889),c=t(45248),u=t(57482),d=t(74794),f=t(28371),m=t(29439),x=t(26181),p=t.n(x),v=t(25787),g=t(21435),h=t(35527),y=t(81207),j=t(90673),b=t(41320),C=t(78687),Z=t(40968),N=t(56578),_=t(45830),P=t(80007),A=t(80184),S=(0,v.Z)((function(e){return(0,s.Z)((0,a.Z)((0,a.Z)({bottomContainer:{display:"flex",flexGrow:1,alignItems:"center",margin:"auto",justifyContent:"center","& div":{width:150,"@media (max-width: 900px)":{flexFlow:"column"}}},factorElements:{display:"flex",justifyContent:"flex-start",marginLeft:30},sizeNumber:{fontSize:35,fontWeight:700,textAlign:"center"},sizeDescription:{fontSize:14,color:"#777",textAlign:"center"}},r.DF),r.AK))}))((function(e){var n=e.classes,t=(0,b.TL)(),a=(0,C.v9)((function(e){return e.tenants.tenantInfo})),o=(0,C.v9)((function(e){return e.addPool.storageClasses})),s=(0,C.v9)((function(e){return e.addPool.setup.numberOfNodes.toString()})),r=(0,C.v9)((function(e){return e.addPool.setup.storageClass})),u=(0,C.v9)((function(e){return e.addPool.setup.volumeSize.toString()})),d=(0,C.v9)((function(e){return e.addPool.setup.volumesPerServer.toString()})),f=(0,i.useState)({}),x=(0,m.Z)(f,2),v=x[0],S=x[1],k=1073741824*parseInt(u)*parseInt(d),I=k*parseInt(s);(0,i.useEffect)((function(){var e=[{fieldKey:"number_of_nodes",required:!0,value:s.toString(),customValidation:parseInt(s)<1||isNaN(parseInt(s)),customValidationMessage:"Number of servers must be at least 1"},{fieldKey:"pool_size",required:!0,value:u.toString(),customValidation:parseInt(u)<1||isNaN(parseInt(u)),customValidationMessage:"Pool Size cannot be 0"},{fieldKey:"volumes_per_server",required:!0,value:d.toString(),customValidation:parseInt(d)<1||isNaN(parseInt(d)),customValidationMessage:"1 volume or more are required"}],n=(0,Z.R)(e);t((0,_.LJ)({page:"setup",status:0===Object.keys(n).length})),S(n)}),[t,s,u,d,r]),(0,i.useEffect)((function(){0===o.length&&a&&y.Z.invoke("GET","/api/v1/namespaces/".concat(a.namespace,"/resourcequotas/").concat(a.namespace,"-storagequota")).then((function(e){var n=p()(e,"elements",[]).map((function(e){var n=p()(e,"name","").split(".storageclass.storage.k8s.io/requests.storage")[0];return{label:n,value:n}}));t((0,_.oo)({page:"setup",field:"storageClass",value:n[0].value})),t((0,_.TU)(n))})).catch((function(e){console.error(e)}))}),[a,o,t]);var w=function(e,n){t((0,_.oo)({page:"setup",field:e,value:n}))};return(0,A.jsxs)(h.Z,{className:n.paperWrapper,children:[(0,A.jsxs)("div",{className:n.headerElement,children:[(0,A.jsx)(P.Z,{children:"New Pool Configuration"}),(0,A.jsx)("span",{className:n.descriptionText,children:"Configure a new Pool to expand MinIO storage"})]}),(0,A.jsx)(l.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(g.Z,{id:"number_of_nodes",name:"number_of_nodes",onChange:function(e){var n=parseInt(e.target.value);e.target.validity.valid&&!isNaN(n)?w("numberOfNodes",n):isNaN(n)&&w("numberOfNodes",0)},label:"Number of Servers",value:s,error:v.number_of_nodes||"",pattern:"[0-9]*"})}),(0,A.jsx)(l.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(g.Z,{id:"pool_size",name:"pool_size",onChange:function(e){var n=parseInt(e.target.value);e.target.validity.valid&&!isNaN(n)?w("volumeSize",n):isNaN(n)&&w("volumeSize",0)},label:"Volume Size",value:u,error:v.pool_size||"",pattern:"[0-9]*",overlayObject:(0,A.jsx)(N.Z,{id:"quota_unit",onUnitChange:function(){},unitSelected:"Gi",unitsList:[{label:"Gi",value:"Gi"}],disabled:!0})})}),(0,A.jsx)(l.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(g.Z,{id:"volumes_per_sever",name:"volumes_per_sever",onChange:function(e){var n=parseInt(e.target.value);e.target.validity.valid&&!isNaN(n)?w("volumesPerServer",n):isNaN(n)&&w("volumesPerServer",0)},label:"Volumes per Server",value:d,error:v.volumes_per_server||"",pattern:"[0-9]*"})}),(0,A.jsx)(l.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,A.jsx)(j.Z,{id:"storage_class",name:"storage_class",onChange:function(e){w("storageClass",e.target.value)},label:"Storage Class",value:r,options:o,disabled:o.length<1})}),(0,A.jsx)(l.ZP,{item:!0,xs:12,className:n.bottomContainer,children:(0,A.jsxs)("div",{className:n.factorElements,children:[(0,A.jsxs)("div",{children:[(0,A.jsx)("div",{className:n.sizeNumber,children:(0,c.ae)(k.toString(10))}),(0,A.jsx)("div",{className:n.sizeDescription,children:"Instance Capacity"})]}),(0,A.jsxs)("div",{children:[(0,A.jsx)("div",{className:n.sizeNumber,children:(0,c.ae)(I.toString(10))}),(0,A.jsx)("div",{className:n.sizeDescription,children:"Total Capacity"})]})]})})]})})),k=t(14917),I=t(75952),w=t(84741),F=t(37516),G=(0,v.Z)((function(e){return(0,s.Z)((0,a.Z)((0,a.Z)({configSectionItem:{marginRight:15,"& .multiContainer":{border:"1px solid red"}},tenantCustomizationFields:{marginLeft:30,width:"88%",margin:"auto"},containerItem:{marginRight:15},fieldGroup:(0,a.Z)((0,a.Z)({},r.QV.fieldGroup),{},{paddingTop:15,marginBottom:25}),responsiveSectionItem:{"@media (max-width: 900px)":{flexFlow:"column",alignItems:"flex-start","& div > div":{marginBottom:5,marginRight:0}}}},r.oO),r.AK))}))((function(e){var n=e.classes,t=(0,b.TL)(),o=(0,C.v9)((function(e){return e.addPool.configuration.securityContextEnabled})),s=(0,C.v9)((function(e){return e.addPool.configuration.securityContext})),r=(0,C.v9)((function(e){return e.addPool.configuration.customRuntime})),c=(0,C.v9)((function(e){return e.addPool.configuration.runtimeClassName})),u=(0,i.useState)({}),d=(0,m.Z)(u,2),f=d[0],x=d[1],p=(0,i.useCallback)((function(e,n){t((0,_.oo)({page:"configuration",field:e,value:n}))}),[t]);(0,i.useEffect)((function(){var e=[];o&&(e=[{fieldKey:"pool_securityContext_runAsUser",required:!0,value:s.runAsUser,customValidation:""===s.runAsUser||parseInt(s.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"pool_securityContext_runAsGroup",required:!0,value:s.runAsGroup,customValidation:""===s.runAsGroup||parseInt(s.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"pool_securityContext_fsGroup",required:!0,value:s.fsGroup,customValidation:""===s.fsGroup||parseInt(s.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"}]);var n=(0,Z.R)(e);t((0,_.LJ)({page:"configure",status:0===Object.keys(n).length})),x(n)}),[t,o,s]);var v=function(e){x((0,w.he)(f,e))};return(0,A.jsxs)(h.Z,{className:n.paperWrapper,children:[(0,A.jsxs)("div",{className:n.headerElement,children:[(0,A.jsx)(P.Z,{children:"Configure"}),(0,A.jsx)("span",{className:n.descriptionText,children:"Aditional Configurations for the new Pool"})]}),(0,A.jsx)(l.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,A.jsx)(F.Z,{value:"tenantConfig",id:"pool_configuration",name:"pool_configuration",checked:o,onChange:function(e){var n=e.target.checked;p("securityContextEnabled",n)},label:"Security Context"})}),o&&(0,A.jsx)(l.ZP,{item:!0,xs:12,className:n.tenantCustomizationFields,children:(0,A.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,A.jsx)("legend",{className:n.descriptionText,children:"Pool's Security Context"}),(0,A.jsx)(l.ZP,{item:!0,xs:12,className:"".concat(n.configSectionItem),children:(0,A.jsxs)("div",{className:"".concat(n.multiContainer," ").concat(n.responsiveSectionItem),children:[(0,A.jsx)("div",{className:n.containerItem,children:(0,A.jsx)(g.Z,{type:"number",id:"pool_securityContext_runAsUser",name:"pool_securityContext_runAsUser",onChange:function(e){p("securityContext",(0,a.Z)((0,a.Z)({},s),{},{runAsUser:e.target.value})),v("pool_securityContext_runAsUser")},label:"Run As User",value:s.runAsUser,required:!0,error:f.pool_securityContext_runAsUser||"",min:"0"})}),(0,A.jsx)("div",{className:n.containerItem,children:(0,A.jsx)(g.Z,{type:"number",id:"pool_securityContext_runAsGroup",name:"pool_securityContext_runAsGroup",onChange:function(e){p("securityContext",(0,a.Z)((0,a.Z)({},s),{},{runAsGroup:e.target.value})),v("pool_securityContext_runAsGroup")},label:"Run As Group",value:s.runAsGroup,required:!0,error:f.pool_securityContext_runAsGroup||"",min:"0"})}),(0,A.jsx)("div",{className:n.containerItem,children:(0,A.jsx)(g.Z,{type:"number",id:"pool_securityContext_fsGroup",name:"pool_securityContext_fsGroup",onChange:function(e){p("securityContext",(0,a.Z)((0,a.Z)({},s),{},{fsGroup:e.target.value})),v("pool_securityContext_fsGroup")},label:"FsGroup",value:s.fsGroup,required:!0,error:f.pool_securityContext_fsGroup||"",min:"0"})})]})}),(0,A.jsx)("br",{}),(0,A.jsx)(l.ZP,{item:!0,xs:12,className:n.configSectionItem,children:(0,A.jsx)("div",{className:n.multiContainer,children:(0,A.jsx)(F.Z,{value:"securityContextRunAsNonRoot",id:"pool_securityContext_runAsNonRoot",name:"pool_securityContext_runAsNonRoot",checked:s.runAsNonRoot,onChange:function(e){var n=e.target.checked;p("securityContext",(0,a.Z)((0,a.Z)({},s),{},{runAsNonRoot:n}))},label:"Do not run as Root"})})})]})}),(0,A.jsx)(l.ZP,{item:!0,xs:12,className:n.configSectionItem,sx:{marginTop:"10px"},children:(0,A.jsx)(F.Z,{value:"customRuntime",id:"tenant_custom_runtime",name:"tenant_custom_runtime",checked:r,onChange:function(e){var n=e.target.checked;p("customRuntime",n)},label:"Custom Runtime Configurations"})}),r&&(0,A.jsx)(l.ZP,{item:!0,xs:12,className:n.tenantCustomizationFields,children:(0,A.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,A.jsx)("legend",{className:n.descriptionText,children:"Custom Runtime Configurations"}),(0,A.jsx)(l.ZP,{item:!0,xs:12,className:"".concat(n.configSectionItem),children:(0,A.jsx)("div",{className:n.containerItem,children:(0,A.jsx)(g.Z,{id:"tenant_runtime_runtimeClassName",name:"tenant_runtime_runtimeClassName",onChange:function(e){p("runtimeClassName",e.target.value),v("tenant_runtime_runtimeClassName")},label:"Runtime Class Name",value:c,error:f.tenant_runtime_runtimeClassName||""})})})]})})]})})),R=t(4942),z=t(93433),T=t(13400),E=t(83679),L=t(45660),V=t(87995),O=(0,v.Z)((function(e){return(0,s.Z)((0,a.Z)((0,a.Z)({overlayAction:{marginLeft:10,display:"flex",alignItems:"center","& svg":{maxWidth:15,maxHeight:15},"& button":{background:"#EAEAEA"}},affinityConfigField:{display:"flex"},affinityFieldLabel:{display:"flex",flexFlow:"column",flex:1},radioField:{display:"flex",alignItems:"flex-start",marginTop:10,"& div:first-child":{display:"flex",flexFlow:"column",alignItems:"baseline",textAlign:"left !important"}},affinityLabelKey:{"& div:first-child":{marginBottom:0}},affinityLabelValue:{marginLeft:10,"& div:first-child":{marginBottom:0}},rowActions:{display:"flex",alignItems:"center"},affinityRow:{marginBottom:10,display:"flex"}},r.oO),r.AK))}))((function(e){var n=e.classes,t=(0,b.TL)(),o=(0,C.v9)((function(e){return e.addPool.affinity.podAffinity})),s=(0,C.v9)((function(e){return e.addPool.affinity.nodeSelectorLabels})),r=(0,C.v9)((function(e){return e.addPool.affinity.withPodAntiAffinity})),c=(0,C.v9)((function(e){return e.addPool.nodeSelectorPairs})),u=(0,C.v9)((function(e){return e.addPool.tolerations})),d=(0,i.useState)({}),f=(0,m.Z)(d,2),x=f[0],p=f[1],v=(0,i.useState)(!0),N=(0,m.Z)(v,2),S=N[0],k=N[1],w=(0,i.useState)({}),G=(0,m.Z)(w,2),O=G[0],U=G[1],q=(0,i.useState)([]),K=(0,m.Z)(q,2),M=K[0],B=K[1],D=(0,i.useCallback)((function(e,n){t((0,_.oo)({page:"affinity",field:e,value:n}))}),[t]);(0,i.useEffect)((function(){S&&y.Z.invoke("GET","/api/v1/nodes/labels").then((function(e){k(!1),U(e);var n=[];for(var t in e)n.push({label:t,value:t});B(n)})).catch((function(e){k(!1),t((0,V.zb)(e)),U({})}))}),[t,S]),(0,i.useEffect)((function(){if(c){var e=c.filter((function(e){return""!==e.key})).map((function(e){return"".concat(e.key,"=").concat(e.value)})).filter((function(e,n,t){return t.indexOf(e)===n})).join("&");D("nodeSelectorLabels",e)}}),[c,D]),(0,i.useEffect)((function(){var e=[];if("nodeSelector"===o){var n=!0,a=s.split("&");1===a.length&&""===a[0]&&(n=!1),a.forEach((function(e,t){var i=e.split("=");2!==i.length&&(n=!1),t+1!==a.length&&(""!==i[0]&&""!==i[1]||(n=!1))})),e=[].concat((0,z.Z)(e),[{fieldKey:"labels",required:!0,value:s,customValidation:!n,customValidationMessage:"You need to add at least one label key-pair"}])}var i=(0,Z.R)(e);t((0,_.LJ)({page:"affinity",status:0===Object.keys(i).length})),p(i)}),[t,o,s]);var W=function(e,n,i){var o=(0,a.Z)((0,a.Z)({},u[e]),{},(0,R.Z)({},n,i));t((0,_.fu)({index:e,tolerationValue:o}))};return(0,A.jsxs)(h.Z,{className:n.paperWrapper,children:[(0,A.jsxs)("div",{className:n.headerElement,children:[(0,A.jsx)(P.Z,{children:"Pod Placement"}),(0,A.jsx)("span",{className:n.descriptionText,children:"Configure how pods will be assigned to nodes"})]}),(0,A.jsx)(l.ZP,{item:!0,xs:12,className:n.affinityConfigField,children:(0,A.jsxs)(l.ZP,{item:!0,className:n.affinityFieldLabel,children:[(0,A.jsx)("div",{className:n.label,children:"Type"}),(0,A.jsx)("div",{className:"".concat(n.descriptionText," ").concat(n.affinityHelpText),children:"MinIO supports multiple configurations for Pod Affinity"}),(0,A.jsx)(l.ZP,{item:!0,className:n.radioField,children:(0,A.jsx)(E.Z,{currentSelection:o,id:"affinity-options",name:"affinity-options",label:" ",onChange:function(e){D("podAffinity",e.target.value)},selectorOptions:[{label:"None",value:"none"},{label:"Default (Pod Anti-Affinity)",value:"default"},{label:"Node Selector",value:"nodeSelector"}]})})]})}),"nodeSelector"===o&&(0,A.jsxs)(i.Fragment,{children:[(0,A.jsx)("br",{}),(0,A.jsx)(l.ZP,{item:!0,xs:12,children:(0,A.jsx)(F.Z,{value:"with_pod_anti_affinity",id:"with_pod_anti_affinity",name:"with_pod_anti_affinity",checked:r,onChange:function(e){var n=e.target.checked;D("withPodAntiAffinity",n)},label:"With Pod Anti-Affinity"})}),(0,A.jsxs)(l.ZP,{item:!0,xs:12,children:[(0,A.jsx)("h3",{children:"Labels"}),(0,A.jsx)("span",{className:n.error,children:x.labels}),(0,A.jsx)(l.ZP,{container:!0,children:c&&c.map((function(e,a){return(0,A.jsxs)(l.ZP,{item:!0,xs:12,className:n.affinityRow,children:[(0,A.jsxs)(l.ZP,{item:!0,xs:5,className:n.affinityLabelKey,children:[M.length>0&&(0,A.jsx)(j.Z,{onChange:function(e){var n=e.target.value,i={key:n,value:O[n][0]},o=(0,z.Z)(c);o[a]=i,t((0,_.bF)(o))},id:"select-access-policy",name:"select-access-policy",label:"",value:e.key,options:M}),0===M.length&&(0,A.jsx)(g.Z,{id:"nodeselector-key-".concat(a.toString()),label:"",name:"nodeselector-".concat(a.toString()),value:e.key,onChange:function(e){var n=(0,z.Z)(c);n[a]={key:n[a].key,value:e.target.value},t((0,_.bF)(n))},index:a,placeholder:"Key"})]}),(0,A.jsxs)(l.ZP,{item:!0,xs:5,className:n.affinityLabelValue,children:[M.length>0&&(0,A.jsx)(j.Z,{onChange:function(e){var n=(0,z.Z)(c);n[a]={key:n[a].key,value:e.target.value},t((0,_.bF)(n))},id:"select-access-policy",name:"select-access-policy",label:"",value:e.value,options:O[e.key]?O[e.key].map((function(e){return{label:e,value:e}})):[]}),0===M.length&&(0,A.jsx)(g.Z,{id:"nodeselector-value-".concat(a.toString()),label:"",name:"nodeselector-".concat(a.toString()),value:e.value,onChange:function(e){var n=(0,z.Z)(c);n[a]={key:n[a].key,value:e.target.value},t((0,_.bF)(n))},index:a,placeholder:"value"})]}),(0,A.jsxs)(l.ZP,{item:!0,xs:2,className:n.rowActions,children:[(0,A.jsx)("div",{className:n.overlayAction,children:(0,A.jsx)(T.Z,{size:"small",onClick:function(){var e=(0,z.Z)(c);M.length>0?e.push({key:M[0].value,value:O[M[0].value][0]}):e.push({key:"",value:""}),t((0,_.bF)(e))},children:(0,A.jsx)(I.dtP,{})})}),c.length>1&&(0,A.jsx)("div",{className:n.overlayAction,children:(0,A.jsx)(T.Z,{size:"small",onClick:function(){var e=c.filter((function(e,n){return n!==a}));t((0,_.bF)(e))},children:(0,A.jsx)(I.HFL,{})})})]})]},"affinity-keyVal-".concat(a.toString()))}))})]})]}),(0,A.jsx)(l.ZP,{item:!0,xs:12,className:n.affinityConfigField,children:(0,A.jsxs)(l.ZP,{item:!0,className:n.affinityFieldLabel,children:[(0,A.jsx)("h3",{children:"Tolerations"}),(0,A.jsx)("span",{className:n.error,children:x.tolerations}),(0,A.jsx)(l.ZP,{container:!0,children:u&&u.map((function(e,a){var i;return(0,A.jsxs)(l.ZP,{item:!0,xs:12,className:n.affinityRow,children:[(0,A.jsx)(L.Z,{effect:e.effect,onEffectChange:function(e){W(a,"effect",e)},tolerationKey:e.key,onTolerationKeyChange:function(e){W(a,"key",e)},operator:e.operator,onOperatorChange:function(e){W(a,"operator",e)},value:e.value,onValueChange:function(e){W(a,"value",e)},tolerationSeconds:(null===(i=e.tolerationSeconds)||void 0===i?void 0:i.seconds)||0,onSecondsChange:function(e){W(a,"tolerationSeconds",{seconds:e})},index:a}),(0,A.jsx)("div",{className:n.overlayAction,children:(0,A.jsx)(T.Z,{size:"small",onClick:function(){t((0,_.hw)())},disabled:a!==u.length-1,children:(0,A.jsx)(I.dtP,{})})}),(0,A.jsx)("div",{className:n.overlayAction,children:(0,A.jsx)(T.Z,{size:"small",onClick:function(){return t((0,_.GF)(a))},disabled:u.length<=1,children:(0,A.jsx)(I.HFL,{})})})]},"affinity-keyVal-".concat(a.toString()))}))})]})})]})})),U=t(85617),q=function(){var e=(0,b.TL)(),n=(0,C.v9)((function(e){return e.addPool.setup.storageClass})),t=(0,C.v9)((function(e){return e.addPool.validPages})),a=!(0,C.v9)((function(e){return e.addPool.sending}))&&""!==n&&["setup","affinity","configure"].every((function(e){return t.includes(e)}));return(0,A.jsx)(I.zxk,{id:"wizard-button-Create",variant:"callAction",onClick:function(){e((0,U.P)())},disabled:!a,label:"Create"},"button-AddTenant-Create")},K=t(72455),M=t(47974),B=(0,K.Z)((function(e){return(0,s.Z)((0,a.Z)((0,a.Z)({bottomContainer:{display:"flex",flexGrow:1,alignItems:"center",margin:"auto",justifyContent:"center","& div":{width:150,"@media (max-width: 900px)":{flexFlow:"column"}}},pageBox:{border:"1px solid #EAEAEA",borderTop:0},addPoolTitle:{border:"1px solid #EAEAEA",borderBottom:0}},r.DF),r.ID))})),D=function(){var e=(0,b.TL)(),n=(0,o.s0)(),t=B(),a=(0,C.v9)((function(e){return e.tenants.tenantInfo})),s=(0,C.v9)((function(e){return e.addPool.sending})),r=(0,C.v9)((function(e){return e.addPool.navigateTo})),m="/namespaces/".concat((null===a||void 0===a?void 0:a.namespace)||"","/tenants/").concat((null===a||void 0===a?void 0:a.name)||"","/pools");(0,i.useEffect)((function(){if(""!==r){var t="".concat(r);e((0,_.bU)()),n(t)}}),[r,n,e]);var x={label:"Cancel",type:"other",enabled:!0,action:function(){e((0,_.bU)()),n(m)}},p={componentRender:(0,A.jsx)(q,{},"add-pool-crate")},v=[{label:"Setup",componentRender:(0,A.jsx)(S,{}),buttons:[x,p]},{label:"Configuration",advancedOnly:!0,componentRender:(0,A.jsx)(G,{}),buttons:[x,p]},{label:"Pod Placement",advancedOnly:!0,componentRender:(0,A.jsx)(O,{}),buttons:[x,p]}];return(0,A.jsx)(i.Fragment,{children:(0,A.jsxs)(l.ZP,{item:!0,xs:12,children:[(0,A.jsx)(M.Z,{label:(0,A.jsx)(i.Fragment,{children:(0,A.jsx)(I.hbI,{label:"Tenant Pools",onClick:function(){return n(m)}})})}),(0,A.jsxs)(d.Z,{children:[(0,A.jsx)(l.ZP,{item:!0,xs:12,className:t.addPoolTitle,children:(0,A.jsx)(k.Z,{icon:(0,A.jsx)(I.zb0,{}),title:"Add New Pool to ".concat((null===a||void 0===a?void 0:a.name)||""),subTitle:(0,A.jsxs)(i.Fragment,{children:["Namespace: ",(null===a||void 0===a?void 0:a.namespace)||""," / Current Capacity:"," ",(0,c.ae)(((null===a||void 0===a?void 0:a.total_size)||0).toString(10))]})})}),s&&(0,A.jsx)(l.ZP,{item:!0,xs:12,children:(0,A.jsx)(u.Z,{})}),(0,A.jsx)(l.ZP,{item:!0,xs:12,className:t.pageBox,children:(0,A.jsx)(f.Z,{wizardSteps:v})})]})]})})}}}]); -//# sourceMappingURL=692.8957e493.chunk.js.map \ No newline at end of file diff --git a/web-app/build/static/js/724.1efc027e.chunk.js b/web-app/build/static/js/724.1efc027e.chunk.js deleted file mode 100644 index eca8b6bdca3..00000000000 --- a/web-app/build/static/js/724.1efc027e.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[724],{9505:function(e,n,t){var i=t(29439),o=t(72791),r=t(81207);n.Z=function(e,n){var t=(0,o.useState)(!1),s=(0,i.Z)(t,2),a=s[0],l=s[1];return[a,function(t,i,o,s){l(!0),r.Z.invoke(t,i,o,s).then((function(n){l(!1),e(n)})).catch((function(e){l(!1),n(e)}))}]}},85724:function(e,n,t){t.r(n),t.d(n,{default:function(){return ae}});var i=t(29439),o=t(1413),r=t(72791),s=t(11135),a=t(23814),l=t(25787),c=t(64554),u=t(74794),x=t(81207),d=t(25228),p=t(43896),f=t(45987),m=t(80184),h=["children","value","index"],g=function(e){var n=e.children,t=e.value,i=e.index,s=(0,f.Z)(e,h);return(0,m.jsx)("div",(0,o.Z)((0,o.Z)({role:"tabpanel",hidden:t!==i,id:"simple-tabpanel-".concat(i),"aria-labelledby":"simple-tab-".concat(i),style:{marginTop:"5px"}},s),{},{children:t===i&&(0,m.jsx)(r.Fragment,{children:n})}))},Z=t(61889),b=t(93433),v=t(4942),j=t(63366),y=t(87462),S=t(28182),w=t(94419),k=t(14036),C=t(66934),B=t(31402),I=t(23031),z=t(42071),L=t(20890),T=t(75878),F=t(21217);function A(e){return(0,F.Z)("MuiLink",e)}var N=(0,T.Z)("MuiLink",["root","underlineNone","underlineHover","underlineAlways","button","focusVisible"]),R=t(18529),M=t(12065),E={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},P=function(e){var n=e.theme,t=e.ownerState,i=function(e){return E[e]||e}(t.color),o=(0,R.DW)(n,"palette.".concat(i),!1)||t.color,r=(0,R.DW)(n,"palette.".concat(i,"Channel"));return"vars"in n&&r?"rgba(".concat(r," / 0.4)"):(0,M.Fq)(o,.4)},W=["className","color","component","onBlur","onFocus","TypographyClasses","underline","variant","sx"],O=(0,C.ZP)(L.Z,{name:"MuiLink",slot:"Root",overridesResolver:function(e,n){var t=e.ownerState;return[n.root,n["underline".concat((0,k.Z)(t.underline))],"button"===t.component&&n.button]}})((function(e){var n=e.theme,t=e.ownerState;return(0,y.Z)({},"none"===t.underline&&{textDecoration:"none"},"hover"===t.underline&&{textDecoration:"none","&:hover":{textDecoration:"underline"}},"always"===t.underline&&(0,y.Z)({textDecoration:"underline"},"inherit"!==t.color&&{textDecorationColor:P({theme:n,ownerState:t})},{"&:hover":{textDecorationColor:"inherit"}}),"button"===t.component&&(0,v.Z)({position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none","&::-moz-focus-inner":{borderStyle:"none"}},"&.".concat(N.focusVisible),{outline:"auto"}))})),K=r.forwardRef((function(e,n){var t=(0,B.Z)({props:e,name:"MuiLink"}),o=t.className,s=t.color,a=void 0===s?"primary":s,l=t.component,c=void 0===l?"a":l,u=t.onBlur,x=t.onFocus,d=t.TypographyClasses,p=t.underline,f=void 0===p?"always":p,h=t.variant,g=void 0===h?"inherit":h,Z=t.sx,v=(0,j.Z)(t,W),C=(0,I.Z)(),L=C.isFocusVisibleRef,T=C.onBlur,F=C.onFocus,N=C.ref,R=r.useState(!1),M=(0,i.Z)(R,2),P=M[0],K=M[1],V=(0,z.Z)(n,N),_=(0,y.Z)({},t,{color:a,component:c,focusVisible:P,underline:f,variant:g}),D=function(e){var n=e.classes,t=e.component,i=e.focusVisible,o=e.underline,r={root:["root","underline".concat((0,k.Z)(o)),"button"===t&&"button",i&&"focusVisible"]};return(0,w.Z)(r,A,n)}(_);return(0,m.jsx)(O,(0,y.Z)({color:a,className:(0,S.Z)(D.root,o),classes:d,component:c,onBlur:function(e){T(e),!1===L.current&&K(!1),u&&u(e)},onFocus:function(e){F(e),!0===L.current&&K(!0),x&&x(e)},ref:V,ownerState:_,variant:g,sx:[].concat((0,b.Z)(Object.keys(E).includes(a)?[]:[{color:a}]),(0,b.Z)(Array.isArray(Z)?Z:[Z]))},v))})),V=t(75952),_=(t(37516),t(21435)),D=t(74440),H=function(e){var n=e.icon,t=void 0===n?null:n,i=e.title;return(0,m.jsxs)(c.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-start"},children:[t,(0,m.jsx)("div",{className:"title-text",children:i})]})},G=function(e){var n=e.email;return(0,m.jsxs)(r.Fragment,{children:[(0,m.jsx)(D.Z,{email:n}),(0,m.jsx)(Z.ZP,{item:!0,xs:12,marginTop:"25px",children:(0,m.jsxs)(c.Z,{sx:{padding:"20px","& a":{color:"#2781B0",cursor:"pointer"}},children:["Login to"," ",(0,m.jsx)(K,{href:"https://subnet.min.io",target:"_blank",style:{color:"#2781B0",cursor:"pointer"},children:"SUBNET"})," ","to avail support for this MinIO cluster"]})})]})},U=t(3579),q=t(20165),Q=t(30403),J=t(40306),X=t(9505),Y=t(41320),$=t(87995),ee=(0,l.Z)((function(e){return(0,s.Z)((0,o.Z)((0,o.Z)({sizedLabel:{minWidth:"75px"}},a.Bz),a.bK))}))((function(e){var n=e.open,t=e.closeModal,o=e.classes,s=e.onSet,a=(0,Y.TL)(),l=(0,r.useState)(""),u=(0,i.Z)(l,2),x=u[0],d=u[1],p=(0,r.useState)(""),f=(0,i.Z)(p,2),h=f[0],g=f[1],Z=(0,r.useState)(!1),b=(0,i.Z)(Z,2),v=b[0],j=b[1],y=(0,r.useState)(""),S=(0,i.Z)(y,2),w=S[0],k=S[1],C=(0,r.useState)(""),B=(0,i.Z)(C,2),I=B[0],z=B[1],L=(0,X.Z)((function(e){e.mfa_token?k(e.mfa_token):e.access_token?A("GET","/api/v1/subnet/apikey?token=".concat(e.access_token)):(s(e.apiKey),t())}),(function(e){a((0,$.Ih)(e)),t(),d(""),g(""),j(!1),k(""),z("")})),T=(0,i.Z)(L,2),F=T[0],A=T[1],N=function(){return(0,m.jsxs)(c.Z,{sx:{width:500},children:[(0,m.jsx)(_.Z,{className:o.spacerBottom,classes:{inputLabel:o.sizedLabel},id:"subnet-email",name:"subnet-email",onChange:function(e){return d(e.target.value)},label:"Email",value:x,overlayIcon:(0,m.jsx)(V.oyc,{})}),(0,m.jsx)(_.Z,{className:o.spacerBottom,classes:{inputLabel:o.sizedLabel},id:"subnet-password",name:"subnet-password",onChange:function(e){return g(e.target.value)},label:"Password",type:v?"text":"password",value:h,overlayIcon:v?(0,m.jsx)(q.Z,{}):(0,m.jsx)(U.Z,{}),overlayAction:function(){return j(!v)}})]})},R=function(){return(0,m.jsx)(c.Z,{sx:{display:"flex"},children:(0,m.jsxs)(c.Z,{sx:{display:"flex",flexFlow:"column",flex:"2"},children:[(0,m.jsx)(c.Z,{sx:{fontSize:"16px",display:"flex",flexFlow:"column",marginTop:"30px",marginBottom:"30px"},children:"Two-Factor Authentication"}),(0,m.jsx)(c.Z,{children:"Please enter the 6-digit verification code that was sent to your email address. This code will be valid for 5 minutes."}),(0,m.jsx)(c.Z,{sx:{flex:"1",marginTop:"30px"},children:(0,m.jsx)(_.Z,{overlayIcon:(0,m.jsx)(Q.Z,{}),id:"subnet-otp",name:"subnet-otp",onChange:function(e){return z(e.target.value)},placeholder:"",label:"",value:I})}),(0,m.jsx)(c.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end"}})]})})};return n?(0,m.jsx)(J.Z,{title:"Get API Key from SUBNET",confirmText:"Get API Key",isOpen:n,titleIcon:(0,m.jsx)(V.szr,{}),isLoading:F,cancelText:"Cancel",onConfirm:function(){""!==w?A("POST","/api/v1/subnet/login/mfa",{username:x,otp:I,mfa_token:w}):A("POST","/api/v1/subnet/login",{username:x,password:h})},onClose:t,confirmButtonProps:{variant:"callAction",disabled:!x||!h||F,hidden:!0},cancelButtonProps:{disabled:F},confirmationContent:""===w?N():R()}):null})),ne=function(e){var n=e.icon,t=e.description;return(0,m.jsxs)(c.Z,{sx:{display:"flex","& .min-icon":{marginRight:"10px",height:"23px",width:"23px",marginBottom:"10px"}},children:[n," ",(0,m.jsx)("div",{style:{fontSize:"14px",fontStyle:"italic",color:"#5E5E5E"},children:t})]})},te=function(e){var n=e.hasMargin,t=void 0===n||n;return(0,m.jsxs)(c.Z,{sx:{flex:1,border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",flexFlow:"column",padding:"20px",marginLeft:{xs:"0px",sm:"0px",md:t?"30px":""},marginTop:{xs:"0px",sm:t?"30px":""}},children:[(0,m.jsxs)(c.Z,{sx:{fontSize:"16px",fontWeight:600,display:"flex",alignItems:"center",marginBottom:"16px","& .min-icon":{height:"21px",width:"21px",marginRight:"15px"}},children:[(0,m.jsx)(V.M9A,{}),(0,m.jsx)("div",{children:"Why should I register?"})]}),(0,m.jsx)(c.Z,{sx:{fontSize:"14px",marginBottom:"15px"},children:"Registering this cluster with the MinIO Subscription Network (SUBNET) provides the following benefits in addition to the commercial license and SLA backed support."}),(0,m.jsxs)(c.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,m.jsx)(ne,{icon:(0,m.jsx)(V._qw,{}),description:"Call Home Monitoring"}),(0,m.jsx)(ne,{icon:(0,m.jsx)(V.toM,{}),description:"Health Diagnostics"}),(0,m.jsx)(ne,{icon:(0,m.jsx)(V.Fsz,{}),description:"Performance Analysis"}),(0,m.jsx)(ne,{icon:(0,m.jsx)(V.EQx,{}),description:(0,m.jsx)(K,{href:"https://min.io/signup?ref=op",target:"_blank",sx:{color:"#2781B0",cursor:"pointer"},children:"More Features"})})]})]})},ie=t(57689),oe=t(56087),re=(0,l.Z)((function(e){return(0,s.Z)((0,o.Z)({sizedLabel:{minWidth:"75px"}},a.bK))}))((function(e){var n=e.classes,t=e.registerEndpoint,o=(0,ie.s0)(),s=(0,r.useState)(!1),a=(0,i.Z)(s,2),l=a[0],u=a[1],d=(0,r.useState)(""),p=(0,i.Z)(d,2),f=p[0],h=p[1],g=(0,r.useState)(!1),Z=(0,i.Z)(g,2),b=Z[0],v=Z[1],j=(0,r.useState)(!1),y=(0,i.Z)(j,2),S=y[0],w=y[1],k=(0,Y.TL)(),C=(0,r.useCallback)((function(){if(!b){v(!0);var e={apiKey:f};x.Z.invoke("POST",t,e).then((function(e){v(!1),e&&e.registered&&o(oe.gA.LICENSE)})).catch((function(e){k((0,$.Ih)(e)),v(!1),B()}))}}),[f,k,b,t,o]);(0,r.useEffect)((function(){S&&C()}),[S,C]);var B=function(){h(""),w(!1)};return(0,m.jsxs)(r.Fragment,{children:[(0,m.jsx)(c.Z,{sx:{"& .title-text":{marginLeft:"27px",fontWeight:600}},children:(0,m.jsx)(H,{icon:(0,m.jsx)(V.dRy,{}),title:"Register cluster with API key"})}),(0,m.jsxs)(c.Z,{sx:{display:"flex",flexFlow:{xs:"column",md:"row"}},children:[(0,m.jsxs)(c.Z,{sx:{display:"flex",flexFlow:"column",flex:"2"},children:[(0,m.jsx)(c.Z,{sx:{fontSize:"16px",display:"flex",flexFlow:"column",marginTop:"30px",marginBottom:"30px"},children:"Use your MinIO Subscription Network API Key to register this cluster."}),(0,m.jsxs)(c.Z,{sx:{flex:"1"},children:[(0,m.jsx)(_.Z,{className:n.spacerBottom,classes:{inputLabel:n.sizedLabel},id:"api-key",name:"api-key",onChange:function(e){return h(e.target.value)},label:"API Key",value:f}),(0,m.jsxs)(c.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end","& button":{marginLeft:"8px"}},children:[(0,m.jsx)(V.zxk,{id:"get-from-subnet",variant:"regular",className:n.spacerRight,disabled:b,onClick:function(){return u(!0)},label:"Get from SUBNET"}),(0,m.jsx)(V.zxk,{id:"register",type:"submit",variant:"callAction",disabled:b||0===f.trim().length,onClick:function(){return C()},label:"Register"}),(0,m.jsx)(ee,{open:l,closeModal:function(){return u(!1)},onSet:function(e){h(e),w(!0)}})]})]})]}),(0,m.jsx)(te,{})]})]})})),se=t(47974),ae=(0,l.Z)((function(e){return(0,s.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)({},a.OR),a.qg),a.bK),a.Bz))}))((function(e){e.classes;var n=(0,r.useState)(!1),t=(0,i.Z)(n,2),o=t[0],s=t[1],a=(0,r.useState)(0),l=(0,i.Z)(a,2),f=l[0],h=l[1],Z=(0,r.useCallback)((function(){x.Z.invoke("GET","/api/v1/subnet/apikey/info").then((function(e){s(!0)})).catch((function(e){s(!1)}))}),[]);(0,r.useEffect)((function(){Z()}),[Z]);var b=(0,m.jsx)(r.Fragment,{children:(0,m.jsx)(c.Z,{sx:{border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",flexFlow:"column",padding:"43px"},children:o?(0,m.jsx)(G,{email:"Operator"}):(0,m.jsx)(re,{registerEndpoint:"/api/v1/subnet/apikey/register"})})});return(0,m.jsxs)(r.Fragment,{children:[(0,m.jsx)(se.Z,{label:"Register to MinIO Subscription Network",actions:(0,m.jsx)(r.Fragment,{})}),(0,m.jsxs)(u.Z,{children:[(0,m.jsx)(d.Z,{value:f,onChange:function(e,n){h(n)},indicatorColor:"primary",textColor:"primary","aria-label":"cluster-tabs",variant:"scrollable",scrollButtons:"auto",children:(0,m.jsx)(p.Z,{label:"API Key",id:"simple-tab-0","aria-controls":"simple-tabpanel-1"})}),(0,m.jsx)(g,{index:0,value:f,children:b})]})]})}))},74440:function(e,n,t){t(72791);var i=t(64554),o=t(75952),r=t(80184);n.Z=function(e){var n=e.email,t=void 0===n?"":n;return(0,r.jsxs)(i.Z,{sx:{height:"67px",color:"#ffffff",display:"flex",position:"relative",top:"-30px",left:"-32px",width:"calc(100% + 64px)",alignItems:"center",justifyContent:"space-between",backgroundColor:"#2781B0",padding:"0 25px 0 25px","& .registered-box, .reg-badge-box":{display:"flex",alignItems:"center",justifyContent:"flex-start"},"& .reg-badge-box":{marginLeft:"20px","& .min-icon":{fill:"#2781B0"}}},children:[(0,r.jsxs)(i.Z,{className:"registered-box",children:[(0,r.jsx)(i.Z,{sx:{fontSize:"16px",fontWeight:400},children:"Register status:"}),(0,r.jsxs)(i.Z,{className:"reg-badge-box",children:[(0,r.jsx)(o.SA,{}),(0,r.jsx)(i.Z,{sx:{fontWeight:600},children:"Registered"})]})]}),(0,r.jsxs)(i.Z,{className:"registered-acc-box",sx:{alignItems:"center",justifyContent:"flex-start",display:{sm:"flex",xs:"none"}},children:[(0,r.jsx)(i.Z,{sx:{fontSize:"16px",fontWeight:400},children:"Registered to:"}),(0,r.jsx)(i.Z,{sx:{marginLeft:"8px",fontWeight:600},children:t})]})]})}},30403:function(e,n,t){var i=t(64836);n.Z=void 0;var o=i(t(45649)),r=t(80184),s=(0,o.default)((0,r.jsx)("path",{d:"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM9 6c0-1.66 1.34-3 3-3s3 1.34 3 3v2H9V6zm9 14H6V10h12v10zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z"}),"LockOutlined");n.Z=s}}]); -//# sourceMappingURL=724.1efc027e.chunk.js.map \ No newline at end of file diff --git a/web-app/build/static/js/724.1efc027e.chunk.js.map b/web-app/build/static/js/724.1efc027e.chunk.js.map deleted file mode 100644 index b9006dd0951..00000000000 --- a/web-app/build/static/js/724.1efc027e.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/724.1efc027e.chunk.js","mappings":"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","sources":["screens/Console/Common/Hooks/useApi.tsx","screens/shared/tabs.tsx","../node_modules/@mui/material/Link/linkClasses.js","../node_modules/@mui/material/Link/getTextDecoration.js","../node_modules/@mui/material/Link/Link.js","screens/Console/Support/utils.tsx","screens/Console/Support/GetApiKeyModal.tsx","screens/Console/Support/RegisterHelpBox.tsx","screens/Console/Support/ApiKeyRegister.tsx","screens/Console/Support/RegisterOperator.tsx","screens/Console/Support/RegistrationStatusBanner.tsx","../node_modules/@mui/icons-material/LockOutlined.js"],"sourcesContent":["import { useState } from \"react\";\nimport api from \"../../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\n\ntype NoReturnFunction = (param?: any) => void;\ntype ApiMethodToInvoke = (method: string, url: string, data?: any) => void;\ntype IsApiInProgress = boolean;\n\nconst useApi = (\n onSuccess: NoReturnFunction,\n onError: NoReturnFunction,\n): [IsApiInProgress, ApiMethodToInvoke] => {\n const [isLoading, setIsLoading] = useState(false);\n\n const callApi = (method: string, url: string, data?: any, headers?: any) => {\n setIsLoading(true);\n api\n .invoke(method, url, data, headers)\n .then((res: any) => {\n setIsLoading(false);\n onSuccess(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setIsLoading(false);\n onError(err);\n });\n };\n\n return [isLoading, callApi];\n};\n\nexport default useApi;\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\n\ninterface TabPanelProps {\n children?: React.ReactNode;\n index: any;\n value: any;\n}\n\nexport const TabPanel = (props: TabPanelProps) => {\n const { children, value, index, ...other } = props;\n\n return (\n