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: iVBORw0KGgoAAAANSUhEUgAAAKcAAACnCAYAAAB0FkzsAAAACXBIWXMAABcRAAAXEQHKJvM/AAAIj0lEQVR4nO2dT6hVVRSHjykI/gMDU0swfKAi2KgGOkv6M1RpqI9qZBYo9EAHSaIopGCQA8tJDXzNgnRcGm+SgwLDIFR4omBmCQrqE4Tkxu/6Tlyv7569zzn73Lvu3t83VO+5HN/31t5r7bX3ntVqtVoZgD0mnuOHAlZBTjALcoJZkBPMgpxgFuQEsyAnmAU5wSzICWZBTjALcoJZkBPMgpxgFuQEsyAnmAU5wSzICWZBTjDLHH40Yfn3/lR299zP2Z2z57PH9x889exFr72SLd60MZu/dtXwv2gfYA9RICTl9SNfZbfP/Oh84Lw1q7KX9+5oywo9mUDOANw5dz6b/ORY9vjBVKmHLX59QzZyeCybs3C+0TcbKMhZl9tnfsgm931e+SmKouu+OYqgz8Luyzrc++ViLTHFw8tXsz/e39OeFsDTIGcNJvcdC/IcCXpl14EBvYVdkLMiGs4f3fwn2PPu/fp79tep031+C9sgZ0V8RJr74gvZks1vZIteXe/1JTdOjGePbv49kPexCHXOCkggDcVFrNi5LVvx4fb//4U+c3nXwcLPKdtX1q8ECYiclXj0Z3F0U4moU8ysHUWXtqVTdl6EhneVpgA5KzF1qThqLh/dMuOfq1zkI6iiJ9k7claie1myDLmgmo/2QsO75p+pg5wVcC07upIaCbr6i/3Z7AW9C++3xk+366gpg5wVmL1wQeGHrn120jn0q/lDEbRI0GtHTvbpjWyCnBWQWK5hWas+rgjqElSZfcq1T+SsyJLNbxZ+UIKqdORKbFyCau6ZanKEnBVZNrq1cEjOSqyb54LORF77TBHkrIiSGrW7uSgj6Mihj2f8u7s/nU8yOULOGjy/aUO2bPvMNc1OfAXVVKGXoKGaTIYJ5KxJu6PdY+28rqBqMkmt9omcAVh9fL9z1Scr0RrXS1Bl7ik1hiBnAHyXJbPptXOfIVqCdk8ZUkuOkDMQZQTVJjgfQTVlUMtdJyk1hiBnQJoQdOTQ2DOCapdnCrVP5AxMPwRVcnTr1PeG3roZkLMBfDqPcqoKeuPLb6NPjpCzIXw6j3IkqE+ThwTtjMixJ0fI2SA+nUc5apHTpjkXnVOG2JMj5GyYMoJqD7xL0O45bczJEXL2gSYFjXnlCDn7RJOCakrgam4eRpCzj5QV1DWfzAXV8zS8xwZy9pmi3s1ulI27ImIuaIzzTk6ZGxC+p9OpVrr+uxMpnkLHKXODoqh3sxMlPKke8oWcA8RXUNUzfWqgsYGcA8ZX0BQ3uiFnn9A6uNbQZ6pJStDuzqNuNLzfPp1W9ETOhlG0k5AX3n6v8DIDrZu7tnvcGo+/E6kT5GwQzRMvvPVuu4PIB9duTkXPlE6gQ84G0BCuzWwqFZW5YUPHJOpczyJ0x1EqIGdgtAnt4jsftTPsKizZUnySSEr715EzEHm0vH70ZOn7iDpR9NThs73Q0J7KDkzkDIDmgXWiZTfOIxYdJyvHAnLWRB3sV3YfrBUtu3HJmcrQzoUFFVGJSMO46+KCKnBx6xOQswLqFJKYIaMlPAtylkS1S51cjJjNg5wlqHsJK5QDOT3REqTvSk9duOblCcjpgRo2fC75F9oyUXfIf3hpsvDv5760tNbzhwVKSQ7KiKnGDZ/Tjl241s9VqE8B5CygjJg6rjDUpf6u9XNXHTQWGNZ7oDVyXzHVLOy6XcMXFdiLrsr2vYE4BoicM6CsXGvkPoQUM5tOvIpYvGljsO+yDpGzC833fMpFSnw0jIdczdEvhWt93tW1FBNEzg608uNzclsTYqrTSMX9IrSVI6Utwsg5jWqLV3YfcJaBmhBT363b3lzf3X2He+wg5zTaG16UiOSsOf5pcDF9GkgUNVMpIeUg53QS4tOLqeQnZBlHmbn2GLnEVLReufeDYN87LCSfEEkQn2XJlXt2BMvKNb/UL4R3qerwWIrH0aQtZz7Xc6Ehdfmo+xpBH5SRl1mj13frGsMUSXpYV2buSkJ0/qX2lIfCZ16bo71EIb972EhWTtUzdRtvEXlmPghCrdMPM0kO6xrOfeqZyswHMdfTUJ5yxMxJUk4lI86a4s5tpTNzSe9zZUsvFKlVyww1vx12kpNT2bnOUC9C88wyBW9JqRvV1CxStZczH8ZTq2UWkZycrsYKRS8N5z6EkFInF7cP8UqkDa4MScnp01ihIdUneklIn+lBLySlonPIjqbYSEpOV9T0Gc7bdcoT46VKQp0gpT/JyCmpXELpfvOiz9eRMufJQbGI6UMycvq0o80071MCpQy8iZM9oJgk5FTUK5ob5iWcTtpr7p4NIdAMScjpmmt2JkFIaYfo5XTNNRU1l41urS2lniPJ560daZ86B/WJXk6VfIpQ47AajetKKcG11JnSycNNE7Wc2hPkSmTqDN9KotQEnGKvZT+IWs6mrkaRlEqgWGpslmjl1NLinbNhr0VByv4SrZw60iXUGZpIORiilTNE1ETKwRKlnBrSXV3uRSClDaKUs+otZ0hpiyjlLDukI6VN4oycnkM6UtomOjl9btVFyuEgOjmLlg+RcrhIQk6kHE6iklMlpM61dKQcbqKSM78iRdts1ZDBHZLDTXTD+rqvj7DNNhKikhMp44LDY8EsyAlmQU4wC3KCWZATzIKcYBbkBLMgJ5gFOcEsyAlmQU4wC3KCWZATzIKcYBbkBLMgJ5gFOcEsyAlmQU4wC3KCWZATzIKcYBbkBLMgJ5gFOcEsyAlmQU4wC3KCWZATzIKcgdFJdzq0FuqDnA0wcmgMQQOAnA2BoPVBzgZB0HogZ8MgaHWQsw8gaDWivdLaGhIUyjGr1Wq1+D/rH1OXrnIFjR8TyAlWmWDOCWZBTjALcoJZkBPMgpxgFuQEsyAnmAU5wSzICWZBTjALcoJZkBPMgpxgFuQEsyAnmAU5wSzICWbRHqIJfjxgjiz77T8hbd197bqGkwAAAABJRU5ErkJggg== + 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 00000000000..f45879642f2 Binary files /dev/null and b/helm-releases/operator-5.0.10.tgz differ diff --git a/helm-releases/tenant-5.0.10.tgz b/helm-releases/tenant-5.0.10.tgz new file mode 100644 index 00000000000..b2ad5acabdc Binary files /dev/null and b/helm-releases/tenant-5.0.10.tgz differ diff --git a/helm/operator/Chart.yaml b/helm/operator/Chart.yaml index b7fc8a969b2..f78513aec91 100644 --- a/helm/operator/Chart.yaml +++ b/helm/operator/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v2 description: A Helm chart for MinIO Operator name: operator -version: 5.0.9 -appVersion: v5.0.9 +version: 5.0.10 +appVersion: v5.0.10 keywords: - storage - object-storage diff --git a/helm/operator/values.yaml b/helm/operator/values.yaml index 632e0282130..8a94c5cb8f2 100644 --- a/helm/operator/values.yaml +++ b/helm/operator/values.yaml @@ -21,7 +21,7 @@ operator: ## Image from tag (original behaviour), for example: # image: # repository: quay.io/minio/operator - # tag: v5.0.9 + # tag: v5.0.10 # pullPolicy: IfNotPresent ## Image from digest (added after original behaviour), for example: # image: @@ -30,7 +30,7 @@ operator: # pullPolicy: IfNotPresent image: repository: quay.io/minio/operator - tag: v5.0.9 + tag: v5.0.10 pullPolicy: IfNotPresent imagePullSecrets: [ ] runtimeClassName: ~ @@ -70,7 +70,7 @@ operator: console: image: repository: quay.io/minio/operator - tag: v5.0.9 + tag: v5.0.10 pullPolicy: IfNotPresent env: [ ] imagePullSecrets: [ ] diff --git a/helm/tenant/Chart.yaml b/helm/tenant/Chart.yaml index 1a5ad29f390..1c3666a32cc 100644 --- a/helm/tenant/Chart.yaml +++ b/helm/tenant/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v2 description: A Helm chart for MinIO Operator name: tenant -version: 5.0.9 -appVersion: v5.0.9 +version: 5.0.10 +appVersion: v5.0.10 keywords: - storage - object-storage diff --git a/helm/tenant/values.yaml b/helm/tenant/values.yaml index 996eb246fef..80f01b7258a 100644 --- a/helm/tenant/values.yaml +++ b/helm/tenant/values.yaml @@ -15,7 +15,7 @@ tenant: ## Option 1: Image from tag (original behaviour): # image: # repository: quay.io/minio/minio - # tag: RELEASE.2023-09-07T02-05-02Z + # tag: RELEASE.2023-10-07T15-07-38Z # pullPolicy: IfNotPresent ## Option 2: Image from digest (added after original): # image: @@ -24,7 +24,7 @@ tenant: # pullPolicy: IfNotPresent image: repository: quay.io/minio/minio - tag: RELEASE.2023-09-07T02-05-02Z + tag: RELEASE.2023-10-07T15-07-38Z pullPolicy: IfNotPresent ## Customize any private registry image pull secret. ## currently only one secret registry is supported @@ -181,14 +181,14 @@ tenant: # ## Image from tag (original behaviour), for example: # # image: # # repository: quay.io/minio/kes - # # tag: 2023-08-19T17-27-47Z + # # tag: 2023-10-03T00-48-37Z # ## Image from digest (added after original behaviour), for example: # # image: # # repository: quay.io/minio/kes@sha256 # # digest: fb15af611149892f357a8a99d1bcd8bf5dae713bd64c15e6eb27fbdb88fc208b # image: # repository: quay.io/minio/kes - # tag: 2023-08-19T17-27-47Z + # tag: 2023-10-03T00-48-37Z # pullPolicy: IfNotPresent # env: [ ] # replicas: 2 diff --git a/index.yaml b/index.yaml index 679b5dfe136..d5ec9206772 100644 --- a/index.yaml +++ b/index.yaml @@ -3,7 +3,7 @@ entries: minio-operator: - apiVersion: v2 appVersion: v4.3.7 - created: "2023-09-11T16:47:02.534411-06:00" + created: "2023-10-12T10:54:31.715596-07:00" description: A Helm chart for MinIO Operator digest: 594f746a54d6ced86b0147135afed425c453e015a15228b634bd79add0d24982 home: https://min.io @@ -24,7 +24,7 @@ entries: version: 4.3.7 - apiVersion: v2 appVersion: v4.3.6 - created: "2023-09-11T16:47:02.531826-06:00" + created: "2023-10-12T10:54:31.71343-07:00" description: A Helm chart for MinIO Operator digest: 15bb40e086f5e562b7c588dac48a5399fadc1b9f6895f913bbd5a2993c683da7 home: https://min.io @@ -45,7 +45,7 @@ entries: version: 4.3.6 - apiVersion: v2 appVersion: v4.3.5 - created: "2023-09-11T16:47:02.530716-06:00" + created: "2023-10-12T10:54:31.712375-07:00" description: A Helm chart for MinIO Operator digest: d561a1a3f0d900b721a73a7f17bc1ceda06b00328a5d31786bd8a8a92a20b08b home: https://min.io @@ -66,7 +66,7 @@ entries: version: 4.3.5 - apiVersion: v2 appVersion: v4.3.4 - created: "2023-09-11T16:47:02.529444-06:00" + created: "2023-10-12T10:54:31.711005-07:00" description: A Helm chart for MinIO Operator digest: 8cbfa6aa2264a5ab03e81e65391f22970c38f26b68c6292b8e77f1936bf7f0c0 home: https://min.io @@ -87,7 +87,7 @@ entries: version: 4.3.4 - apiVersion: v2 appVersion: v4.3.3 - created: "2023-09-11T16:47:02.526007-06:00" + created: "2023-10-12T10:54:31.709722-07:00" description: A Helm chart for MinIO Operator digest: 399e916491f7b3297afb6a85baf4f305547f46e7df2674b542cb1a8873abef62 home: https://min.io @@ -108,7 +108,7 @@ entries: version: 4.3.3 - apiVersion: v2 appVersion: v4.3.2 - created: "2023-09-11T16:47:02.52478-06:00" + created: "2023-10-12T10:54:31.707036-07:00" description: A Helm chart for MinIO Operator digest: b446473b9814288f4f356afa12053b2bce0cbdf014be74ab21b31b36cb0ac15a home: https://min.io @@ -129,7 +129,7 @@ entries: version: 4.3.2 - apiVersion: v2 appVersion: v4.3.1 - created: "2023-09-11T16:47:02.523602-06:00" + created: "2023-10-12T10:54:31.705938-07:00" description: A Helm chart for MinIO Operator digest: 4a325c6a47173e66b986db47b5d8235fd3c5eff788e252b5ca40b3ce27f4cc87 home: https://min.io @@ -150,7 +150,7 @@ entries: version: 4.3.1 - apiVersion: v2 appVersion: v4.3.0 - created: "2023-09-11T16:47:02.522491-06:00" + created: "2023-10-12T10:54:31.704902-07:00" description: A Helm chart for MinIO Operator digest: 52ca8a53360481b54e67912da6a757e060b50b85cece003101e90c16f426f972 home: https://min.io @@ -171,7 +171,7 @@ entries: version: 4.3.0 - apiVersion: v2 appVersion: v4.2.14 - created: "2023-09-11T16:47:02.511339-06:00" + created: "2023-10-12T10:54:31.694812-07:00" description: A Helm chart for MinIO Operator digest: 72527bd5088ec619ca1da54f2e296bd76ffab8a9473ec619ca2c05c6e0679e87 home: https://min.io @@ -192,7 +192,7 @@ entries: version: 4.2.14 - apiVersion: v2 appVersion: v4.2.12 - created: "2023-09-11T16:47:02.508998-06:00" + created: "2023-10-12T10:54:31.693907-07:00" description: A Helm chart for MinIO Operator digest: a1233b80a3658502d6871e12b7c0a2897d12cf8df859c9c531efc32e62d48c9d home: https://min.io @@ -213,7 +213,7 @@ entries: version: 4.2.12 - apiVersion: v2 appVersion: v4.2.10 - created: "2023-09-11T16:47:02.507804-06:00" + created: "2023-10-12T10:54:31.692833-07:00" description: A Helm chart for MinIO Operator digest: cba1a0b6fdb56c5fd084f81721285b8c2d9710d8a616bad7d421d2f5c8f6cac0 home: https://min.io @@ -234,7 +234,7 @@ entries: version: 4.2.10 - apiVersion: v2 appVersion: v4.2.9 - created: "2023-09-11T16:47:02.52055-06:00" + created: "2023-10-12T10:54:31.703158-07:00" description: A Helm chart for MinIO Operator digest: e4d7a289e4933aec88457243c8a1cc9bb191148421cdc2804a954cf4158f90fb home: https://min.io @@ -255,7 +255,7 @@ entries: version: 4.2.9 - apiVersion: v2 appVersion: v4.2.8 - created: "2023-09-11T16:47:02.519549-06:00" + created: "2023-10-12T10:54:31.702204-07:00" description: A Helm chart for MinIO Operator digest: 35c4888f3b2bf75b79c1e7f12d4b0dd35138045c7b62c3824a307ce4814f5d4a home: https://min.io @@ -276,7 +276,7 @@ entries: version: 4.2.8 - apiVersion: v2 appVersion: v4.2.7 - created: "2023-09-11T16:47:02.518495-06:00" + created: "2023-10-12T10:54:31.701276-07:00" description: A Helm chart for MinIO Operator digest: 99a024d5ae4339752a823ae80b9d1d0fdd5994e16f1ec6acce4f7ad4945c0eb9 home: https://min.io @@ -297,7 +297,7 @@ entries: version: 4.2.7 - apiVersion: v2 appVersion: v4.2.6 - created: "2023-09-11T16:47:02.517266-06:00" + created: "2023-10-12T10:54:31.700378-07:00" description: A Helm chart for MinIO Operator digest: 9137a28ad10f199777f104f89a1c10af763d9087fbc733ba4d295a118d112f2d home: https://min.io @@ -318,7 +318,7 @@ entries: version: 4.2.6 - apiVersion: v2 appVersion: v4.2.5 - created: "2023-09-11T16:47:02.514552-06:00" + created: "2023-10-12T10:54:31.69884-07:00" description: A Helm chart for MinIO Operator digest: 02b29aeae4586edcada3864514a788c2862b8bad3922e80cde2e557f8901c259 home: https://min.io @@ -339,7 +339,7 @@ entries: version: 4.2.5 - apiVersion: v2 appVersion: v4.2.4 - created: "2023-09-11T16:47:02.5135-06:00" + created: "2023-10-12T10:54:31.69776-07:00" description: A Helm chart for MinIO Operator digest: 99620af40a461197d7fd43c937266fe1ed742c3dd10123e420371cc5592d26d2 home: https://min.io @@ -360,7 +360,7 @@ entries: version: 4.2.4 - apiVersion: v2 appVersion: v4.2.3 - created: "2023-09-11T16:47:02.512459-06:00" + created: "2023-10-12T10:54:31.695815-07:00" description: A Helm chart for MinIO Operator digest: d4a8e536a7b01b83c87cff872881b11c72d7d9d0aa05201420b69c0a4ee169dc home: https://min.io @@ -381,7 +381,7 @@ entries: version: 4.2.3 - apiVersion: v2 appVersion: v4.2.3 - created: "2023-09-11T16:47:02.506627-06:00" + created: "2023-10-12T10:54:31.69055-07:00" description: A Helm chart for MinIO Operator digest: 1e3683587801162d989217c019d3e5bf8ecc03116431643fa4876889973549fd home: https://min.io @@ -402,7 +402,7 @@ entries: version: 4.1.8 - apiVersion: v2 appVersion: v4.1.3 - created: "2023-09-11T16:47:02.503949-06:00" + created: "2023-10-12T10:54:31.68962-07:00" description: A Helm chart for MinIO Operator digest: 0cf6f5c3724facc74cfeb32c17a798099f72baff9869ae6d6fb5422557fe40b7 home: https://min.io @@ -423,7 +423,7 @@ entries: version: 4.1.7 - apiVersion: v2 appVersion: v4.1.2 - created: "2023-09-11T16:47:02.502103-06:00" + created: "2023-10-12T10:54:31.688114-07:00" description: A Helm chart for MinIO Operator digest: 979717ddc254f24fe4561a4642162de3d4e847cf7f2b26b1592ca0e8d0bdb6e2 home: https://min.io @@ -444,7 +444,7 @@ entries: version: 4.1.6 - apiVersion: v2 appVersion: v4.1.2 - created: "2023-09-11T16:47:02.500902-06:00" + created: "2023-10-12T10:54:31.687125-07:00" description: A Helm chart for MinIO Operator digest: 3dff7502f24ce641048c849ab1da226854fb8afa34d05b40d7c46dd2725e2cfe home: https://min.io @@ -465,7 +465,7 @@ entries: version: 4.1.5 - apiVersion: v2 appVersion: v4.1.1 - created: "2023-09-11T16:47:02.499682-06:00" + created: "2023-10-12T10:54:31.686264-07:00" description: A Helm chart for MinIO Operator digest: 7082e25eff205c2596e4902361ca370f1e12b7e28e881b88b672d4bb0c02b075 home: https://min.io @@ -486,7 +486,7 @@ entries: version: 4.1.4 - apiVersion: v2 appVersion: v4.1.1 - created: "2023-09-11T16:47:02.497072-06:00" + created: "2023-10-12T10:54:31.684844-07:00" description: A Helm chart for MinIO Operator digest: d9cbb94e31fcc726ebb3281a06d85ea3ee941bf36237972b6ae38e4d4c2f205b home: https://min.io @@ -507,7 +507,7 @@ entries: version: 4.1.3 - apiVersion: v2 appVersion: v4.1.1 - created: "2023-09-11T16:47:02.496062-06:00" + created: "2023-10-12T10:54:31.684043-07:00" description: A Helm chart for MinIO Operator digest: 6bf8dd70e500ea0970a477cc12c6a40fc062102055c911b96eef6dc748500b03 home: https://min.io @@ -528,7 +528,7 @@ entries: version: 4.1.2 - apiVersion: v2 appVersion: v4.1.1 - created: "2023-09-11T16:47:02.494677-06:00" + created: "2023-10-12T10:54:31.68317-07:00" description: A Helm chart for MinIO Operator digest: 8fa3dcd6c40ee405127f1836526b78d473b1f02e690213072fde78712d63c655 home: https://min.io @@ -549,7 +549,7 @@ entries: version: 4.1.1 - apiVersion: v2 appVersion: v4.1.1 - created: "2023-09-11T16:47:02.491533-06:00" + created: "2023-10-12T10:54:31.682037-07:00" description: A Helm chart for MinIO Operator digest: 5926ba1a622fc2887f3fb24c43f567bb308ef652941e592f58371224759b3e24 home: https://min.io @@ -570,7 +570,7 @@ entries: version: 4.1.0 - apiVersion: v2 appVersion: v4.0.11 - created: "2023-09-11T16:47:02.476766-06:00" + created: "2023-10-12T10:54:31.672166-07:00" description: A Helm chart for MinIO Operator digest: cbae4fb31f83e426a7ea0decdfd57f6eb64a43e5b6e2726ab899d1d72c9f54e0 home: https://min.io @@ -591,7 +591,7 @@ entries: version: 4.0.11 - apiVersion: v2 appVersion: v4.0.9 - created: "2023-09-11T16:47:02.474133-06:00" + created: "2023-10-12T10:54:31.671197-07:00" description: A Helm chart for MinIO Operator digest: b74d8011ce86b534c7ebae8d84e7eb0552c701b511e32f0cebdab56551e30638 home: https://min.io @@ -611,7 +611,7 @@ entries: - https://operator.min.io/helm-releases/minio-operator-4.0.10.tgz version: 4.0.10 - apiVersion: v2 - created: "2023-09-11T16:47:02.490448-06:00" + created: "2023-10-12T10:54:31.681199-07:00" description: A Helm chart for MinIO Operator digest: 40bd65d9a8144a5bda8f1e7a74720f526bbaf540e812e7eabc2ccad3ca7b439c home: https://min.io @@ -631,7 +631,7 @@ entries: - https://operator.min.io/helm-releases/minio-operator-4.0.9.tgz version: 4.0.9 - apiVersion: v2 - created: "2023-09-11T16:47:02.489173-06:00" + created: "2023-10-12T10:54:31.679551-07:00" description: A Helm chart for MinIO Operator digest: a7dd16236a42c6b6731542e9c19744da76a50ac3a7524cb2ce64e95e8e3e5d30 home: https://min.io @@ -651,7 +651,7 @@ entries: - https://operator.min.io/helm-releases/minio-operator-4.0.8.tgz version: 4.0.8 - apiVersion: v2 - created: "2023-09-11T16:47:02.48812-06:00" + created: "2023-10-12T10:54:31.678581-07:00" description: A Helm chart for MinIO Operator digest: 87f6ac2a98a96dd6ce20fded82f45e4eed79c0933ebed069d6f2167079597c27 home: https://min.io @@ -671,7 +671,7 @@ entries: - https://operator.min.io/helm-releases/minio-operator-4.0.7.tgz version: 4.0.7 - apiVersion: v2 - created: "2023-09-11T16:47:02.485609-06:00" + created: "2023-10-12T10:54:31.677818-07:00" description: A Helm chart for MinIO Operator digest: 2c7dbe86e2950f48d7b44e702969b67c8b1b5308f18e8e16cdc52e4ec7b6cdbd home: https://min.io @@ -691,7 +691,7 @@ entries: - https://operator.min.io/helm-releases/minio-operator-4.0.7-1.tgz version: 4.0.7-1 - apiVersion: v2 - created: "2023-09-11T16:47:02.483798-06:00" + created: "2023-10-12T10:54:31.67687-07:00" description: A Helm chart for MinIO Operator digest: b25a95e0312b16fab2097db2f45cec540d39d416ce05adcb142dba2f8f300ace home: https://min.io @@ -711,7 +711,7 @@ entries: - https://operator.min.io/helm-releases/minio-operator-4.0.6.tgz version: 4.0.6 - apiVersion: v2 - created: "2023-09-11T16:47:02.482103-06:00" + created: "2023-10-12T10:54:31.675771-07:00" description: A Helm chart for MinIO Operator digest: 4407196cc9a3e6cea8ddb719e8308985cb49789a3e77c023f0bc680c31f11de3 home: https://min.io @@ -731,7 +731,7 @@ entries: - https://operator.min.io/helm-releases/minio-operator-4.0.5.tgz version: 4.0.5 - apiVersion: v2 - created: "2023-09-11T16:47:02.479019-06:00" + created: "2023-10-12T10:54:31.674945-07:00" description: A Helm chart for MinIO Operator digest: ce4a4d68e66cec8af18c28eee339dd2adf3bb4a7beba851eaa3b8b7783e26cd1 home: https://min.io @@ -751,7 +751,7 @@ entries: - https://operator.min.io/helm-releases/minio-operator-4.0.3.tgz version: 4.0.3 - apiVersion: v2 - created: "2023-09-11T16:47:02.477716-06:00" + created: "2023-10-12T10:54:31.673826-07:00" description: A Helm chart for MinIO Operator digest: b488b7faac263a1d7c70374b20435b6ec3a0288f28a845647f0d5c57bc349c43 home: https://min.io @@ -771,7 +771,7 @@ entries: - https://operator.min.io/helm-releases/minio-operator-4.0.2.tgz version: 4.0.2 - apiVersion: v2 - created: "2023-09-11T16:47:02.473086-06:00" + created: "2023-10-12T10:54:31.670291-07:00" description: A Helm chart for MinIO Operator digest: f69b67cd3dcc8d819994fc4473d07be1e8fd11e8428914195a7f59f17321ea46 home: https://min.io @@ -791,7 +791,7 @@ entries: - https://operator.min.io/helm-releases/minio-operator-4.0.1.tgz version: 4.0.1 - apiVersion: v2 - created: "2023-09-11T16:47:02.471697-06:00" + created: "2023-10-12T10:54:31.669323-07:00" description: A Helm chart for MinIO Operator digest: 8bc6f068743480ed1cecae0ec896ac6f46ffec5e7ed6e4efbb241bc3b47c7f21 home: https://min.io @@ -811,9 +811,30 @@ entries: - https://operator.min.io/helm-releases/minio-operator-4.0.0.tgz version: 4.0.0 operator: + - apiVersion: v2 + appVersion: v5.0.10 + created: "2023-10-12T10:54:31.760286-07:00" + description: A Helm chart for MinIO Operator + digest: 5a989ef3e1c1a7d43350012bd7ddb305232b3bd804788a8874cc2742eae80a80 + home: https://min.io + icon: https://min.io/resources/img/logo/MINIO_wordmark.png + keywords: + - storage + - object-storage + - S3 + maintainers: + - email: dev@minio.io + name: MinIO, Inc + name: operator + sources: + - https://github.com/minio/operator + type: application + urls: + - https://operator.min.io/helm-releases/operator-5.0.10.tgz + version: 5.0.10 - apiVersion: v2 appVersion: v5.0.9 - created: "2023-09-11T16:47:02.60311-06:00" + created: "2023-10-12T10:54:31.767376-07:00" description: A Helm chart for MinIO Operator digest: 515fb406a6b08f90b04fa1b844e7a0ad2aac77f73320d9c484f2e19fc0a32d73 home: https://min.io @@ -834,7 +855,7 @@ entries: version: 5.0.9 - apiVersion: v2 appVersion: v5.0.8 - created: "2023-09-11T16:47:02.601904-06:00" + created: "2023-10-12T10:54:31.766524-07:00" description: A Helm chart for MinIO Operator digest: 65b020e15979b03c7f013e307bbe0d4e6e14727019e17bdb2e2604af8056856d home: https://min.io @@ -855,7 +876,7 @@ entries: version: 5.0.8 - apiVersion: v2 appVersion: v5.0.7 - created: "2023-09-11T16:47:02.600235-06:00" + created: "2023-10-12T10:54:31.765602-07:00" description: A Helm chart for MinIO Operator digest: 5c72b03b17b5af84a98d92fb10496449ffe2e77c598a7159e44941f86318e49d home: https://min.io @@ -876,7 +897,7 @@ entries: version: 5.0.7 - apiVersion: v2 appVersion: v5.0.6 - created: "2023-09-11T16:47:02.599242-06:00" + created: "2023-10-12T10:54:31.764674-07:00" description: A Helm chart for MinIO Operator digest: 76d925894253644cdea9bdd04772e23e2c6bd08f695ee3d879ee9f4749a1b46a home: https://min.io @@ -897,7 +918,7 @@ entries: version: 5.0.6 - apiVersion: v2 appVersion: v5.0.5 - created: "2023-09-11T16:47:02.598483-06:00" + created: "2023-10-12T10:54:31.763739-07:00" description: A Helm chart for MinIO Operator digest: 95be83e629b8012cfc5bcbbf9f74d2d681c50f27d64113e7a1345df65f5ea231 home: https://min.io @@ -918,7 +939,7 @@ entries: version: 5.0.5 - apiVersion: v2 appVersion: v5.0.4 - created: "2023-09-11T16:47:02.597696-06:00" + created: "2023-10-12T10:54:31.762382-07:00" description: A Helm chart for MinIO Operator digest: b95039620fae7106aef2f0b3a038269f831dfc62aebb009de440bb2dbaa50029 home: https://min.io @@ -939,7 +960,7 @@ entries: version: 5.0.4 - apiVersion: v2 appVersion: v5.0.3 - created: "2023-09-11T16:47:02.596776-06:00" + created: "2023-10-12T10:54:31.761732-07:00" description: A Helm chart for MinIO Operator digest: 6c7fc60878d0cf4c79889bd21d6a1bfde322c8f7987c294bc0eb0d95a18169b2 home: https://min.io @@ -960,7 +981,7 @@ entries: version: 5.0.3 - apiVersion: v2 appVersion: v5.0.2 - created: "2023-09-11T16:47:02.594288-06:00" + created: "2023-10-12T10:54:31.761028-07:00" description: A Helm chart for MinIO Operator digest: aab64d84fc51473212af5dbd353c440debdf014d60b8af065da9a7478fe2e486 home: https://min.io @@ -981,7 +1002,7 @@ entries: version: 5.0.2 - apiVersion: v2 appVersion: v5.0.1 - created: "2023-09-11T16:47:02.593393-06:00" + created: "2023-10-12T10:54:31.759636-07:00" description: A Helm chart for MinIO Operator digest: 2be349f743983af26bf0d5385b268f2e819dff9975d4476da0961f706a1795f7 home: https://min.io @@ -1002,7 +1023,7 @@ entries: version: 5.0.1 - apiVersion: v2 appVersion: v5.0.0 - created: "2023-09-11T16:47:02.592689-06:00" + created: "2023-10-12T10:54:31.7589-07:00" description: A Helm chart for MinIO Operator digest: b39696e784156aff4424d6c08381c1080487e06dfe6c9269dd8244560b70c5b1 home: https://min.io @@ -1023,7 +1044,7 @@ entries: version: 5.0.0 - apiVersion: v2 appVersion: v4.5.8 - created: "2023-09-11T16:47:02.59197-06:00" + created: "2023-10-12T10:54:31.75776-07:00" description: A Helm chart for MinIO Operator digest: a0ddfc8a48a00cba431617a61bc8e1d2a3d7cb461cf7232b92f9bbb9f068324a home: https://min.io @@ -1044,7 +1065,7 @@ entries: version: 4.5.8 - apiVersion: v2 appVersion: v4.5.7 - created: "2023-09-11T16:47:02.590469-06:00" + created: "2023-10-12T10:54:31.756774-07:00" description: A Helm chart for MinIO Operator digest: 41513d7b1e15d40256641baea0641293fc8f0e05a2bbe565b4c13377e618b8e0 home: https://min.io @@ -1065,7 +1086,7 @@ entries: version: 4.5.7 - apiVersion: v2 appVersion: v4.5.6 - created: "2023-09-11T16:47:02.587956-06:00" + created: "2023-10-12T10:54:31.755766-07:00" description: A Helm chart for MinIO Operator digest: b87e72fbb0d846239983be9654822fdb89519d5cfe17506f983743b6e4f89aa1 home: https://min.io @@ -1086,7 +1107,7 @@ entries: version: 4.5.6 - apiVersion: v2 appVersion: v4.5.5 - created: "2023-09-11T16:47:02.586874-06:00" + created: "2023-10-12T10:54:31.754543-07:00" description: A Helm chart for MinIO Operator digest: f1adecf0d94f5181917205f1aaeff3cc86c9037fd3f2dddb0cbeeb0ca4af4068 home: https://min.io @@ -1107,7 +1128,7 @@ entries: version: 4.5.5 - apiVersion: v2 appVersion: v4.5.4 - created: "2023-09-11T16:47:02.585855-06:00" + created: "2023-10-12T10:54:31.753736-07:00" description: A Helm chart for MinIO Operator digest: 7671c2e3d5242fe9f09c28119818ffac43e36b40a3117c839dd7cffb81645312 home: https://min.io @@ -1128,7 +1149,7 @@ entries: version: 4.5.4 - apiVersion: v2 appVersion: v4.5.3 - created: "2023-09-11T16:47:02.584593-06:00" + created: "2023-10-12T10:54:31.752879-07:00" description: A Helm chart for MinIO Operator digest: b684dc8b61518cc4b4a94c4821fda84a6d5d62dec80dcda8ddfa87362a0e11cd home: https://min.io @@ -1149,7 +1170,7 @@ entries: version: 4.5.3 - apiVersion: v2 appVersion: v4.5.2 - created: "2023-09-11T16:47:02.582165-06:00" + created: "2023-10-12T10:54:31.751638-07:00" description: A Helm chart for MinIO Operator digest: a51dad184718cf01521d7c75d18bee75aa3f6d097d6ccab89db6a6d4c4d89223 home: https://min.io @@ -1170,7 +1191,7 @@ entries: version: 4.5.2 - apiVersion: v2 appVersion: v4.5.1 - created: "2023-09-11T16:47:02.580861-06:00" + created: "2023-10-12T10:54:31.750781-07:00" description: A Helm chart for MinIO Operator digest: d1be481f3701bc53041e0b6f23e0b9a94f6af0f2cc3da9034d609c608958f892 home: https://min.io @@ -1191,7 +1212,7 @@ entries: version: 4.5.1 - apiVersion: v2 appVersion: v4.5.0 - created: "2023-09-11T16:47:02.579726-06:00" + created: "2023-10-12T10:54:31.749935-07:00" description: A Helm chart for MinIO Operator digest: cee44179e562c94b494747af1dddf6b20d4ccdfa951207e53add75c7402c3925 home: https://min.io @@ -1212,7 +1233,7 @@ entries: version: 4.5.0 - apiVersion: v2 appVersion: v4.4.28 - created: "2023-09-11T16:47:02.569776-06:00" + created: "2023-10-12T10:54:31.74166-07:00" description: A Helm chart for MinIO Operator digest: a018da827765df710c7b78c2c6dc3a8c68ea80f9806ab595b65a11d3acb88aec home: https://min.io @@ -1233,7 +1254,7 @@ entries: version: 4.4.28 - apiVersion: v2 appVersion: v4.4.27 - created: "2023-09-11T16:47:02.568784-06:00" + created: "2023-10-12T10:54:31.74065-07:00" description: A Helm chart for MinIO Operator digest: ebd3e2df74ac714d9238bb5f6c76ccaecfbf022b1381f4c3ebf6a6183ca80bf8 home: https://min.io @@ -1254,7 +1275,7 @@ entries: version: 4.4.27 - apiVersion: v2 appVersion: v4.4.26 - created: "2023-09-11T16:47:02.566192-06:00" + created: "2023-10-12T10:54:31.739335-07:00" description: A Helm chart for MinIO Operator digest: d29e08108f60bb26c4ba198144128bfd72b811d9c2a38440b45089b99ddf8ab4 home: https://min.io @@ -1275,7 +1296,7 @@ entries: version: 4.4.26 - apiVersion: v2 appVersion: v4.4.25 - created: "2023-09-11T16:47:02.56524-06:00" + created: "2023-10-12T10:54:31.738596-07:00" description: A Helm chart for MinIO Operator digest: fab2f0395ae74430b22dc4293ec6846cd77e5193e6265defcdce41ed43ecffd6 home: https://min.io @@ -1296,7 +1317,7 @@ entries: version: 4.4.25 - apiVersion: v2 appVersion: v4.4.24 - created: "2023-09-11T16:47:02.564282-06:00" + created: "2023-10-12T10:54:31.737845-07:00" description: A Helm chart for MinIO Operator digest: eaa1e7814cc57a7522bf37d1aad8d2558647482cc17e6eccd187ad129732bb0f home: https://min.io @@ -1317,7 +1338,7 @@ entries: version: 4.4.24 - apiVersion: v2 appVersion: v4.4.23 - created: "2023-09-11T16:47:02.563037-06:00" + created: "2023-10-12T10:54:31.737069-07:00" description: A Helm chart for MinIO Operator digest: d68d464d63d76d7547fd484425cff0a147d9813e081811c095850742a97c0c79 home: https://min.io @@ -1338,7 +1359,7 @@ entries: version: 4.4.23 - apiVersion: v2 appVersion: v4.4.22 - created: "2023-09-11T16:47:02.561098-06:00" + created: "2023-10-12T10:54:31.735827-07:00" description: A Helm chart for MinIO Operator digest: 7aea39787ee933f3886544a4c0aadafe10e6faeed8b4faa4cc67e9f59bd8527a home: https://min.io @@ -1359,7 +1380,7 @@ entries: version: 4.4.22 - apiVersion: v2 appVersion: v4.4.21 - created: "2023-09-11T16:47:02.559835-06:00" + created: "2023-10-12T10:54:31.734978-07:00" description: A Helm chart for MinIO Operator digest: c13aadc25a6c8140df82b6778a38b5b4cff8b09c4f3227b3479419f3abd0f6f0 home: https://min.io @@ -1380,7 +1401,7 @@ entries: version: 4.4.21 - apiVersion: v2 appVersion: v4.4.20 - created: "2023-09-11T16:47:02.558901-06:00" + created: "2023-10-12T10:54:31.734204-07:00" description: A Helm chart for MinIO Operator digest: 3dece764e01c5b64802a8f9d85f2bff526429f8ceb425b3e831bfbcafb474e32 home: https://min.io @@ -1401,7 +1422,7 @@ entries: version: 4.4.20 - apiVersion: v2 appVersion: v4.4.19 - created: "2023-09-11T16:47:02.554697-06:00" + created: "2023-10-12T10:54:31.731816-07:00" description: A Helm chart for MinIO Operator digest: 2279d2f725552281a7237e0f5a784298ab07b5dee5e7d6a4b3e4248ff0cffed6 home: https://min.io @@ -1422,7 +1443,7 @@ entries: version: 4.4.19 - apiVersion: v2 appVersion: v4.4.18 - created: "2023-09-11T16:47:02.553554-06:00" + created: "2023-10-12T10:54:31.73109-07:00" description: A Helm chart for MinIO Operator digest: 76ac4effba9eec872147a5df9a3d98fc5f4c436a228d90fd4da0ccc70e79f48e home: https://min.io @@ -1443,7 +1464,7 @@ entries: version: 4.4.18 - apiVersion: v2 appVersion: v4.4.17 - created: "2023-09-11T16:47:02.551813-06:00" + created: "2023-10-12T10:54:31.730342-07:00" description: A Helm chart for MinIO Operator digest: f6130cdd591debd916b148c627eddb0324c07f83c2e7625afa0fb03bdf60007a home: https://min.io @@ -1464,7 +1485,7 @@ entries: version: 4.4.17 - apiVersion: v2 appVersion: v4.4.16 - created: "2023-09-11T16:47:02.549532-06:00" + created: "2023-10-12T10:54:31.729137-07:00" description: A Helm chart for MinIO Operator digest: 4c030fbfd273d005ce968136cddd39a75714dfe1c364dc30d84a15af70793604 home: https://min.io @@ -1485,7 +1506,7 @@ entries: version: 4.4.16 - apiVersion: v2 appVersion: v4.4.15 - created: "2023-09-11T16:47:02.548417-06:00" + created: "2023-10-12T10:54:31.728354-07:00" description: A Helm chart for MinIO Operator digest: c1df137527f28d8aaa3e9456bbfdca2fceddeb16d3ebfe986b9a9cf016050c70 home: https://min.io @@ -1506,7 +1527,7 @@ entries: version: 4.4.15 - apiVersion: v2 appVersion: v4.4.14 - created: "2023-09-11T16:47:02.547253-06:00" + created: "2023-10-12T10:54:31.727584-07:00" description: A Helm chart for MinIO Operator digest: 2cb8d2c9b9dcbf7b34f7f94d505d1d40382523c5081c90ff4efaa63c153982f2 home: https://min.io @@ -1527,7 +1548,7 @@ entries: version: 4.4.14 - apiVersion: v2 appVersion: v4.4.13 - created: "2023-09-11T16:47:02.545879-06:00" + created: "2023-10-12T10:54:31.726748-07:00" description: A Helm chart for MinIO Operator digest: 31611b5cae6996da61ea7dfbdb67d7e2c2fae3f0caba6bb7332930f381913a14 home: https://min.io @@ -1548,7 +1569,7 @@ entries: version: 4.4.13 - apiVersion: v2 appVersion: v4.4.10 - created: "2023-09-11T16:47:02.543077-06:00" + created: "2023-10-12T10:54:31.724401-07:00" description: A Helm chart for MinIO Operator digest: dfe68285d8582172a8752fd1d98de21ef2c73f102965204fe08560e17eb1b623 home: https://min.io @@ -1569,7 +1590,7 @@ entries: version: 4.4.10 - apiVersion: v2 appVersion: v4.4.9 - created: "2023-09-11T16:47:02.578763-06:00" + created: "2023-10-12T10:54:31.748711-07:00" description: A Helm chart for MinIO Operator digest: 48871a9b6700410da44472cdee3c613d4ed664a146790162f0e645d195209fad home: https://min.io @@ -1590,7 +1611,7 @@ entries: version: 4.4.9 - apiVersion: v2 appVersion: v4.4.8 - created: "2023-09-11T16:47:02.57626-06:00" + created: "2023-10-12T10:54:31.74793-07:00" description: A Helm chart for MinIO Operator digest: 679d40cca06a8c5f2b08fdbd842f3f22fb33ebc459b7f0146d6c156b58514c20 home: https://min.io @@ -1611,7 +1632,7 @@ entries: version: 4.4.8 - apiVersion: v2 appVersion: v4.4.7 - created: "2023-09-11T16:47:02.575315-06:00" + created: "2023-10-12T10:54:31.747096-07:00" description: A Helm chart for MinIO Operator digest: 53896f8155cb13169b525cb8e2b18decfd52695db36fa353538cb7f2ffbe9df4 home: https://min.io @@ -1632,7 +1653,7 @@ entries: version: 4.4.7 - apiVersion: v2 appVersion: v4.4.6 - created: "2023-09-11T16:47:02.574427-06:00" + created: "2023-10-12T10:54:31.745759-07:00" description: A Helm chart for MinIO Operator digest: 13c03c440be7c5106316b3a331b876b390328261d3b1c1c97012d1a38d82386a home: https://min.io @@ -1653,7 +1674,7 @@ entries: version: 4.4.6 - apiVersion: v2 appVersion: v4.4.5 - created: "2023-09-11T16:47:02.573511-06:00" + created: "2023-10-12T10:54:31.744995-07:00" description: A Helm chart for MinIO Operator digest: 31b5f65acc5b00e7a044cc56ed0b96b731d9d37e657b26b8610bf369003627e1 home: https://min.io @@ -1674,7 +1695,7 @@ entries: version: 4.4.5 - apiVersion: v2 appVersion: v4.4.4 - created: "2023-09-11T16:47:02.571769-06:00" + created: "2023-10-12T10:54:31.744161-07:00" description: A Helm chart for MinIO Operator digest: 638b415dbf8e12cecb6729f93024dfcb500b9afff96994f4b91c9abca147919c home: https://min.io @@ -1695,7 +1716,7 @@ entries: version: 4.4.4 - apiVersion: v2 appVersion: v4.4.3 - created: "2023-09-11T16:47:02.57091-06:00" + created: "2023-10-12T10:54:31.742674-07:00" description: A Helm chart for MinIO Operator digest: ab435f529db28f5160ca7e41b65cf1fd6ffdcf264aee87c6552c2fbf6ed7ff22 home: https://min.io @@ -1716,7 +1737,7 @@ entries: version: 4.4.3 - apiVersion: v2 appVersion: v4.4.2 - created: "2023-09-11T16:47:02.55724-06:00" + created: "2023-10-12T10:54:31.733429-07:00" description: A Helm chart for MinIO Operator digest: f77db593851240225fab7616fe0e6f8ed490eaa4f7154694fd7a89d54fc4bb77 home: https://min.io @@ -1737,7 +1758,7 @@ entries: version: 4.4.2 - apiVersion: v2 appVersion: v4.4.1 - created: "2023-09-11T16:47:02.542077-06:00" + created: "2023-10-12T10:54:31.723301-07:00" description: A Helm chart for MinIO Operator digest: 56198f5b196e41e50f5c5bce12ad9b17438192356ca925a67f637479b7a964a9 home: https://min.io @@ -1758,7 +1779,7 @@ entries: version: 4.4.1 - apiVersion: v2 appVersion: v4.4.0 - created: "2023-09-11T16:47:02.54118-06:00" + created: "2023-10-12T10:54:31.722436-07:00" description: A Helm chart for MinIO Operator digest: 94c6cb95f3a5869e8eecc5a8b93e0faca737fbcb9ffc85d9b2b84703020c8ff7 home: https://min.io @@ -1779,7 +1800,7 @@ entries: version: 4.4.0 - apiVersion: v2 appVersion: v4.3.9 - created: "2023-09-11T16:47:02.539985-06:00" + created: "2023-10-12T10:54:31.721061-07:00" description: A Helm chart for MinIO Operator digest: d29f9312f637f81f0bd59e06083aab0fa811b18069a0a7e97ecacbd4e26e2396 home: https://min.io @@ -1800,7 +1821,7 @@ entries: version: 4.3.9 - apiVersion: v2 appVersion: v4.3.8 - created: "2023-09-11T16:47:02.537881-06:00" + created: "2023-10-12T10:54:31.718798-07:00" description: A Helm chart for MinIO Operator digest: a5b77bff10ab24fa8a64967169f1fa85fcc228380467fb2563f15ba0a27eae3e home: https://min.io @@ -1821,7 +1842,7 @@ entries: version: 4.3.8 - apiVersion: v2 appVersion: v4.3.7 - created: "2023-09-11T16:47:02.536288-06:00" + created: "2023-10-12T10:54:31.717151-07:00" description: A Helm chart for MinIO Operator digest: fc7eb9d46ea779e8b5478c54b8976764e1e8abaa5a6130be413ae946c3a1b23c home: https://min.io @@ -1842,7 +1863,7 @@ entries: version: 4.3.7 - apiVersion: v2 appVersion: v4.3.6 - created: "2023-09-11T16:47:02.53538-06:00" + created: "2023-10-12T10:54:31.71641-07:00" description: A Helm chart for MinIO Operator digest: aec2d538e0fb4cfe0a4397d4d7ef64a129adaa8b490a526d047d98ee9ebbf292 home: https://min.io @@ -1862,9 +1883,30 @@ entries: - https://operator.min.io/helm-releases/operator-4.3.6.tgz version: 4.3.6 tenant: + - apiVersion: v2 + appVersion: v5.0.10 + created: "2023-10-12T10:54:31.792526-07:00" + description: A Helm chart for MinIO Operator + digest: 423be0e3af854bbecafd2c694ca398ae9e21c8397662991fb097dd3cc0e8e40a + home: https://min.io + icon: https://min.io/resources/img/logo/MINIO_wordmark.png + keywords: + - storage + - object-storage + - S3 + maintainers: + - email: dev@minio.io + name: MinIO, Inc + name: tenant + sources: + - https://github.com/minio/operator + type: application + urls: + - https://operator.min.io/helm-releases/tenant-5.0.10.tgz + version: 5.0.10 - apiVersion: v2 appVersion: v5.0.9 - created: "2023-09-11T16:47:02.642121-06:00" + created: "2023-10-12T10:54:31.797731-07:00" description: A Helm chart for MinIO Operator digest: c5d0376d2b34a4cbdd5595f1b63e691d48313e5107327661b3548aeee3747e67 home: https://min.io @@ -1885,7 +1927,7 @@ entries: version: 5.0.9 - apiVersion: v2 appVersion: v5.0.8 - created: "2023-09-11T16:47:02.641408-06:00" + created: "2023-10-12T10:54:31.79689-07:00" description: A Helm chart for MinIO Operator digest: 538b884edf55c9f5818f09eeb62219222307927402374dcf74daf7999ad3a1ff home: https://min.io @@ -1906,7 +1948,7 @@ entries: version: 5.0.8 - apiVersion: v2 appVersion: v5.0.7 - created: "2023-09-11T16:47:02.64067-06:00" + created: "2023-10-12T10:54:31.796168-07:00" description: A Helm chart for MinIO Operator digest: a579f8305b766110c80c81882e6d87e9a2ba4531dc47258576300d823c7e79b0 home: https://min.io @@ -1927,7 +1969,7 @@ entries: version: 5.0.7 - apiVersion: v2 appVersion: v5.0.6 - created: "2023-09-11T16:47:02.639981-06:00" + created: "2023-10-12T10:54:31.795455-07:00" description: A Helm chart for MinIO Operator digest: c5030727cbafd3b51cb8801103832ccd84f1bb02897b635a3528d9bc983ee3a2 home: https://min.io @@ -1948,7 +1990,7 @@ entries: version: 5.0.6 - apiVersion: v2 appVersion: v5.0.5 - created: "2023-09-11T16:47:02.63924-06:00" + created: "2023-10-12T10:54:31.794763-07:00" description: A Helm chart for MinIO Operator digest: 849a51d2792f598d09f6f233eb80fa189a9dd8a3f72a14255e2e662a2c720053 home: https://min.io @@ -1969,7 +2011,7 @@ entries: version: 5.0.5 - apiVersion: v2 appVersion: v5.0.4 - created: "2023-09-11T16:47:02.637296-06:00" + created: "2023-10-12T10:54:31.794097-07:00" description: A Helm chart for MinIO Operator digest: ca747f759eaad2d97a713b902da863728d9621834cb7cf211fef74764716d77d home: https://min.io @@ -1990,7 +2032,7 @@ entries: version: 5.0.4 - apiVersion: v2 appVersion: v5.0.3 - created: "2023-09-11T16:47:02.636643-06:00" + created: "2023-10-12T10:54:31.793554-07:00" description: A Helm chart for MinIO Operator digest: ab7c1020e4c99db199df0bb91f8f0c5c9b3f7fde9d10b8aa81bde663fb7fba44 home: https://min.io @@ -2011,7 +2053,7 @@ entries: version: 5.0.3 - apiVersion: v2 appVersion: v5.0.2 - created: "2023-09-11T16:47:02.636014-06:00" + created: "2023-10-12T10:54:31.793024-07:00" description: A Helm chart for MinIO Operator digest: cc1c1e7c7540f0cf4ab6c4e1a23842daf63b3a7a9678a0213277d3fd702d1744 home: https://min.io @@ -2032,7 +2074,7 @@ entries: version: 5.0.2 - apiVersion: v2 appVersion: v5.0.1 - created: "2023-09-11T16:47:02.635458-06:00" + created: "2023-10-12T10:54:31.79193-07:00" description: A Helm chart for MinIO Operator digest: 127925004dc5ac1e6be08b4f7f64c368f51ca356c858bcfad4afba0d465c78eb home: https://min.io @@ -2053,7 +2095,7 @@ entries: version: 5.0.1 - apiVersion: v2 appVersion: v5.0.0 - created: "2023-09-11T16:47:02.634814-06:00" + created: "2023-10-12T10:54:31.791174-07:00" description: A Helm chart for MinIO Operator digest: 05faaa4aadd3e6dfeadc7218745900427073fb1a7d3ab53554dcb9d4e11b519a home: https://min.io @@ -2074,7 +2116,7 @@ entries: version: 5.0.0 - apiVersion: v2 appVersion: v4.5.8 - created: "2023-09-11T16:47:02.634183-06:00" + created: "2023-10-12T10:54:31.789538-07:00" description: A Helm chart for MinIO Operator digest: 32603b9e86f22ad1f2c47eb321126e622ac596246d3108997d476ae0ec98b25a home: https://min.io @@ -2095,7 +2137,7 @@ entries: version: 4.5.8 - apiVersion: v2 appVersion: v4.5.7 - created: "2023-09-11T16:47:02.633387-06:00" + created: "2023-10-12T10:54:31.788877-07:00" description: A Helm chart for MinIO Operator digest: b4005b0f52c6dbed01121e855bbebcd75ab027119579cd1590c506f3cc9052a4 home: https://min.io @@ -2116,7 +2158,7 @@ entries: version: 4.5.7 - apiVersion: v2 appVersion: v4.5.6 - created: "2023-09-11T16:47:02.632673-06:00" + created: "2023-10-12T10:54:31.788247-07:00" description: A Helm chart for MinIO Operator digest: 0dd26ce74e188e8e910ada14fd0c53261b305ce081afeceaa331ff4199f84f43 home: https://min.io @@ -2137,7 +2179,7 @@ entries: version: 4.5.6 - apiVersion: v2 appVersion: v4.5.5 - created: "2023-09-11T16:47:02.631946-06:00" + created: "2023-10-12T10:54:31.787649-07:00" description: A Helm chart for MinIO Operator digest: 79138fad6c8ad0a609e2bf8663dd06b4a72ed43a2689cbfa7ec6f77c84a9bb79 home: https://min.io @@ -2158,7 +2200,7 @@ entries: version: 4.5.5 - apiVersion: v2 appVersion: v4.5.4 - created: "2023-09-11T16:47:02.631193-06:00" + created: "2023-10-12T10:54:31.787071-07:00" description: A Helm chart for MinIO Operator digest: 9f7a01771791680d6d2de90a0d20f43c28ebc103f4256e61a228ca79522caa16 home: https://min.io @@ -2179,7 +2221,7 @@ entries: version: 4.5.4 - apiVersion: v2 appVersion: v4.5.3 - created: "2023-09-11T16:47:02.630472-06:00" + created: "2023-10-12T10:54:31.786493-07:00" description: A Helm chart for MinIO Operator digest: 28535cebc7394d4106a3cbd9adb32aa8eaff22a3436219a91713a8e06e4854bb home: https://min.io @@ -2200,7 +2242,7 @@ entries: version: 4.5.3 - apiVersion: v2 appVersion: v4.5.2 - created: "2023-09-11T16:47:02.629712-06:00" + created: "2023-10-12T10:54:31.785906-07:00" description: A Helm chart for MinIO Operator digest: f46708b94148ceeed66c6c3630c519c61f2f7999b537e794a8f7dd8eee4fe87a home: https://min.io @@ -2221,7 +2263,7 @@ entries: version: 4.5.2 - apiVersion: v2 appVersion: v4.5.1 - created: "2023-09-11T16:47:02.628321-06:00" + created: "2023-10-12T10:54:31.785194-07:00" description: A Helm chart for MinIO Operator digest: 1079cda85fb27caf0323e22af5d6604b3efb0bdc004d8ae4130adf39981e7bc6 home: https://min.io @@ -2242,7 +2284,7 @@ entries: version: 4.5.1 - apiVersion: v2 appVersion: v4.5.0 - created: "2023-09-11T16:47:02.62663-06:00" + created: "2023-10-12T10:54:31.784538-07:00" description: A Helm chart for MinIO Operator digest: 71daf13a3430536c32d302baf7d1b15b85aae0ba9b9665a936190e78bcd29a37 home: https://min.io @@ -2263,7 +2305,7 @@ entries: version: 4.5.0 - apiVersion: v2 appVersion: v4.4.28 - created: "2023-09-11T16:47:02.622363-06:00" + created: "2023-10-12T10:54:31.780666-07:00" description: A Helm chart for MinIO Operator digest: 10506f0101f7b8a83eaf1c9323faaed09f24e4fbed70489f1510b73de1e8a37d home: https://min.io @@ -2284,7 +2326,7 @@ entries: version: 4.4.28 - apiVersion: v2 appVersion: v4.4.27 - created: "2023-09-11T16:47:02.621072-06:00" + created: "2023-10-12T10:54:31.780118-07:00" description: A Helm chart for MinIO Operator digest: 00b5cebcb06880f0ac7e968db60f30aa8f7ce708676d75886294e444263e0d91 home: https://min.io @@ -2305,7 +2347,7 @@ entries: version: 4.4.27 - apiVersion: v2 appVersion: v4.4.26 - created: "2023-09-11T16:47:02.619353-06:00" + created: "2023-10-12T10:54:31.779572-07:00" description: A Helm chart for MinIO Operator digest: 901d018eb3a7d5869980b7eb9e3ee98f6e6e03d87916888824195ecf99034e6f home: https://min.io @@ -2326,7 +2368,7 @@ entries: version: 4.4.26 - apiVersion: v2 appVersion: v4.4.25 - created: "2023-09-11T16:47:02.618605-06:00" + created: "2023-10-12T10:54:31.779015-07:00" description: A Helm chart for MinIO Operator digest: 739df832f89ba832082bd31ede3a278a1d5320f53bf2851a87c39565447ca899 home: https://min.io @@ -2347,7 +2389,7 @@ entries: version: 4.4.25 - apiVersion: v2 appVersion: v4.4.24 - created: "2023-09-11T16:47:02.617837-06:00" + created: "2023-10-12T10:54:31.778458-07:00" description: A Helm chart for MinIO Operator digest: a5cf656ddf429b1798102c71b14222eda587d8c84a5bc8f498344dcd3991fbe8 home: https://min.io @@ -2368,7 +2410,7 @@ entries: version: 4.4.24 - apiVersion: v2 appVersion: v4.4.23 - created: "2023-09-11T16:47:02.616937-06:00" + created: "2023-10-12T10:54:31.777875-07:00" description: A Helm chart for MinIO Operator digest: 82936fe6caaefc1420dabec0bad23f7cbd7bad0e18d91177f4be2c8dd7c42f97 home: https://min.io @@ -2389,7 +2431,7 @@ entries: version: 4.4.23 - apiVersion: v2 appVersion: v4.4.22 - created: "2023-09-11T16:47:02.61341-06:00" + created: "2023-10-12T10:54:31.777289-07:00" description: A Helm chart for MinIO Operator digest: 53f14c8a25da32736b97bc454f10f64a24540e54298b40422ce369c89d524d82 home: https://min.io @@ -2410,7 +2452,7 @@ entries: version: 4.4.22 - apiVersion: v2 appVersion: v4.4.21 - created: "2023-09-11T16:47:02.612661-06:00" + created: "2023-10-12T10:54:31.776028-07:00" description: A Helm chart for MinIO Operator digest: d2e7fce3dc9bf61e06a2934cc1baa3257d9394cffa423febe115773065b34eba home: https://min.io @@ -2431,7 +2473,7 @@ entries: version: 4.4.21 - apiVersion: v2 appVersion: v4.4.20 - created: "2023-09-11T16:47:02.612069-06:00" + created: "2023-10-12T10:54:31.775506-07:00" description: A Helm chart for MinIO Operator digest: 451880d3863cf4010e1012dd371af0c18d0f18cf6d535c7f9622db4554558e39 home: https://min.io @@ -2452,7 +2494,7 @@ entries: version: 4.4.20 - apiVersion: v2 appVersion: v4.4.19 - created: "2023-09-11T16:47:02.611028-06:00" + created: "2023-10-12T10:54:31.774505-07:00" description: A Helm chart for MinIO Operator digest: 03f3cbcfd81ac6de399d5e12ee3e9149a3121c1a13c205a9d211a5ca6bb80f3a home: https://min.io @@ -2473,7 +2515,7 @@ entries: version: 4.4.19 - apiVersion: v2 appVersion: v4.4.18 - created: "2023-09-11T16:47:02.610294-06:00" + created: "2023-10-12T10:54:31.773985-07:00" description: A Helm chart for MinIO Operator digest: f57c293a026147b416095d3d71dd5351c5bcbb15ba1a67ff98a23a6ea55cd811 home: https://min.io @@ -2494,7 +2536,7 @@ entries: version: 4.4.18 - apiVersion: v2 appVersion: v4.4.17 - created: "2023-09-11T16:47:02.609687-06:00" + created: "2023-10-12T10:54:31.773363-07:00" description: A Helm chart for MinIO Operator digest: ef875252c6a25d2d88a6f6c9b469ceb0502e215698ddf349e6162d5cea3f7454 home: https://min.io @@ -2515,7 +2557,7 @@ entries: version: 4.4.17 - apiVersion: v2 appVersion: v4.4.16 - created: "2023-09-11T16:47:02.609167-06:00" + created: "2023-10-12T10:54:31.772805-07:00" description: A Helm chart for MinIO Operator digest: 4006976cce87448e1f98eaab2e03ff94a149448569272c3b090043e1784f5a0d home: https://min.io @@ -2536,7 +2578,7 @@ entries: version: 4.4.16 - apiVersion: v2 appVersion: v4.4.15 - created: "2023-09-11T16:47:02.608667-06:00" + created: "2023-10-12T10:54:31.772352-07:00" description: A Helm chart for MinIO Operator digest: d32c2a18765f77073f8f68a00c4f59340b505e7a0ff039e7bdf9c984dfa4fac8 home: https://min.io @@ -2557,7 +2599,7 @@ entries: version: 4.4.15 - apiVersion: v2 appVersion: v4.4.14 - created: "2023-09-11T16:47:02.608188-06:00" + created: "2023-10-12T10:54:31.771881-07:00" description: A Helm chart for MinIO Operator digest: 564c971cc0a6fc8d8e28f4410adad7f24ddb638199ec30360057d6442cb5d5d2 home: https://min.io @@ -2578,7 +2620,7 @@ entries: version: 4.4.14 - apiVersion: v2 appVersion: v4.4.13 - created: "2023-09-11T16:47:02.607718-06:00" + created: "2023-10-12T10:54:31.771408-07:00" description: A Helm chart for MinIO Operator digest: 124b1d7e4bbf5b97542721da1b6ce522026ced596e5c3da0b4b71e6137ca9f20 home: https://min.io @@ -2599,7 +2641,7 @@ entries: version: 4.4.13 - apiVersion: v2 appVersion: v4.4.10 - created: "2023-09-11T16:47:02.607206-06:00" + created: "2023-10-12T10:54:31.770999-07:00" description: A Helm chart for MinIO Operator digest: 7ddf8840cf0b6998d2b0f5eb72fb586cc0dceaf55583528912d5d572df6914bc home: https://min.io @@ -2620,7 +2662,7 @@ entries: version: 4.4.10 - apiVersion: v2 appVersion: v4.4.9 - created: "2023-09-11T16:47:02.625665-06:00" + created: "2023-10-12T10:54:31.783621-07:00" description: A Helm chart for MinIO Operator digest: 9c84dc9ea5122b24c5ef52a597c22213151baf74e4c91c95f90570fa0358d824 home: https://min.io @@ -2641,7 +2683,7 @@ entries: version: 4.4.9 - apiVersion: v2 appVersion: v4.4.8 - created: "2023-09-11T16:47:02.625271-06:00" + created: "2023-10-12T10:54:31.783088-07:00" description: A Helm chart for MinIO Operator digest: 51779e38d74b919d1eb48c21d51174ecc34a3d9e602b53c9ca5f05ad8fd6a02e home: https://min.io @@ -2662,7 +2704,7 @@ entries: version: 4.4.8 - apiVersion: v2 appVersion: v4.4.7 - created: "2023-09-11T16:47:02.624898-06:00" + created: "2023-10-12T10:54:31.782749-07:00" description: A Helm chart for MinIO Operator digest: 6bec3bd8e464c946be4d7de756e23743660686ecc52b7b516509be0f1d80f33b home: https://min.io @@ -2683,7 +2725,7 @@ entries: version: 4.4.7 - apiVersion: v2 appVersion: v4.4.6 - created: "2023-09-11T16:47:02.624511-06:00" + created: "2023-10-12T10:54:31.782434-07:00" description: A Helm chart for MinIO Operator digest: a84048ce81e3b6dc9b7214f6d95f08768985c2aedc7ba377383b0e55bb72ad82 home: https://min.io @@ -2704,7 +2746,7 @@ entries: version: 4.4.6 - apiVersion: v2 appVersion: v4.4.5 - created: "2023-09-11T16:47:02.624112-06:00" + created: "2023-10-12T10:54:31.782105-07:00" description: A Helm chart for MinIO Operator digest: 10337d8d9375bfd87b231b2696f6ee6d3e43bef96bd3ada1db015975da8053c5 home: https://min.io @@ -2725,7 +2767,7 @@ entries: version: 4.4.5 - apiVersion: v2 appVersion: v4.4.4 - created: "2023-09-11T16:47:02.623707-06:00" + created: "2023-10-12T10:54:31.781607-07:00" description: A Helm chart for MinIO Operator digest: 3d28b27c3102f0994b4b1ae7db40f33f79d70cc7d22febfebe11a68bf507a5f8 home: https://min.io @@ -2746,7 +2788,7 @@ entries: version: 4.4.4 - apiVersion: v2 appVersion: v4.4.3 - created: "2023-09-11T16:47:02.62327-06:00" + created: "2023-10-12T10:54:31.78116-07:00" description: A Helm chart for MinIO Operator digest: 528cde9cb02ffd6ebe5820f5f540b019599aa55affbff43627d3524d50825ff1 home: https://min.io @@ -2767,7 +2809,7 @@ entries: version: 4.4.3 - apiVersion: v2 appVersion: v4.4.2 - created: "2023-09-11T16:47:02.611462-06:00" + created: "2023-10-12T10:54:31.774976-07:00" description: A Helm chart for MinIO Operator digest: 1f71d438b2363aafaa4232a8b8d2461f306179b5ec628e0126a52724d25d9138 home: https://min.io @@ -2788,7 +2830,7 @@ entries: version: 4.4.2 - apiVersion: v2 appVersion: v4.4.1 - created: "2023-09-11T16:47:02.606806-06:00" + created: "2023-10-12T10:54:31.770554-07:00" description: A Helm chart for MinIO Operator digest: 2fcb816afa72a3aba0deba2992827a0ad4b3b0e9b19903ac3fc35f461f5cb6b7 home: https://min.io @@ -2809,7 +2851,7 @@ entries: version: 4.4.1 - apiVersion: v2 appVersion: v4.4.0 - created: "2023-09-11T16:47:02.606412-06:00" + created: "2023-10-12T10:54:31.770118-07:00" description: A Helm chart for MinIO Operator digest: c2885c20e28b46609ac1def9bf529ce84275b85521798f254eb410bcdaca8314 home: https://min.io @@ -2830,7 +2872,7 @@ entries: version: 4.4.0 - apiVersion: v2 appVersion: v4.3.9 - created: "2023-09-11T16:47:02.606004-06:00" + created: "2023-10-12T10:54:31.769667-07:00" description: A Helm chart for MinIO Operator digest: ee1c348c272903ea2562650a92cc4654db2bb1f5b617b329dad1586ccbfdb5bb home: https://min.io @@ -2851,7 +2893,7 @@ entries: version: 4.3.9 - apiVersion: v2 appVersion: v4.3.8 - created: "2023-09-11T16:47:02.60559-06:00" + created: "2023-10-12T10:54:31.768794-07:00" description: A Helm chart for MinIO Operator digest: 85ecf1beae2505e993ec939fc7df6fedf55708c665359de3b67b3ef35d768aaf home: https://min.io @@ -2872,7 +2914,7 @@ entries: version: 4.3.8 - apiVersion: v2 appVersion: v4.3.7 - created: "2023-09-11T16:47:02.605053-06:00" + created: "2023-10-12T10:54:31.768273-07:00" description: A Helm chart for MinIO Operator digest: 08fb42ece9b9b356f28c1261620726a7056840527df0c036ed64dd511595c024 home: https://min.io @@ -2893,7 +2935,7 @@ entries: version: 4.3.7 - apiVersion: v2 appVersion: v4.3.6 - created: "2023-09-11T16:47:02.60369-06:00" + created: "2023-10-12T10:54:31.767798-07:00" description: A Helm chart for MinIO Operator digest: 1da42b15ba375963bbc6908a7e5f6fc6605eba059cebf0706da09565e463e2c4 home: https://min.io @@ -2912,4 +2954,4 @@ entries: urls: - https://operator.min.io/helm-releases/tenant-4.3.6.tgz version: 4.3.6 -generated: "2023-09-11T16:47:02.468607-06:00" +generated: "2023-10-12T10:54:31.66723-07:00" diff --git a/kubectl-minio/README.md b/kubectl-minio/README.md index 77ed0bce90d..d3ff9666856 100644 --- a/kubectl-minio/README.md +++ b/kubectl-minio/README.md @@ -20,7 +20,7 @@ Creates MinIO Operator Deployment along with MinIO Tenant CRD, Service account, Options: -- `--image=minio/operator:v5.0.9` +- `--image=minio/operator:v5.0.10` - `--namespace=minio-operator` - `--cluster-domain=cluster.local` - `--namespace-to-watch=default` @@ -87,7 +87,7 @@ Command: `kubectl minio tenant upgrade TENANT_NAME --image IMAGE_TAG [options]` Upgrade MinIO Docker image for the given MinIO Tenant. -example: `kubectl minio tenant upgrade tenant1 --image minio/minio:RELEASE.2023-09-07T02-05-02Z` +example: `kubectl minio tenant upgrade tenant1 --image minio/minio:RELEASE.2023-10-07T15-07-38Z` Options: diff --git a/kubectl-minio/cmd/helpers/constants.go b/kubectl-minio/cmd/helpers/constants.go index 45c10387d23..1d8cf604cd8 100644 --- a/kubectl-minio/cmd/helpers/constants.go +++ b/kubectl-minio/cmd/helpers/constants.go @@ -36,13 +36,13 @@ const ( MinIOAccessMode = "ReadWriteOnce" // DefaultOperatorImage is the default operator image to be used - DefaultOperatorImage = "minio/operator:v5.0.9" + DefaultOperatorImage = "minio/operator:v5.0.10" // DefaultTenantImage is the default MinIO image used while creating tenant - DefaultTenantImage = "minio/minio:RELEASE.2023-09-07T02-05-02Z" + DefaultTenantImage = "minio/minio:RELEASE.2023-10-07T15-07-38Z" // DefaultKESImage is the default KES image used while creating tenant - DefaultKESImage = "minio/kes:2023-08-19T17-27-47Z" + DefaultKESImage = "minio/kes:2023-10-03T00-48-37Z" ) // KESReplicas is the number of replicas for MinIO KES diff --git a/kubectl-minio/cmd/tenant-upgrade.go b/kubectl-minio/cmd/tenant-upgrade.go index 88a74be0f09..daf29b47b4b 100644 --- a/kubectl-minio/cmd/tenant-upgrade.go +++ b/kubectl-minio/cmd/tenant-upgrade.go @@ -49,7 +49,7 @@ func newTenantUpgradeCmd(out io.Writer, errOut io.Writer) *cobra.Command { Use: "upgrade --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":"6NAmBaA,EAAkB,WAC7B,OACEC,EAAAA,EAAAA,MAACC,EAAAA,GAAI,CAACC,WAAS,EAACC,UAAW,EAAEC,SAAA,EAC3BC,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAAAG,UACHC,EAAAA,EAAAA,KAACC,EAAAA,IAAQ,CAACC,MAAO,OAAQC,OAAQ,YAEnCH,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAAL,SAAC,cAGjB,EAEaM,EAAkB,WAC7B,OACEV,EAAAA,EAAAA,MAACC,EAAAA,GAAI,CAACC,WAAS,EAACC,UAAW,EAAEC,SAAA,EAC3BC,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAAAG,UACHC,EAAAA,EAAAA,KAACM,EAAAA,IAAQ,CAACJ,MAAO,OAAQC,OAAQ,YAEnCH,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAAL,SAAC,8BAGjB,EAEaQ,EAAqB,WAChC,OACEZ,EAAAA,EAAAA,MAACC,EAAAA,GAAI,CAACC,WAAS,EAACC,UAAW,EAAEC,SAAA,EAC3BC,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAAAG,UACHC,EAAAA,EAAAA,KAACQ,EAAAA,IAAS,CAACN,MAAO,OAAQC,OAAQ,YAEpCH,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAAL,SAAC,eAGjB,C,2WCiDA,SAASU,IACP,OAAO,IACT,CAEA,IAsrBMC,GAAYC,EAAAA,EAAAA,KAND,SAACC,GAAe,MAAM,CACrCC,cAAeD,EAAME,QAAQD,cAC7BE,eAAgBH,EAAME,QAAQE,cAC9BC,OAAQL,EAAME,QAAQI,WACvB,GAEmC,MAEpC,WAAeC,EAAAA,EAAAA,IAttBA,SAACC,GAAY,OAC1BC,EAAAA,EAAAA,IAAYC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CACXC,aAAc,CACZC,QAAS,OACTC,aAAc,IAEhBC,WAAY,CACVC,WAAY,GACZH,QAAS,OACTrB,OAAQ,GACR,WAAY,CACVyB,WAAY,aAGbC,EAAAA,IACAC,EAAAA,IAAY,IACfC,YAAa,CACXC,UAAW,WAEVC,EAAAA,IACAC,EAAAA,IACAC,EAAAA,IACAC,EAAAA,IACAC,EAAAA,IACF,GA8rBL,CAAkC3B,GAxrBH,SAAH4B,GAA8C,IAAxCC,EAAOD,EAAPC,QAC1BC,GAAWC,EAAAA,EAAAA,MAEXxB,GAASyB,EAAAA,EAAAA,KAAY,SAAC9B,GAAe,OAAKA,EAAME,QAAQI,UAAU,IAClEL,GAAgB6B,EAAAA,EAAAA,KACpB,SAAC9B,GAAe,OAAKA,EAAME,QAAQD,aAAa,IAGlD8B,GAAkCC,EAAAA,EAAAA,WAAkB,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAnDI,EAASF,EAAA,GAAEG,EAAYH,EAAA,GAC9BI,GAAoCL,EAAAA,EAAAA,WAAkB,GAAMM,GAAAJ,EAAAA,EAAAA,GAAAG,EAAA,GAArDE,EAAUD,EAAA,GAAEE,EAAaF,EAAA,GAChCG,GAAwCT,EAAAA,EAAAA,UAAiB,YAAWU,GAAAR,EAAAA,EAAAA,GAAAO,EAAA,GAA7DE,EAAYD,EAAA,GAAEE,EAAeF,EAAA,GACpCG,GACEb,EAAAA,EAAAA,UAAiB,IAAGc,GAAAZ,EAAAA,EAAAA,GAAAW,EAAA,GADfE,EAAsBD,EAAA,GAAEE,EAAyBF,EAAA,GAExDG,GAA4CjB,EAAAA,EAAAA,UAAiB,IAAGkB,GAAAhB,EAAAA,EAAAA,GAAAe,EAAA,GAAzDE,EAAcD,EAAA,GAAEE,EAAiBF,EAAA,GACxCG,GAA4CrB,EAAAA,EAAAA,UAAiB,IAAGsB,GAAApB,EAAAA,EAAAA,GAAAmB,EAAA,GAAzDE,GAAcD,EAAA,GAAEE,GAAiBF,EAAA,GACxCG,IAAgDzB,EAAAA,EAAAA,WAAkB,GAAM0B,IAAAxB,EAAAA,EAAAA,GAAAuB,GAAA,GAAjEE,GAAgBD,GAAA,GAAEE,GAAmBF,GAAA,GAC5CG,IAAkD7B,EAAAA,EAAAA,UAAiB,IAAG8B,IAAA5B,EAAAA,EAAAA,GAAA2B,GAAA,GAA/DE,GAAiBD,GAAA,GAAEE,GAAoBF,GAAA,GAC9CG,IAA8CjC,EAAAA,EAAAA,UAAiB,IAAGkC,IAAAhC,EAAAA,EAAAA,GAAA+B,GAAA,GAA3DE,GAAeD,GAAA,GAAEE,GAAkBF,GAAA,GAC1CG,IAAwCrC,EAAAA,EAAAA,UAAiB,IAAGsC,IAAApC,EAAAA,EAAAA,GAAAmC,GAAA,GAArDE,GAAYD,GAAA,GAAEE,GAAeF,GAAA,GACpCG,IAA0BzC,EAAAA,EAAAA,UAAiB,IAAG0C,IAAAxC,EAAAA,EAAAA,GAAAuC,GAAA,GAAvCE,GAAKD,GAAA,GAAEE,GAAQF,GAAA,GACtBG,IAA4C7C,EAAAA,EAAAA,UAAiB,IAAG8C,IAAA5C,EAAAA,EAAAA,GAAA2C,GAAA,GAAzDE,GAAcD,GAAA,GAAEE,GAAiBF,GAAA,GACxCG,IAAwDjD,EAAAA,EAAAA,UAAiB,IAAGkD,IAAAhD,EAAAA,EAAAA,GAAA+C,GAAA,GAArEE,GAAoBD,GAAA,GAAEE,GAAuBF,GAAA,GACpDG,IACErD,EAAAA,EAAAA,WAAkB,GAAMsD,IAAApD,EAAAA,EAAAA,GAAAmD,GAAA,GADnBE,GAAwBD,GAAA,GAAEE,GAA2BF,GAAA,GAE5DG,IAAwDzD,EAAAA,EAAAA,UAAiB,IAAG0D,IAAAxD,EAAAA,EAAAA,GAAAuD,GAAA,GAArEE,GAAoBD,GAAA,GAAEE,GAAuBF,GAAA,GACpDG,IAAwD7D,EAAAA,EAAAA,UAAiB,IAAG8D,IAAA5D,EAAAA,EAAAA,GAAA2D,GAAA,GAArEE,GAAoBD,GAAA,GAAEE,GAAuBF,GAAA,GACpDG,IAAsDjE,EAAAA,EAAAA,UAAiB,IAAGkE,IAAAhE,EAAAA,EAAAA,GAAA+D,GAAA,GAAnEE,GAAmBD,GAAA,GAAEE,GAAsBF,GAAA,GAClDG,IAAsDrE,EAAAA,EAAAA,UAAiB,IAAGsE,IAAApE,EAAAA,EAAAA,GAAAmE,GAAA,GAAnEE,GAAmBD,GAAA,GAAEE,GAAsBF,GAAA,GAClDG,IAAkCzE,EAAAA,EAAAA,WAAkB,GAAM0E,IAAAxE,EAAAA,EAAAA,GAAAuE,GAAA,GAAnDE,GAASD,GAAA,GAAEE,GAAYF,GAAA,GAC9BG,IAAgD7E,EAAAA,EAAAA,WAAkB,GAAM8E,IAAA5E,EAAAA,EAAAA,GAAA2E,GAAA,GAAjEE,GAAgBD,GAAA,GAAEE,GAAmBF,GAAA,GAC5CG,IAAgDjF,EAAAA,EAAAA,WAAkB,GAAMkF,IAAAhF,EAAAA,EAAAA,GAAA+E,GAAA,GAAjEE,GAAgBD,GAAA,GAAEE,GAAmBF,GAAA,GAC5CG,IAAkCrF,EAAAA,EAAAA,UAAmB,CAAC,KAAIsF,IAAApF,EAAAA,EAAAA,GAAAmF,GAAA,GAAnDE,GAASD,GAAA,GAAEE,GAAYF,GAAA,GAC9BG,IAAoCzF,EAAAA,EAAAA,UAAmB,CAAC,KAAI0F,IAAAxF,EAAAA,EAAAA,GAAAuF,GAAA,GAArDE,GAAUD,GAAA,GAAEE,GAAaF,GAAA,GAChCG,IAAgD7F,EAAAA,EAAAA,UAAc,CAAC,GAAE8F,IAAA5F,EAAAA,EAAAA,GAAA2F,GAAA,GAA1DE,GAAgBD,GAAA,GAAEE,GAAmBF,GAAA,GACtCG,GAAkB,SAACC,GACvBF,IAAoBG,EAAAA,EAAAA,IAAqBJ,GAAkBG,GAC7D,EACAE,IAAsCpG,EAAAA,EAAAA,WAAkB,GAAMqG,IAAAnG,EAAAA,EAAAA,GAAAkG,GAAA,GAAvDE,GAAWD,GAAA,GAAEE,GAAcF,GAAA,IAGlCG,EAAAA,EAAAA,YAAU,WACR,IAAIC,EAA4C,GAE3B,WAAjB9F,IACF8F,EAA0B,GAAAC,QAAAC,EAAAA,EAAAA,GACrBF,GAA0B,CAC7B,CACEG,SAAU,2BACVC,UAAU,EACVC,MAAO/F,GAET,CACE6F,SAAU,kBACVC,UAAU,EACVC,MAAO3F,GAET,CACEyF,SAAU,kBACVC,UAAU,EACVC,MAAOvF,IAET,CACEqF,SAAU,mBACVC,UAAU,EACVC,MAAO3E,OAKQ,OAAjBxB,IACF8F,EAA0B,GAAAC,QAAAC,EAAAA,EAAAA,GACrBF,GAA0B,CAC7B,CACEG,SAAU,SACVC,UAAU,EACVC,MAAOnE,IAET,CACEiE,SAAU,kBACVC,UAAU,EACVC,MAAO/D,OAKb,IAAMgE,GAAYC,EAAAA,EAAAA,GAAqBP,GAEvCF,GAAiD,IAAlCU,OAAOC,KAAKH,GAAWI,QAEtCnB,GAAoBe,EACtB,GAAG,CACDpG,EACAI,EACAI,EACAI,GACAY,GACAQ,GACAI,KAGF,IAAMqE,IAAgCC,EAAAA,EAAAA,cAAY,WAChDC,EAAAA,EACGC,OACC,MAAM,sBAADb,OACuB,OAANrI,QAAM,IAANA,OAAM,EAANA,EAAQmJ,UAAS,aAAAd,OAAkB,OAANrI,QAAM,IAANA,OAAM,EAANA,EAAQoJ,KAAI,uBAEhEC,MAAK,SAACC,GACDA,IACEA,EAAIC,MACNhH,EAAgB,UAChBI,EAA0B2G,EAAIC,KAAKC,mBACnCzG,EAAkBuG,EAAIC,KAAKE,WAC3BtG,GAAkBmG,EAAIC,KAAKG,WAC3B/F,GAAqB2F,EAAIC,KAAKI,cAC9B5F,GAAmBuF,EAAIC,KAAKK,YAC5BzF,GAAgBmF,EAAIC,KAAKM,SAChBP,EAAIQ,mBACbvH,EAAgB,MAChBgC,GAAS+E,EAAIQ,iBAAiBC,KAC9BpF,GAAkB2E,EAAIQ,iBAAiBE,gBACvCjF,GAAwBuE,EAAIQ,iBAAiBG,sBAC7C1E,GACE+D,EAAIQ,iBAAiBI,wBAEvBvE,GAAwB2D,EAAIQ,iBAAiBK,uBAC7CpE,GAAuBuD,EAAIQ,iBAAiBM,sBAC5CjE,GAAuBmD,EAAIQ,iBAAiBO,qBAC5C9D,GAAa+C,EAAIQ,iBAAiBQ,uBAClC3D,GAAoB2C,EAAIQ,iBAAiBS,iBACzCxD,GAAoBuC,EAAIQ,iBAAiBU,mBAG/C,IACCC,OAAM,SAACC,GACNnJ,GAASoJ,EAAAA,EAAAA,IAAqBD,GAChC,GACJ,GAAG,CAAC1K,EAAQuB,KAEZ4G,EAAAA,EAAAA,YAAU,WACJnI,GACF+I,IAEJ,GAAG,CAAC/I,EAAQ+I,KAqFZ,OACErK,EAAAA,EAAAA,MAACkM,EAAAA,SAAc,CAAA9L,SAAA,EACbC,EAAAA,EAAAA,KAAC8L,EAAAA,EAAa,CACZC,MAAO,mBACPC,YAAa,UACbC,WAAW,SACXC,WAAWlM,EAAAA,EAAAA,KAACmM,EAAAA,IAAgB,IAC5BC,UAAWrJ,EACXsJ,QAAS,kBAAMjJ,GAAc,EAAM,EACnCkJ,OAAQnJ,EACRoJ,UA7F+B,WACnCvJ,GAAa,GACb,IAAIwJ,EAA2C,CAAC,EAChD,OAAQjJ,GACN,IAAK,KACHiJ,EAAQzB,iBAAmB,CACzBC,IAAKzF,GACL0F,eAAgBtF,GAChBuF,qBAAsBnF,GACtBoF,uBAAwB5E,GACxB6E,sBAAuBzE,GACvB0E,qBAAsBtE,GACtBuE,oBAAqBnE,GACrBoE,sBAAuBhE,GACvBiE,gBAAiB7D,GACjB8D,iBAAkB1D,IAEpB,MACF,IAAK,SACHyE,EAAQhC,KAAO,CACbC,kBAAmB9G,EACnB+G,UAAW3G,EACX4G,UAAWxG,GACXyG,aAAcjG,GACdkG,WAAY9F,GACZ+F,OAAQ3F,IAOd+E,EAAAA,EACGC,OACC,OAAO,sBAADb,OACsB,OAANrI,QAAM,IAANA,OAAM,EAANA,EAAQmJ,UAAS,aAAAd,OAAkB,OAANrI,QAAM,IAANA,OAAM,EAANA,EAAQoJ,KAAI,sBAC/DmC,GAEDlC,MAAK,WACJtH,GAAa,GAEbI,GAAc,GACd4G,IACF,IACC0B,OAAM,SAACC,GACNnJ,GAASoJ,EAAAA,EAAAA,IAAqBD,IAC9B3I,GAAa,EACf,GACJ,EA8CMyJ,qBACEzM,EAAAA,EAAAA,KAAC0M,EAAAA,EAAiB,CAAA3M,SAAC,yEAKtBc,GACCb,EAAAA,EAAAA,KAAA,OAAK2M,UAAWpK,EAAQR,YAAYhC,UAClCC,EAAAA,EAAAA,KAAC4M,EAAAA,IAAM,OAGTjN,EAAAA,EAAAA,MAACkN,EAAAA,SAAQ,CAAA9M,SAAA,EACPJ,EAAAA,EAAAA,MAACC,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAG/M,SAAA,EAChBC,EAAAA,EAAAA,KAAA,MAAI2M,UAAWpK,EAAQwK,aAAahN,SAAC,uBACrCC,EAAAA,EAAAA,KAACS,EAAM,QAETT,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CACHQ,MAAI,EACJ0M,GAAI,GACJH,UAAWpK,EAAQyK,qBACnBC,cAAe,EAAElN,UAEjBC,EAAAA,EAAAA,KAACkN,EAAAA,EAAkB,CACjBC,iBAAkB5J,EAClB6J,GAAG,cACH/C,KAAK,cACLgD,MAAM,WACNC,SAAU,SAACC,GACT/J,EAAgB+J,EAAEC,OAAO9D,MAC3B,EACA+D,gBAAiB,CACf,CAAEJ,OAAOrN,EAAAA,EAAAA,KAACO,EAAAA,GAAkB,IAAKmJ,MAAO,YACxC,CAAE2D,OAAOrN,EAAAA,EAAAA,KAACN,EAAAA,GAAe,IAAKgK,MAAO,UACrC,CAAE2D,OAAOrN,EAAAA,EAAAA,KAACK,EAAAA,GAAe,IAAKqJ,MAAO,WAKzB,WAAjBnG,IACC5D,EAAAA,EAAAA,MAACkN,EAAAA,SAAQ,CAAA9M,SAAA,EACPC,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAAC2N,EAAAA,EAAe,CACdP,GAAG,2BACH/C,KAAK,2BACLiD,SAAU,SAACC,GACT3J,EAA0B2J,EAAEC,OAAO9D,OACnCb,GAAgB,2BAClB,EACAwE,MAAM,oBACN3D,MAAO/F,EACPiK,YAAY,sEACZC,MAAOlF,GAA2C,0BAAK,GACvDc,UAAQ,OAGZzJ,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAAC2N,EAAAA,EAAe,CACdP,GAAG,kBACH/C,KAAK,kBACLiD,SAAU,SAACC,GACTvJ,EAAkBuJ,EAAEC,OAAO9D,OAC3Bb,GAAgB,kBAClB,EACAwE,MAAM,YACN3D,MAAO3F,EACP8J,MAAOlF,GAAkC,iBAAK,GAC9Cc,UAAQ,OAGZzJ,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAAC2N,EAAAA,EAAe,CACdG,KAAMvJ,GAAmB,OAAS,WAClC6I,GAAG,kBACH/C,KAAK,kBACLiD,SAAU,SAACC,GACTnJ,GAAkBmJ,EAAEC,OAAO9D,OAC3Bb,GAAgB,kBAClB,EACAwE,MAAM,YACN3D,MAAOvF,GACP0J,MAAOlF,GAAkC,iBAAK,GAC9Cc,UAAQ,EACRsE,YACExJ,IACEvE,EAAAA,EAAAA,KAACgO,EAAAA,EAAiB,KAElBhO,EAAAA,EAAAA,KAACiO,EAAAA,EAAgB,IAGrBC,cAAe,kBAAM1J,IAAqBD,GAAiB,OAG/DvE,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAAC2N,EAAAA,EAAe,CACdP,GAAG,mBACH/C,KAAK,mBACLiD,SAAU,SAACC,GACTvI,GAAmBuI,EAAEC,OAAO9D,OAC5Bb,GAAgB,mBAClB,EACAwE,MAAM,aACN3D,MAAO3E,GACP6I,YAAY,SACZC,MAAOlF,GAAmC,kBAAK,QAGnD3I,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAAC2N,EAAAA,EAAe,CACdP,GAAG,gBACH/C,KAAK,gBACLiD,SAAU,SAACC,GACTnI,GAAgBmI,EAAEC,OAAO9D,OACzBb,GAAgB,gBAClB,EACAwE,MAAM,SACN3D,MAAOvE,UAMG,OAAjB5B,IACC5D,EAAAA,EAAAA,MAACkN,EAAAA,SAAQ,CAAA9M,SAAA,EACPC,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAAC2N,EAAAA,EAAe,CACdP,GAAG,SACH/C,KAAK,SACLiD,SAAU,SAACC,GACT/H,GAAS+H,EAAEC,OAAO9D,OAClBb,GAAgB,SAClB,EACAwE,MAAM,sBACN3D,MAAOnE,GACPqI,YAAY,kBACZC,MAAOlF,GAAyB,QAAK,GACrCc,UAAQ,OAGZzJ,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAACmO,EAAAA,EAAiB,CAChBzE,MAAM,aACN0D,GAAG,aACH/C,KAAK,aACL+D,QAAS7G,GACT+F,SAAU,SAACC,GACT,IACMa,EADUb,EAAEC,OACMY,QACxB5G,GAAa4G,EACf,EACAf,MAAO,6BAGXrN,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAACmO,EAAAA,EAAiB,CAChBzE,MAAM,oBACN0D,GAAG,oBACH/C,KAAK,oBACL+D,QAASzG,GACT2F,SAAU,SAACC,GACT,IACMa,EADUb,EAAEC,OACMY,QACxBxG,GAAoBwG,EACtB,EACAf,MAAO,sBAGV1F,IACChI,EAAAA,EAAAA,MAACC,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAG/M,SAAA,EAChBC,EAAAA,EAAAA,KAACqO,EAAAA,EAAU,CACT1B,UAAWpK,EAAQsL,MACnBS,QAAQ,UACR9M,QAAQ,QACR+M,cAAY,EAAAxO,SACb,oEAIDC,EAAAA,EAAAA,KAAA,YAEA,MACJA,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAACmO,EAAAA,EAAiB,CAChBzE,MAAM,oBACN0D,GAAG,oBACH/C,KAAK,oBACL+D,QAASrG,GACTuF,SAAU,SAACC,GACT,IACMa,EADUb,EAAEC,OACMY,QACxBpG,GAAoBoG,EACtB,EACAf,MAAO,8CAGXrN,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAAC2N,EAAAA,EAAe,CACdP,GAAG,kBACH/C,KAAK,kBACLiD,SAAU,SAACC,GACT3H,GAAkB2H,EAAEC,OAAO9D,OAC3Bb,GAAgB,kBAClB,EACAwE,MAAM,iBACN3D,MAAO/D,GACPiI,YAAY,wBACZC,MAAOlF,GAAkC,iBAAK,GAC9Cc,UAAQ,OAGZzJ,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAAC2N,EAAAA,EAAe,CACdG,KAAM3H,GAA2B,OAAS,WAC1CiH,GAAG,wBACH/C,KAAK,wBACLiD,SAAU,SAACC,GACTvH,GAAwBuH,EAAEC,OAAO9D,MACnC,EACA2D,MAAM,uBACN3D,MAAO3D,GACP6H,YAAY,QACZG,YACE5H,IACEnG,EAAAA,EAAAA,KAACgO,EAAAA,EAAiB,KAElBhO,EAAAA,EAAAA,KAACiO,EAAAA,EAAgB,IAGrBC,cAAe,kBACb9H,IAA6BD,GAAyB,OAI5DnG,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAAC2N,EAAAA,EAAe,CACdP,GAAG,wBACH/C,KAAK,wBACLiD,SAAU,SAACC,GACT/G,GAAwB+G,EAAEC,OAAO9D,MACnC,EACA2D,MAAM,yBACN3D,MAAOnD,GACPqH,YAAY,oBAGhB5N,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAAC2N,EAAAA,EAAe,CACdP,GAAG,wBACH/C,KAAK,wBACLiD,SAAU,SAACC,GACT3G,GAAwB2G,EAAEC,OAAO9D,MACnC,EACA2D,MAAM,wBACN3D,MAAO/C,GACPiH,YAAY,0BAGhB5N,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAAC2N,EAAAA,EAAe,CACdP,GAAG,uBACH/C,KAAK,uBACLiD,SAAU,SAACC,GACTvG,GAAuBuG,EAAEC,OAAO9D,MAClC,EACA2D,MAAM,uBACN3D,MAAO3C,GACP6G,YAAY,qDAGhB5N,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAAC2N,EAAAA,EAAe,CACdP,GAAG,uBACH/C,KAAK,uBACLiD,SAAU,SAACC,GACTnG,GAAuBmG,EAAEC,OAAO9D,MAClC,EACA2D,MAAM,sBACN3D,MAAOvC,GACPyG,YAAY,mDAMpB5N,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQiM,gBAAgBzO,UACpDC,EAAAA,EAAAA,KAACyO,EAAAA,IAAM,CACLrB,GAAI,WACJU,KAAK,SACLQ,QAAQ,aACRI,MAAM,UACNC,UAAWzF,IAAenG,EAC1B6L,QAAS,kBAAMxL,GAAc,EAAK,EAClCiK,MAAO,WAIO,OAAjB9J,IACC5D,EAAAA,EAAAA,MAACkN,EAAAA,SAAQ,CAAA9M,SAAA,EACPC,EAAAA,EAAAA,KAAC6O,EAAAA,EAAY,CAAA9O,SAAC,6BACdC,EAAAA,EAAAA,KAAA,UACAL,EAAAA,EAAAA,MAAA,YAAUgN,UAAWpK,EAAQuM,WAAW/O,SAAA,EACtCC,EAAAA,EAAAA,KAAA,UAAQ2M,UAAWpK,EAAQwM,gBAAgBhP,SAAC,iFAI5CC,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAG/M,SACfoI,GAAU6G,KAAI,SAACC,EAAGC,GACjB,OACElP,EAAAA,EAAAA,KAAC6M,EAAAA,SAAQ,CAAA9M,UACPJ,EAAAA,EAAAA,MAAA,OAAKgN,UAAWpK,EAAQhB,aAAaxB,SAAA,EACnCC,EAAAA,EAAAA,KAAC2N,EAAAA,EAAe,CACdP,GAAE,aAAA9D,OAAe4F,EAAMC,YACvB9B,MAAO,GACPO,YAAY,GACZvD,KAAI,aAAAf,OAAe4F,EAAMC,YACzBzF,MAAOvB,GAAU+G,GACjB5B,SAAU,SACRC,GAEAnF,GACED,GAAU6G,KAAI,SAACI,EAAOC,GAAC,OACrBA,IAAMH,EAAQ3B,EAAEC,OAAO9D,MAAQ0F,CAAK,IAG1C,EACAF,MAAOA,EAEPrB,MACElF,GAAiB,aAADW,OACD4F,EAAMC,cAChB,IACN,iBAAA7F,OALqB4F,EAAMC,cAO9BxP,EAAAA,EAAAA,MAAA,OAAKgN,UAAWpK,EAAQb,WAAW3B,SAAA,EACjCC,EAAAA,EAAAA,KAACsP,EAAAA,EAAO,CAACvD,MAAM,WAAW,aAAW,MAAKhM,UACxCC,EAAAA,EAAAA,KAACuP,EAAAA,EAAU,CACTC,KAAM,QACNZ,QAAS,WACPxG,GAAa,GAADkB,QAAAC,EAAAA,EAAAA,GAAKpB,IAAS,CAAE,KAC9B,EAAEpI,UAEFC,EAAAA,EAAAA,KAACyP,EAAAA,EAAO,SAGZzP,EAAAA,EAAAA,KAACsP,EAAAA,EAAO,CAACvD,MAAM,SAAS,aAAW,MAAKhM,UACtCC,EAAAA,EAAAA,KAACuP,EAAAA,EAAU,CACTC,KAAM,QACNE,MAAO,CAAE/N,WAAY,IACrBiN,QAAS,WACHzG,GAAU4B,OAAS,GACrB3B,GACED,GAAUwH,QAAO,SAACV,EAAGI,GAAC,OAAKA,IAAMH,CAAK,IAG5C,EAAEnP,UAEFC,EAAAA,EAAAA,KAAC4P,EAAAA,EAAU,eAIb,iBAAAtG,OApDwB4F,EAAMC,YAuD1C,UAGJxP,EAAAA,EAAAA,MAAA,YAAUgN,UAAWpK,EAAQuM,WAAW/O,SAAA,EACtCC,EAAAA,EAAAA,KAAA,UAAQ2M,UAAWpK,EAAQwM,gBAAgBhP,SAAC,kFAI5CC,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAG/M,SACfwI,GAAWyG,KAAI,SAACC,EAAGC,GAClB,OACElP,EAAAA,EAAAA,KAAC6M,EAAAA,SAAQ,CAAA9M,UACPJ,EAAAA,EAAAA,MAAA,OAAKgN,UAAWpK,EAAQhB,aAAaxB,SAAA,EACnCC,EAAAA,EAAAA,KAAC2N,EAAAA,EAAe,CACdP,GAAE,cAAA9D,OAAgB4F,EAAMC,YACxB9B,MAAO,GACPO,YAAY,GACZvD,KAAI,cAAAf,OAAgB4F,EAAMC,YAC1BzF,MAAOnB,GAAW2G,GAClB5B,SAAU,SACRC,GAEA/E,GACED,GAAWyG,KAAI,SAACI,EAAOC,GAAC,OACtBA,IAAMH,EAAQ3B,EAAEC,OAAO9D,MAAQ0F,CAAK,IAG1C,EACAF,MAAOA,EAEPrB,MACElF,GAAiB,cAADW,OACA4F,EAAMC,cACjB,IACN,kBAAA7F,OALsB4F,EAAMC,cAO/BxP,EAAAA,EAAAA,MAAA,OAAKgN,UAAWpK,EAAQb,WAAW3B,SAAA,EACjCC,EAAAA,EAAAA,KAACsP,EAAAA,EAAO,CAACvD,MAAM,YAAY,aAAW,MAAKhM,UACzCC,EAAAA,EAAAA,KAACuP,EAAAA,EAAU,CACTC,KAAM,QACNZ,QAAS,WACPpG,GAAc,GAADc,QAAAC,EAAAA,EAAAA,GAAKhB,IAAU,CAAE,KAChC,EAAExI,UAEFC,EAAAA,EAAAA,KAACyP,EAAAA,EAAO,SAGZzP,EAAAA,EAAAA,KAACsP,EAAAA,EAAO,CAACvD,MAAM,SAAS,aAAW,MAAKhM,UACtCC,EAAAA,EAAAA,KAACuP,EAAAA,EAAU,CACTC,KAAM,QACNE,MAAO,CAAE/N,WAAY,IACrBiN,QAAS,WACHrG,GAAWwB,OAAS,GACtBvB,GACED,GAAWoH,QAAO,SAACV,EAAGI,GAAC,OAAKA,IAAMH,CAAK,IAG7C,EAAEnP,UAEFC,EAAAA,EAAAA,KAAC4P,EAAAA,EAAU,eAIb,iBAAAtG,OApDwB4F,EAAMC,YAuD1C,UAGJnP,EAAAA,EAAAA,KAAA,UACAA,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQiM,gBAAgBzO,UACpDC,EAAAA,EAAAA,KAACyO,EAAAA,IAAM,CACLrB,GAAI,qBACJU,KAAK,SACLQ,QAAQ,aACRK,UAAWzF,IAAenG,EAC1B6L,QAAS,kBAleC,WACxB5L,GAAa,GACb,IAAIwJ,EAA2C,CAAC,EAEzC,OADCjJ,IAEJiJ,EAAU,CACRqD,SAAU1H,GAAUwH,QAAO,SAACG,GAAI,MAAqB,KAAhBA,EAAKC,MAAa,IACvDC,UAAWzH,GAAWoH,QAAO,SAACP,GAAK,MAAsB,KAAjBA,EAAMW,MAAa,MAOjE7F,EAAAA,EACGC,OACC,OAAO,sBAADb,OACsB,OAANrI,QAAM,IAANA,OAAM,EAANA,EAAQmJ,UAAS,aAAAd,OAAkB,OAANrI,QAAM,IAANA,OAAM,EAANA,EAAQoJ,KAAI,uBAC/DmC,GAEDlC,MAAK,WACJtH,GAAa,GACbwF,GAAc,CAAC,KACfJ,GAAa,CAAC,KACd4B,KACAxH,GAASyN,EAAAA,EAAAA,IAAmB,qCAC9B,IACCvE,OAAM,SAACC,GACNnJ,GAASoJ,EAAAA,EAAAA,IAAqBD,IAC9B3I,GAAa,EACf,GACJ,CAmc+BkN,EAAmB,EAClC7C,MAAO,iCASzB,I,4BCnxBI8C,EAAyBC,EAAQ,OAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,QAChDG,EAAcH,EAAQ,OACtBI,GAAW,EAAIF,EAAeG,UAAuB,EAAIF,EAAYG,KAAK,OAAQ,CACpFC,EAAG,wCACD,OACJN,EAAQ,EAAUG,C,4BCVdL,EAAyBC,EAAQ,OAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,QAChDG,EAAcH,EAAQ,OACtBI,GAAW,EAAIF,EAAeG,UAAuB,EAAIF,EAAYG,KAAK,OAAQ,CACpFC,EAAG,kFACD,UACJN,EAAQ,EAAUG,C","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":"6NAmBaA,EAAkB,WAC7B,OACEC,EAAAA,EAAAA,MAACC,EAAAA,GAAI,CAACC,WAAS,EAACC,UAAW,EAAEC,SAAA,EAC3BC,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAAAG,UACHC,EAAAA,EAAAA,KAACC,EAAAA,IAAQ,CAACC,MAAO,OAAQC,OAAQ,YAEnCH,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAAL,SAAC,cAGjB,EAEaM,EAAkB,WAC7B,OACEV,EAAAA,EAAAA,MAACC,EAAAA,GAAI,CAACC,WAAS,EAACC,UAAW,EAAEC,SAAA,EAC3BC,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAAAG,UACHC,EAAAA,EAAAA,KAACM,EAAAA,IAAQ,CAACJ,MAAO,OAAQC,OAAQ,YAEnCH,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAAL,SAAC,8BAGjB,EAEaQ,EAAqB,WAChC,OACEZ,EAAAA,EAAAA,MAACC,EAAAA,GAAI,CAACC,WAAS,EAACC,UAAW,EAAEC,SAAA,EAC3BC,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAAAG,UACHC,EAAAA,EAAAA,KAACQ,EAAAA,IAAS,CAACN,MAAO,OAAQC,OAAQ,YAEpCH,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAAL,SAAC,eAGjB,C,2WCiDA,SAASU,IACP,OAAO,IACT,CAEA,IAsrBMC,GAAYC,EAAAA,EAAAA,KAND,SAACC,GAAe,MAAM,CACrCC,cAAeD,EAAME,QAAQD,cAC7BE,eAAgBH,EAAME,QAAQE,cAC9BC,OAAQL,EAAME,QAAQI,WACvB,GAEmC,MAEpC,WAAeC,EAAAA,EAAAA,IAttBA,SAACC,GAAY,OAC1BC,EAAAA,EAAAA,IAAYC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CACXC,aAAc,CACZC,QAAS,OACTC,aAAc,IAEhBC,WAAY,CACVC,WAAY,GACZH,QAAS,OACTrB,OAAQ,GACR,WAAY,CACVyB,WAAY,aAGbC,EAAAA,IACAC,EAAAA,IAAY,IACfC,YAAa,CACXC,UAAW,WAEVC,EAAAA,IACAC,EAAAA,IACAC,EAAAA,IACAC,EAAAA,IACAC,EAAAA,IACF,GA8rBL,CAAkC3B,GAxrBH,SAAH4B,GAA8C,IAAxCC,EAAOD,EAAPC,QAC1BC,GAAWC,EAAAA,EAAAA,MAEXxB,GAASyB,EAAAA,EAAAA,KAAY,SAAC9B,GAAe,OAAKA,EAAME,QAAQI,UAAU,IAClEL,GAAgB6B,EAAAA,EAAAA,KACpB,SAAC9B,GAAe,OAAKA,EAAME,QAAQD,aAAa,IAGlD8B,GAAkCC,EAAAA,EAAAA,WAAkB,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAnDI,EAASF,EAAA,GAAEG,EAAYH,EAAA,GAC9BI,GAAoCL,EAAAA,EAAAA,WAAkB,GAAMM,GAAAJ,EAAAA,EAAAA,GAAAG,EAAA,GAArDE,EAAUD,EAAA,GAAEE,EAAaF,EAAA,GAChCG,GAAwCT,EAAAA,EAAAA,UAAiB,YAAWU,GAAAR,EAAAA,EAAAA,GAAAO,EAAA,GAA7DE,EAAYD,EAAA,GAAEE,EAAeF,EAAA,GACpCG,GACEb,EAAAA,EAAAA,UAAiB,IAAGc,GAAAZ,EAAAA,EAAAA,GAAAW,EAAA,GADfE,EAAsBD,EAAA,GAAEE,EAAyBF,EAAA,GAExDG,GAA4CjB,EAAAA,EAAAA,UAAiB,IAAGkB,GAAAhB,EAAAA,EAAAA,GAAAe,EAAA,GAAzDE,EAAcD,EAAA,GAAEE,EAAiBF,EAAA,GACxCG,GAA4CrB,EAAAA,EAAAA,UAAiB,IAAGsB,GAAApB,EAAAA,EAAAA,GAAAmB,EAAA,GAAzDE,GAAcD,EAAA,GAAEE,GAAiBF,EAAA,GACxCG,IAAgDzB,EAAAA,EAAAA,WAAkB,GAAM0B,IAAAxB,EAAAA,EAAAA,GAAAuB,GAAA,GAAjEE,GAAgBD,GAAA,GAAEE,GAAmBF,GAAA,GAC5CG,IAAkD7B,EAAAA,EAAAA,UAAiB,IAAG8B,IAAA5B,EAAAA,EAAAA,GAAA2B,GAAA,GAA/DE,GAAiBD,GAAA,GAAEE,GAAoBF,GAAA,GAC9CG,IAA8CjC,EAAAA,EAAAA,UAAiB,IAAGkC,IAAAhC,EAAAA,EAAAA,GAAA+B,GAAA,GAA3DE,GAAeD,GAAA,GAAEE,GAAkBF,GAAA,GAC1CG,IAAwCrC,EAAAA,EAAAA,UAAiB,IAAGsC,IAAApC,EAAAA,EAAAA,GAAAmC,GAAA,GAArDE,GAAYD,GAAA,GAAEE,GAAeF,GAAA,GACpCG,IAA0BzC,EAAAA,EAAAA,UAAiB,IAAG0C,IAAAxC,EAAAA,EAAAA,GAAAuC,GAAA,GAAvCE,GAAKD,GAAA,GAAEE,GAAQF,GAAA,GACtBG,IAA4C7C,EAAAA,EAAAA,UAAiB,IAAG8C,IAAA5C,EAAAA,EAAAA,GAAA2C,GAAA,GAAzDE,GAAcD,GAAA,GAAEE,GAAiBF,GAAA,GACxCG,IAAwDjD,EAAAA,EAAAA,UAAiB,IAAGkD,IAAAhD,EAAAA,EAAAA,GAAA+C,GAAA,GAArEE,GAAoBD,GAAA,GAAEE,GAAuBF,GAAA,GACpDG,IACErD,EAAAA,EAAAA,WAAkB,GAAMsD,IAAApD,EAAAA,EAAAA,GAAAmD,GAAA,GADnBE,GAAwBD,GAAA,GAAEE,GAA2BF,GAAA,GAE5DG,IAAwDzD,EAAAA,EAAAA,UAAiB,IAAG0D,IAAAxD,EAAAA,EAAAA,GAAAuD,GAAA,GAArEE,GAAoBD,GAAA,GAAEE,GAAuBF,GAAA,GACpDG,IAAwD7D,EAAAA,EAAAA,UAAiB,IAAG8D,IAAA5D,EAAAA,EAAAA,GAAA2D,GAAA,GAArEE,GAAoBD,GAAA,GAAEE,GAAuBF,GAAA,GACpDG,IAAsDjE,EAAAA,EAAAA,UAAiB,IAAGkE,IAAAhE,EAAAA,EAAAA,GAAA+D,GAAA,GAAnEE,GAAmBD,GAAA,GAAEE,GAAsBF,GAAA,GAClDG,IAAsDrE,EAAAA,EAAAA,UAAiB,IAAGsE,IAAApE,EAAAA,EAAAA,GAAAmE,GAAA,GAAnEE,GAAmBD,GAAA,GAAEE,GAAsBF,GAAA,GAClDG,IAAkCzE,EAAAA,EAAAA,WAAkB,GAAM0E,IAAAxE,EAAAA,EAAAA,GAAAuE,GAAA,GAAnDE,GAASD,GAAA,GAAEE,GAAYF,GAAA,GAC9BG,IAAgD7E,EAAAA,EAAAA,WAAkB,GAAM8E,IAAA5E,EAAAA,EAAAA,GAAA2E,GAAA,GAAjEE,GAAgBD,GAAA,GAAEE,GAAmBF,GAAA,GAC5CG,IAAgDjF,EAAAA,EAAAA,WAAkB,GAAMkF,IAAAhF,EAAAA,EAAAA,GAAA+E,GAAA,GAAjEE,GAAgBD,GAAA,GAAEE,GAAmBF,GAAA,GAC5CG,IAAkCrF,EAAAA,EAAAA,UAAmB,CAAC,KAAIsF,IAAApF,EAAAA,EAAAA,GAAAmF,GAAA,GAAnDE,GAASD,GAAA,GAAEE,GAAYF,GAAA,GAC9BG,IAAoCzF,EAAAA,EAAAA,UAAmB,CAAC,KAAI0F,IAAAxF,EAAAA,EAAAA,GAAAuF,GAAA,GAArDE,GAAUD,GAAA,GAAEE,GAAaF,GAAA,GAChCG,IAAgD7F,EAAAA,EAAAA,UAAc,CAAC,GAAE8F,IAAA5F,EAAAA,EAAAA,GAAA2F,GAAA,GAA1DE,GAAgBD,GAAA,GAAEE,GAAmBF,GAAA,GACtCG,GAAkB,SAACC,GACvBF,IAAoBG,EAAAA,EAAAA,GAAqBJ,GAAkBG,GAC7D,EACAE,IAAsCpG,EAAAA,EAAAA,WAAkB,GAAMqG,IAAAnG,EAAAA,EAAAA,GAAAkG,GAAA,GAAvDE,GAAWD,GAAA,GAAEE,GAAcF,GAAA,IAGlCG,EAAAA,EAAAA,YAAU,WACR,IAAIC,EAA4C,GAE3B,WAAjB9F,IACF8F,EAA0B,GAAAC,QAAAC,EAAAA,EAAAA,GACrBF,GAA0B,CAC7B,CACEG,SAAU,2BACVC,UAAU,EACVC,MAAO/F,GAET,CACE6F,SAAU,kBACVC,UAAU,EACVC,MAAO3F,GAET,CACEyF,SAAU,kBACVC,UAAU,EACVC,MAAOvF,IAET,CACEqF,SAAU,mBACVC,UAAU,EACVC,MAAO3E,OAKQ,OAAjBxB,IACF8F,EAA0B,GAAAC,QAAAC,EAAAA,EAAAA,GACrBF,GAA0B,CAC7B,CACEG,SAAU,SACVC,UAAU,EACVC,MAAOnE,IAET,CACEiE,SAAU,kBACVC,UAAU,EACVC,MAAO/D,OAKb,IAAMgE,GAAYC,EAAAA,EAAAA,GAAqBP,GAEvCF,GAAiD,IAAlCU,OAAOC,KAAKH,GAAWI,QAEtCnB,GAAoBe,EACtB,GAAG,CACDpG,EACAI,EACAI,EACAI,GACAY,GACAQ,GACAI,KAGF,IAAMqE,IAAgCC,EAAAA,EAAAA,cAAY,WAChDC,EAAAA,EACGC,OACC,MAAM,sBAADb,OACuB,OAANrI,QAAM,IAANA,OAAM,EAANA,EAAQmJ,UAAS,aAAAd,OAAkB,OAANrI,QAAM,IAANA,OAAM,EAANA,EAAQoJ,KAAI,uBAEhEC,MAAK,SAACC,GACDA,IACEA,EAAIC,MACNhH,EAAgB,UAChBI,EAA0B2G,EAAIC,KAAKC,mBACnCzG,EAAkBuG,EAAIC,KAAKE,WAC3BtG,GAAkBmG,EAAIC,KAAKG,WAC3B/F,GAAqB2F,EAAIC,KAAKI,cAC9B5F,GAAmBuF,EAAIC,KAAKK,YAC5BzF,GAAgBmF,EAAIC,KAAKM,SAChBP,EAAIQ,mBACbvH,EAAgB,MAChBgC,GAAS+E,EAAIQ,iBAAiBC,KAC9BpF,GAAkB2E,EAAIQ,iBAAiBE,gBACvCjF,GAAwBuE,EAAIQ,iBAAiBG,sBAC7C1E,GACE+D,EAAIQ,iBAAiBI,wBAEvBvE,GAAwB2D,EAAIQ,iBAAiBK,uBAC7CpE,GAAuBuD,EAAIQ,iBAAiBM,sBAC5CjE,GAAuBmD,EAAIQ,iBAAiBO,qBAC5C9D,GAAa+C,EAAIQ,iBAAiBQ,uBAClC3D,GAAoB2C,EAAIQ,iBAAiBS,iBACzCxD,GAAoBuC,EAAIQ,iBAAiBU,mBAG/C,IACCC,OAAM,SAACC,GACNnJ,GAASoJ,EAAAA,EAAAA,IAAqBD,GAChC,GACJ,GAAG,CAAC1K,EAAQuB,KAEZ4G,EAAAA,EAAAA,YAAU,WACJnI,GACF+I,IAEJ,GAAG,CAAC/I,EAAQ+I,KAqFZ,OACErK,EAAAA,EAAAA,MAACkM,EAAAA,SAAc,CAAA9L,SAAA,EACbC,EAAAA,EAAAA,KAAC8L,EAAAA,EAAa,CACZC,MAAO,mBACPC,YAAa,UACbC,WAAW,SACXC,WAAWlM,EAAAA,EAAAA,KAACmM,EAAAA,IAAgB,IAC5BC,UAAWrJ,EACXsJ,QAAS,kBAAMjJ,GAAc,EAAM,EACnCkJ,OAAQnJ,EACRoJ,UA7F+B,WACnCvJ,GAAa,GACb,IAAIwJ,EAA2C,CAAC,EAChD,OAAQjJ,GACN,IAAK,KACHiJ,EAAQzB,iBAAmB,CACzBC,IAAKzF,GACL0F,eAAgBtF,GAChBuF,qBAAsBnF,GACtBoF,uBAAwB5E,GACxB6E,sBAAuBzE,GACvB0E,qBAAsBtE,GACtBuE,oBAAqBnE,GACrBoE,sBAAuBhE,GACvBiE,gBAAiB7D,GACjB8D,iBAAkB1D,IAEpB,MACF,IAAK,SACHyE,EAAQhC,KAAO,CACbC,kBAAmB9G,EACnB+G,UAAW3G,EACX4G,UAAWxG,GACXyG,aAAcjG,GACdkG,WAAY9F,GACZ+F,OAAQ3F,IAOd+E,EAAAA,EACGC,OACC,OAAO,sBAADb,OACsB,OAANrI,QAAM,IAANA,OAAM,EAANA,EAAQmJ,UAAS,aAAAd,OAAkB,OAANrI,QAAM,IAANA,OAAM,EAANA,EAAQoJ,KAAI,sBAC/DmC,GAEDlC,MAAK,WACJtH,GAAa,GAEbI,GAAc,GACd4G,IACF,IACC0B,OAAM,SAACC,GACNnJ,GAASoJ,EAAAA,EAAAA,IAAqBD,IAC9B3I,GAAa,EACf,GACJ,EA8CMyJ,qBACEzM,EAAAA,EAAAA,KAAC0M,EAAAA,EAAiB,CAAA3M,SAAC,yEAKtBc,GACCb,EAAAA,EAAAA,KAAA,OAAK2M,UAAWpK,EAAQR,YAAYhC,UAClCC,EAAAA,EAAAA,KAAC4M,EAAAA,IAAM,OAGTjN,EAAAA,EAAAA,MAACkN,EAAAA,SAAQ,CAAA9M,SAAA,EACPJ,EAAAA,EAAAA,MAACC,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAG/M,SAAA,EAChBC,EAAAA,EAAAA,KAAA,MAAI2M,UAAWpK,EAAQwK,aAAahN,SAAC,uBACrCC,EAAAA,EAAAA,KAACS,EAAM,QAETT,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CACHQ,MAAI,EACJ0M,GAAI,GACJH,UAAWpK,EAAQyK,qBACnBC,cAAe,EAAElN,UAEjBC,EAAAA,EAAAA,KAACkN,EAAAA,EAAkB,CACjBC,iBAAkB5J,EAClB6J,GAAG,cACH/C,KAAK,cACLgD,MAAM,WACNC,SAAU,SAACC,GACT/J,EAAgB+J,EAAEC,OAAO9D,MAC3B,EACA+D,gBAAiB,CACf,CAAEJ,OAAOrN,EAAAA,EAAAA,KAACO,EAAAA,GAAkB,IAAKmJ,MAAO,YACxC,CAAE2D,OAAOrN,EAAAA,EAAAA,KAACN,EAAAA,GAAe,IAAKgK,MAAO,UACrC,CAAE2D,OAAOrN,EAAAA,EAAAA,KAACK,EAAAA,GAAe,IAAKqJ,MAAO,WAKzB,WAAjBnG,IACC5D,EAAAA,EAAAA,MAACkN,EAAAA,SAAQ,CAAA9M,SAAA,EACPC,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAAC2N,EAAAA,EAAe,CACdP,GAAG,2BACH/C,KAAK,2BACLiD,SAAU,SAACC,GACT3J,EAA0B2J,EAAEC,OAAO9D,OACnCb,GAAgB,2BAClB,EACAwE,MAAM,oBACN3D,MAAO/F,EACPiK,YAAY,sEACZC,MAAOlF,GAA2C,0BAAK,GACvDc,UAAQ,OAGZzJ,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAAC2N,EAAAA,EAAe,CACdP,GAAG,kBACH/C,KAAK,kBACLiD,SAAU,SAACC,GACTvJ,EAAkBuJ,EAAEC,OAAO9D,OAC3Bb,GAAgB,kBAClB,EACAwE,MAAM,YACN3D,MAAO3F,EACP8J,MAAOlF,GAAkC,iBAAK,GAC9Cc,UAAQ,OAGZzJ,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAAC2N,EAAAA,EAAe,CACdG,KAAMvJ,GAAmB,OAAS,WAClC6I,GAAG,kBACH/C,KAAK,kBACLiD,SAAU,SAACC,GACTnJ,GAAkBmJ,EAAEC,OAAO9D,OAC3Bb,GAAgB,kBAClB,EACAwE,MAAM,YACN3D,MAAOvF,GACP0J,MAAOlF,GAAkC,iBAAK,GAC9Cc,UAAQ,EACRsE,YACExJ,IACEvE,EAAAA,EAAAA,KAACgO,EAAAA,EAAiB,KAElBhO,EAAAA,EAAAA,KAACiO,EAAAA,EAAgB,IAGrBC,cAAe,kBAAM1J,IAAqBD,GAAiB,OAG/DvE,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAAC2N,EAAAA,EAAe,CACdP,GAAG,mBACH/C,KAAK,mBACLiD,SAAU,SAACC,GACTvI,GAAmBuI,EAAEC,OAAO9D,OAC5Bb,GAAgB,mBAClB,EACAwE,MAAM,aACN3D,MAAO3E,GACP6I,YAAY,SACZC,MAAOlF,GAAmC,kBAAK,QAGnD3I,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAAC2N,EAAAA,EAAe,CACdP,GAAG,gBACH/C,KAAK,gBACLiD,SAAU,SAACC,GACTnI,GAAgBmI,EAAEC,OAAO9D,OACzBb,GAAgB,gBAClB,EACAwE,MAAM,SACN3D,MAAOvE,UAMG,OAAjB5B,IACC5D,EAAAA,EAAAA,MAACkN,EAAAA,SAAQ,CAAA9M,SAAA,EACPC,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAAC2N,EAAAA,EAAe,CACdP,GAAG,SACH/C,KAAK,SACLiD,SAAU,SAACC,GACT/H,GAAS+H,EAAEC,OAAO9D,OAClBb,GAAgB,SAClB,EACAwE,MAAM,sBACN3D,MAAOnE,GACPqI,YAAY,kBACZC,MAAOlF,GAAyB,QAAK,GACrCc,UAAQ,OAGZzJ,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAACmO,EAAAA,EAAiB,CAChBzE,MAAM,aACN0D,GAAG,aACH/C,KAAK,aACL+D,QAAS7G,GACT+F,SAAU,SAACC,GACT,IACMa,EADUb,EAAEC,OACMY,QACxB5G,GAAa4G,EACf,EACAf,MAAO,6BAGXrN,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAACmO,EAAAA,EAAiB,CAChBzE,MAAM,oBACN0D,GAAG,oBACH/C,KAAK,oBACL+D,QAASzG,GACT2F,SAAU,SAACC,GACT,IACMa,EADUb,EAAEC,OACMY,QACxBxG,GAAoBwG,EACtB,EACAf,MAAO,sBAGV1F,IACChI,EAAAA,EAAAA,MAACC,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAG/M,SAAA,EAChBC,EAAAA,EAAAA,KAACqO,EAAAA,EAAU,CACT1B,UAAWpK,EAAQsL,MACnBS,QAAQ,UACR9M,QAAQ,QACR+M,cAAY,EAAAxO,SACb,oEAIDC,EAAAA,EAAAA,KAAA,YAEA,MACJA,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAACmO,EAAAA,EAAiB,CAChBzE,MAAM,oBACN0D,GAAG,oBACH/C,KAAK,oBACL+D,QAASrG,GACTuF,SAAU,SAACC,GACT,IACMa,EADUb,EAAEC,OACMY,QACxBpG,GAAoBoG,EACtB,EACAf,MAAO,8CAGXrN,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAAC2N,EAAAA,EAAe,CACdP,GAAG,kBACH/C,KAAK,kBACLiD,SAAU,SAACC,GACT3H,GAAkB2H,EAAEC,OAAO9D,OAC3Bb,GAAgB,kBAClB,EACAwE,MAAM,iBACN3D,MAAO/D,GACPiI,YAAY,wBACZC,MAAOlF,GAAkC,iBAAK,GAC9Cc,UAAQ,OAGZzJ,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAAC2N,EAAAA,EAAe,CACdG,KAAM3H,GAA2B,OAAS,WAC1CiH,GAAG,wBACH/C,KAAK,wBACLiD,SAAU,SAACC,GACTvH,GAAwBuH,EAAEC,OAAO9D,MACnC,EACA2D,MAAM,uBACN3D,MAAO3D,GACP6H,YAAY,QACZG,YACE5H,IACEnG,EAAAA,EAAAA,KAACgO,EAAAA,EAAiB,KAElBhO,EAAAA,EAAAA,KAACiO,EAAAA,EAAgB,IAGrBC,cAAe,kBACb9H,IAA6BD,GAAyB,OAI5DnG,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAAC2N,EAAAA,EAAe,CACdP,GAAG,wBACH/C,KAAK,wBACLiD,SAAU,SAACC,GACT/G,GAAwB+G,EAAEC,OAAO9D,MACnC,EACA2D,MAAM,yBACN3D,MAAOnD,GACPqH,YAAY,oBAGhB5N,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAAC2N,EAAAA,EAAe,CACdP,GAAG,wBACH/C,KAAK,wBACLiD,SAAU,SAACC,GACT3G,GAAwB2G,EAAEC,OAAO9D,MACnC,EACA2D,MAAM,wBACN3D,MAAO/C,GACPiH,YAAY,0BAGhB5N,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAAC2N,EAAAA,EAAe,CACdP,GAAG,uBACH/C,KAAK,uBACLiD,SAAU,SAACC,GACTvG,GAAuBuG,EAAEC,OAAO9D,MAClC,EACA2D,MAAM,uBACN3D,MAAO3C,GACP6G,YAAY,qDAGhB5N,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQmL,aAAa3N,UACjDC,EAAAA,EAAAA,KAAC2N,EAAAA,EAAe,CACdP,GAAG,uBACH/C,KAAK,uBACLiD,SAAU,SAACC,GACTnG,GAAuBmG,EAAEC,OAAO9D,MAClC,EACA2D,MAAM,sBACN3D,MAAOvC,GACPyG,YAAY,mDAMpB5N,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQiM,gBAAgBzO,UACpDC,EAAAA,EAAAA,KAACyO,EAAAA,IAAM,CACLrB,GAAI,WACJU,KAAK,SACLQ,QAAQ,aACRI,MAAM,UACNC,UAAWzF,IAAenG,EAC1B6L,QAAS,kBAAMxL,GAAc,EAAK,EAClCiK,MAAO,WAIO,OAAjB9J,IACC5D,EAAAA,EAAAA,MAACkN,EAAAA,SAAQ,CAAA9M,SAAA,EACPC,EAAAA,EAAAA,KAAC6O,EAAAA,EAAY,CAAA9O,SAAC,6BACdC,EAAAA,EAAAA,KAAA,UACAL,EAAAA,EAAAA,MAAA,YAAUgN,UAAWpK,EAAQuM,WAAW/O,SAAA,EACtCC,EAAAA,EAAAA,KAAA,UAAQ2M,UAAWpK,EAAQwM,gBAAgBhP,SAAC,iFAI5CC,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAG/M,SACfoI,GAAU6G,KAAI,SAACC,EAAGC,GACjB,OACElP,EAAAA,EAAAA,KAAC6M,EAAAA,SAAQ,CAAA9M,UACPJ,EAAAA,EAAAA,MAAA,OAAKgN,UAAWpK,EAAQhB,aAAaxB,SAAA,EACnCC,EAAAA,EAAAA,KAAC2N,EAAAA,EAAe,CACdP,GAAE,aAAA9D,OAAe4F,EAAMC,YACvB9B,MAAO,GACPO,YAAY,GACZvD,KAAI,aAAAf,OAAe4F,EAAMC,YACzBzF,MAAOvB,GAAU+G,GACjB5B,SAAU,SACRC,GAEAnF,GACED,GAAU6G,KAAI,SAACI,EAAOC,GAAC,OACrBA,IAAMH,EAAQ3B,EAAEC,OAAO9D,MAAQ0F,CAAK,IAG1C,EACAF,MAAOA,EAEPrB,MACElF,GAAiB,aAADW,OACD4F,EAAMC,cAChB,IACN,iBAAA7F,OALqB4F,EAAMC,cAO9BxP,EAAAA,EAAAA,MAAA,OAAKgN,UAAWpK,EAAQb,WAAW3B,SAAA,EACjCC,EAAAA,EAAAA,KAACsP,EAAAA,EAAO,CAACvD,MAAM,WAAW,aAAW,MAAKhM,UACxCC,EAAAA,EAAAA,KAACuP,EAAAA,EAAU,CACTC,KAAM,QACNZ,QAAS,WACPxG,GAAa,GAADkB,QAAAC,EAAAA,EAAAA,GAAKpB,IAAS,CAAE,KAC9B,EAAEpI,UAEFC,EAAAA,EAAAA,KAACyP,EAAAA,EAAO,SAGZzP,EAAAA,EAAAA,KAACsP,EAAAA,EAAO,CAACvD,MAAM,SAAS,aAAW,MAAKhM,UACtCC,EAAAA,EAAAA,KAACuP,EAAAA,EAAU,CACTC,KAAM,QACNE,MAAO,CAAE/N,WAAY,IACrBiN,QAAS,WACHzG,GAAU4B,OAAS,GACrB3B,GACED,GAAUwH,QAAO,SAACV,EAAGI,GAAC,OAAKA,IAAMH,CAAK,IAG5C,EAAEnP,UAEFC,EAAAA,EAAAA,KAAC4P,EAAAA,EAAU,eAIb,iBAAAtG,OApDwB4F,EAAMC,YAuD1C,UAGJxP,EAAAA,EAAAA,MAAA,YAAUgN,UAAWpK,EAAQuM,WAAW/O,SAAA,EACtCC,EAAAA,EAAAA,KAAA,UAAQ2M,UAAWpK,EAAQwM,gBAAgBhP,SAAC,kFAI5CC,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAG/M,SACfwI,GAAWyG,KAAI,SAACC,EAAGC,GAClB,OACElP,EAAAA,EAAAA,KAAC6M,EAAAA,SAAQ,CAAA9M,UACPJ,EAAAA,EAAAA,MAAA,OAAKgN,UAAWpK,EAAQhB,aAAaxB,SAAA,EACnCC,EAAAA,EAAAA,KAAC2N,EAAAA,EAAe,CACdP,GAAE,cAAA9D,OAAgB4F,EAAMC,YACxB9B,MAAO,GACPO,YAAY,GACZvD,KAAI,cAAAf,OAAgB4F,EAAMC,YAC1BzF,MAAOnB,GAAW2G,GAClB5B,SAAU,SACRC,GAEA/E,GACED,GAAWyG,KAAI,SAACI,EAAOC,GAAC,OACtBA,IAAMH,EAAQ3B,EAAEC,OAAO9D,MAAQ0F,CAAK,IAG1C,EACAF,MAAOA,EAEPrB,MACElF,GAAiB,cAADW,OACA4F,EAAMC,cACjB,IACN,kBAAA7F,OALsB4F,EAAMC,cAO/BxP,EAAAA,EAAAA,MAAA,OAAKgN,UAAWpK,EAAQb,WAAW3B,SAAA,EACjCC,EAAAA,EAAAA,KAACsP,EAAAA,EAAO,CAACvD,MAAM,YAAY,aAAW,MAAKhM,UACzCC,EAAAA,EAAAA,KAACuP,EAAAA,EAAU,CACTC,KAAM,QACNZ,QAAS,WACPpG,GAAc,GAADc,QAAAC,EAAAA,EAAAA,GAAKhB,IAAU,CAAE,KAChC,EAAExI,UAEFC,EAAAA,EAAAA,KAACyP,EAAAA,EAAO,SAGZzP,EAAAA,EAAAA,KAACsP,EAAAA,EAAO,CAACvD,MAAM,SAAS,aAAW,MAAKhM,UACtCC,EAAAA,EAAAA,KAACuP,EAAAA,EAAU,CACTC,KAAM,QACNE,MAAO,CAAE/N,WAAY,IACrBiN,QAAS,WACHrG,GAAWwB,OAAS,GACtBvB,GACED,GAAWoH,QAAO,SAACV,EAAGI,GAAC,OAAKA,IAAMH,CAAK,IAG7C,EAAEnP,UAEFC,EAAAA,EAAAA,KAAC4P,EAAAA,EAAU,eAIb,iBAAAtG,OApDwB4F,EAAMC,YAuD1C,UAGJnP,EAAAA,EAAAA,KAAA,UACAA,EAAAA,EAAAA,KAACJ,EAAAA,GAAI,CAACQ,MAAI,EAAC0M,GAAI,GAAIH,UAAWpK,EAAQiM,gBAAgBzO,UACpDC,EAAAA,EAAAA,KAACyO,EAAAA,IAAM,CACLrB,GAAI,qBACJU,KAAK,SACLQ,QAAQ,aACRK,UAAWzF,IAAenG,EAC1B6L,QAAS,kBAleC,WACxB5L,GAAa,GACb,IAAIwJ,EAA2C,CAAC,EAEzC,OADCjJ,IAEJiJ,EAAU,CACRqD,SAAU1H,GAAUwH,QAAO,SAACG,GAAI,MAAqB,KAAhBA,EAAKC,MAAa,IACvDC,UAAWzH,GAAWoH,QAAO,SAACP,GAAK,MAAsB,KAAjBA,EAAMW,MAAa,MAOjE7F,EAAAA,EACGC,OACC,OAAO,sBAADb,OACsB,OAANrI,QAAM,IAANA,OAAM,EAANA,EAAQmJ,UAAS,aAAAd,OAAkB,OAANrI,QAAM,IAANA,OAAM,EAANA,EAAQoJ,KAAI,uBAC/DmC,GAEDlC,MAAK,WACJtH,GAAa,GACbwF,GAAc,CAAC,KACfJ,GAAa,CAAC,KACd4B,KACAxH,GAASyN,EAAAA,EAAAA,IAAmB,qCAC9B,IACCvE,OAAM,SAACC,GACNnJ,GAASoJ,EAAAA,EAAAA,IAAqBD,IAC9B3I,GAAa,EACf,GACJ,CAmc+BkN,EAAmB,EAClC7C,MAAO,iCASzB,I,4BCnxBI8C,EAAyBC,EAAQ,OAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,QAChDG,EAAcH,EAAQ,OACtBI,GAAW,EAAIF,EAAeG,UAAuB,EAAIF,EAAYG,KAAK,OAAQ,CACpFC,EAAG,wCACD,OACJN,EAAQ,EAAUG,C,4BCVdL,EAAyBC,EAAQ,OAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,QAChDG,EAAcH,EAAQ,OACtBI,GAAW,EAAIF,EAAeG,UAAuB,EAAIF,EAAYG,KAAK,OAAQ,CACpFC,EAAG,kFACD,UACJN,EAAQ,EAAUG,C","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":"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,qNC6HA,KAAelB,EAAAA,EAAAA,IAlIA,SAACC,GAAY,OAC1BC,EAAAA,EAAAA,IAAYqB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EACTE,EAAAA,IAAkB,IACrBC,QAAS,CACPtB,QAAS,GACTuB,cAAe,GAEjBC,iBAAkB,CAChBC,MAAO,OACPC,SAAU,MAETC,EAAAA,IACF,GAsHL,EApHqB,SAAHf,GASE,IARlBgB,EAAOhB,EAAPgB,QACAC,EAASjB,EAATiB,UACAC,EAAKlB,EAALkB,MACAhB,EAAQF,EAARE,SACAD,EAAOD,EAAPC,QAAOkB,EAAAnB,EACPoB,UAAAA,OAAS,IAAAD,GAAOA,EAChBE,EAAgBrB,EAAhBqB,iBAAgBC,EAAAtB,EAChBuB,UAAAA,OAAS,IAAAD,EAAG,KAAIA,EAEVE,GAAWC,EAAAA,EAAAA,MACjBC,GAAwCC,EAAAA,EAAAA,WAAkB,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAzDI,EAAYF,EAAA,GAAEG,EAAeH,EAAA,GAE9BI,GAAoBC,EAAAA,EAAAA,KACxB,SAACC,GAAe,OAAKA,EAAMC,OAAOC,aAAa,KAGjDC,EAAAA,EAAAA,YAAU,WACRb,GAASc,EAAAA,EAAAA,IAAqB,IAChC,GAAG,CAACd,KAEJa,EAAAA,EAAAA,YAAU,WACR,GAAIL,EAAmB,CACrB,GAAkC,KAA9BA,EAAkBO,QAEpB,YADAR,GAAgB,GAIa,UAA3BC,EAAkBQ,MACpBT,GAAgB,EAEpB,CACF,GAAG,CAACC,IAEJ,IAKMS,EAAarB,EACf,CACEnB,QAAS,CACPyC,MAAOzC,EAAQW,mBAGnB,CAAEE,SAAU,KAAe6B,WAAW,GAEtCJ,EAAU,GAYd,OAVIP,IACFO,EAAUP,EAAkBY,kBAEa,KAAvCZ,EAAkBY,kBAClBZ,EAAkBY,iBAAiBC,OAAS,KAE5CN,EAAUP,EAAkBO,WAK9BO,EAAAA,EAAAA,MAACC,EAAAA,GAAMxC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CACLyC,KAAM/B,EACNhB,QAASA,GACLwC,GAAU,IACdQ,OAAQ,QACRjC,QAAS,SAACkC,EAAOC,GACA,kBAAXA,GACFnC,GAEJ,EACAR,UAAWP,EAAQd,KAAKe,SAAA,EAExB4C,EAAAA,EAAAA,MAACM,EAAAA,EAAW,CAAC5C,UAAWP,EAAQiB,MAAMhB,SAAA,EACpC4C,EAAAA,EAAAA,MAAA,OAAKtC,UAAWP,EAAQoD,UAAUnD,SAAA,CAC/BqB,EAAU,IAAEL,MAEfZ,EAAAA,EAAAA,KAAA,OAAKE,UAAWP,EAAQqD,eAAepD,UACrCI,EAAAA,EAAAA,KAACiD,EAAAA,EAAU,CACT,aAAW,QACXC,GAAI,QACJhD,UAAWP,EAAQwD,YACnBC,QAAS1C,EACT2C,eAAa,EACbC,KAAK,QAAO1D,UAEZI,EAAAA,EAAAA,KAACuD,EAAAA,EAAS,YAKhBvD,EAAAA,EAAAA,KAACwD,EAAAA,EAAS,CAACC,SAAS,KACpBzD,EAAAA,EAAAA,KAAC0D,EAAAA,EAAQ,CACPhB,KAAMlB,EACNtB,UAAWP,EAAQgE,cACnBjD,QAAS,WA3Dbe,GAAgB,GAChBP,GAASc,EAAAA,EAAAA,IAAqB,IA4D1B,EACAC,QAASA,EACT2B,aAAc,CACZ1D,UAAU,GAAD2D,OAAKlE,EAAQmE,SAAQ,KAAAD,OAC5BnC,GAAgD,UAA3BA,EAAkBQ,KACnCvC,EAAQoE,cACR,KAGRC,iBACEtC,GAAgD,UAA3BA,EAAkBQ,KAAmB,IAAQ,OAGtElC,EAAAA,EAAAA,KAACiE,EAAAA,EAAa,CAAC/D,UAAWa,EAAmB,GAAKpB,EAAQS,QAAQR,SAC/DA,OAIT,G,uEC3IA,IApBuB,SAAHF,GAOQ,IAADwE,EAAAxE,EANzByE,MAAAA,OAAK,IAAAD,EAAG,KAAIA,EAAAE,EAAA1E,EACZ2E,MAAAA,OAAK,IAAAD,EAAG,IAAGA,EAAAE,EAAA5E,EACX6E,YAAAA,OAAW,IAAAD,EAAG,SAAQA,EAAAE,EAAA9E,EACtB+E,SAAAA,OAAQ,IAAAD,EAAG,CAAC,EAACA,EAAAE,EAAAhF,EACbiF,SAAAA,OAAQ,IAAAD,EAAG,CAAC,EAACA,EAAAE,EAAAlF,EACbmF,SAAAA,OAAQ,IAAAD,EAAG,CAAC,EAACA,EAEb,OACEpC,EAAAA,EAAAA,MAACsC,EAAAA,GAAK7E,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CAAC8E,UAAW,CAAEC,GAAI,SAAUC,GAAIV,IAAmBE,GAAQ,IAAA7E,SAAA,EAC/DI,EAAAA,EAAAA,KAAA,SAAAC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CAAOiF,MAAO,CAAEC,YAAa,EAAGC,WAAY,MAAWT,GAAQ,IAAA/E,SAC5DuE,MAEHnE,EAAAA,EAAAA,KAAA,SAAAC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CAAOiF,MAAO,CAAEC,YAAa,EAAGC,WAAY,MAAWP,GAAQ,IAAAjF,SAC5DyE,QAIT,C,mJCmCA,EAnCiB,SAAH3E,GAII,IAHhB2F,EAAU3F,EAAV2F,WACAC,EAAS5F,EAAT4F,UAASC,EAAA7F,EACT8F,QAAAA,OAAO,IAAAD,EAAG,UAASA,EAEnB,OACEvF,EAAAA,EAAAA,KAAA,OACEkF,MAAO,CACL3E,MAAO,OACPkF,OAAQ,GACRxG,gBAAiBuG,EACjBE,aAAc,GACdC,QAAS,OACTC,mBAAoB,OACpBC,SAAU,UACVjG,SAED0F,EAAUQ,KAAI,SAACC,EAAaC,GAC3B,IAAMC,EAAsC,IAApBF,EAAY1B,MAAegB,EACnD,OACErF,EAAAA,EAAAA,KAAA,OAEEkF,MAAO,CACL3E,MAAM,GAADsD,OAAKoC,EAAc,KACxBR,OAAQ,OACRxG,gBAAiB8G,EAAY1G,MAC7BuG,mBAAoB,SACpB,YAAA/B,OANemC,EAAME,YAS7B,KAGN,ECgIA,EAjKuB,SAAHxG,GAKI,IAJtByG,EAAazG,EAAbyG,cACAC,EAAiB1G,EAAjB0G,kBACAC,EAAW3G,EAAX2G,YAAWC,EAAA5G,EACX6G,OAAAA,OAAM,IAAAD,EAAG,MAAKA,EAERE,EAAS,CACb,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAGIC,EAAU,UAEVC,EAAiBN,EAAkBO,QAAO,SAACC,EAAKC,GACpD,OAAOD,EAAMC,EAAUxC,KACzB,GAAG,GAEGyC,EAAaX,EAAgBO,EAE/BK,EAA6B,GAE3BC,EAAeZ,EAAkBa,MACrC,SAACC,GAAI,MAAsB,aAAjBA,EAAKC,OAAsB,KAClC,CACH9C,MAAO,EACP8C,QAAS,SAGPf,EAAkB7D,OAAS,GAG7BwE,EAAY,CACV,CAAE1C,MAHqBqC,EAAiBM,EAAa3C,MAG1BhF,MAAO,UAAW8E,MAAO,sBAGtD4C,EAAYX,EACTgB,QAAO,SAACD,GAAO,MAAyB,aAApBA,EAAQA,OAAsB,IAClDrB,KAAI,SAACqB,EAASnB,GACb,MAAO,CACL3B,MAAO8C,EAAQ9C,MACfhF,MAAOmH,EAAOR,GACd7B,MAAM,UAADN,OAAYsD,EAAQA,SAE7B,IAGJ,IAAIE,EAAoB,UAElBC,EAAuC,IAArBN,EAAa3C,MAAe8B,EAEhDmB,GAAkB,GACpBD,EAAoB,UACXC,GAAkB,KAC3BD,EAAoB,WAGtB,IAAME,EAA2B,CAC/B,CACElD,MAAO2C,EAAa3C,MACpBhF,MAAOgI,EACPlD,MAAO,yBACRN,QAAA2D,EAAAA,EAAAA,GACET,GAAS,CACZ,CACE1C,MAAOyC,EACPzH,MAAkB,QAAXkH,EAAmBE,EAAU,cACpCtC,MAAO,iBAIX,GAAe,QAAXoC,EAAkB,CACpB,IAAMkB,EAAwCF,EAAWzB,KAAI,SAAC4B,GAC5D,MAAO,CACLrD,MAAOqD,EAAQrD,MACfhF,MAAOqI,EAAQrI,MACfsI,SAAUD,EAAQvD,MAEtB,IAEA,OACEnE,EAAAA,EAAAA,KAAA,OAAKkF,MAAO,CAAE3E,MAAO,OAAQqH,aAAc,IAAKhI,UAC9CI,EAAAA,EAAAA,KAAC6H,EAAQ,CACPxC,WAAYc,EACZb,UAAWmC,EACXjC,QAASiB,KAIjB,CAEA,OACEjE,EAAAA,EAAAA,MAAA,OAAK0C,MAAO,CAAE4C,SAAU,WAAYvH,MAAO,IAAKkF,OAAQ,KAAM7F,SAAA,EAC5DI,EAAAA,EAAAA,KAAA,OACEkF,MAAO,CAAE4C,SAAU,WAAYC,OAAQ,EAAGC,IAAK,GAAIC,OAAQ,KAC3D/H,UAAWmG,EAAYzG,UAEvBI,EAAAA,EAAAA,KAACkI,EAAAA,IAAU,CACThD,MAAO,CACLlG,OAAQ,iBACR0G,aAAc,OACdnF,MAAO,GACPkF,OAAQ,SAIdzF,EAAAA,EAAAA,KAAA,QACEkF,MAAO,CACL4C,SAAU,WACVE,IAAK,MACLG,KAAM,MACNC,UAAW,wBACXhD,WAAY,OACZ/F,MAAO,OACPD,SAAU,IACVQ,SAEAyI,MAAM3B,GAAiD,OAA/B4B,EAAAA,EAAAA,IAAa5B,MAEzC1G,EAAAA,EAAAA,KAAA,OAAAJ,UACE4C,EAAAA,EAAAA,MAAC+F,EAAAA,EAAQ,CAAChI,MAAO,IAAKkF,OAAQ,IAAI7F,SAAA,EAChCI,EAAAA,EAAAA,KAACwI,EAAAA,EAAG,CACFC,KAAM,CAAC,CAAEpE,MAAO,MAChBqE,GAAI,MACJC,GAAI,MACJC,QAAQ,QACRC,YAAa,GACbC,YAAa,GACbC,KAAMtC,EACNuC,mBAAmB,EACnBC,OAAQ,UAEVjJ,EAAAA,EAAAA,KAACwI,EAAAA,EAAG,CACFC,KAAMlB,EACNmB,GAAI,MACJC,GAAI,MACJC,QAAQ,QACRC,YAAa,GACbC,YAAa,GAAGlJ,SAEf2H,EAAWzB,KAAI,SAACoD,EAAOlD,GAAK,OAC3BhG,EAAAA,EAAAA,KAACmJ,EAAAA,EAAI,CAEHJ,KAAMG,EAAM7J,MACZ4J,OAAQ,QAAO,gBAAApF,OAFMmC,GAGrB,aAOhB,C,uRC2DA,GAAetH,EAAAA,EAAAA,IA3MA,SAACC,GAAY,OAC1BC,EAAAA,EAAAA,IAAYqB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CACXmJ,SAAU,CACRhK,SAAU,KAETiK,EAAAA,IACAC,EAAAA,IACF,GAoML,EAlM0B,SAAH5J,GAMI,IALzBgD,EAAIhD,EAAJgD,KACA6G,EAAoB7J,EAApB6J,qBACAC,EAAS9J,EAAT8J,UACAC,EAAQ/J,EAAR+J,SACA9J,EAAOD,EAAPC,QAEMuB,GAAWC,EAAAA,EAAAA,MACjBC,GAAkCC,EAAAA,EAAAA,WAAkB,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAnDsI,EAASpI,EAAA,GAAEqI,EAAYrI,EAAA,GAC9BsI,GAAoCvI,EAAAA,EAAAA,UAAiB,IAAGwI,GAAAtI,EAAAA,EAAAA,GAAAqI,EAAA,GAAjDE,EAAUD,EAAA,GAAEE,EAAaF,EAAA,GAChCG,GAA0C3I,EAAAA,EAAAA,WAAkB,GAAM4I,GAAA1I,EAAAA,EAAAA,GAAAyI,EAAA,GAA3DE,EAAaD,EAAA,GAAEE,EAAgBF,EAAA,GACtCG,GACE/I,EAAAA,EAAAA,UAAiB,IAAGgJ,GAAA9I,EAAAA,EAAAA,GAAA6I,EAAA,GADfE,EAAqBD,EAAA,GAAEE,EAAwBF,EAAA,GAEtDG,GACEnJ,EAAAA,EAAAA,UAAiB,IAAGoJ,GAAAlJ,EAAAA,EAAAA,GAAAiJ,EAAA,GADfE,EAAqBD,EAAA,GAAEE,EAAwBF,EAAA,GAEtDG,GACEvJ,EAAAA,EAAAA,UAAiB,IAAGwJ,GAAAtJ,EAAAA,EAAAA,GAAAqJ,EAAA,GADfE,EAAqBD,EAAA,GAAEE,EAAwBF,EAAA,GAEtDG,GAA8C3J,EAAAA,EAAAA,WAAkB,GAAK4J,GAAA1J,EAAAA,EAAAA,GAAAyJ,EAAA,GAA9DE,EAAeD,EAAA,GAAEE,EAAkBF,EAAA,GAEpCG,GAAgBC,EAAAA,EAAAA,cACpB,SAACC,GACC,IAAMC,EAAU,IAAIC,OAAO,2BAE3B,GACO,eADCF,EAEJH,EAAmBI,EAAQE,KAAK3B,GAGtC,GACA,CAACA,KAGH/H,EAAAA,EAAAA,YAAU,WACRqJ,EAAc,aAChB,GAAG,CAACtB,EAAYsB,IAoDhB,OACEpL,EAAAA,EAAAA,KAAC0L,EAAAA,EAAY,CACX9K,MAAO,uBACPD,UAAW+B,EACXhC,QAtDgB,WAClB6I,GAAqB,EACvB,EAoDyB3J,UAErB4C,EAAAA,EAAAA,MAACmJ,EAAAA,GAAI,CAACC,WAAS,EAAAhM,SAAA,EACb4C,EAAAA,EAAAA,MAACmJ,EAAAA,GAAI,CAACE,MAAI,EAAC7G,GAAI,GAAI9E,UAAWP,EAAQmM,oBAAoBlM,SAAA,EACxDI,EAAAA,EAAAA,KAAA,OAAKE,UAAWP,EAAQyJ,SAASxJ,SAAC,mGAIlCI,EAAAA,EAAAA,KAAA,UACAA,EAAAA,EAAAA,KAAA,UACAA,EAAAA,EAAAA,KAAC2L,EAAAA,GAAI,CAACE,MAAI,EAAC7G,GAAI,GAAI9E,UAAWP,EAAQoM,aAAanM,UACjDI,EAAAA,EAAAA,KAACgM,EAAAA,EAAe,CACd3H,MAAOyF,EACP3F,MAAO,gBACPjB,GAAI,aACJ+I,KAAM,aACNC,YAAa,gDACbC,SAAU,SAACC,GACTrC,EAAcqC,EAAEC,OAAOhI,MACzB,OAGJrE,EAAAA,EAAAA,KAAC2L,EAAAA,GAAI,CAACE,MAAI,EAAC7G,GAAI,GAAI9E,UAAWP,EAAQoM,aAAanM,UACjDI,EAAAA,EAAAA,KAACsM,EAAAA,EAAiB,CAChBjI,MAAM,gBACNnB,GAAG,mBACH+I,KAAK,mBACLM,QAASrC,EACTiC,SAAU,SAACC,GACTjC,GAAkBD,EACpB,EACA/F,MAAO,4BACPqI,gBAAiB,CAAC,MAAO,UAG5BtC,IACC1H,EAAAA,EAAAA,MAACiK,EAAAA,SAAQ,CAAA7M,SAAA,EACPI,EAAAA,EAAAA,KAAC2L,EAAAA,GAAI,CAACE,MAAI,EAAC7G,GAAI,GAAI9E,UAAWP,EAAQoM,aAAanM,UACjDI,EAAAA,EAAAA,KAACgM,EAAAA,EAAe,CACd3H,MAAOiG,EACPnG,MAAO,WACPjB,GAAI,gBACJ+I,KAAM,gBACNC,YAAa,mCACbC,SAAU,SAACC,GACT7B,EAAyB6B,EAAEC,OAAOhI,MACpC,OAGJrE,EAAAA,EAAAA,KAAC2L,EAAAA,GAAI,CAACE,MAAI,EAAC7G,GAAI,GAAI9E,UAAWP,EAAQoM,aAAanM,UACjDI,EAAAA,EAAAA,KAACgM,EAAAA,EAAe,CACd3H,MAAOqG,EACPvG,MAAO,WACPjB,GAAI,wBACJ+I,KAAM,wBACNC,YAAa,gCACbC,SAAU,SAACC,GACTzB,EAAyByB,EAAEC,OAAOhI,MACpC,OAGJrE,EAAAA,EAAAA,KAAC2L,EAAAA,GAAI,CAACE,MAAI,EAAC7G,GAAI,GAAI9E,UAAWP,EAAQoM,aAAanM,UACjDI,EAAAA,EAAAA,KAACgM,EAAAA,EAAe,CACd3H,MAAOyG,EACP3G,MAAO,WACPjB,GAAI,wBACJ+I,KAAM,wBACNC,YAAa,gCACbC,SAAU,SAACC,GACTrB,EAAyBqB,EAAEC,OAAOhI,MACpC,aAMV7B,EAAAA,EAAAA,MAACmJ,EAAAA,GAAI,CAACE,MAAI,EAAC7G,GAAI,GAAI9E,UAAWP,EAAQ+M,eAAe9M,SAAA,EACnDI,EAAAA,EAAAA,KAAC2M,EAAAA,IAAM,CACLzJ,GAAI,QACJiE,QAAQ,UACR/D,QAlIQ,WAChB2G,EAAc,IACdI,GAAiB,GACjBI,EAAyB,IACzBI,EAAyB,IACzBI,EAAyB,GAC3B,EA6HU5G,MAAM,WAERnE,EAAAA,EAAAA,KAAC2M,EAAAA,IAAM,CACLzJ,GAAI,cACJhB,KAAK,SACLiF,QAAQ,aACRyF,UACG1B,GACAhB,IACmC,KAAjCI,EAAsBuC,QACY,KAAjCnC,EAAsBmC,QACW,KAAjC/B,EAAsB+B,SAC1BnD,EAEFtG,QAzIe,WACvBuG,GAAa,GAEb,IAAImD,EAAU,CACZC,MAAOjD,GAGT,GAAII,EAAe,CACjB,IAAM8C,EAAgB,CACpBC,eAAgB,CACdD,SAAU1C,EACV4C,SAAUxC,EACVyC,SAAUrC,IAGdgC,GAAO7M,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACF6M,GACAE,EAEP,CAEAI,EAAAA,EACGC,OACC,MAAM,sBAADxJ,OACiB2F,EAAS,aAAA3F,OAAY4F,GAC3CqD,GAEDQ,MAAK,WACJ3D,GAAa,GACbzI,GAASqM,EAAAA,EAAAA,IAAmB,+BAC5BhE,GAAqB,EACvB,IACCiE,OAAM,SAACC,GACNvM,GAASwM,EAAAA,EAAAA,IAA0BD,IACnC9D,GAAa,EACf,GACJ,EAsGUxF,MAAO,gBAMnB,I,kECpFA,EA9IwB,SAAHzE,GAKI,IAADiO,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAJtBC,EAAMvO,EAANuO,OACAC,EAAYxO,EAAZwO,aACAC,EAAOzO,EAAPyO,QACAV,EAAK/N,EAAL+N,MAEIW,EAAiB,CAAE/J,MAAO,MAAOgK,KAAM,IACvCC,EAAsB,CAAEjK,MAAO,MAAOgK,KAAM,IAC5CE,EAAkB,CAAElK,MAAO,MAAOgK,KAAM,IACxCG,EAAsB,CAAEnK,MAAO,MAAOgK,KAAM,IAC5CI,EAAuB,CAAEpK,MAAO,MAAOgK,KAAM,IAEjD,GAAiB,QAAjBV,EAAIM,EAAOS,cAAM,IAAAf,GAAO,QAAPC,EAAbD,EAAegB,aAAK,IAAAf,GAApBA,EAAsBQ,IAAK,CAC7B,IACMQ,GADIC,EAAAA,EAAAA,IAAU,GAADhL,OAAIoK,EAAOS,OAAOC,MAAMP,MAAO,GAClCU,MAAM,KACtBV,EAAI/J,MAAQuK,EAAM,GAClBR,EAAIC,KAAOO,EAAM,EACnB,CACA,GAAiB,QAAjBf,EAAII,EAAOS,cAAM,IAAAb,GAAO,QAAPC,EAAbD,EAAec,aAAK,IAAAb,GAApBA,EAAsBQ,SAAU,CAClC,IACMM,GADIC,EAAAA,EAAAA,IAAU,GAADhL,OAAIoK,EAAOS,OAAOC,MAAML,WAAY,GACvCQ,MAAM,KACtBR,EAASjK,MAAQuK,EAAM,GACvBN,EAASD,KAAOO,EAAM,EACxB,CACA,GAAiB,QAAjBb,EAAIE,EAAOS,cAAM,IAAAX,GAAO,QAAPC,EAAbD,EAAeY,aAAK,IAAAX,GAApBA,EAAsBe,eAAgB,CACxC,IACMH,GADItG,EAAAA,EAAAA,IAAa2F,EAAOS,OAAOC,MAAMI,gBAAgB,GAC3CD,MAAM,KACtBP,EAAKlK,MAAQuK,EAAM,GACnBL,EAAKF,KAAOO,EAAM,EACpB,CAEA,IAAII,EAAkC,GACtC,GAAKf,EAAOgB,OAAiC,IAAxBhB,EAAOgB,MAAM1M,OAI3B,CACLyM,EAAgBf,EAAOgB,MAAMnJ,KAAI,SAACoJ,GAChC,MAAO,CAAE7K,MAAO6K,EAAW5L,KAAO6D,QAAS+H,EAAWjD,KACxD,IACA,IAAIkD,EAAgBlB,EAAOgB,MACxB7H,QAAO,SAAC8H,GACP,MAA2B,aAApBA,EAAWhN,IACpB,IACCyE,QAAO,SAACyI,EAAKF,GAAU,OAAKE,EAAMF,EAAW5L,IAAK,GAAE,GACnD+L,EAAcpB,EAAOgB,MACtB7H,QAAO,SAAC8H,GACP,MAA2B,aAApBA,EAAWhN,IACpB,IACCyE,QAAO,SAACyI,EAAKF,GAAU,OAAKE,EAAMF,EAAW5L,IAAK,GAAE,GAGjDsL,GADItG,EAAAA,EAAAA,IAAa+G,GAAa,GACpBP,MAAM,KACtBL,EAAUpK,MAAQuK,EAAM,GACxBH,EAAUJ,KAAOO,EAAM,GAEvB,IACMU,GADKhH,EAAAA,EAAAA,IAAa6G,GAAe,GACdL,MAAM,KAC/BN,EAASnK,MAAQiL,EAAc,GAC/Bd,EAASH,KAAOiB,EAAc,EAChC,KA5BgD,CAAC,IAADC,EAAAC,EAC9CR,EAAgB,CACd,CAAE3K,OAAoB,QAAbkL,EAAAtB,EAAOS,cAAM,IAAAa,GAAO,QAAPC,EAAbD,EAAeZ,aAAK,IAAAa,OAAP,EAAbA,EAAsBT,iBAAkB,EAAG5H,QAAS,YAEjE,CAsFA,OACE3E,EAAAA,EAAAA,MAACiN,EAAAA,SAAc,CAAA7P,SAAA,CACZuO,IACCnO,EAAAA,EAAAA,KAAA,OAAKkF,MAAO,CAAEpG,QAAS,GAAIc,UACzBI,EAAAA,EAAAA,KAAC2L,EAAAA,GAAI,CACHE,MAAI,EACJ7G,GAAI,GACJE,MAAO,CACLwK,UAAW,UACX9P,UAEFI,EAAAA,EAAAA,KAAC2P,EAAAA,IAAM,CAACzK,MAAO,CAAE3E,MAAO,GAAIkF,OAAQ,UAvEtB,WACP,IAADmK,EAAAC,EAAd,OAAK1B,EAwDE,KAvDY,KAAVV,GACLzN,EAAAA,EAAAA,KAAC8P,EAAAA,EAAU,CAACC,aAActC,EAAOuC,WAAW,KAE5CxN,EAAAA,EAAAA,MAACmJ,EAAAA,GAAI,CAACE,MAAI,EAAC7G,GAAI,GAAGpF,SAAA,EAChBI,EAAAA,EAAAA,KAACiQ,EAAAA,EAAc,CACb9J,eAA4B,QAAbyJ,EAAA3B,EAAOS,cAAM,IAAAkB,GAAO,QAAPC,EAAbD,EAAejB,aAAK,IAAAkB,OAAP,EAAbA,EAAsBzB,MAAO,EAC5ChI,kBAAmB4I,EACnB3I,YAAa,GACbE,OAAQ,SAEV/D,EAAAA,EAAAA,MAACsC,EAAAA,EAAK,CACJC,UAAW,CAAEC,GAAI,SAAUC,GAAI,OAC/BiL,QAAS,CAAElL,GAAI,EAAGC,GAAI,EAAGkL,GAAI,GAC7BC,WAAY,UACZrR,OAAQ,aAAaa,SAAA,GAElBqO,EAAOgB,OAAiC,IAAxBhB,EAAOgB,MAAM1M,UAC9BvC,EAAAA,EAAAA,KAACyM,EAAAA,SAAQ,CAAA7M,UACPI,EAAAA,EAAAA,KAACqQ,EAAAA,EAAc,CACblM,MAAO,YACPI,YAAa,MACbF,MAAK,GAAAR,OAAK0K,EAAKlK,MAAK,KAAAR,OAAI0K,EAAKF,UAIlCJ,EAAOgB,OAAShB,EAAOgB,MAAM1M,OAAS,IACrCC,EAAAA,EAAAA,MAACiK,EAAAA,SAAQ,CAAA7M,SAAA,EACPI,EAAAA,EAAAA,KAACqQ,EAAAA,EAAc,CACblM,MAAO,YACPI,YAAa,MACbF,MAAK,GAAAR,OAAK2K,EAASnK,MAAK,KAAAR,OAAI2K,EAASH,SAEvCrO,EAAAA,EAAAA,KAACqQ,EAAAA,EAAc,CACblM,MAAO,UACPI,YAAa,MACbF,MAAK,GAAAR,OAAK4K,EAAUpK,MAAK,KAAAR,OAAI4K,EAAUJ,WAI5CH,IACClO,EAAAA,EAAAA,KAACqQ,EAAAA,EAAc,CACb9L,YAAa,MACbJ,MAAO,UACPE,OACErE,EAAAA,EAAAA,KAAA,QAAME,UAAWgO,EAAatO,UAC5BI,EAAAA,EAAAA,KAACkI,EAAAA,IAAU,aAW7B,CAiBKoI,KAGP,E,4CCwJA,GAAe5R,EAAAA,EAAAA,IAvQA,SAACC,GAAY,OAC1BC,EAAAA,EAAAA,IAAYqB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CACXsQ,aAAc,CACZ5K,QAAS,OACTiC,aAAc,IAEhB4I,cAAe,CACbC,WAAY,GACZ9K,QAAS,OACTyK,WAAY,SACZ,QAAS,CACP7P,MAAO,GACPkF,OAAQ,IAEV,WAAY,CACViL,WAAY,aAGbrH,EAAAA,IACAC,EAAAA,IACF,GAmPL,EAjPoB,SAAH5J,GAOI,IANnBgD,EAAIhD,EAAJgD,KACA6G,EAAoB7J,EAApB6J,qBACAC,EAAS9J,EAAT8J,UACAC,EAAQ/J,EAAR+J,SACAkH,EAAOjR,EAAPiR,QACAhR,EAAOD,EAAPC,QAEMuB,GAAWC,EAAAA,EAAAA,MACjBC,GAAkCC,EAAAA,EAAAA,WAAkB,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAnDsI,EAASpI,EAAA,GAAEqI,EAAYrI,EAAA,GAC9BsI,GAA0CvI,EAAAA,EAAAA,UAAiB,IAAGwI,GAAAtI,EAAAA,EAAAA,GAAAqI,EAAA,GAAvDgH,EAAa/G,EAAA,GAAEgH,EAAgBhH,EAAA,GACtCG,GAAwC3I,EAAAA,EAAAA,UAAmB,CAAC,KAAI4I,GAAA1I,EAAAA,EAAAA,GAAAyI,EAAA,GAAzD8G,EAAY7G,EAAA,GAAE8G,EAAe9G,EAAA,GACpCG,GAAoD/I,EAAAA,EAAAA,WAAkB,GAAKgJ,GAAA9I,EAAAA,EAAAA,GAAA6I,EAAA,GAApE4G,EAAkB3G,EAAA,GAAE4G,EAAqB5G,EAAA,GAChDG,GAAgDnJ,EAAAA,EAAAA,UAAoB,EAAC,IAAMoJ,GAAAlJ,EAAAA,EAAAA,GAAAiJ,EAAA,GAApE0G,EAAgBzG,EAAA,GAAE0G,EAAmB1G,EAAA,IAE5C1I,EAAAA,EAAAA,YAAU,WACR,GAAI4O,EAAS,CACX,IAAMS,EAAmBT,EAAQU,SAAW,GAG5C,GAFAR,EAAiBO,GAEQ,KAArBA,EAAyB,CAE3B,IAAME,EAAgB,IAAI9F,OACxB,mEAGFyF,EAAsBK,EAAc7F,KAAK2F,GAC3C,MACEH,GAAsB,GAGxB,GAAIN,EAAQY,OAASZ,EAAQY,MAAMhP,OAAS,EAAG,CAC7CwO,EAAgBJ,EAAQY,OAExB,IAAMC,EAAc,IAAIhG,OACtB,8CAGIiG,EAAqBd,EAAQY,MAAMzL,KAAI,SAAC4L,GAC5C,MAAsB,KAAlBA,EAAO7E,QACF2E,EAAY/F,KAAKiG,EAI5B,IAEAP,EAAoBM,EACtB,CACF,CACF,GAAG,CAACd,IAEJ,IA4CMgB,EAAoB,WACxB,IAAMC,GAAYpK,EAAAA,EAAAA,GAAOsJ,GACnBe,GAAgBrK,EAAAA,EAAAA,GAAO0J,GAE7BU,EAAaE,KAAK,IAClBD,EAAiBC,MAAK,GAEtBf,EAAgBa,GAChBT,EAAoBU,EACtB,EAqBA,OACE7R,EAAAA,EAAAA,KAAC0L,EAAAA,EAAY,CACX9K,MAAK,yBAAAiD,OAA2B4F,GAChC9I,UAAW+B,EACXhC,QA9EgB,WAClB6I,GAAqB,EACvB,EA4EyB3J,UAErBI,EAAAA,EAAAA,KAAC2L,EAAAA,GAAI,CAACC,WAAS,EAAAhM,UACb4C,EAAAA,EAAAA,MAACmJ,EAAAA,GAAI,CAACE,MAAI,EAAC7G,GAAI,GAAI9E,UAAWP,EAAQmM,oBAAoBlM,SAAA,EACxD4C,EAAAA,EAAAA,MAACmJ,EAAAA,GAAI,CAACE,MAAI,EAAC7G,GAAI,GAAI9E,UAAS,GAAA2D,OAAKlE,EAAQoS,mBAAoBnS,SAAA,EAC3DI,EAAAA,EAAAA,KAAA,OAAKE,UAAWP,EAAQqS,cAAcpS,UACpCI,EAAAA,EAAAA,KAACgM,EAAAA,EAAe,CACd9I,GAAG,iBACH+I,KAAK,iBACLE,SAAU,SAACC,GACTyE,EAAiBzE,EAAEC,OAAOhI,OAE1B4M,EAAsB7E,EAAEC,OAAO4F,SAASC,MAC1C,EACA/N,MAAM,iBACNE,MAAOuM,EACP1E,YACE,qDAEFX,QACE,yEAEFkC,MACGuD,EAEG,GADA,yFAKVxO,EAAAA,EAAAA,MAAA,OAAA5C,SAAA,EACEI,EAAAA,EAAAA,KAAA,MAAAJ,SAAI,mBACJI,EAAAA,EAAAA,KAAA,OAAAJ,SACGkR,EAAahL,KAAI,SAAC4L,EAAQ1L,GACzB,OACExD,EAAAA,EAAAA,MAAA,OACEtC,UAAS,GAAA2D,OAAKlE,EAAQ4Q,cAAe3Q,SAAA,EAGrCI,EAAAA,EAAAA,KAACgM,EAAAA,EAAe,CACd9I,GAAE,gBAAAW,OAAkBmC,EAAME,YAC1B+F,KAAI,gBAAApI,OAAkBmC,EAAME,YAC5BiG,SAAU,SAACC,IAlFP,SAAC/H,EAAe2B,GACxC,IAAM4L,GAAYpK,EAAAA,EAAAA,GAAOsJ,GACzBc,EAAa5L,GAAS3B,EAEtB0M,EAAgBa,EAClB,CA8EwBO,CAAkB/F,EAAEC,OAAOhI,MAAO2B,GApDzB,SAACoM,EAAsBpM,GACtD,IAAMqM,GAAe7K,EAAAA,EAAAA,GAAO0J,GAC5BmB,EAAgBrM,GAASoM,EAEzBjB,EAAoBkB,EACtB,CAgDwBC,CACElG,EAAEC,OAAO4F,SAASC,MAClBlM,EAEJ,EACA7B,MAAK,gBAAAN,OAAkBmC,EAAQ,GAC/B3B,MAAOqN,EACPxF,YAAa,8BACbX,QACE,gDAEFkC,MACGyD,EAAiBlL,GAEd,GADA,sEAIRhG,EAAAA,EAAAA,KAAA,OAAKE,UAAWP,EAAQ6Q,cAAc5Q,UACpCI,EAAAA,EAAAA,KAACiD,EAAAA,EAAU,CACTK,KAAM,QACNF,QAASuO,EACT/E,SAAU5G,IAAU8K,EAAavO,OAAS,EAAE3C,UAE5CI,EAAAA,EAAAA,KAACuS,EAAAA,EAAO,SAIZvS,EAAAA,EAAAA,KAAA,OAAKE,UAAWP,EAAQ6Q,cAAc5Q,UACpCI,EAAAA,EAAAA,KAACiD,EAAAA,EAAU,CACTK,KAAM,QACNF,QAAS,kBAhGP,SAACoP,GACzB,IAAMC,EAAkB3B,EAAa1J,QACnC,SAACsL,EAAG1M,GAAK,OAAKA,IAAUwM,CAAW,IAG/BG,EAAoBzB,EAAiB9J,QACzC,SAACsL,EAAG1M,GAAK,OAAKA,IAAUwM,CAAW,IAGrCzB,EAAgB0B,GAChBtB,EAAoBwB,EACtB,CAqFuCC,CAAkB5M,EAAM,EACvC4G,SAAUkE,EAAavO,QAAU,EAAE3C,UAEnCI,EAAAA,EAAAA,KAAC6S,EAAAA,IAAU,UAET,oBAAAhP,OA1CmBmC,EAAME,YA6CrC,aAIN1D,EAAAA,EAAAA,MAACmJ,EAAAA,GAAI,CAACE,MAAI,EAAC7G,GAAI,GAAI9E,UAAWP,EAAQ+M,eAAe9M,SAAA,EACnDI,EAAAA,EAAAA,KAAC2M,EAAAA,IAAM,CACLzJ,GAAI,oBACJhB,KAAK,SACLiF,QAAQ,UACR/D,QApKM,WAChByN,EAAiB,IACjBI,GAAsB,GACtBF,EAAgB,CAAC,KACjBI,EAAoB,EAAC,GACvB,EAgKYhN,MAAO,WAETnE,EAAAA,EAAAA,KAAC2M,EAAAA,IAAM,CACLzJ,GAAI,cACJhB,KAAK,SACLiF,QAAQ,aACRyF,SACElD,IACCsH,GACDE,EAAiB9J,QAAO,SAACsK,GAAM,OAAMA,CAAM,IAAEnP,OAAS,EAExDa,QAzKc,WACxBuG,GAAa,GAEb,IAAImD,EAAU,CACZ6D,QAAS,CACPU,QAAST,EACTW,MAAOT,EAAa1J,QAAO,SAAC0L,GAAW,MAA4B,KAAvBA,EAAYjG,MAAa,MAGzEO,EAAAA,EACGC,OACC,MAAM,sBAADxJ,OACiB2F,EAAS,aAAA3F,OAAY4F,EAAQ,YACnDqD,GAEDQ,MAAK,WACJ3D,GAAa,GACbzI,GAASqM,EAAAA,EAAAA,IAAmB,iCAC5BhE,GAAqB,EACvB,IACCiE,OAAM,SAACC,GACN9D,GAAa,GACbzI,GAASwM,EAAAA,EAAAA,IAA0BD,GACrC,GACJ,EAkJYtJ,MAAO,kBAOrB,I,sBC9NM4O,EAAsB,WAAkD,IAAjDC,EAAqBC,UAAA1Q,OAAA,QAAA2Q,IAAAD,UAAA,GAAAA,UAAA,GAAG,MAAOtT,EAAYsT,UAAA1Q,OAAA,EAAA0Q,UAAA,QAAAC,EACtE,MAAyB,QAAlBF,EACHrT,EAAQwT,SACU,WAAlBH,EACArT,EAAQyT,YACU,UAAlBJ,EACArT,EAAQ0T,WACR1T,EAAQ2T,SACd,EAEMC,EAAiB,SAAH7T,GAMb,IAADiO,EALJM,EAAMvO,EAANuO,OACAtO,EAAOD,EAAPC,QAKA,OAAKsO,GAKHjO,EAAAA,EAAAA,KAACwT,EAAe,CACdvF,OAAQA,EACR9J,MAAO,UACPsJ,MAAO,GACPU,SAAS,EACTD,aAAc6E,EAA0B,OAAN9E,QAAM,IAANA,GAAc,QAARN,EAANM,EAAQS,cAAM,IAAAf,OAAR,EAANA,EAAgBqF,cAAerT,KAT5D,IAYX,EAEM8T,EAAY,SAACC,GACjB,OAAIA,GACK1T,EAAAA,EAAAA,KAAC2T,EAAAA,IAAc,KAEjB3T,EAAAA,EAAAA,KAAC4T,EAAAA,IAAW,CAAC1O,MAAO,CAAE7F,MAAO,SACtC,EAEMwU,EAAkB,CACtBlO,QAAS,OACTmO,eAAgB,gBAChBC,UAAW,OACX,4BAA6B,CAC3BC,SAAU,WAIRC,EAAwB,CAC5BxP,SAAU,CACRyP,GAAI,CACFC,KAAM,EACNhP,YAAa,GACbQ,QAAS,OACTyK,WAAY,SACZ0D,eAAgB,gBAChB,4BAA6B,CAC3B3O,YAAa,UAInBR,SAAU,CACRO,MAAO,CACLkP,SAAU,OA+ShB,GAAe1V,EAAAA,EAAAA,IA3ZA,SAACC,GAAY,OAC1BC,EAAAA,EAAAA,IAAYqB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EACToU,EAAAA,IAAmB,IACtBlB,SAAU,CACR9T,MAAOV,EAAMW,QAAQmO,MAAMjO,KAC3B,cAAe,CACbe,MAAO,GACPkF,OAAQ,GACRN,YAAa,IAGjBiO,YAAa,CACX/T,MAAOV,EAAMW,QAAQgV,QAAQ9U,KAC7B,cAAe,CACbe,MAAO,GACPkF,OAAQ,GACRN,YAAa,IAGjBkO,WAAY,CACVhU,MAAOV,EAAMW,QAAQiV,QAAQ/U,KAC7B,cAAe,CACbe,MAAO,GACPkF,OAAQ,GACRN,YAAa,IAGjBmO,UAAW,CACTjU,MAAO,OACP,cAAe,CACbkB,MAAO,GACPkF,OAAQ,GACRN,YAAa,IAGjBqP,cAAe,CACbnV,MAAOV,EAAMW,QAAQC,KAAKC,KAC1BC,WAAY,uBAEdgV,kBAAmB,CACjBC,UAAW,WAEVC,EAAAA,IACF,GAgXL,EA3SsB,SAAHC,GAAsC,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAjI,EAAAE,EAAAwB,EAAAK,EAAAmG,EAAAC,EAA/BrW,EAAOiV,EAAPjV,QACjBuB,GAAWC,EAAAA,EAAAA,MACjB8U,GAAwCC,EAAAA,EAAAA,MAAhCC,EAAUF,EAAVE,WAAYC,EAAeH,EAAfG,gBAEdnI,GAAStM,EAAAA,EAAAA,KAAY,SAACC,GAAe,OAAKA,EAAMyU,QAAQC,UAAU,IAClEC,GAAoB5U,EAAAA,EAAAA,KAAY,SAACC,GAAe,OACpD4U,IAAI5U,EAAMyU,QAAQC,WAAY,qBAAqB,EAAM,IAErDG,GAAW9U,EAAAA,EAAAA,KAAY,SAACC,GAAe,OAC3C4U,IAAI5U,EAAMyU,QAAQC,WAAY,YAAY,EAAM,IAE5CI,IAAY/U,EAAAA,EAAAA,KAAY,SAACC,GAAe,OAC5C4U,IAAI5U,EAAMyU,QAAQC,WAAY,gBAAgB,EAAM,IAEhDK,IAAchV,EAAAA,EAAAA,KAAY,SAACC,GAAe,OAC9C4U,IAAI5U,EAAMyU,QAAQC,WAAY,kBAAkB,EAAM,IAGxDlV,IAAkCC,EAAAA,EAAAA,UAAiB,GAAEC,IAAAC,EAAAA,EAAAA,GAAAH,GAAA,GAA9CwV,GAAStV,GAAA,GAAEuV,GAAYvV,GAAA,GAC9BsI,IAAkCvI,EAAAA,EAAAA,UAAiB,GAAEwI,IAAAtI,EAAAA,EAAAA,GAAAqI,GAAA,GAA9CkN,GAASjN,GAAA,GAAEkN,GAAYlN,GAAA,GAC9BG,IAA8B3I,EAAAA,EAAAA,UAAiB,GAAE4I,IAAA1I,EAAAA,EAAAA,GAAAyI,GAAA,GAA1CgN,GAAO/M,GAAA,GAAEgN,GAAUhN,GAAA,GAC1BG,IAAoD/I,EAAAA,EAAAA,WAAkB,GAAMgJ,IAAA9I,EAAAA,EAAAA,GAAA6I,GAAA,GAArE8M,GAAkB7M,GAAA,GAAE8M,GAAqB9M,GAAA,GAChDG,IAA8CnJ,EAAAA,EAAAA,WAAkB,GAAMoJ,IAAAlJ,EAAAA,EAAAA,GAAAiJ,GAAA,GAA/D4M,GAAe3M,GAAA,GAAE4M,GAAkB5M,GAAA,IAE1C1I,EAAAA,EAAAA,YAAU,WACK,IAADuV,EAAAC,EAAAC,EAARvJ,IACF4I,IAAmB,OAAN5I,QAAM,IAANA,GAAa,QAAPqJ,EAANrJ,EAAQwJ,aAAK,IAAAH,OAAP,EAANA,EAAe/U,SAAU,GACtC0U,IACc,QAAZM,EAAAtJ,EAAOwJ,aAAK,IAAAF,OAAA,EAAZA,EAAc5Q,QACZ,SAACyI,EAAKsI,GAAC,OAAKtI,EAAMsI,EAAEC,mBAAqBD,EAAEE,OAAO,GAClD,KACG,GAEPb,IAAyB,QAAZS,EAAAvJ,EAAOwJ,aAAK,IAAAD,OAAA,EAAZA,EAAc7Q,QAAO,SAACyI,EAAKsI,GAAC,OAAKtI,EAAMsI,EAAEE,OAAO,GAAE,KAAM,GAEzE,GAAG,CAAC3J,IASJ,OACEzL,EAAAA,EAAAA,MAACiK,EAAAA,SAAQ,CAAA7M,SAAA,CACNsX,KACClX,EAAAA,EAAAA,KAAC6X,EAAiB,CAChBnV,KAAMwU,GACN3N,qBAAsB,SAACuO,GACrBX,IAAsB,GAClBW,GACF5W,GAAS6W,EAAAA,EAAAA,KAEb,EACAtO,SAAU0M,GAAc,GACxB3M,UAAW4M,GAAmB,KAIjCgB,KACCpX,EAAAA,EAAAA,KAACgY,EAAW,CACVtV,KAAM0U,GACN3N,SAAU0M,GAAc,GACxB3M,UAAW4M,GAAmB,GAC9BzF,SAAe,OAAN1C,QAAM,IAANA,OAAM,EAANA,EAAQ0C,UAAW,KAC5BpH,qBA7BsB,SAACuO,GAC7BT,IAAmB,GACfS,GACF5W,GAAS6W,EAAAA,EAAAA,KAEb,KA4BI/X,EAAAA,EAAAA,KAACiY,EAAAA,EAAY,CAACC,WAAW,EAAMtY,SAAC,aAEhCI,EAAAA,EAAAA,KAACuT,EAAc,CAACtF,OAAQA,EAAQtO,QAASA,KAEzC6C,EAAAA,EAAAA,MAACmJ,EAAAA,GAAI,CAACC,WAAS,EAAAhM,SAAA,EACb4C,EAAAA,EAAAA,MAACmJ,EAAAA,GAAI,CAACE,MAAI,EAAC7G,GAAI,GAAIC,GAAI,GAAIkL,GAAI,EAAEvQ,SAAA,EAC/BI,EAAAA,EAAAA,KAAC2L,EAAAA,GAAI,CAACE,MAAI,EAAC7G,GAAI,GAAGpF,UAChBI,EAAAA,EAAAA,KAACqQ,EAAAA,EAAc,CAAClM,MAAO,SAAUE,MAAa,OAAN4J,QAAM,IAANA,OAAM,EAANA,EAAQkK,kBAElDnY,EAAAA,EAAAA,KAAC2L,EAAAA,GAAI,CAACE,MAAI,EAAC7G,GAAI,GAAGpF,UAChBI,EAAAA,EAAAA,KAACqQ,EAAAA,EAAc,CACblM,MAAM,SACNE,OACErE,EAAAA,EAAAA,KAACoY,EAAAA,EAAO,CACNlT,MAAO,CACLW,SAAU,SACVwS,aAAc,WACdC,WAAY,SACZC,UAAW,aAEbnV,QAAS,WACP+T,IAAsB,EACxB,EAAEvX,SAEDqO,EAASA,EAAOlB,MAAQ,UAKjC/M,EAAAA,EAAAA,KAAC2L,EAAAA,GAAI,CAACE,MAAI,EAAC7G,GAAI,GAAGpF,UAChB4C,EAAAA,EAAAA,MAAA,MAAA5C,SAAA,CAAI,WAEFI,EAAAA,EAAAA,KAAC2M,EAAAA,IAAM,CACLzJ,GAAI,eACJsV,MAAMxY,EAAAA,EAAAA,KAACyY,EAAAA,IAAQ,IACfrV,QAAS,WACPiU,IAAmB,EACrB,UAINrX,EAAAA,EAAAA,KAAC2L,EAAAA,GAAI,CAACE,MAAI,EAAC7G,GAAI,GAAGpF,UAChBI,EAAAA,EAAAA,KAACqQ,EAAAA,EAAc,CACblM,MAAO,WACPE,OACE7B,EAAAA,EAAAA,MAACiK,EAAAA,SAAQ,CAAA7M,SAAA,CACE,OAANqO,QAAM,IAANA,GAAe,QAAT4G,EAAN5G,EAAQ0C,eAAO,IAAAkE,GAAfA,EAAiBxD,SACW,MAAvB,OAANpD,QAAM,IAANA,GAAe,QAAT6G,EAAN7G,EAAQ0C,eAAO,IAAAmE,OAAT,EAANA,EAAiBzD,UACZ,OAANpD,QAAM,IAANA,GAAiB,QAAX8G,EAAN9G,EAAQyK,iBAAS,IAAA3D,GAAjBA,EAAmB1D,QAEhB,GADA,KAGG,OAANpD,QAAM,IAANA,GAAiB,QAAX+G,EAAN/G,EAAQyK,iBAAS,IAAA1D,OAAX,EAANA,EAAmB3D,WAClB7O,EAAAA,EAAAA,MAACiK,EAAAA,SAAQ,CAAA7M,SAAA,EACPI,EAAAA,EAAAA,KAAA,KACE2Y,KAAY,OAAN1K,QAAM,IAANA,GAAiB,QAAXgH,EAANhH,EAAQyK,iBAAS,IAAAzD,OAAX,EAANA,EAAmB5D,QACzBhF,OAAO,SACPuM,IAAI,WACJ1Y,UAAS,GAAA2D,OAAKlE,EAAQ6U,cAAa,KAAA3Q,OAAIlE,EAAQ8U,mBAAoB7U,UAE5D,OAANqO,QAAM,IAANA,GAAiB,QAAXiH,EAANjH,EAAQyK,iBAAS,IAAAxD,OAAX,EAANA,EAAmB7D,UAAW,OAEjCrR,EAAAA,EAAAA,KAAA,aAIG,OAANiO,QAAM,IAANA,GAAe,QAATkH,EAANlH,EAAQ0C,eAAO,IAAAwE,OAAT,EAANA,EAAiB9D,UACa,MAAvB,OAANpD,QAAM,IAANA,GAAe,QAATmH,EAANnH,EAAQ0C,eAAO,IAAAyE,OAAT,EAANA,EAAiB/D,WACfrR,EAAAA,EAAAA,KAAA,KACE2Y,MAAY,OAAN1K,QAAM,IAANA,GAAe,QAAToH,EAANpH,EAAQ0C,eAAO,IAAA0E,OAAT,EAANA,EAAiBhE,UAAW,GAClChF,OAAO,SACPuM,IAAI,WACJ1Y,UAAWP,EAAQ6U,cAAc5U,UAE1B,OAANqO,QAAM,IAANA,GAAe,QAATqH,EAANrH,EAAQ0C,eAAO,IAAA2E,OAAT,EAANA,EAAiBjE,UAAW,aAO3CrR,EAAAA,EAAAA,KAAC2L,EAAAA,GAAI,CAACE,MAAI,EAAC7G,GAAI,GAAGpF,UAChBI,EAAAA,EAAAA,KAACqQ,EAAAA,EAAc,CACblM,MAAK,iBAAAN,OACG,OAANoK,QAAM,IAANA,GAAiB,QAAXsH,EAANtH,EAAQyK,iBAAS,IAAAnD,GAAjBA,EAAmBhE,OACiB,KAA9B,OAANtD,QAAM,IAANA,GAAiB,QAAXuH,EAANvH,EAAQyK,iBAAS,IAAAlD,OAAX,EAANA,EAAmBjE,MAAMhP,QACrB,GACA,IAAG,KAET8B,OACE7B,EAAAA,EAAAA,MAACiK,EAAAA,SAAQ,CAAA7M,SAAA,CACC,OAANqO,QAAM,IAANA,GAAe,QAATwH,EAANxH,EAAQ0C,eAAO,IAAA8E,GAAfA,EAAiBlE,OAAgB,OAANtD,QAAM,IAANA,GAAiB,QAAXyH,EAANzH,EAAQyK,iBAAS,IAAAhD,GAAjBA,EAAmBnE,MAE5C,GADA,KAEG,OAANtD,QAAM,IAANA,GAAiB,QAAX0H,EAAN1H,EAAQyK,iBAAS,IAAA/C,OAAX,EAANA,EAAmBpE,SAClB/O,EAAAA,EAAAA,MAACiK,EAAAA,SAAQ,CAAA7M,SAAA,EACPI,EAAAA,EAAAA,KAAA,KACE2Y,KAAY,OAAN1K,QAAM,IAANA,GAAiB,QAAX2H,EAAN3H,EAAQyK,iBAAS,IAAA9C,OAAX,EAANA,EAAmBrE,MACzBlF,OAAO,SACPuM,IAAI,WACJ1Y,UAAS,GAAA2D,OAAKlE,EAAQ6U,cAAa,KAAA3Q,OAAIlE,EAAQ8U,mBAAoB7U,UAE5D,OAANqO,QAAM,IAANA,GAAiB,QAAX4H,EAAN5H,EAAQyK,iBAAS,IAAA7C,OAAX,EAANA,EAAmBtE,QAAS,OAE/BvR,EAAAA,EAAAA,KAAA,aAIG,OAANiO,QAAM,IAANA,GAAe,QAAT6H,EAAN7H,EAAQ0C,eAAO,IAAAmF,OAAT,EAANA,EAAiBvE,QAChBtD,EAAO0C,QAAQY,MAAMzL,KAAI,SAAC4L,GACxB,OACElP,EAAAA,EAAAA,MAACiK,EAAAA,SAAQ,CAAA7M,SAAA,EACPI,EAAAA,EAAAA,KAAA,KACE2Y,KAAMjH,EACNrF,OAAO,SACPuM,IAAI,WACJ1Y,UAAWP,EAAQ6U,cAAc5U,SAEhC8R,KAEH1R,EAAAA,EAAAA,KAAA,WATa0R,EAYnB,eAMZlP,EAAAA,EAAAA,MAACmJ,EAAAA,GAAI,CAACE,MAAI,EAAC7G,GAAI,GAAIC,GAAI,GAAIkL,GAAI,EAAEvQ,SAAA,EAC/BI,EAAAA,EAAAA,KAAC2L,EAAAA,GAAI,CAACE,MAAI,EAAC7G,GAAI,GAAGpF,UAChBI,EAAAA,EAAAA,KAACqQ,EAAAA,EAAc,CAAClM,MAAO,aAAcE,MAAOyS,QAE9C9W,EAAAA,EAAAA,KAAC2L,EAAAA,GAAI,CAACE,MAAI,EAAC7G,GAAI,GAAGpF,UAChBI,EAAAA,EAAAA,KAACqQ,EAAAA,EAAc,CACblM,MAAO,YACPE,MAAOuS,GACPnS,SAAU,CACRS,MAAO,CACLC,YAAa,UAKrBnF,EAAAA,EAAAA,KAAC2L,EAAAA,GAAI,CAACE,MAAI,EAAC7G,GAAI,GAAGpF,UAChBI,EAAAA,EAAAA,KAACqQ,EAAAA,EAAc,CACblM,MAAM,gBACNE,MAAO2S,GACPvS,SAAU,CACRS,MAAO,CACLC,YAAa,UAKrBnF,EAAAA,EAAAA,KAAC2L,EAAAA,GAAI,CAACE,MAAI,EAAC7G,GAAI,GAAGpF,UAChBI,EAAAA,EAAAA,KAACqQ,EAAAA,EAAc,CACblM,MAAO,gBACPE,MACQ,OAAN4J,QAAM,IAANA,GAAc,QAARJ,EAANI,EAAQS,cAAM,IAAAb,GAAdA,EAAgBgL,aAAqB,OAAN5K,QAAM,IAANA,GAAc,QAARF,EAANE,EAAQS,cAAM,IAAAX,OAAR,EAANA,EAAgB8K,aAAe,OAIpE7Y,EAAAA,EAAAA,KAAC2L,EAAAA,GAAI,CAACE,MAAI,EAAC7G,GAAI,GAAGpF,UAChBI,EAAAA,EAAAA,KAACqQ,EAAAA,EAAc,CACblM,MAAO,iBACPE,MACQ,OAAN4J,QAAM,IAANA,GAAc,QAARsB,EAANtB,EAAQS,cAAM,IAAAa,GAAdA,EAAgBuJ,cACN,OAAN7K,QAAM,IAANA,GAAc,QAAR2B,EAAN3B,EAAQS,cAAM,IAAAkB,OAAR,EAANA,EAAgBkJ,cAChB,EAENrU,SAAU,CACRS,MAAO,CACLC,YAAa,SAKrBnF,EAAAA,EAAAA,KAAC2L,EAAAA,GAAI,CAACE,MAAI,EAAC7G,GAAI,GAAGpF,UAChBI,EAAAA,EAAAA,KAACqQ,EAAAA,EAAc,CACblM,MAAO,kBACPE,MACQ,OAAN4J,QAAM,IAANA,GAAc,QAAR8H,EAAN9H,EAAQS,cAAM,IAAAqH,GAAdA,EAAgBgD,eACN,OAAN9K,QAAM,IAANA,GAAc,QAAR+H,EAAN/H,EAAQS,cAAM,IAAAsH,OAAR,EAANA,EAAgB+C,eAChB,EAENtU,SAAU,CACRS,MAAO,CACLC,YAAa,eAQzBnF,EAAAA,EAAAA,KAACiY,EAAAA,EAAY,CAAArY,SAAC,cACd4C,EAAAA,EAAAA,MAACwW,EAAAA,EAAG,CAAC9E,IAAEjU,EAAAA,EAAAA,GAAA,GAAO4T,GAAkBjU,SAAA,EAC9BI,EAAAA,EAAAA,KAACqQ,EAAAA,GAAcpQ,EAAAA,EAAAA,GAAA,CACbsE,YAAY,MACZJ,MAAM,aACNE,MAAOoP,EAAUgD,EAAU,eACvBxC,KAENjU,EAAAA,EAAAA,KAACqQ,EAAAA,GAAcpQ,EAAAA,EAAAA,GAAA,CACbsE,YAAY,MACZJ,MAAO,WACPE,MAAOoP,EAAUiD,GAAW,eACxBzC,KAENjU,EAAAA,EAAAA,KAACqQ,EAAAA,GAAcpQ,EAAAA,EAAAA,GAAA,CACbsE,YAAY,MACZJ,MAAO,cACPE,MAAOoP,EAAU8C,EAAmB,eAChCtC,QAGRjU,EAAAA,EAAAA,KAACgZ,EAAAA,EAAG,CAAC9E,IAAEjU,EAAAA,EAAAA,GAAA,GAAO4T,GAAkBjU,UAC9BI,EAAAA,EAAAA,KAACqQ,EAAAA,GAAcpQ,EAAAA,EAAAA,GAAA,CACbsE,YAAY,MACZJ,MAAO,UACPE,MAAOoP,EAAUkD,GAAa,gBAC1B1C,QAKd,G,mFCjaA,KAAevV,EAAAA,EAAAA,IA5BA,SAACC,GAAY,IAAAsa,EAAA,OAC1Bra,EAAAA,EAAAA,GAAa,CACXsa,WAAY,CACV7Z,OAAoB,QAAb4Z,EAAAta,EAAMW,eAAO,IAAA2Z,OAAA,EAAbA,EAAexL,MAAMjO,OAAQ,YAErC,GAuBL,EAfmB,SAAHE,GAIS,IAHvBC,EAAOD,EAAPC,QACAoQ,EAAYrQ,EAAZqQ,aAAYoJ,EAAAzZ,EACZsQ,UAAAA,OAAS,IAAAmJ,GAAOA,EAEhB,OACE3W,EAAAA,EAAAA,MAACiN,EAAAA,SAAc,CAAA7P,SAAA,CACZoQ,IAAahQ,EAAAA,EAAAA,KAAA,UACdA,EAAAA,EAAAA,KAACoZ,EAAAA,EAAU,CAACC,UAAU,IAAIlS,QAAQ,QAAQjH,UAAWP,EAAQuZ,WAAWtZ,SACrEmQ,MAIT,G,4BC/BIuJ,EAAyBC,EAAQ,OAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,QAChDG,EAAcH,EAAQ,OACtBI,GAAW,EAAIF,EAAeG,UAAuB,EAAIF,EAAYG,KAAK,OAAQ,CACpFC,EAAG,wCACD,OACJN,EAAQ,EAAUG,C,gOCVZ5Z,EAAY,CAAC,YAAa,YAAa,UAAW,UAAW,WAAY,YAAa,cAYtFga,GAAeC,EAAAA,EAAAA,KAEfC,GAA+BC,EAAAA,EAAAA,GAAa,MAAO,CACvDjO,KAAM,WACNkO,KAAM,OACNC,kBAAmB,SAACC,EAAOC,GAAM,OAAKA,EAAOzb,IAAI,IAEnD,SAAS0b,EAAqBF,GAC5B,OAAOG,EAAAA,EAAAA,GAAoB,CACzBH,MAAAA,EACApO,KAAM,WACN8N,aAAAA,GAEJ,CASA,SAASU,EAAa7a,EAAUsY,GAC9B,IAAMwC,EAAgBjL,EAAAA,SAAekL,QAAQ/a,GAAUwH,OAAOwT,SAC9D,OAAOF,EAAc/T,QAAO,SAACkU,EAAQC,EAAO9U,GAO1C,OANA6U,EAAO/I,KAAKgJ,GACR9U,EAAQ0U,EAAcnY,OAAS,GACjCsY,EAAO/I,KAAmBrC,EAAAA,aAAmByI,EAAW,CACtD6C,IAAK,aAAFlX,OAAemC,MAGf6U,CACT,GAAG,GACL,CACA,IAQa3V,EAAQ,SAAHxF,GAGZ,IAFJsb,EAAUtb,EAAVsb,WACArc,EAAKe,EAALf,MAEI2b,GAASW,EAAAA,EAAAA,GAAS,CACpBtV,QAAS,OACTuV,cAAe,WACdC,EAAAA,EAAAA,IAAkB,CACnBxc,MAAAA,IACCyc,EAAAA,EAAAA,IAAwB,CACzBC,OAAQL,EAAWjW,UACnBuW,YAAa3c,EAAM2c,YAAYD,UAC7B,SAAAE,GAAS,MAAK,CAChBL,cAAeK,EAChB,KACD,GAAIP,EAAW9K,QAAS,CACtB,IAAMsL,GAAcC,EAAAA,EAAAA,IAAmB9c,GACjC+c,EAAOC,OAAOC,KAAKjd,EAAM2c,YAAYD,QAAQ1U,QAAO,SAACC,EAAKiV,GAI9D,OAHkC,kBAAvBb,EAAW9K,SAA0D,MAAlC8K,EAAW9K,QAAQ2L,IAAuD,kBAAzBb,EAAWjW,WAA8D,MAApCiW,EAAWjW,UAAU8W,MACvJjV,EAAIiV,IAAc,GAEbjV,CACT,GAAG,CAAC,GACEkV,GAAkBV,EAAAA,EAAAA,IAAwB,CAC9CC,OAAQL,EAAWjW,UACnB2W,KAAAA,IAEIK,GAAgBX,EAAAA,EAAAA,IAAwB,CAC5CC,OAAQL,EAAW9K,QACnBwL,KAAAA,IAE6B,kBAApBI,GACTH,OAAOC,KAAKE,GAAiBE,SAAQ,SAACH,EAAY7V,EAAOsV,GAEvD,IADuBQ,EAAgBD,GAClB,CACnB,IAAMI,EAAyBjW,EAAQ,EAAI8V,EAAgBR,EAAYtV,EAAQ,IAAM,SACrF8V,EAAgBD,GAAcI,CAChC,CACF,IAeF3B,GAAS4B,EAAAA,EAAAA,GAAU5B,GAAQa,EAAAA,EAAAA,IAAkB,CAC3Cxc,MAAAA,GACCod,GAfwB,SAACR,EAAWM,GACrC,OAAIb,EAAWmB,WACN,CACLC,KAAKC,EAAAA,EAAAA,IAASb,EAAaD,IAGxB,CACL,iCAA+Be,EAAAA,EAAAA,GAAA,CAC7Bvd,OAAQ,GAAC,SAAA8E,QAxDUkB,EAyDY8W,EAAaC,EAAgBD,GAAcb,EAAWjW,UAxDtF,CACLwX,IAAK,OACL,cAAe,QACfC,OAAQ,MACR,iBAAkB,UAClBzX,MAmD0GsX,EAAAA,EAAAA,IAASb,EAAaD,KAzDvG,IAAAxW,CA4DzB,IAIF,CAEA,OADAuV,GAASmC,EAAAA,EAAAA,IAAwB9d,EAAM2c,YAAahB,EAEtD,E,0BC/GMxV,EDgHS,WAAmC,IAAd4X,EAAOzJ,UAAA1Q,OAAA,QAAA2Q,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC7C0J,EAKID,EAHFE,sBAAAA,OAAqB,IAAAD,EAAG1C,EAA4B0C,EAAAE,EAGlDH,EAFFI,cAAAA,OAAa,IAAAD,EAAGtC,EAAoBsC,EAAAE,EAElCL,EADFM,cAAAA,OAAa,IAAAD,EAAG,WAAUA,EAQtBE,EAAYL,EAAsB1X,GAClCJ,EAAqB2K,EAAAA,YAAiB,SAAcyN,EAASC,GACjE,IAAMC,EAAaN,EAAcI,GAC3B7C,GAAQgD,EAAAA,EAAAA,GAAaD,GAC3BE,EAQMjD,EAPFhB,UAAAA,OAAS,IAAAiE,EAAG,MAAKA,EAAAC,EAOflD,EANFtV,UAAAA,OAAS,IAAAwY,EAAG,SAAQA,EAAAC,EAMlBnD,EALFnK,QAAAA,OAAO,IAAAsN,EAAG,EAACA,EACXC,EAIEpD,EAJFoD,QACA7d,EAGEya,EAHFza,SACAM,EAEEma,EAFFna,UAASwd,EAEPrD,EADF8B,WAAAA,OAAU,IAAAuB,GAAQA,EAEpBC,GAAQC,EAAAA,EAAAA,GAA8BvD,EAAOta,GACzCib,EAAa,CACjBjW,UAAAA,EACAmL,QAAAA,EACAiM,WAAAA,GAEIxc,GArBCke,EAAAA,EAAAA,GAHO,CACZhf,KAAM,CAAC,UAEoB,SAAAsb,GAAI,OAAI2D,EAAAA,EAAAA,GAAqBd,EAAe7C,EAAK,GAAE,CAAC,GAsBjF,OAAoBna,EAAAA,EAAAA,KAAKid,GAAWhC,EAAAA,EAAAA,GAAS,CAC3C8C,GAAI1E,EACJ2B,WAAYA,EACZmC,IAAKA,EACLjd,WAAW8d,EAAAA,EAAAA,GAAKre,EAAQd,KAAMqB,IAC7Byd,EAAO,CACR/d,SAAU6d,EAAUhD,EAAa7a,EAAU6d,GAAW7d,IAE1D,IAQA,OAAOkF,CACT,CClKcmZ,CAAY,CACxBrB,uBAAuBsB,EAAAA,EAAAA,IAAO,MAAO,CACnCjS,KAAM,WACNkO,KAAM,OACNC,kBAAmB,SAACC,EAAOC,GAAM,OAAKA,EAAOzb,IAAI,IAEnDie,cAAe,SAAAI,GAAO,OAAIJ,EAAAA,EAAAA,GAAc,CACtCzC,MAAO6C,EACPjR,KAAM,YACN,IA8CJ,G,4BC1DMiS,GAASC,E,SAAAA,MACf,K,wBCKA,SAASC,IAEP,IAAIxc,EAAQyc,KAAKC,YAAYC,yBAAyBF,KAAKhE,MAAOgE,KAAKzc,OACzD,OAAVA,QAA4BsR,IAAVtR,GACpByc,KAAKG,SAAS5c,EAElB,CAEA,SAAS6c,EAA0BC,GAQjCL,KAAKG,SALL,SAAiBG,GACf,IAAI/c,EAAQyc,KAAKC,YAAYC,yBAAyBG,EAAWC,GACjE,OAAiB,OAAV/c,QAA4BsR,IAAVtR,EAAsBA,EAAQ,IACzD,EAEsBgd,KAAKP,MAC7B,CAEA,SAASQ,EAAoBH,EAAWI,GACtC,IACE,IAAIC,EAAYV,KAAKhE,MACjBsE,EAAYN,KAAKzc,MACrByc,KAAKhE,MAAQqE,EACbL,KAAKzc,MAAQkd,EACbT,KAAKW,6BAA8B,EACnCX,KAAKY,wBAA0BZ,KAAKa,wBAClCH,EACAJ,EAEJ,CAAE,QACAN,KAAKhE,MAAQ0E,EACbV,KAAKzc,MAAQ+c,CACf,CACF,CAQA,SAASQ,EAASC,GAChB,IAAIC,EAAYD,EAAUC,UAE1B,IAAKA,IAAcA,EAAUC,iBAC3B,MAAM,IAAIC,MAAM,sCAGlB,GACgD,oBAAvCH,EAAUb,0BAC4B,oBAAtCc,EAAUH,wBAEjB,OAAOE,EAMT,IAAII,EAAqB,KACrBC,EAA4B,KAC5BC,EAAsB,KAgB1B,GAf4C,oBAAjCL,EAAUjB,mBACnBoB,EAAqB,qBACmC,oBAAxCH,EAAUM,4BAC1BH,EAAqB,6BAE4B,oBAAxCH,EAAUZ,0BACnBgB,EAA4B,4BACmC,oBAA/CJ,EAAUO,mCAC1BH,EAA4B,oCAEe,oBAAlCJ,EAAUR,oBACnBa,EAAsB,sBACmC,oBAAzCL,EAAUQ,6BAC1BH,EAAsB,8BAGC,OAAvBF,GAC8B,OAA9BC,GACwB,OAAxBC,EACA,CACA,IAAI1C,EAAgBoC,EAAUU,aAAeV,EAAUnT,KACnD8T,EAC4C,oBAAvCX,EAAUb,yBACb,6BACA,4BAEN,MAAMgB,MACJ,2FACEvC,EACA,SACA+C,EACA,uDACwB,OAAvBP,EAA8B,OAASA,EAAqB,KAC9B,OAA9BC,EACG,OAASA,EACT,KACqB,OAAxBC,EAA+B,OAASA,EAAsB,IATjE,uIAaJ,CAaA,GARkD,oBAAvCN,EAAUb,2BACnBc,EAAUjB,mBAAqBA,EAC/BiB,EAAUZ,0BAA4BA,GAMS,oBAAtCY,EAAUH,wBAAwC,CAC3D,GAA4C,oBAAjCG,EAAUW,mBACnB,MAAM,IAAIT,MACR,qHAIJF,EAAUR,oBAAsBA,EAEhC,IAAImB,EAAqBX,EAAUW,mBAEnCX,EAAUW,mBAAqB,SAC7BjB,EACAJ,EACAsB,GAUA,IAAIC,EAAW7B,KAAKW,4BAChBX,KAAKY,wBACLgB,EAEJD,EAAmBG,KAAK9B,KAAMU,EAAWJ,EAAWuB,EACtD,CACF,CAEA,OAAOd,CACT,C,8CA9GAhB,EAAmBgC,8BAA+B,EAClD3B,EAA0B2B,8BAA+B,EACzDvB,EAAoBuB,8BAA+B,C","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":"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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 { 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