From 455347ca386e15b72c23ad0e97b9c00fd496023b Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Wed, 18 Feb 2026 11:40:47 +0000 Subject: [PATCH 01/51] Add seaweedfs-operator charts to sources --- root/values.yaml | 15 + sources/seaweedfs-config/Chart.yaml | 4 + .../templates/seaweedfs-es-s3-config.yaml | 50 + .../templates/seaweedfs-httproute.yaml | 18 + .../templates/seaweedfs-pvc.yaml | 12 + .../templates/seaweedfs-seaweed.yaml | 38 + sources/seaweedfs-config/values.yaml | 1 + .../seaweed.seaweedfs.com_seaweeds.yaml | 6268 +++++++++++++++++ sources/seaweedfs-crds/source.yaml | 4 + sources/seaweedfs-operator/0.1.13/Chart.yaml | 9 + sources/seaweedfs-operator/0.1.13/README.md | 49 + .../crds/seaweed.seaweedfs.com_seaweeds.yaml | 6268 +++++++++++++++++ .../seaweedfs-grafana-dashboard.json | 1856 +++++ .../0.1.13/templates/_helpers.tpl | 141 + .../configmap-grafana-dashboard.yaml | 15 + .../templates/container-registry-secret.yaml | 12 + .../0.1.13/templates/deployment.yaml | 95 + .../templates/rbac/leader_election_role.yaml | 43 + .../rbac/leader_election_role_binding.yaml | 13 + .../0.1.13/templates/rbac/role.yaml | 110 + .../0.1.13/templates/rbac/role_binding.yaml | 12 + .../templates/rbac/seaweed_editor_role.yaml | 24 + .../templates/rbac/seaweed_viewer_role.yaml | 20 + .../0.1.13/templates/service.yaml | 16 + .../0.1.13/templates/serviceaccount.yaml | 14 + .../0.1.13/templates/servicemonitor.yaml | 25 + .../job-update-webhook-certificates.yaml | 178 + .../templates/webhook/mutating-webhook.yaml | 33 + .../0.1.13/templates/webhook/service.yaml | 19 + .../templates/webhook/validating-webhook.yaml | 33 + sources/seaweedfs-operator/0.1.13/values.yaml | 157 + sources/seaweedfs-operator/source.yaml | 4 + sources/seaweedfs-operator/values.yaml | 1 + 33 files changed, 15557 insertions(+) create mode 100644 sources/seaweedfs-config/Chart.yaml create mode 100644 sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml create mode 100644 sources/seaweedfs-config/templates/seaweedfs-httproute.yaml create mode 100644 sources/seaweedfs-config/templates/seaweedfs-pvc.yaml create mode 100644 sources/seaweedfs-config/templates/seaweedfs-seaweed.yaml create mode 100644 sources/seaweedfs-config/values.yaml create mode 100644 sources/seaweedfs-crds/0.1.13/seaweed.seaweedfs.com_seaweeds.yaml create mode 100644 sources/seaweedfs-crds/source.yaml create mode 100644 sources/seaweedfs-operator/0.1.13/Chart.yaml create mode 100644 sources/seaweedfs-operator/0.1.13/README.md create mode 100644 sources/seaweedfs-operator/0.1.13/crds/seaweed.seaweedfs.com_seaweeds.yaml create mode 100644 sources/seaweedfs-operator/0.1.13/dashboard/seaweedfs-grafana-dashboard.json create mode 100644 sources/seaweedfs-operator/0.1.13/templates/_helpers.tpl create mode 100644 sources/seaweedfs-operator/0.1.13/templates/configmap-grafana-dashboard.yaml create mode 100644 sources/seaweedfs-operator/0.1.13/templates/container-registry-secret.yaml create mode 100644 sources/seaweedfs-operator/0.1.13/templates/deployment.yaml create mode 100644 sources/seaweedfs-operator/0.1.13/templates/rbac/leader_election_role.yaml create mode 100644 sources/seaweedfs-operator/0.1.13/templates/rbac/leader_election_role_binding.yaml create mode 100644 sources/seaweedfs-operator/0.1.13/templates/rbac/role.yaml create mode 100644 sources/seaweedfs-operator/0.1.13/templates/rbac/role_binding.yaml create mode 100644 sources/seaweedfs-operator/0.1.13/templates/rbac/seaweed_editor_role.yaml create mode 100644 sources/seaweedfs-operator/0.1.13/templates/rbac/seaweed_viewer_role.yaml create mode 100644 sources/seaweedfs-operator/0.1.13/templates/service.yaml create mode 100644 sources/seaweedfs-operator/0.1.13/templates/serviceaccount.yaml create mode 100644 sources/seaweedfs-operator/0.1.13/templates/servicemonitor.yaml create mode 100644 sources/seaweedfs-operator/0.1.13/templates/webhook/job-update-webhook-certificates.yaml create mode 100644 sources/seaweedfs-operator/0.1.13/templates/webhook/mutating-webhook.yaml create mode 100644 sources/seaweedfs-operator/0.1.13/templates/webhook/service.yaml create mode 100644 sources/seaweedfs-operator/0.1.13/templates/webhook/validating-webhook.yaml create mode 100644 sources/seaweedfs-operator/0.1.13/values.yaml create mode 100644 sources/seaweedfs-operator/source.yaml create mode 100644 sources/seaweedfs-operator/values.yaml diff --git a/root/values.yaml b/root/values.yaml index 15ba2ceb..62e25ac3 100644 --- a/root/values.yaml +++ b/root/values.yaml @@ -690,6 +690,21 @@ apps: namespace: default path: metallb/v0.15.2 syncWave: 10 + seaweedfs-crds: + path: seaweedfs-crds/0.1.13 + namespace: seaweedfs-operator + syncWave: -1 + seaweedfs-operator: + path: seaweedfs-operator/0.1.13 + namespace: seaweedfs-operator + valuesFile: values.yaml + syncWave: 0 + seaweedfs-config: + seaweedfs-operator: + path: seaweedfs-config + namespace: seaweedfs-instance + valuesFile: values.yaml + syncWave: 0 minio-operator: namespace: minio-operator path: minio-operator/7.1.1 diff --git a/sources/seaweedfs-config/Chart.yaml b/sources/seaweedfs-config/Chart.yaml new file mode 100644 index 00000000..ed584d9b --- /dev/null +++ b/sources/seaweedfs-config/Chart.yaml @@ -0,0 +1,4 @@ +apiVersion: v2 +name: seaweedfs-config +description: A Helm chart with config for the seaweedfs-operator +version: 0.1.0 diff --git a/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml b/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml new file mode 100644 index 00000000..862fd91a --- /dev/null +++ b/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml @@ -0,0 +1,50 @@ +--- +apiVersion: external-secrets.io/v1beta1 +kind: ExternalSecret +metadata: + name: seaweedfs-es-s3-config + namespace: seaweed-instance + annotations: + argocd.argoproj.io/hook: PreSync +spec: + secretStoreRef: + kind: ClusterSecretStore + name: openbao-secret-store + refreshInterval: 5m + target: + name: seaweedfs-s3-config + template: + data: + s3.json: | + { + "identities": [ + { + "name": "user1", + "actions": [ + "Admin" + ], + "credentials": [ + { + "accessKey": "testkey", + "secretKey": "testpass" + }, + { + "accessKey": "testkey2", + "secretKey": "testpass2" + } + ] + }, + { + "name": "user2", + "actions": [ + "Read", + "List", + "Write" + ], + "credentials": [ + { + "accessKey": "testkey3", + "secretKey": "testpass3" + } + ] + } diff --git a/sources/seaweedfs-config/templates/seaweedfs-httproute.yaml b/sources/seaweedfs-config/templates/seaweedfs-httproute.yaml new file mode 100644 index 00000000..26bc41a7 --- /dev/null +++ b/sources/seaweedfs-config/templates/seaweedfs-httproute.yaml @@ -0,0 +1,18 @@ +apiVersion: gateway.networking.k8s.io/v1 +kind: HTTPRoute +metadata: + name: seaweed + namespace: seaweed-instance +spec: + parentRefs: + - name: https + namespace: kgateway-system + rules: + - backendRefs: + - name: seaweed-filer + port: 8333 + matches: + - headers: + - type: RegularExpression + name: Host + value: "seaweed\\..*" \ No newline at end of file diff --git a/sources/seaweedfs-config/templates/seaweedfs-pvc.yaml b/sources/seaweedfs-config/templates/seaweedfs-pvc.yaml new file mode 100644 index 00000000..a92a68f6 --- /dev/null +++ b/sources/seaweedfs-config/templates/seaweedfs-pvc.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: pvc-seaweed-s3-metadata + namespace: seaweed-instance +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + storageClassName: mlstorage \ No newline at end of file diff --git a/sources/seaweedfs-config/templates/seaweedfs-seaweed.yaml b/sources/seaweedfs-config/templates/seaweedfs-seaweed.yaml new file mode 100644 index 00000000..6ec041c4 --- /dev/null +++ b/sources/seaweedfs-config/templates/seaweedfs-seaweed.yaml @@ -0,0 +1,38 @@ +apiVersion: seaweed.seaweedfs.com/v1 +kind: Seaweed +metadata: + name: seaweed + namespace: seaweed-instance +spec: + image: chrislusf/seaweedfs:latest + volumeServerDiskCount: 1 + hostSuffix: plat-dev-1.silogen.ai + master: + replicas: 1 + volumeSizeLimitMB: 1024 + volume: + replicas: 1 + storageClassName: mlstorage + requests: + storage: 2Gi + # Topology configuration for rack/datacenter-aware placement + rack: "rack1" + dataCenter: "dc1" + filer: + replicas: 1 + volumes: + - name: s3-metadata + persistentVolumeClaim: + claimName: pvc-seaweed-s3-metadata + volumeMounts: + - mountPath: /data/ + name: s3-metadata + s3: + enabled: true + configSecret: + name: test-secret + key: seaweedfs_s3_config.json + config: | + [leveldb2] + enabled = true + dir = "/data/filerldb2" \ No newline at end of file diff --git a/sources/seaweedfs-config/values.yaml b/sources/seaweedfs-config/values.yaml new file mode 100644 index 00000000..2d611586 --- /dev/null +++ b/sources/seaweedfs-config/values.yaml @@ -0,0 +1 @@ +domain: # to be filled by cluster-forge app diff --git a/sources/seaweedfs-crds/0.1.13/seaweed.seaweedfs.com_seaweeds.yaml b/sources/seaweedfs-crds/0.1.13/seaweed.seaweedfs.com_seaweeds.yaml new file mode 100644 index 00000000..49ba6e28 --- /dev/null +++ b/sources/seaweedfs-crds/0.1.13/seaweed.seaweedfs.com_seaweeds.yaml @@ -0,0 +1,6268 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.19.0 + name: seaweeds.seaweed.seaweedfs.com +spec: + group: seaweed.seaweedfs.com + names: + kind: Seaweed + listKind: SeaweedList + plural: seaweeds + singular: seaweed + scope: Namespaced + versions: + - name: v1 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + weight: + type: integer + required: + - preference + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: object + annotations: + additionalProperties: + type: string + type: object + enablePVReclaim: + type: boolean + filer: + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + weight: + type: integer + required: + - preference + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: object + annotations: + additionalProperties: + type: string + type: object + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + config: + type: string + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + 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: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + extraArgs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + hostNetwork: + type: boolean + iam: + default: true + type: boolean + imagePullPolicy: + type: string + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + 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 + maxMB: + type: integer + metricsPort: + type: integer + nodeSelector: + additionalProperties: + type: string + type: object + persistence: + properties: + accessModes: + default: + - ReadWriteOnce + 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 + enabled: + default: false + type: boolean + existingClaim: + type: string + mountPath: + default: /data + type: string + resources: + default: + requests: + storage: 4Gi + properties: + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + subPath: + default: "" + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + priorityClassName: + type: string + replicas: + minimum: 1 + type: integer + 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 + s3: + properties: + configSecret: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + enabled: + default: true + type: boolean + type: object + schedulerName: + type: string + service: + properties: + annotations: + additionalProperties: + type: string + type: object + clusterIP: + type: string + loadBalancerIP: + type: string + type: + type: string + type: object + statefulSetUpdateStrategy: + type: string + terminationGracePeriodSeconds: + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + version: + type: string + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + 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 + x-kubernetes-list-type: atomic + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + default: "" + 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: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + type: integer + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + default: "" + 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: + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + 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 + x-kubernetes-list-type: atomic + 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: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + 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: + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + wwids: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + 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: + type: integer + portals: + items: + type: string + type: array + x-kubernetes-list-type: atomic + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + type: integer + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + name: + type: string + optional: + type: boolean + path: + type: string + signerName: + type: string + required: + - path + type: object + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + 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: + 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 + x-kubernetes-list-type: atomic + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + default: "" + 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: + type: integer + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + - replicas + type: object + hostNetwork: + type: boolean + hostSuffix: + type: string + image: + type: string + imagePullPolicy: + type: string + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + master: + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + weight: + type: integer + required: + - preference + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: object + annotations: + additionalProperties: + type: string + type: object + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + concurrentStart: + type: boolean + config: + type: string + defaultReplication: + type: string + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + 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: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + extraArgs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + garbageThreshold: + type: string + hostNetwork: + type: boolean + imagePullPolicy: + type: string + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + 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 + metricsPort: + type: integer + nodeSelector: + additionalProperties: + type: string + type: object + priorityClassName: + type: string + pulseSeconds: + type: integer + replicas: + minimum: 1 + type: integer + 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 + schedulerName: + type: string + service: + properties: + annotations: + additionalProperties: + type: string + type: object + clusterIP: + type: string + loadBalancerIP: + type: string + type: + type: string + type: object + statefulSetUpdateStrategy: + type: string + terminationGracePeriodSeconds: + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + version: + type: string + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + volumePreallocate: + type: boolean + volumeSizeLimitMB: + type: integer + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + 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 + x-kubernetes-list-type: atomic + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + default: "" + 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: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + type: integer + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + default: "" + 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: + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + 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 + x-kubernetes-list-type: atomic + 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: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + 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: + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + wwids: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + 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: + type: integer + portals: + items: + type: string + type: array + x-kubernetes-list-type: atomic + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + type: integer + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + name: + type: string + optional: + type: boolean + path: + type: string + signerName: + type: string + required: + - path + type: object + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + 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: + 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 + x-kubernetes-list-type: atomic + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + default: "" + 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: + type: integer + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + - replicas + type: object + metricsAddress: + type: string + nodeSelector: + additionalProperties: + type: string + type: object + pvReclaimPolicy: + type: string + schedulerName: + type: string + statefulSetUpdateStrategy: + type: string + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + version: + type: string + volume: + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + weight: + type: integer + required: + - preference + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: object + annotations: + additionalProperties: + type: string + type: object + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + compactionMBps: + type: integer + dataCenter: + type: string + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + 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: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + extraArgs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + fileSizeLimitMB: + type: integer + fixJpgOrientation: + type: boolean + hostNetwork: + type: boolean + idleTimeout: + type: integer + imagePullPolicy: + type: string + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + 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 + maxVolumeCounts: + type: integer + metricsPort: + type: integer + minFreeSpacePercent: + type: integer + nodeSelector: + additionalProperties: + type: string + type: object + priorityClassName: + type: string + rack: + type: string + replicas: + minimum: 0 + type: integer + 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 + schedulerName: + type: string + service: + properties: + annotations: + additionalProperties: + type: string + type: object + clusterIP: + type: string + loadBalancerIP: + type: string + type: + type: string + type: object + statefulSetUpdateStrategy: + type: string + storageClassName: + type: string + terminationGracePeriodSeconds: + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + version: + type: string + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + 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 + x-kubernetes-list-type: atomic + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + default: "" + 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: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + type: integer + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + default: "" + 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: + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + 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 + x-kubernetes-list-type: atomic + 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: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + 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: + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + wwids: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + 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: + type: integer + portals: + items: + type: string + type: array + x-kubernetes-list-type: atomic + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + type: integer + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + name: + type: string + optional: + type: boolean + path: + type: string + signerName: + type: string + required: + - path + type: object + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + 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: + 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 + x-kubernetes-list-type: atomic + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + default: "" + 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: + type: integer + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + - replicas + type: object + volumeServerDiskCount: + type: integer + volumeTopology: + additionalProperties: + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + weight: + type: integer + required: + - preference + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: object + annotations: + additionalProperties: + type: string + type: object + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + compactionMBps: + type: integer + dataCenter: + type: string + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + 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: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + extraArgs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + fileSizeLimitMB: + type: integer + fixJpgOrientation: + type: boolean + hostNetwork: + type: boolean + idleTimeout: + type: integer + imagePullPolicy: + type: string + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + 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 + maxVolumeCounts: + type: integer + metricsPort: + type: integer + minFreeSpacePercent: + type: integer + nodeSelector: + additionalProperties: + type: string + type: object + priorityClassName: + type: string + rack: + type: string + replicas: + minimum: 0 + type: integer + 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 + schedulerName: + type: string + service: + properties: + annotations: + additionalProperties: + type: string + type: object + clusterIP: + type: string + loadBalancerIP: + type: string + type: + type: string + type: object + statefulSetUpdateStrategy: + type: string + storageClassName: + type: string + terminationGracePeriodSeconds: + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + version: + type: string + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + 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 + x-kubernetes-list-type: atomic + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + default: "" + 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: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + type: integer + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + default: "" + 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: + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + 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 + x-kubernetes-list-type: atomic + 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: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + 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: + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + wwids: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + 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: + type: integer + portals: + items: + type: string + type: array + x-kubernetes-list-type: atomic + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + type: integer + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + name: + type: string + optional: + type: boolean + path: + type: string + signerName: + type: string + required: + - path + type: object + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + 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: + 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 + x-kubernetes-list-type: atomic + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + default: "" + 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: + type: integer + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + - dataCenter + - rack + - replicas + type: object + type: object + type: object + status: + properties: + conditions: + items: + properties: + lastTransitionTime: + format: date-time + type: string + message: + maxLength: 32768 + type: string + observedGeneration: + minimum: 0 + type: integer + reason: + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + enum: + - "True" + - "False" + - Unknown + type: string + type: + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + filer: + properties: + readyReplicas: + minimum: 0 + type: integer + replicas: + minimum: 0 + type: integer + type: object + master: + properties: + readyReplicas: + minimum: 0 + type: integer + replicas: + minimum: 0 + type: integer + type: object + observedGeneration: + type: integer + volume: + properties: + readyReplicas: + minimum: 0 + type: integer + replicas: + minimum: 0 + type: integer + type: object + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/sources/seaweedfs-crds/source.yaml b/sources/seaweedfs-crds/source.yaml new file mode 100644 index 00000000..90321cbd --- /dev/null +++ b/sources/seaweedfs-crds/source.yaml @@ -0,0 +1,4 @@ +sourceUrl: https://github.com/seaweedfs/seaweedfs-operator/tree/master/deploy/helm +sourceRepoName: seaweedfs-operator +sourceChartName: seaweedfs-operator-crds +sourceVersion: 0.1.13 diff --git a/sources/seaweedfs-operator/0.1.13/Chart.yaml b/sources/seaweedfs-operator/0.1.13/Chart.yaml new file mode 100644 index 00000000..08c194e9 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/Chart.yaml @@ -0,0 +1,9 @@ +apiVersion: v2 +name: seaweedfs-operator +description: A Helm chart for the seaweedfs-operator +type: application +version: 0.1.13 +appVersion: "1.0.11" +maintainers: + - name: chrislusf + url: https://github.com/chrislusf diff --git a/sources/seaweedfs-operator/0.1.13/README.md b/sources/seaweedfs-operator/0.1.13/README.md new file mode 100644 index 00000000..e7f07060 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/README.md @@ -0,0 +1,49 @@ +# seaweedfs-operator + +![Version: 0.1.2](https://img.shields.io/badge/Version-0.1.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.0.4](https://img.shields.io/badge/AppVersion-1.0.4-informational?style=flat-square) + +A Helm chart for the seaweedfs-operator + +## Maintainers + +| Name | Email | Url | +| ---- | ------ | --- | +| chrislusf | | | + +## Values + +| Key | Type | Default | Description | +|---------------------------------|--------|---------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| commonAnnotations | object | `{}` | Annotations for all the deployed objects | +| commonLabels | object | `{}` | Labels for all the deployed objects | +| fullnameOverride | string | `""` | String to fully override common.names.fullname template | +| global | object | `{"imageRegistry":"chrislusf"}` | Global Docker image parameters Please, note that this will override the image parameters, including dependencies, configured to use the global value Current available global Docker image parameters: imageRegistry | +| grafanaDashboard.enabled | bool | `true` | Enable or disable Grafana Dashboard configmap | +| image.pullPolicy | string | `"Always"` | Specify a imagePullPolicy # Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' # ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images | +| image.registry | string | `"chrislusf"` | | +| image.repository | string | `"seaweedfs-operator"` | | +| image.tag | string | `""` | tag of image to use. Defaults to appVersion in Chart.yaml | +| nameOverride | string | `""` | String to partially override common.names.fullname template (will maintain the release name) | +| port.name | string | `"http"` | name of the container port to use for the Kubernete service and ingress | +| port.number | int | `8080` | container port number to use for the Kubernete service and ingress | +| rbac.serviceAccount.annotations | object | `{}` | Annotations to add to the service account | +| rbac.serviceAccount.automount | bool | `true` | Automount service account token for the server service account | +| rbac.serviceAccount.create | bool | `true` | Specifies whether a service account should be created | +| rbac.serviceAccount.name | string | `""` | The name of the service account to use. If not set and create is true, a name is generated using the fullname template. If set to "default", no ServiceAccount will be created and the default one will be used | +| replicaCount | int | `1` | Set number of pod replicas | +| resources.limits.cpu | string | `"500m"` | seaweedfs-operator containers' cpu limit (maximum allowed CPU) | +| resources.limits.memory | string | `"500Mi"` | seaweedfs-operator containers' memory limit (maximum allowed memory) | +| resources.requests.cpu | string | `"100m"` | seaweedfs-operator containers' cpu request (how much is requested by default) | +| resources.requests.memory | string | `"50Mi"` | seaweedfs-operator containers' memory request (how much is requested by default) | +| service.port | int | `8080` | port to use for Kubernetes service | +| service.portName | string | `"http"` | name of the port to use for Kubernetes service | +| serviceMonitor.additionalLabels | object | `{}` | Used to pass Labels that are used by the Prometheus installed in your cluster to select Service Monitors to work with | +| serviceMonitor.enabled | bool | `false` | Enable or disable ServiceMonitor for prometheus metrics | +| serviceMonitor.honorLabels | bool | `true` | Specify honorLabels parameter to add the scrape endpoint | +| serviceMonitor.interval | string | `"10s"` | Specify the interval at which metrics should be scraped | +| serviceMonitor.scrapeTimeout | string | `"10s"` | Specify the timeout after which the scrape is ended | +| webhook.enabled | bool | `true` | Enable or disable webhooks | +| webhook.initContainer.image | string | `"curlimages/curl:8.8.0"` | Image used by the webhook readiness init container when patching certificates | + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.11.3](https://github.com/norwoodj/helm-docs/releases/v1.11.3) diff --git a/sources/seaweedfs-operator/0.1.13/crds/seaweed.seaweedfs.com_seaweeds.yaml b/sources/seaweedfs-operator/0.1.13/crds/seaweed.seaweedfs.com_seaweeds.yaml new file mode 100644 index 00000000..49ba6e28 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/crds/seaweed.seaweedfs.com_seaweeds.yaml @@ -0,0 +1,6268 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.19.0 + name: seaweeds.seaweed.seaweedfs.com +spec: + group: seaweed.seaweedfs.com + names: + kind: Seaweed + listKind: SeaweedList + plural: seaweeds + singular: seaweed + scope: Namespaced + versions: + - name: v1 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + weight: + type: integer + required: + - preference + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: object + annotations: + additionalProperties: + type: string + type: object + enablePVReclaim: + type: boolean + filer: + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + weight: + type: integer + required: + - preference + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: object + annotations: + additionalProperties: + type: string + type: object + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + config: + type: string + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + 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: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + extraArgs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + hostNetwork: + type: boolean + iam: + default: true + type: boolean + imagePullPolicy: + type: string + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + 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 + maxMB: + type: integer + metricsPort: + type: integer + nodeSelector: + additionalProperties: + type: string + type: object + persistence: + properties: + accessModes: + default: + - ReadWriteOnce + 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 + enabled: + default: false + type: boolean + existingClaim: + type: string + mountPath: + default: /data + type: string + resources: + default: + requests: + storage: 4Gi + properties: + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + subPath: + default: "" + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + priorityClassName: + type: string + replicas: + minimum: 1 + type: integer + 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 + s3: + properties: + configSecret: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + enabled: + default: true + type: boolean + type: object + schedulerName: + type: string + service: + properties: + annotations: + additionalProperties: + type: string + type: object + clusterIP: + type: string + loadBalancerIP: + type: string + type: + type: string + type: object + statefulSetUpdateStrategy: + type: string + terminationGracePeriodSeconds: + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + version: + type: string + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + 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 + x-kubernetes-list-type: atomic + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + default: "" + 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: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + type: integer + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + default: "" + 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: + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + 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 + x-kubernetes-list-type: atomic + 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: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + 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: + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + wwids: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + 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: + type: integer + portals: + items: + type: string + type: array + x-kubernetes-list-type: atomic + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + type: integer + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + name: + type: string + optional: + type: boolean + path: + type: string + signerName: + type: string + required: + - path + type: object + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + 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: + 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 + x-kubernetes-list-type: atomic + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + default: "" + 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: + type: integer + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + - replicas + type: object + hostNetwork: + type: boolean + hostSuffix: + type: string + image: + type: string + imagePullPolicy: + type: string + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + master: + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + weight: + type: integer + required: + - preference + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: object + annotations: + additionalProperties: + type: string + type: object + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + concurrentStart: + type: boolean + config: + type: string + defaultReplication: + type: string + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + 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: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + extraArgs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + garbageThreshold: + type: string + hostNetwork: + type: boolean + imagePullPolicy: + type: string + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + 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 + metricsPort: + type: integer + nodeSelector: + additionalProperties: + type: string + type: object + priorityClassName: + type: string + pulseSeconds: + type: integer + replicas: + minimum: 1 + type: integer + 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 + schedulerName: + type: string + service: + properties: + annotations: + additionalProperties: + type: string + type: object + clusterIP: + type: string + loadBalancerIP: + type: string + type: + type: string + type: object + statefulSetUpdateStrategy: + type: string + terminationGracePeriodSeconds: + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + version: + type: string + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + volumePreallocate: + type: boolean + volumeSizeLimitMB: + type: integer + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + 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 + x-kubernetes-list-type: atomic + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + default: "" + 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: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + type: integer + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + default: "" + 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: + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + 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 + x-kubernetes-list-type: atomic + 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: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + 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: + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + wwids: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + 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: + type: integer + portals: + items: + type: string + type: array + x-kubernetes-list-type: atomic + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + type: integer + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + name: + type: string + optional: + type: boolean + path: + type: string + signerName: + type: string + required: + - path + type: object + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + 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: + 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 + x-kubernetes-list-type: atomic + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + default: "" + 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: + type: integer + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + - replicas + type: object + metricsAddress: + type: string + nodeSelector: + additionalProperties: + type: string + type: object + pvReclaimPolicy: + type: string + schedulerName: + type: string + statefulSetUpdateStrategy: + type: string + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + version: + type: string + volume: + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + weight: + type: integer + required: + - preference + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: object + annotations: + additionalProperties: + type: string + type: object + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + compactionMBps: + type: integer + dataCenter: + type: string + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + 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: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + extraArgs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + fileSizeLimitMB: + type: integer + fixJpgOrientation: + type: boolean + hostNetwork: + type: boolean + idleTimeout: + type: integer + imagePullPolicy: + type: string + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + 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 + maxVolumeCounts: + type: integer + metricsPort: + type: integer + minFreeSpacePercent: + type: integer + nodeSelector: + additionalProperties: + type: string + type: object + priorityClassName: + type: string + rack: + type: string + replicas: + minimum: 0 + type: integer + 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 + schedulerName: + type: string + service: + properties: + annotations: + additionalProperties: + type: string + type: object + clusterIP: + type: string + loadBalancerIP: + type: string + type: + type: string + type: object + statefulSetUpdateStrategy: + type: string + storageClassName: + type: string + terminationGracePeriodSeconds: + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + version: + type: string + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + 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 + x-kubernetes-list-type: atomic + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + default: "" + 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: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + type: integer + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + default: "" + 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: + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + 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 + x-kubernetes-list-type: atomic + 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: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + 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: + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + wwids: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + 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: + type: integer + portals: + items: + type: string + type: array + x-kubernetes-list-type: atomic + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + type: integer + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + name: + type: string + optional: + type: boolean + path: + type: string + signerName: + type: string + required: + - path + type: object + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + 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: + 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 + x-kubernetes-list-type: atomic + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + default: "" + 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: + type: integer + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + - replicas + type: object + volumeServerDiskCount: + type: integer + volumeTopology: + additionalProperties: + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + weight: + type: integer + required: + - preference + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: object + annotations: + additionalProperties: + type: string + type: object + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + compactionMBps: + type: integer + dataCenter: + type: string + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + 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: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + extraArgs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + fileSizeLimitMB: + type: integer + fixJpgOrientation: + type: boolean + hostNetwork: + type: boolean + idleTimeout: + type: integer + imagePullPolicy: + type: string + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + 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 + maxVolumeCounts: + type: integer + metricsPort: + type: integer + minFreeSpacePercent: + type: integer + nodeSelector: + additionalProperties: + type: string + type: object + priorityClassName: + type: string + rack: + type: string + replicas: + minimum: 0 + type: integer + 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 + schedulerName: + type: string + service: + properties: + annotations: + additionalProperties: + type: string + type: object + clusterIP: + type: string + loadBalancerIP: + type: string + type: + type: string + type: object + statefulSetUpdateStrategy: + type: string + storageClassName: + type: string + terminationGracePeriodSeconds: + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + version: + type: string + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + 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 + x-kubernetes-list-type: atomic + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + default: "" + 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: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + type: integer + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + default: "" + 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: + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + 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 + x-kubernetes-list-type: atomic + 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: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + 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: + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + wwids: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + 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: + type: integer + portals: + items: + type: string + type: array + x-kubernetes-list-type: atomic + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + type: integer + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + name: + type: string + optional: + type: boolean + path: + type: string + signerName: + type: string + required: + - path + type: object + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + 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: + 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 + x-kubernetes-list-type: atomic + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + default: "" + 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: + type: integer + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + 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: + - dataCenter + - rack + - replicas + type: object + type: object + type: object + status: + properties: + conditions: + items: + properties: + lastTransitionTime: + format: date-time + type: string + message: + maxLength: 32768 + type: string + observedGeneration: + minimum: 0 + type: integer + reason: + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + enum: + - "True" + - "False" + - Unknown + type: string + type: + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + filer: + properties: + readyReplicas: + minimum: 0 + type: integer + replicas: + minimum: 0 + type: integer + type: object + master: + properties: + readyReplicas: + minimum: 0 + type: integer + replicas: + minimum: 0 + type: integer + type: object + observedGeneration: + type: integer + volume: + properties: + readyReplicas: + minimum: 0 + type: integer + replicas: + minimum: 0 + type: integer + type: object + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/sources/seaweedfs-operator/0.1.13/dashboard/seaweedfs-grafana-dashboard.json b/sources/seaweedfs-operator/0.1.13/dashboard/seaweedfs-grafana-dashboard.json new file mode 100644 index 00000000..87dc6417 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/dashboard/seaweedfs-grafana-dashboard.json @@ -0,0 +1,1856 @@ +{ + "__inputs": [ + { + "name": "DS_PROMETHEUS-DEV", + "label": "prometheus-dev", + "description": "", + "type": "datasource", + "pluginId": "prometheus", + "pluginName": "Prometheus" + } + ], + "__requires": [ + { + "type": "grafana", + "id": "grafana", + "name": "Grafana", + "version": "4.6.2" + }, + { + "type": "panel", + "id": "graph", + "name": "Graph", + "version": "" + }, + { + "type": "datasource", + "id": "prometheus", + "name": "Prometheus", + "version": "1.0.0" + } + ], + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "${DS_PROMETHEUS-DEV}", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "limit": 100, + "name": "Annotations & Alerts", + "showIn": 0, + "type": "dashboard" + } + ] + }, + "editable": true, + "gnetId": 10423, + "graphTooltip": 0, + "hideControls": false, + "id": null, + "links": [], + "refresh": "30s", + "rows": [ + { + "collapse": true, + "height": 251, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 1, + "grid": {}, + "id": 46, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 4, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "histogram_quantile(0.90, sum(rate(SeaweedFS_filer_request_seconds_bucket[1m])) by (le))", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "average", + "refId": "A", + "step": 60 + }, + { + "expr": "histogram_quantile(0.90, sum(rate(SeaweedFS_filer_request_seconds_bucket[1m])) by (le, type))", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{type}}", + "refId": "B", + "step": 60 + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Filer Request Duration 90th percentile", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 1, + "grid": {}, + "id": 49, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 4, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "histogram_quantile(0.95, sum(rate(SeaweedFS_filer_request_seconds_bucket[1m])) by (le))", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "average", + "refId": "A", + "step": 60 + }, + { + "expr": "histogram_quantile(0.95, sum(rate(SeaweedFS_filer_request_seconds_bucket[1m])) by (le, type))", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{type}}", + "refId": "B", + "step": 60 + }, + { + "expr": "", + "format": "time_series", + "intervalFactor": 2, + "refId": "C" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Filer Request Duration 95th percentile", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 1, + "grid": {}, + "id": 45, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 4, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "histogram_quantile(0.99, sum(rate(SeaweedFS_filer_request_seconds_bucket[1m])) by (le))", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "average", + "refId": "A", + "step": 60 + }, + { + "expr": "histogram_quantile(0.99, sum(rate(SeaweedFS_filer_request_seconds_bucket[1m])) by (le, type))", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{type}}", + "refId": "B", + "step": 60 + }, + { + "expr": "", + "format": "time_series", + "intervalFactor": 2, + "refId": "C" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Filer Request Duration 99th percentile", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 0, + "grid": {}, + "id": 2, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "hideEmpty": true, + "hideZero": true, + "max": true, + "min": false, + "rightSide": true, + "show": true, + "sideWidth": 250, + "sort": "max", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "minSpan": 12, + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "total", + "lines": false + } + ], + "spaceLength": 10, + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(SeaweedFS_filer_request_total[1m]) * 5", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{type}}", + "refId": "A", + "step": 30 + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Filer QPS", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + } + ], + "repeat": null, + "repeatIteration": null, + "repeatRowId": null, + "showTitle": true, + "title": "Filer", + "titleSize": "h6" + }, + { + "collapse": false, + "height": 250, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 1, + "grid": {}, + "id": 56, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 4, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "histogram_quantile(0.90, sum(rate(SeaweedFS_s3_request_seconds_bucket[1m])) by (le))", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "average", + "refId": "A", + "step": 60 + }, + { + "expr": "histogram_quantile(0.90, sum(rate(SeaweedFS_s3_request_seconds_bucket[1m])) by (le, type))", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{type}}", + "refId": "B", + "step": 60 + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "S3 Request Duration 90th percentile", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 1, + "grid": {}, + "id": 57, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 4, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "histogram_quantile(0.95, sum(rate(SeaweedFS_s3_request_seconds_bucket[1m])) by (le))", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "average", + "refId": "A", + "step": 60 + }, + { + "expr": "histogram_quantile(0.95, sum(rate(SeaweedFS_s3_request_seconds_bucket[1m])) by (le, type))", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{type}}", + "refId": "B", + "step": 60 + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "S3 Request Duration 95th percentile", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 1, + "grid": {}, + "id": 58, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 4, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "histogram_quantile(0.99, sum(rate(SeaweedFS_s3_request_seconds_bucket[1m])) by (le))", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "average", + "refId": "A", + "step": 60 + }, + { + "expr": "histogram_quantile(0.99, sum(rate(SeaweedFS_s3_request_seconds_bucket[1m])) by (le, type))", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{type}}", + "refId": "B", + "step": 60 + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "S3 Request Duration 99th percentile", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 0, + "grid": {}, + "id": 55, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "hideEmpty": true, + "hideZero": true, + "max": true, + "min": false, + "rightSide": true, + "show": true, + "sideWidth": 250, + "sort": "max", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "minSpan": 12, + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "total", + "lines": false + } + ], + "spaceLength": 10, + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(SeaweedFS_s3_request_total[1m]) * 5", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{type}}", + "refId": "A", + "step": 30 + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "S3 API QPS", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 0, + "grid": {}, + "hideTimeOverride": false, + "id": 59, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "hideEmpty": true, + "hideZero": true, + "max": true, + "min": false, + "rightSide": true, + "show": true, + "sideWidth": 250, + "sort": "max", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "minSpan": 12, + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "total", + "lines": false + } + ], + "spaceLength": 10, + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum by (type) (SeaweedFS_s3_request_total{type=~'PUT|COPY|POST|LIST'})*0.000005", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{type}} requests", + "refId": "A", + "step": 30 + }, + { + "expr": "sum (SeaweedFS_s3_request_total{type=~'PUT|COPY|POST|LIST'})*0.000005", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "All PUT, COPY, POST, LIST", + "refId": "C", + "step": 30 + }, + { + "expr": "sum (SeaweedFS_s3_request_total{type!~'PUT|COPY|POST|LIST'})*0.0000004", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "GET and all other", + "refId": "B" + }, + { + "expr": "sum by (type) (SeaweedFS_s3_request_total{type!~'PUT|COPY|POST|LIST'})*0.0000004", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{type}} requests", + "refId": "D" + } + ], + "thresholds": [], + "timeFrom": "1M", + "timeShift": null, + "title": "S3 API Monthly Cost if on AWS", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "currencyUSD", + "label": "Cost in US$", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "currencyUSD", + "label": "Write Cost", + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ] + } + ], + "repeat": null, + "repeatIteration": null, + "repeatRowId": null, + "showTitle": true, + "title": "S3 Gateway", + "titleSize": "h6" + }, + { + "collapse": true, + "height": 252, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 1, + "grid": {}, + "id": 47, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 6, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "histogram_quantile(0.99, sum(rate(SeaweedFS_volumeServer_request_seconds_bucket[1m])) by (le, exported_instance))", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{exported_instance}}", + "refId": "B" + }, + { + "expr": "histogram_quantile(0.99, sum(rate(SeaweedFS_volumeServer_request_seconds_bucket[1m])) by (le))", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "average", + "refId": "C" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Volume Server Request Duration 99th percentile", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 1, + "grid": {}, + "id": 40, + "legend": { + "alignAsTable": true, + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "sort": "total", + "sortDesc": true, + "total": true, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 6, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(SeaweedFS_volumeServer_request_total[1m])) by (type)", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{type}}", + "refId": "A", + "step": 4 + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Volume Server QPS", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "fill": 1, + "id": 48, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(SeaweedFS_volumeServer_volumes) by (collection, type)", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{collection}} {{type}}", + "refId": "A" + }, + { + "expr": "sum(SeaweedFS_volumeServer_max_volumes)", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "Total", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Volume Count", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "fill": 1, + "id": 50, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(SeaweedFS_volumeServer_total_disk_size) by (collection, type)", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{collection}} {{type}}", + "refId": "A" + }, + { + "expr": "sum(SeaweedFS_volumeServer_total_disk_size)", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "Total", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Used Disk Space by Collection and Type", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "bytes", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "fill": 1, + "id": 51, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(SeaweedFS_volumeServer_total_disk_size) by (exported_instance)", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{exported_instance}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Used Disk Space by Host", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "bytes", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + } + ], + "repeat": null, + "repeatIteration": null, + "repeatRowId": null, + "showTitle": true, + "title": "Volume Server", + "titleSize": "h6" + }, + { + "collapse": true, + "height": 251, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 1, + "grid": {}, + "id": 12, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 6, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "histogram_quantile(0.99, sum(rate(SeaweedFS_filerStore_request_seconds_bucket[1m])) by (le, type))", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{type}}", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Filer Store Request Duration 99th percentile", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 1, + "grid": {}, + "id": 14, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "hideEmpty": false, + "hideZero": false, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 6, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(SeaweedFS_filerStore_request_total [1m])) by (type)", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{type}}", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Filer Store QPS", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + } + ], + "repeat": null, + "repeatIteration": null, + "repeatRowId": null, + "showTitle": true, + "title": "Filer Store", + "titleSize": "h6" + }, + { + "collapse": true, + "height": 242, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 1, + "grid": {}, + "id": 52, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 6, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "go_memstats_alloc_bytes{exported_job=\"filer\"}", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "bytes allocated", + "refId": "B" + }, + { + "expr": "rate(go_memstats_alloc_bytes_total{exported_job=\"filer\"}[30s])", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "alloc rate", + "refId": "A" + }, + { + "expr": "go_memstats_stack_inuse_bytes{exported_job=\"filer\"}", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "stack inuse", + "refId": "C" + }, + { + "expr": "go_memstats_heap_inuse_bytes{exported_job=\"filer\"}", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "heap inuse", + "refId": "D" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Filer Go Memory Stats", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "bytes", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "format": "Bps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 1, + "grid": {}, + "id": 54, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 6, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "go_gc_duration_seconds{exported_job=\"filer\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{quantile}}", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Filer Go GC duration quantiles", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "format": "Bps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 1, + "grid": {}, + "id": 53, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "go_goroutines{exported_job=\"filer\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{exported_instance}}", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Filer Go Routines", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "none", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + } + ], + "repeat": null, + "repeatIteration": null, + "repeatRowId": null, + "showTitle": true, + "title": "Filer Instances", + "titleSize": "h6" + } + ], + "schemaVersion": 14, + "style": "dark", + "tags": [], + "templating": { + "list": [] + }, + "time": { + "from": "now-30d", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "browser", + "title": "SeaweedFS", + "version": 2 + } diff --git a/sources/seaweedfs-operator/0.1.13/templates/_helpers.tpl b/sources/seaweedfs-operator/0.1.13/templates/_helpers.tpl new file mode 100644 index 00000000..a3a3fb95 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/_helpers.tpl @@ -0,0 +1,141 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "seaweedfs-operator.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "seaweedfs-operator.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "seaweedfs-operator.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "seaweedfs-operator.labels" -}} +helm.sh/chart: {{ include "seaweedfs-operator.chart" . }} +{{ include "seaweedfs-operator.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "seaweedfs-operator.selectorLabels" -}} +app.kubernetes.io/name: {{ include "seaweedfs-operator.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Docker registry image pull secret +*/}} +{{- define "seaweedfs-operator.imagePullSecret" }} +{{- $auth := printf "%s:%s" .username .password | b64enc -}} +{{- printf "{\"auths\": {\"%s\": {\"auth\": \"%s\"}}}" .registry $auth | b64enc }} +{{- end }} + +{{- define "seaweedfs-operator.createPullSecret" -}} +{{- if and .Values.image.credentials (not .Values.image.pullSecrets) }} + {{- true -}} +{{- else -}} +{{- end -}} +{{- end -}} + +{{- define "seaweedfs-operator.pullSecretName" -}} +{{- if .Values.image.pullSecrets -}} + {{- printf "%s" (tpl .Values.image.pullSecrets .) -}} +{{- else -}} + {{- printf "%s-container-registry" (include "seaweedfs-operator.fullname" .) -}} +{{- end -}} +{{- end -}} + +{{/* +Create the name of the service account to use +*/}} +{{- define "seaweedfs-operator.serviceAccountName" -}} +{{- if .Values.rbac.serviceAccount.create -}} + {{- default (include "seaweedfs-operator.fullname" .) .Values.rbac.serviceAccount.name -}} +{{- else -}} + {{- default "default" .Values.rbac.serviceAccount.name -}} +{{- end -}} +{{- end -}} + +{{/* +Mutating webhook path +*/}} +{{- define "seaweedfs-operator.mutatingWebhookPath" -}}/mutate-seaweed-seaweedfs-com-v1-seaweed{{- end -}} + +{{/* +Validating webhook path +*/}} +{{- define "seaweedfs-operator.validatingWebhookPath" -}}/validate-seaweed-seaweedfs-com-v1-seaweed{{- end -}} + +{{/* +Webhook Pod Security Context +*/}} +{{- define "seaweedfs-operator.webhookPodSecurityContext" -}} +{{- with .Values.webhook.podSecurityContext }} +securityContext: + {{- toYaml . | nindent 2 }} +{{- end }} +{{- end -}} + +{{/* +Webhook Container Security Context +*/}} +{{- define "seaweedfs-operator.webhookContainerSecurityContext" -}} +{{- with .Values.webhook.securityContext }} +securityContext: + {{- toYaml . | nindent 2 }} +{{- end }} +{{- end -}} + +{{/* +Webhook init container for waiting until webhook service is ready +*/}} +{{- define "seaweedfs-operator.webhookWaitInitContainer" -}} +- name: wait-for-webhook + image: {{ .Values.webhook.initContainer.image }} + {{- include "seaweedfs-operator.webhookContainerSecurityContext" . | nindent 2 }} + command: ['sh', '-c', 'set -e; until curl -sk --fail --head --max-time 5 https://{{ include "seaweedfs-operator.fullname" . }}-webhook.{{ .Release.Namespace }}.svc:443{{ .webhookPath }} >/dev/null; do echo waiting for webhook; sleep 1; done;'] +{{- end -}} + +{{/* +Mutating webhook configuration name +*/}} +{{- define "seaweedfs-operator.mutatingWebhookName" -}} +{{- $suffix := "-mutating-webhook-configuration" -}} +{{- printf "%s%s" (include "seaweedfs-operator.fullname" . | trunc (int (sub 63 (len $suffix))) | trimSuffix "-") $suffix -}} +{{- end -}} + +{{/* +Validating webhook configuration name +*/}} +{{- define "seaweedfs-operator.validatingWebhookName" -}} +{{- $suffix := "-validating-webhook-configuration" -}} +{{- printf "%s%s" (include "seaweedfs-operator.fullname" . | trunc (int (sub 63 (len $suffix))) | trimSuffix "-") $suffix -}} +{{- end -}} diff --git a/sources/seaweedfs-operator/0.1.13/templates/configmap-grafana-dashboard.yaml b/sources/seaweedfs-operator/0.1.13/templates/configmap-grafana-dashboard.yaml new file mode 100644 index 00000000..1a3dbcf3 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/configmap-grafana-dashboard.yaml @@ -0,0 +1,15 @@ +{{- if .Values.grafanaDashboard.enabled }} + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-grafana-dashboard + namespace: {{ .Release.Namespace }} + labels: + app: {{ include "seaweedfs-operator.fullname" . }} + grafana_dashboard: {{ include "seaweedfs-operator.fullname" . }} +data: + seaweedfs.json: | + {{- $.Files.Get "dashboard/seaweedfs-grafana-dashboard.json" | nindent 4 }} + +{{- end }} diff --git a/sources/seaweedfs-operator/0.1.13/templates/container-registry-secret.yaml b/sources/seaweedfs-operator/0.1.13/templates/container-registry-secret.yaml new file mode 100644 index 00000000..25089a42 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/container-registry-secret.yaml @@ -0,0 +1,12 @@ +{{ if (include "seaweedfs-operator.createPullSecret" .) }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-container-registry + namespace: {{ .Release.Namespace }} + labels: + app: {{ include "seaweedfs-operator.fullname" . }} +type: kubernetes.io/dockerconfigjson +data: + .dockerconfigjson: {{ include "seaweedfs-operator.imagePullSecret" .Values.image.credentials }} +{{ end }} diff --git a/sources/seaweedfs-operator/0.1.13/templates/deployment.yaml b/sources/seaweedfs-operator/0.1.13/templates/deployment.yaml new file mode 100644 index 00000000..8f653e15 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/deployment.yaml @@ -0,0 +1,95 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "seaweedfs-operator.fullname" . }} + namespace: {{ .Release.Namespace }} + labels: + {{- include "seaweedfs-operator.labels" . | nindent 4 }} + {{- with .Values.commonLabels }} + {{- toYaml . | nindent 4 }} + {{- end }} + {{- with .Values.commonAnnotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + {{- include "seaweedfs-operator.selectorLabels" . | nindent 6 }} + template: + metadata: + labels: + {{- include "seaweedfs-operator.selectorLabels" . | nindent 8 }} + {{- with .Values.commonAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + {{- end }} + spec: + {{ if or .Values.image.credentials .Values.image.pullSecrets }} + imagePullSecrets: + - name: {{ include "seaweedfs-operator.pullSecretName" . }} + {{ end }} + serviceAccountName: {{ include "seaweedfs-operator.serviceAccountName" . }} + {{- with .Values.podSecurityContext }} + securityContext: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} + containers: + - name: seaweedfs-operator + {{- with .Values.securityContext }} + securityContext: + {{- toYaml . | nindent 10 }} + {{- end }} + image: "{{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ default .Chart.AppVersion .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + command: + - /manager + args: + - --leader-elect + env: + {{- if eq .Values.webhook.enabled false }} + - name: ENABLE_WEBHOOKS + value: "false" + {{- end }} + ports: + - name: {{ .Values.port.name }} + containerPort: {{ .Values.port.number }} + protocol: TCP + - name: https + containerPort: 443 + protocol: TCP + {{- if .Values.resources }} + resources: {{- toYaml .Values.resources | nindent 12 }} + {{- end }} + {{- if .Values.webhook.enabled }} + volumeMounts: + - mountPath: /tmp/k8s-webhook-server/serving-certs + name: cert + readOnly: true + {{- end }} + terminationGracePeriodSeconds: 10 + {{- if .Values.webhook.enabled }} + volumes: + - name: cert + secret: + defaultMode: 420 + secretName: {{ include "seaweedfs-operator.fullname" . }}-webhook-server-cert + items: + - key: cert + path: tls.crt + - key: key + path: tls.key + {{- end }} diff --git a/sources/seaweedfs-operator/0.1.13/templates/rbac/leader_election_role.yaml b/sources/seaweedfs-operator/0.1.13/templates/rbac/leader_election_role.yaml new file mode 100644 index 00000000..e2e25d65 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/rbac/leader_election_role.yaml @@ -0,0 +1,43 @@ +# permissions to do leader election. +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-leader-election-role + namespace: {{ .Release.Namespace }} +rules: +- apiGroups: + - "" + resources: + - configmaps + verbs: + - get + - list + - watch + - create + - update + - patch + - delete +- apiGroups: + - "" + resources: + - configmaps/status + verbs: + - get + - update + - patch +- apiGroups: + - "" + resources: + - events + verbs: + - create + - patch +- apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - create + - get + - list + - update diff --git a/sources/seaweedfs-operator/0.1.13/templates/rbac/leader_election_role_binding.yaml b/sources/seaweedfs-operator/0.1.13/templates/rbac/leader_election_role_binding.yaml new file mode 100644 index 00000000..559f9552 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/rbac/leader_election_role_binding.yaml @@ -0,0 +1,13 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-leader-election-rolebinding + namespace: {{ .Release.Namespace }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: {{ include "seaweedfs-operator.fullname" . }}-leader-election-role +subjects: +- kind: ServiceAccount + name: {{ include "seaweedfs-operator.serviceAccountName" . }} + namespace: {{ .Release.Namespace }} diff --git a/sources/seaweedfs-operator/0.1.13/templates/rbac/role.yaml b/sources/seaweedfs-operator/0.1.13/templates/rbac/role.yaml new file mode 100644 index 00000000..982b24ac --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/rbac/role.yaml @@ -0,0 +1,110 @@ + +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + creationTimestamp: null + name: {{ include "seaweedfs-operator.fullname" . }}-manager-role +rules: +- apiGroups: + - apps + resources: + - statefulsets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - "" + resources: + - configmaps + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - "" + resources: + - pods + verbs: + - get + - watch + - list +- apiGroups: + - "" + resources: + - services + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - extensions + resources: + - ingresses + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - networking.k8s.io + resources: + - ingresses + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - seaweed.seaweedfs.com + resources: + - seaweeds + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - seaweed.seaweedfs.com + resources: + - seaweeds/status + verbs: + - get + - patch + - update +{{- if .Values.serviceMonitor.enabled }} +- apiGroups: + - monitoring.coreos.com + resources: + - servicemonitors + verbs: + - get + - list + - watch + - patch + - update + - create + - delete +{{- end }} diff --git a/sources/seaweedfs-operator/0.1.13/templates/rbac/role_binding.yaml b/sources/seaweedfs-operator/0.1.13/templates/rbac/role_binding.yaml new file mode 100644 index 00000000..6a3ef9dc --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/rbac/role_binding.yaml @@ -0,0 +1,12 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-manager-rolebinding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: {{ include "seaweedfs-operator.fullname" . }}-manager-role +subjects: +- kind: ServiceAccount + name: {{ include "seaweedfs-operator.serviceAccountName" . }} + namespace: {{ .Release.Namespace }} diff --git a/sources/seaweedfs-operator/0.1.13/templates/rbac/seaweed_editor_role.yaml b/sources/seaweedfs-operator/0.1.13/templates/rbac/seaweed_editor_role.yaml new file mode 100644 index 00000000..f366e19a --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/rbac/seaweed_editor_role.yaml @@ -0,0 +1,24 @@ +# permissions for end users to edit seaweeds. +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: seaweed-editor-role +rules: +- apiGroups: + - seaweed.seaweedfs.com + resources: + - seaweeds + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - seaweed.seaweedfs.com + resources: + - seaweeds/status + verbs: + - get diff --git a/sources/seaweedfs-operator/0.1.13/templates/rbac/seaweed_viewer_role.yaml b/sources/seaweedfs-operator/0.1.13/templates/rbac/seaweed_viewer_role.yaml new file mode 100644 index 00000000..43295e84 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/rbac/seaweed_viewer_role.yaml @@ -0,0 +1,20 @@ +# permissions for end users to view seaweeds. +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: seaweed-viewer-role +rules: +- apiGroups: + - seaweed.seaweedfs.com + resources: + - seaweeds + verbs: + - get + - list + - watch +- apiGroups: + - seaweed.seaweedfs.com + resources: + - seaweeds/status + verbs: + - get diff --git a/sources/seaweedfs-operator/0.1.13/templates/service.yaml b/sources/seaweedfs-operator/0.1.13/templates/service.yaml new file mode 100644 index 00000000..ede4c661 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "seaweedfs-operator.fullname" . }} + namespace: {{ .Release.Namespace }} + labels: + app: {{ include "seaweedfs-operator.fullname" . }} + app.kubernetes.io/component: metrics +spec: + type: ClusterIP + ports: + - name: {{ .Values.service.portName }} + port: {{ .Values.service.port }} + targetPort: {{ .Values.port.number }} + selector: + {{- include "seaweedfs-operator.selectorLabels" . | nindent 4 }} diff --git a/sources/seaweedfs-operator/0.1.13/templates/serviceaccount.yaml b/sources/seaweedfs-operator/0.1.13/templates/serviceaccount.yaml new file mode 100644 index 00000000..0eec2b1b --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/serviceaccount.yaml @@ -0,0 +1,14 @@ +{{- if and .Values.rbac.serviceAccount.create (ne .Values.rbac.serviceAccount.name "default") }} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "seaweedfs-operator.serviceAccountName" . }} + namespace: {{ .Release.Namespace }} + labels: + {{- include "seaweedfs-operator.labels" . | nindent 4 }} + {{- with .Values.rbac.serviceAccount.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +automountServiceAccountToken: {{ .Values.rbac.serviceAccount.automount }} +{{- end }} diff --git a/sources/seaweedfs-operator/0.1.13/templates/servicemonitor.yaml b/sources/seaweedfs-operator/0.1.13/templates/servicemonitor.yaml new file mode 100644 index 00000000..d7101aa3 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/servicemonitor.yaml @@ -0,0 +1,25 @@ +{{- if .Values.serviceMonitor.enabled }} + +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-metrics-monitor + namespace: {{ .Release.Namespace }} +spec: + endpoints: + - port: {{ .Values.service.portName }} + {{- if .Values.serviceMonitor.interval }} + interval: {{ .Values.serviceMonitor.interval }} + {{- end }} + {{- if .Values.serviceMonitor.scrapeTimeout }} + scrapeTimeout: {{ .Values.serviceMonitor.scrapeTimeout }} + {{- end }} + {{- if .Values.serviceMonitor.honorLabels }} + honorLabels: {{ .Values.serviceMonitor.honorLabels }} + {{- end }} + path: /metrics + selector: + matchLabels: + app: {{ include "seaweedfs-operator.fullname" . }} + +{{- end }} diff --git a/sources/seaweedfs-operator/0.1.13/templates/webhook/job-update-webhook-certificates.yaml b/sources/seaweedfs-operator/0.1.13/templates/webhook/job-update-webhook-certificates.yaml new file mode 100644 index 00000000..c4887906 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/webhook/job-update-webhook-certificates.yaml @@ -0,0 +1,178 @@ +{{- if .Values.webhook.enabled -}} +--- +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-create-webhook-certificates + namespace: {{ .Release.Namespace }} + annotations: + "helm.sh/hook": pre-install,pre-upgrade + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +spec: + template: + spec: + serviceAccountName: {{ include "seaweedfs-operator.fullname" . }}-update-webhook-certificates + {{- include "seaweedfs-operator.webhookPodSecurityContext" . | nindent 6 }} + containers: + - name: certgen + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231011-8b53cabe0 + {{- include "seaweedfs-operator.webhookContainerSecurityContext" . | nindent 8 }} + args: + - create + - --host={{ include "seaweedfs-operator.fullname" . }}-webhook,{{ include "seaweedfs-operator.fullname" . }}-webhook.{{ .Release.Namespace }}.svc + - --namespace=$(POD_NAMESPACE) + - --secret-name={{ include "seaweedfs-operator.fullname" . }}-webhook-server-cert + env: + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + restartPolicy: OnFailure + +--- +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-patch-mutating-webhook + namespace: {{ .Release.Namespace }} + annotations: + "helm.sh/hook": post-install,post-upgrade + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +spec: + template: + spec: + serviceAccountName: {{ include "seaweedfs-operator.fullname" . }}-update-webhook-certificates + {{- include "seaweedfs-operator.webhookPodSecurityContext" . | nindent 6 }} + initContainers: + {{- include "seaweedfs-operator.webhookWaitInitContainer" (dict "Chart" .Chart "Values" .Values "Release" .Release "webhookPath" (include "seaweedfs-operator.mutatingWebhookPath" .)) | nindent 8 }} + containers: + - name: certgen + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231011-8b53cabe0 + {{- include "seaweedfs-operator.webhookContainerSecurityContext" . | nindent 8 }} + args: + - patch + - --webhook-name={{ include "seaweedfs-operator.mutatingWebhookName" . }} + - --namespace=$(POD_NAMESPACE) + - --patch-mutating=true + - --patch-validating=false + - --secret-name={{ include "seaweedfs-operator.fullname" . }}-webhook-server-cert + - --patch-failure-policy=Fail + env: + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + restartPolicy: OnFailure + +--- +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-patch-validating-webhook + namespace: {{ .Release.Namespace }} + annotations: + "helm.sh/hook": post-install,post-upgrade + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +spec: + template: + spec: + serviceAccountName: {{ include "seaweedfs-operator.fullname" . }}-update-webhook-certificates + {{- include "seaweedfs-operator.webhookPodSecurityContext" . | nindent 6 }} + initContainers: + {{- include "seaweedfs-operator.webhookWaitInitContainer" (dict "Chart" .Chart "Values" .Values "Release" .Release "webhookPath" (include "seaweedfs-operator.validatingWebhookPath" .)) | nindent 8 }} + containers: + - name: certgen + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231011-8b53cabe0 + {{- include "seaweedfs-operator.webhookContainerSecurityContext" . | nindent 8 }} + args: + - patch + - --webhook-name={{ include "seaweedfs-operator.validatingWebhookName" . }} + - --namespace=$(POD_NAMESPACE) + - --patch-mutating=false + - --patch-validating=true + - --secret-name={{ include "seaweedfs-operator.fullname" . }}-webhook-server-cert + - --patch-failure-policy=Fail + env: + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + restartPolicy: OnFailure +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-update-webhook-certificates + namespace: {{ .Release.Namespace }} + annotations: + "helm.sh/hook": pre-install,pre-upgrade + "helm.sh/hook-weight": "-10" +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-update-webhook-certificates + namespace: {{ .Release.Namespace }} + annotations: + "helm.sh/hook": pre-install,pre-upgrade + "helm.sh/hook-weight": "-10" +rules: + - apiGroups: + - "" + resources: + - secrets + verbs: + - get + - create + - update +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-update-webhook-certificates + namespace: {{ .Release.Namespace }} + annotations: + "helm.sh/hook": pre-install,pre-upgrade + "helm.sh/hook-weight": "-9" +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: {{ include "seaweedfs-operator.fullname" . }}-update-webhook-certificates +subjects: + - kind: ServiceAccount + name: {{ include "seaweedfs-operator.fullname" . }}-update-webhook-certificates + namespace: {{ .Release.Namespace }} +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-update-webhook-certificates + annotations: + "helm.sh/hook": pre-install,pre-upgrade + "helm.sh/hook-weight": "-10" +rules: + - apiGroups: + - admissionregistration.k8s.io + resources: + - validatingwebhookconfigurations + - mutatingwebhookconfigurations + verbs: + - get + - update +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-update-webhook-certificates + annotations: + "helm.sh/hook": pre-install,pre-upgrade + "helm.sh/hook-weight": "-9" +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: {{ include "seaweedfs-operator.fullname" . }}-update-webhook-certificates +subjects: + - kind: ServiceAccount + name: {{ include "seaweedfs-operator.fullname" . }}-update-webhook-certificates + namespace: {{ .Release.Namespace }} +{{- end -}} diff --git a/sources/seaweedfs-operator/0.1.13/templates/webhook/mutating-webhook.yaml b/sources/seaweedfs-operator/0.1.13/templates/webhook/mutating-webhook.yaml new file mode 100644 index 00000000..bcf1cd07 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/webhook/mutating-webhook.yaml @@ -0,0 +1,33 @@ +{{- if .Values.webhook.enabled }} + +apiVersion: admissionregistration.k8s.io/v1 +kind: MutatingWebhookConfiguration +metadata: + creationTimestamp: null + name: {{ include "seaweedfs-operator.mutatingWebhookName" . }} + labels: + {{- include "seaweedfs-operator.labels" . | nindent 4 }} +webhooks: +- clientConfig: + service: + name: {{ include "seaweedfs-operator.fullname" . }}-webhook + namespace: {{ .Release.Namespace }} + port: 443 + path: {{ include "seaweedfs-operator.mutatingWebhookPath" . }} + name: mseaweed.kb.io + failurePolicy: Fail + sideEffects: None + admissionReviewVersions: + - v1 + rules: + - apiGroups: + - seaweed.seaweedfs.com + apiVersions: + - v1 + operations: + - CREATE + - UPDATE + resources: + - seaweeds + +{{- end }} diff --git a/sources/seaweedfs-operator/0.1.13/templates/webhook/service.yaml b/sources/seaweedfs-operator/0.1.13/templates/webhook/service.yaml new file mode 100644 index 00000000..2c6d3585 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/webhook/service.yaml @@ -0,0 +1,19 @@ +{{- if .Values.webhook.enabled }} + +apiVersion: v1 +kind: Service +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-webhook + namespace: {{ .Release.Namespace }} + labels: + app: {{ include "seaweedfs-operator.fullname" . }} +spec: + type: ClusterIP + ports: + - name: https + port: 443 + targetPort: 9443 + selector: + {{- include "seaweedfs-operator.selectorLabels" . | nindent 4 }} + +{{- end }} diff --git a/sources/seaweedfs-operator/0.1.13/templates/webhook/validating-webhook.yaml b/sources/seaweedfs-operator/0.1.13/templates/webhook/validating-webhook.yaml new file mode 100644 index 00000000..92ff3627 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/webhook/validating-webhook.yaml @@ -0,0 +1,33 @@ +{{- if .Values.webhook.enabled }} + +apiVersion: admissionregistration.k8s.io/v1 +kind: ValidatingWebhookConfiguration +metadata: + creationTimestamp: null + name: {{ include "seaweedfs-operator.validatingWebhookName" . }} + labels: + {{- include "seaweedfs-operator.labels" . | nindent 4 }} +webhooks: +- clientConfig: + service: + name: {{ include "seaweedfs-operator.fullname" . }}-webhook + namespace: {{ .Release.Namespace }} + port: 443 + path: {{ include "seaweedfs-operator.validatingWebhookPath" . }} + name: vseaweed.kb.io + failurePolicy: Fail + sideEffects: None + admissionReviewVersions: + - v1 + rules: + - apiGroups: + - seaweed.seaweedfs.com + apiVersions: + - v1 + operations: + - CREATE + - UPDATE + resources: + - seaweeds + +{{- end }} diff --git a/sources/seaweedfs-operator/0.1.13/values.yaml b/sources/seaweedfs-operator/0.1.13/values.yaml new file mode 100644 index 00000000..46993871 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/values.yaml @@ -0,0 +1,157 @@ +# -- Global Docker image parameters +# Please, note that this will override the image parameters, including dependencies, configured to use the global value +# Current available global Docker image parameters: imageRegistry +global: + imageRegistry: "chrislusf" + +# -- String to partially override common.names.fullname template (will maintain the release name) +nameOverride: "" + +# -- String to fully override common.names.fullname template +fullnameOverride: "" + +# -- Annotations for all the deployed objects +commonAnnotations: {} + +# -- Labels for all the deployed objects +commonLabels: {} + +## Configure Kubernetes Rbac parameters +rbac: + serviceAccount: + # -- Specifies whether a service account should be created + create: true + # -- Annotations to add to the service account + annotations: {} + # -- The name of the service account to use. + # If not set and create is true, a name is generated using the fullname template + # If set to "default", no ServiceAccount will be created and the default one will be used + name: "" + # -- Automount service account token for the server service account + automount: true + +image: + registry: chrislusf + repository: seaweedfs-operator + # -- tag of image to use. Defaults to appVersion in Chart.yaml + tag: "" + # -- Specify a imagePullPolicy + ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' + ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images + pullPolicy: IfNotPresent + + ## Specify credentials to authorize in docker registry or set existing secrets in pullSecrets + # credentials: + # registry: private-registry + # username: username + # password: password + + ## Optionally specify imagePullSecret. + ## Secrets must be manually created in the namespace. + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + ## + # pullSecrets: myRegistryKeySecretName + +# -- Set number of pod replicas +replicaCount: 1 + +## Configure container port +port: + # -- name of the container port to use for the Kubernete service and ingress + name: http + # -- container port number to use for the Kubernete service and ingress + number: 8080 + +## Configure Service +service: + # -- name of the port to use for Kubernetes service + portName: http + # -- port to use for Kubernetes service + port: 8080 + +grafanaDashboard: + # -- Enable or disable Grafana Dashboard configmap + enabled: true + +serviceMonitor: + # -- Enable or disable ServiceMonitor for prometheus metrics + enabled: false + # -- Specify the interval at which metrics should be scraped + interval: 10s + # -- Specify the timeout after which the scrape is ended + scrapeTimeout: 10s + ## Specify Metric Relabellings to add to the scrape endpoint + # -- Specify honorLabels parameter to add the scrape endpoint + honorLabels: true + ## Specify the release for ServiceMonitor. Sometimes it should be custom for prometheus operator to work + # release: "" + ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#prometheusspec + # -- Used to pass Labels that are used by the Prometheus installed in your cluster to select Service Monitors to work with + additionalLabels: {} + +webhook: + # -- Enable or disable webhooks + enabled: true + # -- Configuration for webhook certificate jobs + initContainer: + # -- Image for webhook readiness check init container + image: curlimages/curl:8.8.0 + # -- Pod security context for webhook jobs + # ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + podSecurityContext: + runAsNonRoot: true + runAsUser: 65532 + fsGroup: 65532 + seccompProfile: + type: RuntimeDefault + # -- Container security context for webhook jobs + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + runAsNonRoot: true + +## seaweedfs-operator containers' resource requests and limits. +## ref: http://kubernetes.io/docs/user-guide/compute-resources/ +resources: + limits: + # -- seaweedfs-operator containers' cpu limit (maximum allowed CPU) + cpu: 500m + # -- seaweedfs-operator containers' memory limit (maximum allowed memory) + memory: 500Mi + requests: + # -- seaweedfs-operator containers' cpu request (how much is requested by default) + cpu: 100m + # -- seaweedfs-operator containers' memory request (how much is requested by default) + memory: 50Mi + +## Security context for pods +## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ +podSecurityContext: + runAsNonRoot: true + runAsUser: 65532 + fsGroup: 65532 + +## Security context for containers +## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ +securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + runAsNonRoot: true + +## Node labels for pod assignment +## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/ +nodeSelector: {} + +## Tolerations for pod assignment +## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ +tolerations: [] + +## Affinity for pod assignment +## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity +affinity: {} diff --git a/sources/seaweedfs-operator/source.yaml b/sources/seaweedfs-operator/source.yaml new file mode 100644 index 00000000..90321cbd --- /dev/null +++ b/sources/seaweedfs-operator/source.yaml @@ -0,0 +1,4 @@ +sourceUrl: https://github.com/seaweedfs/seaweedfs-operator/tree/master/deploy/helm +sourceRepoName: seaweedfs-operator +sourceChartName: seaweedfs-operator-crds +sourceVersion: 0.1.13 diff --git a/sources/seaweedfs-operator/values.yaml b/sources/seaweedfs-operator/values.yaml new file mode 100644 index 00000000..2d611586 --- /dev/null +++ b/sources/seaweedfs-operator/values.yaml @@ -0,0 +1 @@ +domain: # to be filled by cluster-forge app From 6ce36891a68a4478ffdc2c0a11f624faae9aa12a Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Thu, 19 Feb 2026 18:15:38 +0000 Subject: [PATCH 02/51] Enable seaweedfs apps in medium size --- root/values_medium.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/root/values_medium.yaml b/root/values_medium.yaml index 4429597a..85beaa6e 100644 --- a/root/values_medium.yaml +++ b/root/values_medium.yaml @@ -41,6 +41,9 @@ enabledApps: - kyverno-policies-base - kyverno-policies-storage-local-path - metallb + - seaweedfs-crds + - seaweedfs-operator + - seaweedfs-config - minio-operator - minio-tenant - minio-tenant-config From 24469475584c7c89734fc2a70f044993135d9e02 Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Thu, 19 Feb 2026 18:45:34 +0000 Subject: [PATCH 03/51] Remove hallucination --- root/values.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/root/values.yaml b/root/values.yaml index 62e25ac3..574ae2cf 100644 --- a/root/values.yaml +++ b/root/values.yaml @@ -700,7 +700,6 @@ apps: valuesFile: values.yaml syncWave: 0 seaweedfs-config: - seaweedfs-operator: path: seaweedfs-config namespace: seaweedfs-instance valuesFile: values.yaml From 1da44d7be4bce013f384557e47587e38e17f82a3 Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Thu, 19 Feb 2026 20:18:24 +0000 Subject: [PATCH 04/51] Fix namespace name --- sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml | 2 +- sources/seaweedfs-config/templates/seaweedfs-httproute.yaml | 2 +- sources/seaweedfs-config/templates/seaweedfs-pvc.yaml | 2 +- sources/seaweedfs-config/templates/seaweedfs-seaweed.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml b/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml index 862fd91a..84551c87 100644 --- a/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml +++ b/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml @@ -3,7 +3,7 @@ apiVersion: external-secrets.io/v1beta1 kind: ExternalSecret metadata: name: seaweedfs-es-s3-config - namespace: seaweed-instance + namespace: seaweedfs-instance annotations: argocd.argoproj.io/hook: PreSync spec: diff --git a/sources/seaweedfs-config/templates/seaweedfs-httproute.yaml b/sources/seaweedfs-config/templates/seaweedfs-httproute.yaml index 26bc41a7..cdf56e7c 100644 --- a/sources/seaweedfs-config/templates/seaweedfs-httproute.yaml +++ b/sources/seaweedfs-config/templates/seaweedfs-httproute.yaml @@ -2,7 +2,7 @@ apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: name: seaweed - namespace: seaweed-instance + namespace: seaweedfs-instance spec: parentRefs: - name: https diff --git a/sources/seaweedfs-config/templates/seaweedfs-pvc.yaml b/sources/seaweedfs-config/templates/seaweedfs-pvc.yaml index a92a68f6..f72e9190 100644 --- a/sources/seaweedfs-config/templates/seaweedfs-pvc.yaml +++ b/sources/seaweedfs-config/templates/seaweedfs-pvc.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-seaweed-s3-metadata - namespace: seaweed-instance + namespace: seaweedfs-instance spec: accessModes: - ReadWriteOnce diff --git a/sources/seaweedfs-config/templates/seaweedfs-seaweed.yaml b/sources/seaweedfs-config/templates/seaweedfs-seaweed.yaml index 6ec041c4..e29f37c4 100644 --- a/sources/seaweedfs-config/templates/seaweedfs-seaweed.yaml +++ b/sources/seaweedfs-config/templates/seaweedfs-seaweed.yaml @@ -2,7 +2,7 @@ apiVersion: seaweed.seaweedfs.com/v1 kind: Seaweed metadata: name: seaweed - namespace: seaweed-instance + namespace: seaweedfs-instance spec: image: chrislusf/seaweedfs:latest volumeServerDiskCount: 1 From 650bba1c290494a3d87af69dd4daed921681dc67 Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Mon, 23 Feb 2026 11:31:25 +0000 Subject: [PATCH 05/51] Configure API keys for seaweedfs s3 --- .../templates/seaweedfs-es-s3-config.yaml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml b/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml index 84551c87..84af6055 100644 --- a/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml +++ b/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml @@ -35,7 +35,7 @@ spec: ] }, { - "name": "user2", + "name": "ApiUser", "actions": [ "Read", "List", @@ -43,8 +43,17 @@ spec: ], "credentials": [ { - "accessKey": "testkey3", - "secretKey": "testpass3" + "accessKey": "{{ "{{" }}.API_ACCESS_KEY{{ "}}"}}", + "secretKey": "{{ "{{" }}.API_SECRET_KEY{{ "}}"}}" } ] } + data: + - secretKey: API_ACCESS_KEY + remoteRef: + key: secrets/data/minio-api-access-key + property: value + - secretKey: API_SECRET_KEY + remoteRef: + key: secrets/data/minio-api-secret-key + property: value From 3b5215fbc8b3ef7dc26b8368842bd8b76bf12115 Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Mon, 23 Feb 2026 12:43:01 +0000 Subject: [PATCH 06/51] Disable webhook due to missing CABundle for tls --- sources/seaweedfs-operator/values.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/seaweedfs-operator/values.yaml b/sources/seaweedfs-operator/values.yaml index 2d611586..aa9bf355 100644 --- a/sources/seaweedfs-operator/values.yaml +++ b/sources/seaweedfs-operator/values.yaml @@ -1 +1,3 @@ domain: # to be filled by cluster-forge app +webhook: + enabled: false \ No newline at end of file From 76fb8fb00238ef20e4320ad8a822faf9118ceb01 Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Mon, 23 Feb 2026 17:28:17 +0000 Subject: [PATCH 07/51] Fix wrong name of the s3 creds secret for seaweed --- .../templates/seaweedfs-es-s3-config.yaml | 18 +++++++++++------- .../templates/seaweedfs-seaweed.yaml | 4 ++-- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml b/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml index 84af6055..cc50e642 100644 --- a/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml +++ b/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml @@ -19,19 +19,15 @@ spec: { "identities": [ { - "name": "user1", + "name": "Console", "actions": [ "Admin" ], "credentials": [ { - "accessKey": "testkey", - "secretKey": "testpass" + "accessKey": "{{ "{{" }}.CONSOLE_ACCESS_KEY{{ "}}"}}", + "secretKey": "{{ "{{" }}.CONSOLE_SECRET_KEY{{ "}}"}}" }, - { - "accessKey": "testkey2", - "secretKey": "testpass2" - } ] }, { @@ -57,3 +53,11 @@ spec: remoteRef: key: secrets/data/minio-api-secret-key property: value + - secretKey: CONSOLE_ACCESS_KEY + remoteRef: + key: secrets/data/minio-console-access-key + property: value + - secretKey: CONSOLE_SECRET_KEY + remoteRef: + key: secrets/data/minio-console-secret-key + property: value \ No newline at end of file diff --git a/sources/seaweedfs-config/templates/seaweedfs-seaweed.yaml b/sources/seaweedfs-config/templates/seaweedfs-seaweed.yaml index e29f37c4..a940ecf0 100644 --- a/sources/seaweedfs-config/templates/seaweedfs-seaweed.yaml +++ b/sources/seaweedfs-config/templates/seaweedfs-seaweed.yaml @@ -30,8 +30,8 @@ spec: s3: enabled: true configSecret: - name: test-secret - key: seaweedfs_s3_config.json + name: seaweedfs-s3-config + key: s3.json config: | [leveldb2] enabled = true From e6901be36d6f47c540b601e25e28b235c2bb14fa Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Mon, 23 Feb 2026 17:42:48 +0000 Subject: [PATCH 08/51] Fix malformed json --- sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml b/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml index cc50e642..91407274 100644 --- a/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml +++ b/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml @@ -44,6 +44,7 @@ spec: } ] } + ] data: - secretKey: API_ACCESS_KEY remoteRef: From 6aea439f08f525c908b8c2aff70ad4df1978f25b Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Mon, 23 Feb 2026 17:47:20 +0000 Subject: [PATCH 09/51] Fix malformed json --- sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml b/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml index 91407274..dfe70fc1 100644 --- a/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml +++ b/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml @@ -45,6 +45,7 @@ spec: ] } ] + } data: - secretKey: API_ACCESS_KEY remoteRef: From 21feccab94c37fb3cd21a6ca9174d80e84c2f9a4 Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Tue, 24 Feb 2026 08:26:15 +0000 Subject: [PATCH 10/51] Remove trailing comma --- sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml b/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml index dfe70fc1..2d7ee9af 100644 --- a/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml +++ b/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml @@ -27,7 +27,7 @@ spec: { "accessKey": "{{ "{{" }}.CONSOLE_ACCESS_KEY{{ "}}"}}", "secretKey": "{{ "{{" }}.CONSOLE_SECRET_KEY{{ "}}"}}" - }, + } ] }, { From 38cc39e3222302c467d2c7cf7edc6fa317b6f39e Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Tue, 24 Feb 2026 15:35:07 +0000 Subject: [PATCH 11/51] Add service for the filer s3 --- .../seaweedfs-config/templates/seaweed-s3-svc.yaml | 13 +++++++++++++ .../templates/seaweedfs-httproute.yaml | 4 ++-- 2 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 sources/seaweedfs-config/templates/seaweed-s3-svc.yaml diff --git a/sources/seaweedfs-config/templates/seaweed-s3-svc.yaml b/sources/seaweedfs-config/templates/seaweed-s3-svc.yaml new file mode 100644 index 00000000..e4e63ae8 --- /dev/null +++ b/sources/seaweedfs-config/templates/seaweed-s3-svc.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: filer-s3 + namespace: seaweedfs-instance +spec: + ports: + - name: http + port: 80 + targetPort: 8333 + protocol: TCP + selector: + app: seaweed-filer \ No newline at end of file diff --git a/sources/seaweedfs-config/templates/seaweedfs-httproute.yaml b/sources/seaweedfs-config/templates/seaweedfs-httproute.yaml index cdf56e7c..46715010 100644 --- a/sources/seaweedfs-config/templates/seaweedfs-httproute.yaml +++ b/sources/seaweedfs-config/templates/seaweedfs-httproute.yaml @@ -9,8 +9,8 @@ spec: namespace: kgateway-system rules: - backendRefs: - - name: seaweed-filer - port: 8333 + - name: filer-s3 + port: 80 matches: - headers: - type: RegularExpression From 4a13c993c83ed6a9c86a53f8f1bc8eeaecefb06e Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Tue, 24 Feb 2026 15:46:01 +0000 Subject: [PATCH 12/51] (only for testing) point airm to seaweedfs s3 --- sources/airm/0.3.2/charts/airm-api/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/airm/0.3.2/charts/airm-api/values.yaml b/sources/airm/0.3.2/charts/airm-api/values.yaml index aa94f11e..2c5aeb40 100644 --- a/sources/airm/0.3.2/charts/airm-api/values.yaml +++ b/sources/airm/0.3.2/charts/airm-api/values.yaml @@ -125,7 +125,7 @@ airm: env: dbPort: 5432 rabbitmqPort: 5672 - minioUrl: http://minio.minio-tenant-default.svc.cluster.local:80 + minioUrl: http://filer-s3.seaweedfs-instance.svc.cluster.local:80 minioBucket: default-bucket prometheusUrl: http://lgtm-stack.otel-lgtm-stack.svc.cluster.local:9090 clusterAuthUrl: http://cluster-auth.cluster-auth.svc.cluster.local:8081 From 5d78cf071989f287e5060f81a02e6a007172f013 Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Thu, 26 Feb 2026 17:39:28 +0000 Subject: [PATCH 13/51] Fix service selector --- sources/seaweedfs-config/templates/seaweed-s3-svc.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sources/seaweedfs-config/templates/seaweed-s3-svc.yaml b/sources/seaweedfs-config/templates/seaweed-s3-svc.yaml index e4e63ae8..c11b6dd0 100644 --- a/sources/seaweedfs-config/templates/seaweed-s3-svc.yaml +++ b/sources/seaweedfs-config/templates/seaweed-s3-svc.yaml @@ -10,4 +10,7 @@ spec: targetPort: 8333 protocol: TCP selector: - app: seaweed-filer \ No newline at end of file + app.kubernetes.io/component: filer + app.kubernetes.io/instance: seaweed + app.kubernetes.io/managed-by: seaweedfs-operator + app.kubernetes.io/name: seaweedfs \ No newline at end of file From 55f0d5aa4c2c116817c53d2207af38145642458f Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Mon, 2 Mar 2026 17:17:54 +0000 Subject: [PATCH 14/51] Fix api user permissions --- .../seaweedfs-config/templates/seaweedfs-es-s3-config.yaml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml b/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml index 2d7ee9af..2cc01e84 100644 --- a/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml +++ b/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml @@ -33,9 +33,7 @@ spec: { "name": "ApiUser", "actions": [ - "Read", - "List", - "Write" + "Admin" ], "credentials": [ { From 129bf21424bef2c8b97778c75a686bd349bace1d Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Tue, 3 Mar 2026 16:04:12 +0000 Subject: [PATCH 15/51] Testing RWM --- sources/seaweedfs-config/templates/seaweedfs-pvc.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/seaweedfs-config/templates/seaweedfs-pvc.yaml b/sources/seaweedfs-config/templates/seaweedfs-pvc.yaml index f72e9190..8ff9656a 100644 --- a/sources/seaweedfs-config/templates/seaweedfs-pvc.yaml +++ b/sources/seaweedfs-config/templates/seaweedfs-pvc.yaml @@ -5,8 +5,8 @@ metadata: namespace: seaweedfs-instance spec: accessModes: - - ReadWriteOnce + - ReadWriteMany resources: requests: storage: 10Gi - storageClassName: mlstorage \ No newline at end of file + storageClassName: multinode \ No newline at end of file From 3a8f52872320a1f7cbb9c39f8971ac437186d60b Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Thu, 5 Mar 2026 15:18:01 +0000 Subject: [PATCH 16/51] Make seaweed configurable via values file --- .../seaweedfs-config/templates/seaweedfs-pvc.yaml | 8 +++++--- .../templates/seaweedfs-seaweed.yaml | 14 ++++++++------ sources/seaweedfs-config/values.yaml | 13 +++++++++++++ 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/sources/seaweedfs-config/templates/seaweedfs-pvc.yaml b/sources/seaweedfs-config/templates/seaweedfs-pvc.yaml index 8ff9656a..4ebbdaf9 100644 --- a/sources/seaweedfs-config/templates/seaweedfs-pvc.yaml +++ b/sources/seaweedfs-config/templates/seaweedfs-pvc.yaml @@ -1,3 +1,4 @@ +{{- with .Values.seaweed }} apiVersion: v1 kind: PersistentVolumeClaim metadata: @@ -5,8 +6,9 @@ metadata: namespace: seaweedfs-instance spec: accessModes: - - ReadWriteMany + - ReadWriteOnce resources: requests: - storage: 10Gi - storageClassName: multinode \ No newline at end of file + storage: {{ .filer.requests.storage }} + storageClassName: {{ .storageClassName }} + {{- end }} \ No newline at end of file diff --git a/sources/seaweedfs-config/templates/seaweedfs-seaweed.yaml b/sources/seaweedfs-config/templates/seaweedfs-seaweed.yaml index a940ecf0..e207a6bd 100644 --- a/sources/seaweedfs-config/templates/seaweedfs-seaweed.yaml +++ b/sources/seaweedfs-config/templates/seaweedfs-seaweed.yaml @@ -1,3 +1,4 @@ +{{- with .Values.seaweed }} apiVersion: seaweed.seaweedfs.com/v1 kind: Seaweed metadata: @@ -8,18 +9,18 @@ spec: volumeServerDiskCount: 1 hostSuffix: plat-dev-1.silogen.ai master: - replicas: 1 + replicas: {{ .master.replicas }} volumeSizeLimitMB: 1024 volume: - replicas: 1 - storageClassName: mlstorage + replicas: {{ .volume.replicas }} + storageClassName: {{ .storageClassName }} requests: - storage: 2Gi + storage: {{ .volume.requests.storage }} # Topology configuration for rack/datacenter-aware placement rack: "rack1" dataCenter: "dc1" filer: - replicas: 1 + replicas: {{ .filer.replicas }} volumes: - name: s3-metadata persistentVolumeClaim: @@ -35,4 +36,5 @@ spec: config: | [leveldb2] enabled = true - dir = "/data/filerldb2" \ No newline at end of file + dir = "/data/filerldb2" +{{- end}} \ No newline at end of file diff --git a/sources/seaweedfs-config/values.yaml b/sources/seaweedfs-config/values.yaml index 2d611586..de41ca9a 100644 --- a/sources/seaweedfs-config/values.yaml +++ b/sources/seaweedfs-config/values.yaml @@ -1 +1,14 @@ domain: # to be filled by cluster-forge app +seaweed: + storageClassName: mlstorage + master: + replicas: 1 + volumeSizeLimitMB: 1024 + volume: + replicas: 1 + requests: + storage: 2Gi + filer: + replicas: 1 + requests: + storage: 10Gi \ No newline at end of file From e882f685dc8487bc47cdf0c866acdd0b00914139 Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Fri, 6 Mar 2026 10:03:12 +0000 Subject: [PATCH 17/51] Add t-shirt sizes config for seaweedfs filer --- root/values.yaml | 14 ++++++++++++++ root/values_large.yaml | 18 ++++++++++++++++++ root/values_medium.yaml | 17 +++++++++++++++++ root/values_small.yaml | 20 ++++++++++++++++++++ sources/seaweedfs-config/values.yaml | 2 +- 5 files changed, 70 insertions(+), 1 deletion(-) diff --git a/root/values.yaml b/root/values.yaml index 574ae2cf..b36f608d 100644 --- a/root/values.yaml +++ b/root/values.yaml @@ -700,6 +700,20 @@ apps: valuesFile: values.yaml syncWave: 0 seaweedfs-config: + valuesObject: + seaweed: + storageClassName: mlstorage + master: + replicas: 1 + volumeSizeLimitMB: 1024 + volume: + replicas: 1 + requests: + storage: 250Gi + filer: + replicas: 1 + requests: + storage: 10Gi path: seaweedfs-config namespace: seaweedfs-instance valuesFile: values.yaml diff --git a/root/values_large.yaml b/root/values_large.yaml index e98ee421..d86166f5 100644 --- a/root/values_large.yaml +++ b/root/values_large.yaml @@ -58,6 +58,24 @@ apps: size: 500Gi storageClassName: direct volumesPerServer: 1 + + seaweedfs-config: + valuesObject: + seaweed: + storageClassName: mlstorage + master: + replicas: 3 + volumeSizeLimitMB: 1024 + volume: + replicas: 3 + requests: + storage: 500Gi + filer: + replicas: 1 + requests: + storage: 30Gi + + # Secrets - OpenBao (Production: 3 replicas, 10Gi storage) openbao: valuesObject: server: diff --git a/root/values_medium.yaml b/root/values_medium.yaml index 85beaa6e..d2a00db1 100644 --- a/root/values_medium.yaml +++ b/root/values_medium.yaml @@ -152,6 +152,23 @@ apps: requests: cpu: "500m" memory: "2Gi" + + seaweedfs-config: + valuesObject: + seaweed: + storageClassName: mlstorage + master: + replicas: 1 + volumeSizeLimitMB: 1024 + volume: + replicas: 1 + requests: + storage: 500Gi + filer: + replicas: 1 + requests: + storage: 50Gi + openbao: valuesObject: server: diff --git a/root/values_small.yaml b/root/values_small.yaml index e995aec6..f7bac344 100644 --- a/root/values_small.yaml +++ b/root/values_small.yaml @@ -49,6 +49,9 @@ enabledApps: - minio-operator - minio-tenant - minio-tenant-config + - seaweedfs-crds + - seaweedfs-operator + - seaweedfs-config - openbao - openbao-config - opentelemetry-operator @@ -148,6 +151,23 @@ apps: requests: cpu: "1000m" memory: "2Gi" + + seaweedfs-config: + valuesObject: + seaweed: + storageClassName: mlstorage + master: + replicas: 1 + volumeSizeLimitMB: 1024 + volume: + replicas: 1 + requests: + storage: 250Gi + filer: + replicas: 1 + requests: + storage: 10Gi + openbao: valuesObject: server: diff --git a/sources/seaweedfs-config/values.yaml b/sources/seaweedfs-config/values.yaml index de41ca9a..5069b536 100644 --- a/sources/seaweedfs-config/values.yaml +++ b/sources/seaweedfs-config/values.yaml @@ -7,7 +7,7 @@ seaweed: volume: replicas: 1 requests: - storage: 2Gi + storage: 25Gi filer: replicas: 1 requests: From a66616fe6f11a28c61f6526f4d615ac0fbc9d2fa Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Fri, 6 Mar 2026 12:25:26 +0000 Subject: [PATCH 18/51] Only for testing: set airm to use seaweedfs --- sources/airm/0.3.5/charts/airm-api/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/airm/0.3.5/charts/airm-api/values.yaml b/sources/airm/0.3.5/charts/airm-api/values.yaml index 4213af3d..6a964ffa 100644 --- a/sources/airm/0.3.5/charts/airm-api/values.yaml +++ b/sources/airm/0.3.5/charts/airm-api/values.yaml @@ -125,7 +125,7 @@ airm: env: dbPort: 5432 rabbitmqPort: 5672 - minioUrl: http://minio.minio-tenant-default.svc.cluster.local:80 + minioUrl: http://filer-s3.seaweedfs-instance.svc.cluster.local:80 minioBucket: default-bucket prometheusUrl: http://lgtm-stack.otel-lgtm-stack.svc.cluster.local:9090 clusterAuthUrl: http://cluster-auth.cluster-auth.svc.cluster.local:8081 From e7867bf35c9a52af55b9c7049e673cbe3c4f7e6b Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Mon, 9 Mar 2026 14:56:05 +0000 Subject: [PATCH 19/51] re-enable the webhook --- root/values_large.yaml | 1 - sources/seaweedfs-operator/values.yaml | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/root/values_large.yaml b/root/values_large.yaml index d86166f5..0c1624b3 100644 --- a/root/values_large.yaml +++ b/root/values_large.yaml @@ -75,7 +75,6 @@ apps: requests: storage: 30Gi - # Secrets - OpenBao (Production: 3 replicas, 10Gi storage) openbao: valuesObject: server: diff --git a/sources/seaweedfs-operator/values.yaml b/sources/seaweedfs-operator/values.yaml index aa9bf355..d2383218 100644 --- a/sources/seaweedfs-operator/values.yaml +++ b/sources/seaweedfs-operator/values.yaml @@ -1,3 +1,3 @@ domain: # to be filled by cluster-forge app webhook: - enabled: false \ No newline at end of file + enabled: true \ No newline at end of file From df76494cdd18f5d3afcda0ed6716f4532861c43b Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Fri, 13 Mar 2026 09:51:05 +0000 Subject: [PATCH 20/51] Add an init job that creates buckets in seaweed --- .../templates/seaweedfs-init-job.yaml | 78 +++++++++++++++++++ .../templates/seaweedfs-init-rbac.yaml | 35 +++++++++ sources/seaweedfs-config/values.yaml | 8 +- 3 files changed, 120 insertions(+), 1 deletion(-) create mode 100644 sources/seaweedfs-config/templates/seaweedfs-init-job.yaml create mode 100644 sources/seaweedfs-config/templates/seaweedfs-init-rbac.yaml diff --git a/sources/seaweedfs-config/templates/seaweedfs-init-job.yaml b/sources/seaweedfs-config/templates/seaweedfs-init-job.yaml new file mode 100644 index 00000000..d07dfcc3 --- /dev/null +++ b/sources/seaweedfs-config/templates/seaweedfs-init-job.yaml @@ -0,0 +1,78 @@ +{{- if .Values.initJob.enabled }} +apiVersion: batch/v1 +kind: Job +metadata: + name: seaweedfs-init-job + namespace: seaweedfs-instance + annotations: + argocd.argoproj.io/hook: PostSync + argocd.argoproj.io/hook-delete-policy: BeforeHookCreation +spec: + ttlSecondsAfterFinished: 300 + template: + spec: + restartPolicy: Never + serviceAccountName: seaweedfs-init-job-sa + containers: + - name: seaweedfs-init + image: ghcr.io/silogen/cluster-tool:latest + command: ["/bin/bash", "-c"] + args: + - | + #!/bin/bash + set -e + + S3_ENDPOINT="${S3_ENDPOINT:-http://seaweed-s3.seaweedfs-instance.svc:8333}" + + echo "Extracting S3 credentials from secret..." + S3_CONFIG=$(kubectl get secret seaweedfs-s3-config -n seaweedfs-instance -o jsonpath='{.data.s3\.json}' | base64 -d) + + export AWS_ACCESS_KEY_ID=$(echo "$S3_CONFIG" | jq -r '.identities[] | select(.name == "ApiUser") | .credentials[0].accessKey') + export AWS_SECRET_ACCESS_KEY=$(echo "$S3_CONFIG" | jq -r '.identities[] | select(.name == "ApiUser") | .credentials[0].secretKey') + + if [ -z "$AWS_ACCESS_KEY_ID" ] || [ -z "$AWS_SECRET_ACCESS_KEY" ]; then + echo "ERROR: Failed to extract S3 credentials from secret" + exit 1 + fi + + echo "Waiting for SeaweedFS S3 service to be ready..." + for i in {1..60}; do + if curl -s --max-time 5 "${S3_ENDPOINT}" >/dev/null 2>&1; then + echo "SeaweedFS S3 service is ready and responding" + break + fi + if [ $i -eq 60 ]; then + echo "ERROR: SeaweedFS S3 service not ready after 60 attempts" + exit 1 + fi + echo "Waiting for SeaweedFS S3 to be ready... attempt $i/60" + sleep 5 + done + + aws configure set aws_access_key_id "$AWS_ACCESS_KEY_ID" + aws configure set aws_secret_access_key "$AWS_SECRET_ACCESS_KEY" + aws configure set default.region us-east-1 + + echo "Creating S3 buckets..." + + {{- range .Values.initJob.buckets }} + BUCKET_NAME="{{ .name }}" + echo "Checking if bucket '$BUCKET_NAME' exists..." + + if aws --endpoint-url="$S3_ENDPOINT" s3 ls "s3://$BUCKET_NAME" 2>/dev/null; then + echo "Bucket '$BUCKET_NAME' already exists" + else + echo "Creating bucket '$BUCKET_NAME'..." + if aws --endpoint-url="$S3_ENDPOINT" s3 mb "s3://$BUCKET_NAME"; then + echo "Successfully created bucket '$BUCKET_NAME'" + else + echo "ERROR: Failed to create bucket '$BUCKET_NAME'" + exit 1 + fi + fi + {{- end }} + + echo "All buckets initialized successfully!" + echo "Current buckets:" + aws --endpoint-url="$S3_ENDPOINT" s3 ls +{{- end }} diff --git a/sources/seaweedfs-config/templates/seaweedfs-init-rbac.yaml b/sources/seaweedfs-config/templates/seaweedfs-init-rbac.yaml new file mode 100644 index 00000000..6d24ee61 --- /dev/null +++ b/sources/seaweedfs-config/templates/seaweedfs-init-rbac.yaml @@ -0,0 +1,35 @@ +{{- if .Values.initJob.enabled }} +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: seaweedfs-init-job-sa + namespace: seaweedfs-instance +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: seaweedfs-init-job-role + namespace: seaweedfs-instance +rules: + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["pods"] + verbs: ["get", "list", "watch"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: seaweedfs-init-job-rolebinding + namespace: seaweedfs-instance +subjects: + - kind: ServiceAccount + name: seaweedfs-init-job-sa + namespace: seaweedfs-instance +roleRef: + kind: Role + name: seaweedfs-init-job-role + apiGroup: rbac.authorization.k8s.io +{{- end }} diff --git a/sources/seaweedfs-config/values.yaml b/sources/seaweedfs-config/values.yaml index 5069b536..f48352d3 100644 --- a/sources/seaweedfs-config/values.yaml +++ b/sources/seaweedfs-config/values.yaml @@ -11,4 +11,10 @@ seaweed: filer: replicas: 1 requests: - storage: 10Gi \ No newline at end of file + storage: 10Gi + +# S3 bucket initialization +initJob: + enabled: true + buckets: + - name: default-bucket \ No newline at end of file From 80a21a08ec0c8c6509d5a02e46f989c67c95d222 Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Mon, 16 Mar 2026 09:24:02 +0000 Subject: [PATCH 21/51] Fix seaweed s3 svc name in the init job --- sources/seaweedfs-config/templates/seaweedfs-init-job.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/seaweedfs-config/templates/seaweedfs-init-job.yaml b/sources/seaweedfs-config/templates/seaweedfs-init-job.yaml index d07dfcc3..d2a3ff57 100644 --- a/sources/seaweedfs-config/templates/seaweedfs-init-job.yaml +++ b/sources/seaweedfs-config/templates/seaweedfs-init-job.yaml @@ -22,7 +22,7 @@ spec: #!/bin/bash set -e - S3_ENDPOINT="${S3_ENDPOINT:-http://seaweed-s3.seaweedfs-instance.svc:8333}" + S3_ENDPOINT="${S3_ENDPOINT:-http://filer-s3.seaweedfs-instance.svc.cluster.local}" echo "Extracting S3 credentials from secret..." S3_CONFIG=$(kubectl get secret seaweedfs-s3-config -n seaweedfs-instance -o jsonpath='{.data.s3\.json}' | base64 -d) From 8a34afb5d5361fb4e8a92a7a11eb937ce84c0ae9 Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Mon, 16 Mar 2026 13:32:59 +0000 Subject: [PATCH 22/51] Add a job that can be run to mirror minio to seaweed --- .../utils/mirror-minio-to-seaweedfs-job.yaml | 241 ++++++++++++++++++ 1 file changed, 241 insertions(+) create mode 100644 scripts/utils/mirror-minio-to-seaweedfs-job.yaml diff --git a/scripts/utils/mirror-minio-to-seaweedfs-job.yaml b/scripts/utils/mirror-minio-to-seaweedfs-job.yaml new file mode 100644 index 00000000..51d74dc1 --- /dev/null +++ b/scripts/utils/mirror-minio-to-seaweedfs-job.yaml @@ -0,0 +1,241 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: minio-mirror-job-sa + namespace: default +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: minio-mirror-job-role + namespace: default +rules: + - apiGroups: [""] + resources: ["secrets", "services"] + verbs: ["get", "list", "patch"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: minio-mirror-job-rolebinding + namespace: default +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: minio-mirror-job-role +subjects: + - kind: ServiceAccount + name: minio-mirror-job-sa + namespace: default +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: minio-mirror-job-role-minio + namespace: minio-tenant-default +rules: + - apiGroups: [""] + resources: ["secrets", "services"] + verbs: ["get", "list", "patch"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: minio-mirror-job-rolebinding-minio + namespace: minio-tenant-default +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: minio-mirror-job-role-minio +subjects: + - kind: ServiceAccount + name: minio-mirror-job-sa + namespace: default +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: minio-mirror-job-role-seaweed + namespace: seaweedfs-instance +rules: + - apiGroups: [""] + resources: ["secrets", "services"] + verbs: ["get", "list"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: minio-mirror-job-rolebinding-seaweed + namespace: seaweedfs-instance +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: minio-mirror-job-role-seaweed +subjects: + - kind: ServiceAccount + name: minio-mirror-job-sa + namespace: default +--- +apiVersion: batch/v1 +kind: Job +metadata: + name: minio-to-seaweedfs-mirror-job + namespace: default +spec: + ttlSecondsAfterFinished: 300 + template: + spec: + restartPolicy: Never + serviceAccountName: minio-mirror-job-sa + containers: + - name: mirror + image: ghcr.io/silogen/cluster-tool:latest + command: ["/bin/bash", "-c"] + args: + - | + #!/bin/bash + set -e + + echo "=====================================" + echo "MinIO to SeaweedFS S3 Mirror Job" + echo "=====================================" + + # Configuration + SOURCE_BUCKET="${SOURCE_BUCKET:-default-bucket}" + TARGET_BUCKET="${TARGET_BUCKET:-default-bucket}" + MINIO_NAMESPACE="${MINIO_NAMESPACE:-minio-tenant-default}" + SEAWEEDFS_NAMESPACE="${SEAWEEDFS_NAMESPACE:-seaweedfs-instance}" + + echo "Source bucket: $SOURCE_BUCKET (MinIO)" + echo "Target bucket: $TARGET_BUCKET (SeaweedFS)" + + # Install MinIO Client + echo "" + echo "Installing MinIO Client (mc)..." + wget -q https://dl.min.io/client/mc/release/linux-amd64/mc -O /tmp/mc + chmod +x /tmp/mc + MC=/tmp/mc + + MINIO_USER=$(kubectl get secret default-user -n "$MINIO_NAMESPACE" -o jsonpath="{.data.API_ACCESS_KEY}" | base64 -d) + MINIO_PASS=$(kubectl get secret default-user -n "$MINIO_NAMESPACE" -o jsonpath="{.data.API_SECRET_KEY}" | base64 -d) + + if [ -z "$MINIO_USER" ] || [ -z "$MINIO_PASS" ]; then + echo "ERROR: Failed to retrieve MinIO configuration" + exit 1 + fi + + $MC alias set minio-source "http://minio.${MINIO_NAMESPACE}.svc.cluster.local:80" "$MINIO_USER" "$MINIO_PASS" + + # Test MinIO connection + echo "" + echo "Testing MinIO connection..." + if ! $MC ls minio-source/"$SOURCE_BUCKET" >/dev/null 2>&1; then + echo "ERROR: Cannot access MinIO bucket '$SOURCE_BUCKET'" + kubectl patch svc minio -n "$MINIO_NAMESPACE" -p '{"spec":{"type":"ClusterIP"}}' + exit 1 + fi + echo "✓ MinIO connection successful" + + # Configure SeaweedFS target + echo "" + echo "Configuring SeaweedFS target..." + + SEAWEED_ENDPOINT="http://filer-s3.${SEAWEEDFS_NAMESPACE}.svc.cluster.local" + + # Extract SeaweedFS credentials + S3_CONFIG=$(kubectl get secret seaweedfs-s3-config -n "$SEAWEEDFS_NAMESPACE" -o jsonpath='{.data.s3\.json}' | base64 -d) + SEAWEED_USER=$(echo "$S3_CONFIG" | jq -r '.identities[] | select(.name == "ApiUser") | .credentials[0].accessKey') + SEAWEED_PASS=$(echo "$S3_CONFIG" | jq -r '.identities[] | select(.name == "ApiUser") | .credentials[0].secretKey') + + if [ -z "$SEAWEED_USER" ] || [ -z "$SEAWEED_PASS" ]; then + echo "ERROR: Failed to extract SeaweedFS credentials" + kubectl patch svc minio -n "$MINIO_NAMESPACE" -p '{"spec":{"type":"ClusterIP"}}' + exit 1 + fi + + $MC alias set seaweed-target "$SEAWEED_ENDPOINT" "$SEAWEED_USER" "$SEAWEED_PASS" + + # Wait for SeaweedFS to be ready + echo "" + echo "Waiting for SeaweedFS S3 service to be ready..." + for i in {1..30}; do + if $MC ls seaweed-target >/dev/null 2>&1; then + echo "✓ SeaweedFS connection successful" + break + fi + if [ $i -eq 30 ]; then + echo "ERROR: SeaweedFS S3 service not ready after 30 attempts" + kubectl patch svc minio -n "$MINIO_NAMESPACE" -p '{"spec":{"type":"ClusterIP"}}' + exit 1 + fi + echo "Waiting for SeaweedFS S3 to be ready... attempt $i/30" + sleep 2 + done + + # Ensure target bucket exists + echo "" + echo "Ensuring target bucket exists..." + if ! $MC ls seaweed-target/"$TARGET_BUCKET" >/dev/null 2>&1; then + echo "Creating bucket '$TARGET_BUCKET' in SeaweedFS..." + $MC mb seaweed-target/"$TARGET_BUCKET" + else + echo "Bucket '$TARGET_BUCKET' already exists" + fi + + # Mirror buckets + echo "" + echo "=====================================" + echo "Starting mirror operation..." + echo "=====================================" + echo "Source: minio-source/$SOURCE_BUCKET" + echo "Target: seaweed-target/$TARGET_BUCKET" + echo "" + + # Mirror with options: + # --overwrite: Overwrite existing files + # --remove: Remove extraneous files on target + # --preserve: Preserve filesystem attributes (metadata) + $MC mirror minio-source/"$SOURCE_BUCKET" seaweed-target/"$TARGET_BUCKET" \ + --overwrite \ + --remove \ + --preserve + + MIRROR_EXIT_CODE=$? + + echo "" + echo "=====================================" + if [ $MIRROR_EXIT_CODE -eq 0 ]; then + echo "✓ Mirror operation completed successfully!" + else + echo "✗ Mirror operation failed with exit code $MIRROR_EXIT_CODE" + fi + echo "=====================================" + + # Show summary + echo "" + echo "Target bucket contents:" + $MC ls seaweed-target/"$TARGET_BUCKET" + + # Cleanup: Revert MinIO service type back to ClusterIP + echo "" + echo "Cleaning up..." + kubectl patch svc minio -n "$MINIO_NAMESPACE" -p '{"spec":{"type":"ClusterIP"}}' + + # Remove aliases + $MC alias remove minio-source + $MC alias remove seaweed-target + + echo "" + echo "Cleanup complete." + + exit $MIRROR_EXIT_CODE + env: + - name: SOURCE_BUCKET + value: "default-bucket" + - name: TARGET_BUCKET + value: "default-bucket" + - name: MINIO_NAMESPACE + value: "minio-tenant-default" + - name: SEAWEEDFS_NAMESPACE + value: "seaweedfs-instance" From e56a2f06c126d2f8737dcaa09e0e304ca6db9546 Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Mon, 16 Mar 2026 15:36:07 +0000 Subject: [PATCH 23/51] Remove unnused nodePort patches --- scripts/utils/mirror-minio-to-seaweedfs-job.yaml | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/scripts/utils/mirror-minio-to-seaweedfs-job.yaml b/scripts/utils/mirror-minio-to-seaweedfs-job.yaml index 51d74dc1..450cf0c2 100644 --- a/scripts/utils/mirror-minio-to-seaweedfs-job.yaml +++ b/scripts/utils/mirror-minio-to-seaweedfs-job.yaml @@ -125,7 +125,7 @@ spec: exit 1 fi - $MC alias set minio-source "http://minio.${MINIO_NAMESPACE}.svc.cluster.local:80" "$MINIO_USER" "$MINIO_PASS" + $MC alias set minio-source "http://minio.${MINIO_NAMESPACE}.svc.cluster.local" "$MINIO_USER" "$MINIO_PASS" # Test MinIO connection echo "" @@ -150,7 +150,6 @@ spec: if [ -z "$SEAWEED_USER" ] || [ -z "$SEAWEED_PASS" ]; then echo "ERROR: Failed to extract SeaweedFS credentials" - kubectl patch svc minio -n "$MINIO_NAMESPACE" -p '{"spec":{"type":"ClusterIP"}}' exit 1 fi @@ -166,7 +165,6 @@ spec: fi if [ $i -eq 30 ]; then echo "ERROR: SeaweedFS S3 service not ready after 30 attempts" - kubectl patch svc minio -n "$MINIO_NAMESPACE" -p '{"spec":{"type":"ClusterIP"}}' exit 1 fi echo "Waiting for SeaweedFS S3 to be ready... attempt $i/30" @@ -217,11 +215,8 @@ spec: echo "Target bucket contents:" $MC ls seaweed-target/"$TARGET_BUCKET" - # Cleanup: Revert MinIO service type back to ClusterIP - echo "" echo "Cleaning up..." - kubectl patch svc minio -n "$MINIO_NAMESPACE" -p '{"spec":{"type":"ClusterIP"}}' - + # Remove aliases $MC alias remove minio-source $MC alias remove seaweed-target From 368e233ae84fb2d67245caf0ae625e649ca8fba9 Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Tue, 17 Mar 2026 16:06:48 +0000 Subject: [PATCH 24/51] Add seaweedfs web admin component (static password for now) --- .../templates/seaweed-admin-svc.yaml | 14 ++++ .../templates/seaweedfs-admin-deployment.yaml | 83 +++++++++++++++++++ .../templates/seaweedfs-httproute-admin.yaml | 18 ++++ 3 files changed, 115 insertions(+) create mode 100644 sources/seaweedfs-config/templates/seaweed-admin-svc.yaml create mode 100644 sources/seaweedfs-config/templates/seaweedfs-admin-deployment.yaml create mode 100644 sources/seaweedfs-config/templates/seaweedfs-httproute-admin.yaml diff --git a/sources/seaweedfs-config/templates/seaweed-admin-svc.yaml b/sources/seaweedfs-config/templates/seaweed-admin-svc.yaml new file mode 100644 index 00000000..d1539a55 --- /dev/null +++ b/sources/seaweedfs-config/templates/seaweed-admin-svc.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: admin + namespace: seaweedfs-instance +spec: + ports: + - name: http + port: 80 + targetPort: 23646 + protocol: TCP + selector: + app.kubernetes.io/component: admin + app.kubernetes.io/name: seaweedfs diff --git a/sources/seaweedfs-config/templates/seaweedfs-admin-deployment.yaml b/sources/seaweedfs-config/templates/seaweedfs-admin-deployment.yaml new file mode 100644 index 00000000..d6767421 --- /dev/null +++ b/sources/seaweedfs-config/templates/seaweedfs-admin-deployment.yaml @@ -0,0 +1,83 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: seaweedfs-admin + namespace: seaweedfs-instance + labels: + app.kubernetes.io/name: seaweedfs + app.kubernetes.io/component: admin +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: seaweedfs + app.kubernetes.io/component: admin + template: + metadata: + labels: + app.kubernetes.io/name: seaweedfs + app.kubernetes.io/component: admin + spec: + initContainers: + - name: wait-for-masters + image: ghcr.io/silogen/cluster-tool:latest + command: + - 'sh' + - '-c' + - | + echo "Waiting for SeaweedFS master pods to be ready..." + until kubectl -n seaweedfs-instance get pods -l app.kubernetes.io/name=seaweedfs,app.kubernetes.io/component=master -o jsonpath='{.items[*].status.containerStatuses[0].ready}' | grep -q true; do + echo "Master pods not ready yet. Retrying in 5 seconds..." + sleep 5 + done + echo "Master pods are ready!" + env: + - name: KUBECONFIG + value: /var/run/secrets/kubernetes.io/serviceaccount/config + containers: + - name: seaweedfs-admin + image: chrislusf/seaweedfs:latest + imagePullPolicy: Always + command: + - weed + - admin + - -masters=seaweed-master.seaweedfs-instance.svc.cluster.local:9333 + - -adminUser=admin + - -adminPassword=thisistheway1234 + resources: + requests: + memory: "64Mi" + cpu: "100m" + limits: + memory: "256Mi" + cpu: "500m" + serviceAccountName: seaweedfs-admin + restartPolicy: Always +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: seaweedfs-admin + namespace: seaweedfs-instance +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: seaweedfs-admin +rules: +- apiGroups: [""] + resources: ["pods"] + verbs: ["get", "list", "watch"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: seaweedfs-admin +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: seaweedfs-admin +subjects: +- kind: ServiceAccount + name: seaweedfs-admin + namespace: seaweedfs-instance diff --git a/sources/seaweedfs-config/templates/seaweedfs-httproute-admin.yaml b/sources/seaweedfs-config/templates/seaweedfs-httproute-admin.yaml new file mode 100644 index 00000000..55970651 --- /dev/null +++ b/sources/seaweedfs-config/templates/seaweedfs-httproute-admin.yaml @@ -0,0 +1,18 @@ +apiVersion: gateway.networking.k8s.io/v1 +kind: HTTPRoute +metadata: + name: seaweed-admin + namespace: seaweedfs-instance +spec: + parentRefs: + - name: https + namespace: kgateway-system + rules: + - backendRefs: + - name: admin + port: 80 + matches: + - headers: + - type: RegularExpression + name: Host + value: "seaweed-admin\\..*" From fa4813106f4d813e461f1594f5e142c15e06c550 Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Wed, 1 Apr 2026 11:51:24 +0000 Subject: [PATCH 25/51] Read the seaweedfs admin passwd from openbao via externalsecret --- .../templates/seaweedfs-admin-deployment.yaml | 8 +++++++- .../templates/seaweedfs-es-admin.yaml | 19 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 sources/seaweedfs-config/templates/seaweedfs-es-admin.yaml diff --git a/sources/seaweedfs-config/templates/seaweedfs-admin-deployment.yaml b/sources/seaweedfs-config/templates/seaweedfs-admin-deployment.yaml index d6767421..afa46c23 100644 --- a/sources/seaweedfs-config/templates/seaweedfs-admin-deployment.yaml +++ b/sources/seaweedfs-config/templates/seaweedfs-admin-deployment.yaml @@ -38,12 +38,18 @@ spec: - name: seaweedfs-admin image: chrislusf/seaweedfs:latest imagePullPolicy: Always + env: + - name: SEAWEEDFS_ADMIN_PASSWORD + valueFrom: + secretKeyRef: + name: seaweedfs-admin-secret + key: admin-password command: - weed - admin - -masters=seaweed-master.seaweedfs-instance.svc.cluster.local:9333 - -adminUser=admin - - -adminPassword=thisistheway1234 + - -adminPassword=$(SEAWEEDFS_ADMIN_PASSWORD) resources: requests: memory: "64Mi" diff --git a/sources/seaweedfs-config/templates/seaweedfs-es-admin.yaml b/sources/seaweedfs-config/templates/seaweedfs-es-admin.yaml new file mode 100644 index 00000000..ed14451e --- /dev/null +++ b/sources/seaweedfs-config/templates/seaweedfs-es-admin.yaml @@ -0,0 +1,19 @@ +apiVersion: external-secrets.io/v1beta1 +kind: ExternalSecret +metadata: + name: default-minio-tenant-env-configuration-spec + namespace: minio-tenant-default + annotations: + argocd.argoproj.io/hook: PreSync +spec: + secretStoreRef: + kind: ClusterSecretStore + name: openbao-secret-store + refreshInterval: 5m + target: + name: seaweedfs-admin-secret + data: + - secretKey: password + remoteRef: + key: secrets/data/minio-root-password + property: value From 474ca3967e7a582280370ec40a160b9e24273b76 Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Tue, 12 May 2026 11:39:56 +0000 Subject: [PATCH 26/51] Fix: wrong namespace in es --- sources/seaweedfs-config/templates/seaweedfs-es-admin.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/seaweedfs-config/templates/seaweedfs-es-admin.yaml b/sources/seaweedfs-config/templates/seaweedfs-es-admin.yaml index ed14451e..b035223d 100644 --- a/sources/seaweedfs-config/templates/seaweedfs-es-admin.yaml +++ b/sources/seaweedfs-config/templates/seaweedfs-es-admin.yaml @@ -1,8 +1,8 @@ apiVersion: external-secrets.io/v1beta1 kind: ExternalSecret metadata: - name: default-minio-tenant-env-configuration-spec - namespace: minio-tenant-default + name: seaweed-admin-es-secret + namespace: seaweedfs-instance annotations: argocd.argoproj.io/hook: PreSync spec: From b5b73493ff9cdfad741c64aace5eb101a9a8190f Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Tue, 12 May 2026 12:07:34 +0000 Subject: [PATCH 27/51] fix: rename secret param --- sources/seaweedfs-config/templates/seaweedfs-es-admin.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/seaweedfs-config/templates/seaweedfs-es-admin.yaml b/sources/seaweedfs-config/templates/seaweedfs-es-admin.yaml index b035223d..ff260b51 100644 --- a/sources/seaweedfs-config/templates/seaweedfs-es-admin.yaml +++ b/sources/seaweedfs-config/templates/seaweedfs-es-admin.yaml @@ -13,7 +13,7 @@ spec: target: name: seaweedfs-admin-secret data: - - secretKey: password + - secretKey: admin-password remoteRef: key: secrets/data/minio-root-password property: value From 0bd066beb12d11aeb0094688dbaeb8314a1dd547 Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Tue, 12 May 2026 15:33:00 +0000 Subject: [PATCH 28/51] point aiwb to the seaweedfs s3 --- sources/aiwb/1.0.31/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/aiwb/1.0.31/values.yaml b/sources/aiwb/1.0.31/values.yaml index 8892622f..a08043d0 100644 --- a/sources/aiwb/1.0.31/values.yaml +++ b/sources/aiwb/1.0.31/values.yaml @@ -142,7 +142,7 @@ keycloak: # MinIO configuration minio: - url: "http://minio.minio-tenant-default.svc.cluster.local:80" + url: minioUrl: http://filer-s3.seaweedfs-instance.svc.cluster.local:80 bucket: "default-bucket" credentialsSecretName: "minio-credentials" accessKeyKey: "minio-access-key" From fc0f21a3223095aa56a2d5ddeb386441fdc3d337 Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Wed, 13 May 2026 08:12:27 +0000 Subject: [PATCH 29/51] Delete presync hooks which stall keycloak installation --- sources/keycloak-old/templates/es-keycloak-credentials.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/sources/keycloak-old/templates/es-keycloak-credentials.yaml b/sources/keycloak-old/templates/es-keycloak-credentials.yaml index d568f64f..4fcba9c1 100644 --- a/sources/keycloak-old/templates/es-keycloak-credentials.yaml +++ b/sources/keycloak-old/templates/es-keycloak-credentials.yaml @@ -5,8 +5,6 @@ kind: ExternalSecret metadata: name: keycloak-credentials namespace: keycloak - annotations: - argocd.argoproj.io/sync-wave: "-15" spec: data: - remoteRef: From 41f21bb66437350dda18acd105cda2189dd93c99 Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Wed, 13 May 2026 11:06:59 +0000 Subject: [PATCH 30/51] fix typo in the url parameter --- sources/aiwb/1.0.31/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/aiwb/1.0.31/values.yaml b/sources/aiwb/1.0.31/values.yaml index a08043d0..d0d592bc 100644 --- a/sources/aiwb/1.0.31/values.yaml +++ b/sources/aiwb/1.0.31/values.yaml @@ -142,7 +142,7 @@ keycloak: # MinIO configuration minio: - url: minioUrl: http://filer-s3.seaweedfs-instance.svc.cluster.local:80 + url: http://filer-s3.seaweedfs-instance.svc.cluster.local:80 bucket: "default-bucket" credentialsSecretName: "minio-credentials" accessKeyKey: "minio-access-key" From de1843c5513eab9c86dc27b287df898357d30803 Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Wed, 13 May 2026 13:32:00 +0000 Subject: [PATCH 31/51] fix: missing quotes for the s3 url --- sources/aiwb/1.0.31/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/aiwb/1.0.31/values.yaml b/sources/aiwb/1.0.31/values.yaml index d0d592bc..c3968754 100644 --- a/sources/aiwb/1.0.31/values.yaml +++ b/sources/aiwb/1.0.31/values.yaml @@ -142,7 +142,7 @@ keycloak: # MinIO configuration minio: - url: http://filer-s3.seaweedfs-instance.svc.cluster.local:80 + url: "http://filer-s3.seaweedfs-instance.svc.cluster.local:80" bucket: "default-bucket" credentialsSecretName: "minio-credentials" accessKeyKey: "minio-access-key" From a8e2815760fb95ebb23e64e0e9f5464683540710 Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Wed, 13 May 2026 13:45:21 +0000 Subject: [PATCH 32/51] fix: change s3 url for the currently used aiwb version --- sources/aiwb/1.0.3/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/aiwb/1.0.3/values.yaml b/sources/aiwb/1.0.3/values.yaml index 8892622f..c3968754 100644 --- a/sources/aiwb/1.0.3/values.yaml +++ b/sources/aiwb/1.0.3/values.yaml @@ -142,7 +142,7 @@ keycloak: # MinIO configuration minio: - url: "http://minio.minio-tenant-default.svc.cluster.local:80" + url: "http://filer-s3.seaweedfs-instance.svc.cluster.local:80" bucket: "default-bucket" credentialsSecretName: "minio-credentials" accessKeyKey: "minio-access-key" From e9d344b353c979e4c7d8761a868a068e0281730b Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Wed, 13 May 2026 14:18:10 +0000 Subject: [PATCH 33/51] disable webhook due to tls --- sources/seaweedfs-operator/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/seaweedfs-operator/values.yaml b/sources/seaweedfs-operator/values.yaml index d2383218..aa9bf355 100644 --- a/sources/seaweedfs-operator/values.yaml +++ b/sources/seaweedfs-operator/values.yaml @@ -1,3 +1,3 @@ domain: # to be filled by cluster-forge app webhook: - enabled: true \ No newline at end of file + enabled: false \ No newline at end of file From a52b5c9e3debbc836504aa190c135cc122db0ff1 Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Fri, 15 May 2026 10:32:25 +0000 Subject: [PATCH 34/51] Change mirror command, do not remove files in target seaweed bucket that are not in source minio --- scripts/utils/mirror-minio-to-seaweedfs-job.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/utils/mirror-minio-to-seaweedfs-job.yaml b/scripts/utils/mirror-minio-to-seaweedfs-job.yaml index 450cf0c2..066596e8 100644 --- a/scripts/utils/mirror-minio-to-seaweedfs-job.yaml +++ b/scripts/utils/mirror-minio-to-seaweedfs-job.yaml @@ -196,7 +196,6 @@ spec: # --preserve: Preserve filesystem attributes (metadata) $MC mirror minio-source/"$SOURCE_BUCKET" seaweed-target/"$TARGET_BUCKET" \ --overwrite \ - --remove \ --preserve MIRROR_EXIT_CODE=$? From 94b253ead9587ee11c66be1ca70931a58571d55e Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Mon, 18 May 2026 11:22:18 +0000 Subject: [PATCH 35/51] Set the seaweedfs internal svc name in the airm configure script --- sources/airm/1.0.2/charts/airm-api/files/configure.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/airm/1.0.2/charts/airm-api/files/configure.sh b/sources/airm/1.0.2/charts/airm-api/files/configure.sh index d62ec0d2..db046902 100644 --- a/sources/airm/1.0.2/charts/airm-api/files/configure.sh +++ b/sources/airm/1.0.2/charts/airm-api/files/configure.sh @@ -211,7 +211,7 @@ EOF "type": "S3", "scope": "Organization", "spec": { - "bucket_url": "http://minio.minio-tenant-default.svc.cluster.local:80", + "bucket_url": "http://filer-s3.seaweedfs-instance.svc.cluster.local:80", "access_key_name": "minio-access-key", "secret_key_name": "minio-secret-key" } From 9c4c2bab396319cdec47aa34832abf04ac1830fb Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Mon, 18 May 2026 11:58:45 +0000 Subject: [PATCH 36/51] point the open telemetry collectors to seaweed instead of minio --- .../v1.0.7/templates/collectors-metrics-rest.yaml | 6 +++--- .../otel-lgtm-stack/v1.0.7/templates/dashboards-minio.yaml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sources/otel-lgtm-stack/v1.0.7/templates/collectors-metrics-rest.yaml b/sources/otel-lgtm-stack/v1.0.7/templates/collectors-metrics-rest.yaml index 0857538b..f7116c8c 100644 --- a/sources/otel-lgtm-stack/v1.0.7/templates/collectors-metrics-rest.yaml +++ b/sources/otel-lgtm-stack/v1.0.7/templates/collectors-metrics-rest.yaml @@ -84,19 +84,19 @@ spec: scheme: http static_configs: - targets: - - minio.minio-tenant-default.svc.cluster.local + - filer-s3.seaweedfs-instance.svc.cluster.local - job_name: minio-bucket-metrics metrics_path: /minio/v2/metrics/bucket scheme: http static_configs: - targets: - - minio.minio-tenant-default.svc.cluster.local + - filer-s3.seaweedfs-instance.svc.cluster.local - job_name: minio-resource-metrics metrics_path: /minio/v2/metrics/resource scheme: http static_configs: - targets: - - minio.minio-tenant-default.svc.cluster.local + - filer-s3.seaweedfs-instance.svc.cluster.local - job_name: argocd-controller metrics_path: /metrics scheme: http diff --git a/sources/otel-lgtm-stack/v1.0.7/templates/dashboards-minio.yaml b/sources/otel-lgtm-stack/v1.0.7/templates/dashboards-minio.yaml index f2957871..29e06ddc 100644 --- a/sources/otel-lgtm-stack/v1.0.7/templates/dashboards-minio.yaml +++ b/sources/otel-lgtm-stack/v1.0.7/templates/dashboards-minio.yaml @@ -567,7 +567,7 @@ data: "options": { "mode": "exclude", "names": [ - "{__name__=\"minio_bucket_usage_total_bytes\", bucket=\"default-bucket\", instance=\"minio.minio-tenant-default.svc.cluster.local:80\", job=\"minio-bucket-metrics\", server=\"127.0.0.1:9000\", service_instance_id=\"minio.minio-tenant-default.svc.cluster.local:80\", service_name=\"minio-bucket-metrics\"}" + "{__name__=\"minio_bucket_usage_total_bytes\", bucket=\"default-bucket\", instance=\"filer-s3.seaweedfs-instance.svc.cluster.local:80\", job=\"minio-bucket-metrics\", server=\"127.0.0.1:9000\", service_instance_id=\"filer-s3.seaweedfs-instance.svc.cluster.local:80\", service_name=\"minio-bucket-metrics\"}" ], "prefix": "All except:", "readOnly": true From 4a9661d13d1598defcc9a57b5e6b58e5180b89a0 Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Tue, 26 May 2026 16:23:23 +0000 Subject: [PATCH 37/51] Update the documentation (from minio to seaweedfs) --- PRD.md | 19 +- README.md | 8 +- docs/backup_and_restore.md | 10 +- docs/cluster_size_configuration.md | 18 +- ...e_minio.md => backup_restore_seaweedfs.md} | 83 ++--- docs/manual_helm_install/README.md | 14 +- docs/manual_helm_install/components/s3.md | 329 +++++++++++------- .../components/storage_classes.md | 6 +- docs/manual_helm_install/secrets/secrets.md | 37 +- sbom/SBOM.md | 8 +- sbom/components.yaml | 25 +- 11 files changed, 317 insertions(+), 240 deletions(-) rename docs/examples/{backup_restore_minio.md => backup_restore_seaweedfs.md} (63%) diff --git a/PRD.md b/PRD.md index b510d293..afe3acfa 100644 --- a/PRD.md +++ b/PRD.md @@ -61,7 +61,7 @@ Three cluster profiles with inheritance-based resource optimization: - Single replica deployments (ArgoCD, Redis, etc.) - Reduced resource limits (ArgoCD controller: 2 CPU, 2Gi RAM) - Adds kyverno-policies-storage-local-path for RWX→RWO PVC mutation -- MinIO tenant: 2Ti storage, single server +- SeaweedFS volume storage: 2Ti, single volume server - Mix of local-path and direct storage classes - Suitable for: Local workstations, development environments @@ -69,14 +69,14 @@ Three cluster profiles with inheritance-based resource optimization: - Single replica with moderate resource allocation - Same storage policies as small (local-path support) - ArgoCD controller: 1 CPU, 2Gi RAM -- MinIO tenant: 2Ti storage +- SeaweedFS volume storage: 2Ti - Uses direct storage class consistently - Suitable for: Small teams, staging environments **Large Clusters** (10s-100s users, enterprise scale): - OpenBao HA: 3 replicas with Raft consensus - No local-path policies (assumes distributed storage like Longhorn) -- MinIO tenant: 500Gi storage +- SeaweedFS volume storage: 500Gi - Production-grade resource allocation - Uses direct storage class for all persistent volumes - Suitable for: Production deployments, multi-tenant environments @@ -130,8 +130,8 @@ The cluster-forge Application uses multi-source feature when externalValues.enab *Storage & Database:* - CNPG Operator 0.26.0 - CloudNativePG PostgreSQL operator -- MinIO Operator 7.1.1 - S3-compatible object storage operator -- MinIO Tenant 7.1.1 - Tenant deployment with default-bucket and models buckets +- SeaweedFS Operator - S3-compatible object storage operator +- SeaweedFS Config - S3 storage deployment with default-bucket, models, and datasets buckets **Layer 3: Observability** (Sync Wave -5 to -2) - Prometheus Operator CRDs 23.0.0 - Metrics infrastructure @@ -145,7 +145,8 @@ The cluster-forge Application uses multi-source feature when externalValues.enab - Keycloak (keycloak-old chart) - Enterprise IAM with AIRM realm - Custom extensions via init containers (SilogenExtensionPackage.jar) - Realm import with domain-group-authenticator - - Client secrets for: AIRM, K8s, MinIO, Gitea, ArgoCD + - Client secrets for: AIRM, K8s, S3 (SeaweedFS), Gitea, ArgoCD + - Note: S3 credentials in OpenBao still use "minio-*" paths for backward compatibility **Layer 5: AI/ML Compute Stack** (Sync Wave -3 to 0) @@ -350,7 +351,7 @@ Each major component has -config variant: - argocd-config: OIDC integration, RBAC policies, ExternalSecrets - gitea-config: Keycloak OAuth, repository templates - openbao-config: Policy definitions, secret paths, initialization scripts -- minio-tenant-config: Bucket policies, user credentials, gateway routes +- seaweedfs-config: S3 configuration, user credentials, gateway routes, bucket initialization ### Secrets Management Architecture @@ -413,7 +414,7 @@ scripts/utils/import_rabbitmq.sh # Restore queues and exchanges **Object Storage:** ```bash -scripts/utils/mirror_minio.sh # MinIO bucket synchronization +scripts/utils/mirror-minio-to-seaweedfs-job.yaml # MinIO to SeaweedFS migration job ``` ### Observability Stack @@ -458,7 +459,7 @@ Kueue manages scheduling for: - KServe Standard deployment mode - InferenceService CRD for models - Auto-scaling with KEDA -- S3 model storage via MinIO +- S3 model storage via SeaweedFS **GPU Support:** - AMD GPU Operator for device plugin diff --git a/README.md b/README.md index 7160631d..1cf1bee9 100644 --- a/README.md +++ b/README.md @@ -104,8 +104,8 @@ See [Values Inheritance Pattern](docs/values_inheritance_pattern.md) for detaile **Storage & Database:** - **CNPG Operator 0.26.0** - CloudNativePG PostgreSQL operator -- **MinIO Operator 7.1.1** - S3-compatible object storage operator -- **MinIO Tenant 7.1.1** - Tenant deployment with default-bucket and models buckets +- **SeaweedFS Operator** - S3-compatible object storage operator +- **SeaweedFS Config** - S3 storage deployment with default-bucket, models, and datasets buckets ### Layer 3: Observability - **Prometheus Operator CRDs 23.0.0** - Metrics infrastructure @@ -147,7 +147,7 @@ Three cluster profiles with inheritance-based resource optimization: - Single replica deployments - Reduced resource limits (ArgoCD controller: 2 CPU, 4Gi RAM) - Adds kyverno-policies-storage-local-path for RWX→RWO PVC mutation -- MinIO tenant: 250Gi storage +- SeaweedFS volume storage: 250Gi - Suitable for: Local workstations, development environments **Medium Clusters** (5-20 users, team production): @@ -162,7 +162,7 @@ Three cluster profiles with inheritance-based resource optimization: - Requires a minimum of 20 CPU cores - OpenBao HA: 3 replicas with Raft consensus - No local-path policies (assumes distributed storage) -- MinIO tenant: 500Gi storage +- SeaweedFS volume storage: 500Gi - Production-grade resource allocation - Suitable for: Production deployments, multi-tenant environments diff --git a/docs/backup_and_restore.md b/docs/backup_and_restore.md index 13503a5c..61a5a830 100644 --- a/docs/backup_and_restore.md +++ b/docs/backup_and_restore.md @@ -10,7 +10,7 @@ This document covers backup and restore procedures for: 1. [Database Backup & Restore (AMD Resource Manager & Keycloak)](#1-cnpg-cloudnative-postgres-backup--restore) 2. [RabbitMQ Backup & Restore](#2-rabbitmq-backup--restore) - 3. [MinIO Backup & Restore (Bucket replication and one-off filesystem backup)](#3-minio-backup--restore) + 3. [SeaweedFS Backup & Restore (S3-compatible object storage - bucket replication and one-off filesystem backup)](#3-seaweedfs-backup--restore) 4. [Longhorn Backup & Restore](#4-longhorn-backup--restore) **Note:** Each detailed command file includes specific prerequisites for that backup type. @@ -74,11 +74,11 @@ For a backup & restore example (not officially supported), see: [`backup_restore --- -## 3. MinIO Backup & Restore +## 3. SeaweedFS Backup & Restore ### Overview -MinIO supports two backup strategies: +SeaweedFS S3-compatible storage supports two backup strategies: #### Two-Way Replication (Bucket Replication) **Note:** Bucket replication and site replication are mutually exclusive. @@ -95,13 +95,13 @@ MinIO supports two backup strategies: 2. Create a timestamped backup directory 3. Use `mc mirror` to copy all bucket contents to the backup location 4. Provide verification commands to compare file counts -5. Provide restore commands to mirror files back to MinIO +5. Provide restore commands to mirror files back to SeaweedFS **Benefits:** Point-in-time snapshots stored on separate storage ### Detailed Commands -For a backup & restore example (not officially supported), see:: [`backup_restore_minio.md`](examples/backup_restore_minio.md) +For a backup & restore example (not officially supported), see: [`backup_restore_seaweedfs.md`](examples/backup_restore_seaweedfs.md) --- diff --git a/docs/cluster_size_configuration.md b/docs/cluster_size_configuration.md index 11da7231..9d16b76e 100644 --- a/docs/cluster_size_configuration.md +++ b/docs/cluster_size_configuration.md @@ -40,7 +40,7 @@ cluster-forge/ **Application Configuration**: - **ArgoCD**: Single replica, 2 CPU / 2Gi RAM limits -- **MinIO Tenant**: 2Ti storage, single server +- **SeaweedFS**: 2Ti volume storage, single volume server - **OpenBao**: Single instance (no HA), 5Gi storage - **Storage Policies**: Includes `kyverno-policies-storage-local-path` for RWX→RWO conversion - **Storage Classes**: Mix of local-path and direct storage classes @@ -61,7 +61,7 @@ cluster-forge/ **Application Configuration**: - **ArgoCD**: Single replica, 1 CPU / 2Gi RAM limits -- **MinIO Tenant**: 2Ti storage, single server +- **SeaweedFS**: 2Ti volume storage, single volume server - **OpenBao**: Single instance (no HA), 5Gi storage - **Storage Policies**: Includes `kyverno-policies-storage-local-path` for RWX→RWO conversion - **Storage Classes**: Direct storage class consistently @@ -82,7 +82,7 @@ cluster-forge/ **Application Configuration**: - **ArgoCD**: Single replica, production-ready resources -- **MinIO Tenant**: 500Gi storage, single server (external HA S3 recommended) +- **SeaweedFS**: 500Gi volume storage, single volume server (external HA S3 recommended) - **OpenBao**: 3 replicas with Raft HA consensus - **Storage Policies**: No local-path policies (assumes distributed storage) - **OTEL LGTM Stack**: 50Gi storage per component (Tempo, Loki, Mimir), 10Gi Grafana @@ -149,13 +149,13 @@ Later values override earlier ones, allowing size files to contain only the diff | KEDA | Base config | Base config | Base config | Event-driven autoscaling | | KServe | Base config | Base config | Base config | ML model serving | | Kyverno | Base policies | Base + storage-local-path | Base policies only | Policy engine | -### MinIO Tenant Scaling +### SeaweedFS Scaling -| Size | Servers | Storage | Buckets | Notes | -|------|---------|---------|---------|-------| -| Small | 1 | 2Ti | default-bucket, models | Single server, local-path storage | -| Medium | 1 | 2Ti | default-bucket, models | Single server, direct storage | -| Large | 1 | 500Gi | default-bucket, models | Single server, external HA S3 recommended | +| Size | Volume Servers | Storage | Buckets | Notes | +|------|----------------|---------|---------|-------| +| Small | 1 | 2Ti | default-bucket, models, datasets | Single volume server, local-path storage | +| Medium | 1 | 2Ti | default-bucket, models, datasets | Single volume server, direct storage | +| Large | 1 | 500Gi | default-bucket, models, datasets | Single volume server, external HA S3 recommended | ### OpenBao Scaling diff --git a/docs/examples/backup_restore_minio.md b/docs/examples/backup_restore_seaweedfs.md similarity index 63% rename from docs/examples/backup_restore_minio.md rename to docs/examples/backup_restore_seaweedfs.md index 85c04eb9..47259e94 100644 --- a/docs/examples/backup_restore_minio.md +++ b/docs/examples/backup_restore_seaweedfs.md @@ -1,6 +1,6 @@ -# MinIO Backup & Restore Commands +# SeaweedFS Backup & Restore Commands -This document provides the step-by-step commands for MinIO backup and restore operations. +This document provides the step-by-step commands for SeaweedFS backup and restore operations. ⚠️ Important Disclaimers - This is only an example script only, adjust paths and commands as needed for your system. @@ -12,11 +12,11 @@ This document provides the step-by-step commands for MinIO backup and restore op ## Prerequisites - Shell access to a machine with `kubectl` configured for the target Kubernetes cluster -- MinIO client (`mc`) installed on your local machine, **OR** access to run commands inside the `minio` pod in the MinIO tenant namespace +- MinIO client (`mc`) installed on your local machine (SeaweedFS S3 API is compatible with `mc`) - To install `mc` locally: [https://min.io/docs/minio/linux/reference/minio-mc.html](https://min.io/docs/minio/linux/reference/minio-mc.html) - - To run inside the pod: `kubectl exec -it -n -- sh` + - The MinIO client works with any S3-compatible storage, including SeaweedFS - For NFS backups: Access to mount NFS shares (requires `sudo` privileges) -- For bucket replication: Access to both source and destination MinIO endpoints +- For bucket replication: Access to both source and destination S3-compatible endpoints - The `jq` command-line JSON processor (for replication resync commands) ## 1. Setup Two-Way Replication (Bucket replication) @@ -25,15 +25,16 @@ This document provides the step-by-step commands for MinIO backup and restore op These commands are run from a local machine with MinIO client (`mc`) installed. -### Step 1: Configure MinIO Aliases +### Step 1: Configure S3 Aliases ```bash -# Set up source and destination MinIO endpoints -# Replace SOURCE_MINIO_ENDPOINT, DEST_MINIO_ENDPOINT, ACCESS_KEY, and SECRET_KEY with your values -mc alias set source https://SOURCE_MINIO_ENDPOINT/ ACCESS_KEY SECRET_KEY -mc alias set dest https://DEST_MINIO_ENDPOINT/ ACCESS_KEY SECRET_KEY - -# Example: -# mc alias set dest https://minio.\/ myuser mypassword +# Set up source and destination S3 endpoints +# Replace SOURCE_S3_ENDPOINT, DEST_S3_ENDPOINT, ACCESS_KEY, and SECRET_KEY with your values +mc alias set source https://SOURCE_S3_ENDPOINT/ ACCESS_KEY SECRET_KEY +mc alias set dest https://DEST_S3_ENDPOINT/ ACCESS_KEY SECRET_KEY + +# Example for SeaweedFS: +# mc alias set source https://seaweed.\/ myuser mypassword +# mc alias set dest https://seaweed-backup.\/ myuser mypassword ``` ### Step 2: Enable Versioning (Required for Replication) @@ -58,9 +59,9 @@ mc replicate add dest/DEST_BUCKET_NAME/ \ --remote-bucket 'https://ACCESS_KEY:SECRET_KEY@SOURCE_MINIO_ENDPOINT/SOURCE_BUCKET_NAME' \ --replicate "delete,delete-marker,existing-objects" -# Example: +# Example for SeaweedFS: # mc replicate add source/my-source-bucket/ \ -# --remote-bucket 'https://myuser:mypassword@minio.example.com/my-dest-bucket' \ +# --remote-bucket 'https://myuser:mypassword@seaweed.example.com/my-dest-bucket' \ # --replicate "delete,delete-marker,existing-objects" ``` @@ -74,54 +75,54 @@ mc replicate resync start dest/DEST_BUCKET_NAME/ --remote-bucket $(mc replicate # mc replicate resync start dest/my-dest-bucket/ --remote-bucket $(mc replicate status dest/my-dest-bucket/ --json | jq -r '.remoteTargets[].arn') ``` -## 2. MinIO One-Time Backup to Filesystem (e.g. local or NFS) +## 2. SeaweedFS One-Time Backup to Filesystem (e.g. local or NFS) **Note:** This example uses NFS. If using local filesystem, skip the mount steps. ### Create mount point ```bash # Creates the directory where NFS will be mounted -sudo mkdir -p /mnt/minio-backup +sudo mkdir -p /mnt/s3-backup ``` ### Mount NFS share ```bash # Mounts the NFS share to the local directory -# Replace NFS_SERVER and /path/to/minio/backup with your NFS server details -sudo mount -t nfs NFS_SERVER:/path/to/minio/backup /mnt/minio-backup +# Replace NFS_SERVER and /path/to/s3/backup with your NFS server details +sudo mount -t nfs NFS_SERVER:/path/to/s3/backup /mnt/s3-backup ``` ### Create Backup ```bash # Create backup directory with timestamp # This creates a unique directory for this backup using current date and time -mkdir -p /mnt/minio-backup/backup-$(date +%Y-%m-%d_%H-%M) +mkdir -p /mnt/s3-backup/backup-$(date +%Y-%m-%d_%H-%M) -# Set up source MinIO endpoints -# Use "CONSOLE_ACCESS_KEY" from the default-user secret (has required permissions) -mc alias set source https://SOURCE_MINIO_ENDPOINT/ ACCESS_KEY SECRET_KEY +# Set up source SeaweedFS S3 endpoint +# Get credentials from the seaweedfs-s3-config secret (ApiUser identity) +mc alias set source https://SOURCE_S3_ENDPOINT/ ACCESS_KEY SECRET_KEY -# Example: -# mc alias set source https://minio.\/ myuser mypassword +# Example for in-cluster SeaweedFS: +# mc alias set source https://seaweed.\/ myuser mypassword # Mirror bucket contents to NFS -# This copies all files from the MinIO bucket to the NFS backup location -mc mirror source/BUCKET_NAME/ /mnt/minio-backup/backup-$(date +%Y-%m-%d_%H-%M)/BUCKET_NAME/ --overwrite +# This copies all files from the S3 bucket to the NFS backup location +mc mirror source/BUCKET_NAME/ /mnt/s3-backup/backup-$(date +%Y-%m-%d_%H-%M)/BUCKET_NAME/ --overwrite # Example: -# mc mirror source/default-bucket/ /mnt/minio-backup/backup-$(date +%Y-%m-%d_%H-%M)/default-bucket/ --overwrite +# mc mirror source/default-bucket/ /mnt/s3-backup/backup-$(date +%Y-%m-%d_%H-%M)/default-bucket/ --overwrite # Unmount when done # Safely disconnects the NFS share -sudo umount /mnt/minio-backup +sudo umount /mnt/s3-backup ``` ### Verify Backup ```bash # Re-mount and check # Reconnects to the NFS share to verify the backup -sudo mount -t nfs NFS_SERVER:/path/to/minio/backup /mnt/minio-backup -ls -la /mnt/minio-backup/backup-YYYY-MM-DD_HH-MM/BUCKET_NAME/ +sudo mount -t nfs NFS_SERVER:/path/to/s3/backup /mnt/s3-backup +ls -la /mnt/s3-backup/backup-YYYY-MM-DD_HH-MM/BUCKET_NAME/ # Compare file counts # Verify the backup by comparing the number of files @@ -129,26 +130,26 @@ ls -la /mnt/minio-backup/backup-YYYY-MM-DD_HH-MM/BUCKET_NAME/ mc ls --recursive source/BUCKET_NAME/ | wc -l # Check backup -find /mnt/minio-backup/backup-YYYY-MM-DD_HH-MM/BUCKET_NAME/ -type f | wc -l +find /mnt/s3-backup/backup-YYYY-MM-DD_HH-MM/BUCKET_NAME/ -type f | wc -l ``` ### Restore from NFS Backup ```bash # Mount NFS share # Connects to the NFS share containing backups -sudo mount -t nfs NFS_SERVER:/path/to/minio/backup /mnt/minio-backup +sudo mount -t nfs NFS_SERVER:/path/to/s3/backup /mnt/s3-backup # List available backups # Shows all backup directories to help you choose which one to restore -ls -la /mnt/minio-backup/ +ls -la /mnt/s3-backup/ # Restore from specific backup date -# Mirrors files from the backup back to the MinIO bucket +# Mirrors files from the backup back to the S3 bucket # Replace YYYY-MM-DD_HH-MM with your actual backup directory name -mc mirror /mnt/minio-backup/backup-YYYY-MM-DD_HH-MM/BUCKET_NAME/ source/BUCKET_NAME/ --overwrite +mc mirror /mnt/s3-backup/backup-YYYY-MM-DD_HH-MM/BUCKET_NAME/ source/BUCKET_NAME/ --overwrite # Example: -# mc mirror /mnt/minio-backup/backup-2024-11-24_14-30/default-bucket/ source/default-bucket/ --overwrite +# mc mirror /mnt/s3-backup/backup-2024-11-24_14-30/default-bucket/ source/default-bucket/ --overwrite # Verify restoration # Lists files in the bucket to confirm restoration @@ -156,13 +157,13 @@ mc ls source/BUCKET_NAME/ # Unmount when done # Safely disconnects the NFS share -sudo umount /mnt/minio-backup +sudo umount /mnt/s3-backup ``` ## What These Commands Do **Two-Way Replication:** -1. Sets up aliases for source and destination MinIO endpoints +1. Sets up aliases for source and destination S3-compatible endpoints 2. Enables versioning on both buckets (required for replication) 3. Creates bidirectional replication rules 4. Provides a command to resync from backup when source fails @@ -172,8 +173,10 @@ sudo umount /mnt/minio-backup 2. Creates a timestamped backup directory 3. Uses `mc mirror` to copy all bucket contents to the backup location 4. Provides verification commands to compare file counts -5. Provides restore commands to mirror files back to MinIO +5. Provides restore commands to mirror files back to SeaweedFS **Benefits:** - **Replication:** Continuous, automatic backup with minimal data loss - **One-Time Backup:** Point-in-time snapshots stored on separate storage + +**Note:** SeaweedFS provides S3-compatible storage, so the MinIO client (`mc`) works seamlessly for backup and restore operations. diff --git a/docs/manual_helm_install/README.md b/docs/manual_helm_install/README.md index 0c3c5b2a..eae0504c 100644 --- a/docs/manual_helm_install/README.md +++ b/docs/manual_helm_install/README.md @@ -80,7 +80,7 @@ These components can be replaced with your own implementations: |-----------|-------------------------|-----------------|--------------| | **Database** | CloudNativePG PostgreSQL clusters | ✅ Yes - Any PostgreSQL 14+ | [db.md](components/db.md) | | **Gateway Controller** | kgateway (Gateway API) | ✅ Yes - Any Gateway API controller | [gateway.md](components/gateway.md) | -| **Object Storage** | MinIO | ✅ Yes - Any S3-compatible storage | [s3.md](components/s3.md) | +| **Object Storage** | SeaweedFS | ✅ Yes - Any S3-compatible storage | [s3.md](components/s3.md) | | **StorageClasses** | local-path (rancher.io) | ✅ Yes - Any CSI provisioner | [storage_classes.md](components/storage_classes.md) | | **Secrets Management** | Direct Kubernetes Secrets | ✅ Yes - ExternalSecrets, Vault, etc. | [secrets.md](secrets/secrets.md) | | **LoadBalancer** | MetalLB | ✅ Yes - Cloud LB, HAProxy, etc. | — | @@ -173,7 +173,7 @@ AIWB deployment consists of three phases that must be completed in order: **Components to deploy:** 1. **Namespaces** - - Create required namespaces: `aiwb`, `keycloak`, `workbench`, `minio-tenant-default`, `cluster-auth`, and others + - Create required namespaces: `aiwb`, `keycloak`, `workbench`, `seaweedfs-instance`, `cluster-auth`, and others 2. **Secrets** *[Pluggable]* - Create all required secrets (see [Secrets Reference](#secrets-management)) @@ -192,8 +192,8 @@ AIWB deployment consists of three phases that must be completed in order: 5. **Object Storage** *[Pluggable]* - Required buckets: `default-bucket`, `models`, `datasets` - - Reference: MinIO operator + tenant in `minio-tenant-default` - - Alternative: AWS S3, Azure Blob, GCS, or any S3-compatible service + - Reference: SeaweedFS operator + Seaweed custom resource in `seaweedfs-instance` + - Alternative: AWS S3, Azure Blob, GCS, MinIO, or any S3-compatible service - See [s3.md](components/s3.md) ### Phase 3: Application Layer @@ -250,7 +250,7 @@ See [gateway.md](components/gateway.md) for configuration instructions. ### Object Storage (S3-compatible) -**Reference Implementation:** MinIO operator with a tenant providing three buckets (`default-bucket`, `models`, `datasets`). +**Reference Implementation:** SeaweedFS operator with a Seaweed custom resource providing three buckets (`default-bucket`, `models`, `datasets`). **To use your own S3-compatible storage:** @@ -343,8 +343,8 @@ Complete list of components and their versions: | Component | Version | Namespace | Required | Alternative | |-----------|---------|-----------|----------|-------------| -| MinIO Operator | v7.1.1 | `minio-operator` | ❌ No | AWS S3, Azure Blob, GCS | -| MinIO Tenant | v7.1.1 | `minio-tenant-default` | ❌ No | External S3 service | +| SeaweedFS Operator | latest | `seaweedfs-operator` | ❌ No | AWS S3, Azure Blob, GCS, MinIO | +| SeaweedFS Config | latest | `seaweedfs-instance` | ❌ No | External S3 service | | PostgreSQL (AIWB) | 14+ via CNPG | `aiwb` | ✅ Yes* | External PostgreSQL | | PostgreSQL (Keycloak) | 14+ via CNPG | `keycloak` | ✅ Yes* | External PostgreSQL | diff --git a/docs/manual_helm_install/components/s3.md b/docs/manual_helm_install/components/s3.md index 4f8a0580..3ed15de0 100644 --- a/docs/manual_helm_install/components/s3.md +++ b/docs/manual_helm_install/components/s3.md @@ -1,19 +1,23 @@ -# Object Storage (MinIO / S3) +# Object Storage (SeaweedFS / S3) AIWB and the workbench need an S3-compatible object store. Two deployment modes are supported: -- **In-cluster mode (default)** — install the MinIO Operator, a single-pool - MinIO `Tenant` (`default-minio-tenant`), and the Tenant configuration - chart. +- **In-cluster mode (default)** — install the SeaweedFS Operator and a + `Seaweed` custom resource with master, volume, and filer components. - **Pluggable mode** — point AIWB / workbench at an external S3-compatible endpoint and install an in-cluster redirect Service so consumers that - hardcode the in-cluster MinIO URL still reach the external endpoint. + hardcode the in-cluster SeaweedFS URL still reach the external endpoint. -In both modes the `minio-credentials` Secrets that AIWB / workbench pods -authenticate with live in Kubernetes Secrets that you create with -`kubectl create secret generic`. No static `secrets-*.yaml` file is -required. +In both modes the credential Secrets that AIWB / workbench pods +authenticate with are created via ExternalSecrets from OpenBao (in full +cluster-forge deployments) or via `kubectl create secret generic` (in manual +installations). No static `secrets-*.yaml` file is required. + +**Note on credential compatibility:** For backward compatibility with MinIO, +the secret keys in OpenBao still reference `minio-*` paths (e.g., +`secrets/data/minio-api-access-key`). These same credentials are used by +SeaweedFS via the `seaweedfs-s3-config` secret. These instructions assume you have the cluster-forge sources available locally and that `SOURCES_DIR` points at the `sources/` directory: @@ -23,17 +27,27 @@ git clone --depth 1 https://github.com/silogen/cluster-forge.git /tmp/cluster-fo export SOURCES_DIR=/tmp/cluster-forge/sources ``` -The `aiwb`, `workbench`, and `minio-tenant-default` namespaces must exist +The `aiwb`, `workbench`, and `seaweedfs-instance` namespaces must exist before creating Secrets in them: ```bash -for ns in aiwb workbench minio-tenant-default; do +for ns in aiwb workbench seaweedfs-instance; do kubectl create namespace "$ns" --dry-run=client -o yaml | kubectl apply -f - done ``` ## In-cluster mode (default) +### SeaweedFS Architecture + +SeaweedFS consists of three main components: + +- **Master servers** — Store metadata and coordinate the cluster (default: 1 replica) +- **Volume servers** — Store actual object data (default: 1 replica with 25Gi storage) +- **Filer** — Provides S3 API compatibility and stores file metadata (default: 1 replica with 10Gi metadata storage) + +The filer uses LevelDB2 for metadata storage and exposes the S3 API on port 8333. + ### Environment variables Set these before running the commands below. Defaults are placeholders; @@ -41,123 +55,173 @@ replace for any non-dev install. | Variable | Default | Used for | |---|---|---| -| `MINIO_API_ACCESS_KEY` | `placeholder` | `default-user.API_ACCESS_KEY` + `minio-credentials.minio-access-key` | -| `MINIO_API_SECRET_KEY` | `placeholder` | `default-user.API_SECRET_KEY` + `minio-credentials.minio-secret-key` | -| `MINIO_CONSOLE_ACCESS_KEY` | `placeholder` | `default-user.CONSOLE_ACCESS_KEY` (web console login) | -| `MINIO_CONSOLE_SECRET_KEY` | `placeholder` | `default-user.CONSOLE_SECRET_KEY` | -| `DEFAULT_STORAGE_CLASS_NAME` | `default` | PVC storage class for MinIO Tenant volumes | -| `DOMAIN` | — | Cluster domain (used by the Tenant configuration chart) | - -The API key pair must match across `default-user` (consumed by the Tenant -at bootstrap) and `minio-credentials` (consumed by AIWB / workbench pods), -otherwise AIWB cannot authenticate against the Tenant. Driving both Secrets -from the same `MINIO_API_*` env vars guarantees they stay in sync. +| `S3_API_ACCESS_KEY` | `placeholder` | `seaweedfs-s3-config.ApiUser` credentials | +| `S3_API_SECRET_KEY` | `placeholder` | `seaweedfs-s3-config.ApiUser` credentials | +| `S3_CONSOLE_ACCESS_KEY` | `placeholder` | `seaweedfs-s3-config.Console` credentials (web console login) | +| `S3_CONSOLE_SECRET_KEY` | `placeholder` | `seaweedfs-s3-config.Console` credentials | +| `DEFAULT_STORAGE_CLASS_NAME` | `mlstorage` | PVC storage class for SeaweedFS volumes | +| `DOMAIN` | — | Cluster domain (used by the SeaweedFS configuration chart) | + +The API key pair is used by AIWB / workbench pods to authenticate against the +S3 API. The console key pair is for web UI access. ### 1. Create credential Secrets +For manual installations without OpenBao, create the secrets directly: + ```bash +# Create a properly formatted s3.json config file +cat > /tmp/s3-config.json <` (configured by the `domain` value). + ## Pluggable mode External S3-compatible object storage instead of the in-cluster Operator + -Tenant. The MinIO Operator, Tenant, and Tenant configuration chart are not -installed; only the `minio-credentials` Secrets and an in-cluster redirect -Service are created. +Seaweed resource. The SeaweedFS Operator and Seaweed resource are not +installed; only the credential Secrets and an in-cluster redirect Service +are created. ### Prerequisites -- S3-compatible storage reachable from the cluster (MinIO, AWS S3, GCS via - S3 gateway, etc.) +- S3-compatible storage reachable from the cluster (AWS S3, GCS via S3 + gateway, external MinIO, etc.) - Three buckets pre-created with the exact names AIWB and the workbench expect: - `default-bucket` @@ -169,74 +233,63 @@ Service are created. | Variable | Default | Used for | |---|---|---| -| `MINIO_HOST` | `host.docker.internal` | External MinIO host (used for AIWB `minio.url`) | -| `MINIO_PORT` | `9999` | External MinIO host port | -| `MINIO_HOST_IP` | `192.168.127.254` | IP that backs the redirect Endpoints | -| `MINIO_BUCKET` | `default-bucket` | AIWB default bucket name | -| `MINIO_API_ACCESS_KEY` | `placeholder` | `minio-credentials.minio-access-key` | -| `MINIO_API_SECRET_KEY` | `placeholder` | `minio-credentials.minio-secret-key` | +| `S3_HOST` | `host.docker.internal` | External S3 host (used for AIWB `minio.url`) | +| `S3_PORT` | `9000` | External S3 host port | +| `S3_HOST_IP` | `192.168.127.254` | IP that backs the redirect Endpoints | +| `S3_BUCKET` | `default-bucket` | AIWB default bucket name | +| `S3_API_ACCESS_KEY` | `placeholder` | `minio-credentials.minio-access-key` | +| `S3_API_SECRET_KEY` | `placeholder` | `minio-credentials.minio-secret-key` | -`MINIO_CONSOLE_*` are unused in this mode (no in-cluster Tenant to -bootstrap). The default `MINIO_HOST_IP` matches Rancher Desktop; override -for kind / minikube. +The default `S3_HOST_IP` matches Rancher Desktop; override for kind / minikube. -### 1. Skip the MinIO Operator and Tenant +### 1. Skip the SeaweedFS Operator and Seaweed resource -In pluggable mode the MinIO Operator, Tenant, and Tenant configuration chart -are not installed. The `default-user` Secret is also not needed (no -in-cluster Tenant to bootstrap). +In pluggable mode the SeaweedFS Operator and Seaweed custom resource are not +installed. The `seaweedfs-s3-config` Secret is also not needed (no in-cluster +instance to configure). ### 2. Create credential Secrets ```bash for ns in aiwb workbench; do kubectl create secret generic minio-credentials -n "${ns}" \ - --from-literal=minio-access-key="${MINIO_API_ACCESS_KEY}" \ - --from-literal=minio-secret-key="${MINIO_API_SECRET_KEY}" \ + --from-literal=minio-access-key="${S3_API_ACCESS_KEY}" \ + --from-literal=minio-secret-key="${S3_API_SECRET_KEY}" \ --dry-run=client -o yaml | kubectl apply -f - done ``` ### 3. Create the in-cluster redirect Service -Some in-cluster consumers (e.g. aim-performance via `BUCKET_STORAGE_HOST` -— see `EXTERNAL_FIXES.md`) hardcode the in-cluster MinIO URL. A -selectorless Service + Endpoints pair routes those calls to the external -host: +Some in-cluster consumers (e.g. aim-performance via `BUCKET_STORAGE_HOST`) +hardcode the in-cluster S3 URL. A selectorless Service + Endpoints pair +routes those calls to the external host: ```bash -# Remove any pre-existing minio Service / Endpoints. If a previous install -# ran in in-cluster mode, the MinIO Operator created a selector-backed -# Service named "minio" — applying a selectorless Service on top of it -# produces server-side-apply conflicts. Both deletes are no-ops on a fresh -# cluster thanks to --ignore-not-found. -kubectl delete service minio -n minio-tenant-default --ignore-not-found -kubectl delete endpoints minio -n minio-tenant-default --ignore-not-found - kubectl apply -f - < Date: Wed, 27 May 2026 08:50:34 +0000 Subject: [PATCH 38/51] Remove minio sources from clusterforge (replaced by seaweedfs) --- .../secrets/secrets-aiwb-standalone.yaml | 5 +- .../secrets/secrets-aiwb.yaml | 6 +- root/values.yaml | 51 - root/values_large.yaml | 13 - root/values_medium.yaml | 35 - root/values_small.yaml | 26 - sources/aiwb/1.0.31/values.yaml | 8 +- .../aiwb-external-secrets/0.1.2/values.yaml | 9 +- sources/kaiwo-config/minio-credentials.yaml | 2 + sources/minio-operator/7.0.0/.helmignore | 22 - sources/minio-operator/7.0.0/Chart.yaml | 17 - sources/minio-operator/7.0.0/README.md | 45 - .../7.0.0/templates/_helpers.tpl | 37 - .../7.0.0/templates/minio.min.io_tenants.yaml | 5745 ---------------- .../7.0.0/templates/operator-clusterrole.yaml | 183 - .../operator-clusterrolebinding.yaml | 13 - .../7.0.0/templates/operator-deployment.yaml | 67 - .../7.0.0/templates/operator-service.yaml | 14 - .../templates/operator-serviceaccount.yaml | 10 - .../7.0.0/templates/sts-service.yaml | 12 - .../templates/sts.min.io_policybindings.yaml | 133 - sources/minio-operator/7.0.0/values.yaml | 187 - sources/minio-operator/7.1.1/.helmignore | 22 - sources/minio-operator/7.1.1/Chart.yaml | 17 - sources/minio-operator/7.1.1/README.md | 45 - .../7.1.1/templates/_helpers.tpl | 37 - .../7.1.1/templates/minio.min.io_tenants.yaml | 5753 ----------------- .../7.1.1/templates/operator-clusterrole.yaml | 183 - .../operator-clusterrolebinding.yaml | 13 - .../7.1.1/templates/operator-deployment.yaml | 68 - .../7.1.1/templates/operator-service.yaml | 14 - .../templates/operator-serviceaccount.yaml | 10 - .../7.1.1/templates/sts-service.yaml | 12 - .../templates/sts.min.io_policybindings.yaml | 133 - sources/minio-operator/7.1.1/values.yaml | 187 - sources/minio-operator/source.yaml | 4 - sources/minio-tenant-config/Chart.yaml | 4 - .../templates/minio-create-user-cm.yaml | 23 - .../templates/minio-create-user-cronjob.yaml | 49 - .../templates/minio-es-default-user.yaml | 33 - .../templates/minio-es-env-config.yaml | 46 - .../templates/minio-httproute.yaml | 27 - .../templates/minio-rbac.yaml | 36 - .../templates/minio-secret-example.yaml | 13 - .../minio-tls-clustersecretstore.yaml | 71 - sources/minio-tenant-config/values.yaml | 6 - sources/minio-tenant/7.0.0/.helmignore | 22 - sources/minio-tenant/7.0.0/Chart.yaml | 17 - sources/minio-tenant/7.0.0/README.md | 31 - .../minio-tenant/7.0.0/templates/_helpers.tpl | 13 - .../7.0.0/templates/api-ingress.yaml | 57 - .../7.0.0/templates/console-ingress.yaml | 41 - .../7.0.0/templates/extra-resources.yaml | 4 - .../templates/kes-configuration-secret.yaml | 9 - .../7.0.0/templates/tenant-configuration.yaml | 29 - .../minio-tenant/7.0.0/templates/tenant.yaml | 211 - sources/minio-tenant/7.0.0/values.yaml | 515 -- sources/minio-tenant/7.1.1/.helmignore | 22 - sources/minio-tenant/7.1.1/Chart.yaml | 17 - sources/minio-tenant/7.1.1/README.md | 31 - .../minio-tenant/7.1.1/templates/_helpers.tpl | 13 - .../7.1.1/templates/api-ingress.yaml | 57 - .../minio-tenant/7.1.1/templates/checks.yaml | 24 - .../7.1.1/templates/console-ingress.yaml | 41 - .../7.1.1/templates/extra-resources.yaml | 4 - .../templates/kes-configuration-secret.yaml | 9 - .../7.1.1/templates/tenant-configuration.yaml | 22 - .../minio-tenant/7.1.1/templates/tenant.yaml | 211 - sources/minio-tenant/7.1.1/values.yaml | 510 -- sources/minio-tenant/source.yaml | 4 - sources/minio-tenant/values_ha.yaml | 26 - .../v1.0.7/templates/dashboards-minio.yaml | 657 -- 72 files changed, 18 insertions(+), 16025 deletions(-) delete mode 100644 sources/minio-operator/7.0.0/.helmignore delete mode 100644 sources/minio-operator/7.0.0/Chart.yaml delete mode 100644 sources/minio-operator/7.0.0/README.md delete mode 100644 sources/minio-operator/7.0.0/templates/_helpers.tpl delete mode 100644 sources/minio-operator/7.0.0/templates/minio.min.io_tenants.yaml delete mode 100644 sources/minio-operator/7.0.0/templates/operator-clusterrole.yaml delete mode 100644 sources/minio-operator/7.0.0/templates/operator-clusterrolebinding.yaml delete mode 100644 sources/minio-operator/7.0.0/templates/operator-deployment.yaml delete mode 100644 sources/minio-operator/7.0.0/templates/operator-service.yaml delete mode 100644 sources/minio-operator/7.0.0/templates/operator-serviceaccount.yaml delete mode 100644 sources/minio-operator/7.0.0/templates/sts-service.yaml delete mode 100644 sources/minio-operator/7.0.0/templates/sts.min.io_policybindings.yaml delete mode 100644 sources/minio-operator/7.0.0/values.yaml delete mode 100644 sources/minio-operator/7.1.1/.helmignore delete mode 100644 sources/minio-operator/7.1.1/Chart.yaml delete mode 100644 sources/minio-operator/7.1.1/README.md delete mode 100644 sources/minio-operator/7.1.1/templates/_helpers.tpl delete mode 100644 sources/minio-operator/7.1.1/templates/minio.min.io_tenants.yaml delete mode 100644 sources/minio-operator/7.1.1/templates/operator-clusterrole.yaml delete mode 100644 sources/minio-operator/7.1.1/templates/operator-clusterrolebinding.yaml delete mode 100644 sources/minio-operator/7.1.1/templates/operator-deployment.yaml delete mode 100644 sources/minio-operator/7.1.1/templates/operator-service.yaml delete mode 100644 sources/minio-operator/7.1.1/templates/operator-serviceaccount.yaml delete mode 100644 sources/minio-operator/7.1.1/templates/sts-service.yaml delete mode 100644 sources/minio-operator/7.1.1/templates/sts.min.io_policybindings.yaml delete mode 100644 sources/minio-operator/7.1.1/values.yaml delete mode 100644 sources/minio-operator/source.yaml delete mode 100644 sources/minio-tenant-config/Chart.yaml delete mode 100644 sources/minio-tenant-config/templates/minio-create-user-cm.yaml delete mode 100644 sources/minio-tenant-config/templates/minio-create-user-cronjob.yaml delete mode 100644 sources/minio-tenant-config/templates/minio-es-default-user.yaml delete mode 100644 sources/minio-tenant-config/templates/minio-es-env-config.yaml delete mode 100644 sources/minio-tenant-config/templates/minio-httproute.yaml delete mode 100644 sources/minio-tenant-config/templates/minio-rbac.yaml delete mode 100644 sources/minio-tenant-config/templates/minio-secret-example.yaml delete mode 100644 sources/minio-tenant-config/templates/minio-tls-clustersecretstore.yaml delete mode 100644 sources/minio-tenant-config/values.yaml delete mode 100644 sources/minio-tenant/7.0.0/.helmignore delete mode 100644 sources/minio-tenant/7.0.0/Chart.yaml delete mode 100644 sources/minio-tenant/7.0.0/README.md delete mode 100644 sources/minio-tenant/7.0.0/templates/_helpers.tpl delete mode 100644 sources/minio-tenant/7.0.0/templates/api-ingress.yaml delete mode 100644 sources/minio-tenant/7.0.0/templates/console-ingress.yaml delete mode 100644 sources/minio-tenant/7.0.0/templates/extra-resources.yaml delete mode 100644 sources/minio-tenant/7.0.0/templates/kes-configuration-secret.yaml delete mode 100644 sources/minio-tenant/7.0.0/templates/tenant-configuration.yaml delete mode 100644 sources/minio-tenant/7.0.0/templates/tenant.yaml delete mode 100644 sources/minio-tenant/7.0.0/values.yaml delete mode 100644 sources/minio-tenant/7.1.1/.helmignore delete mode 100644 sources/minio-tenant/7.1.1/Chart.yaml delete mode 100644 sources/minio-tenant/7.1.1/README.md delete mode 100644 sources/minio-tenant/7.1.1/templates/_helpers.tpl delete mode 100644 sources/minio-tenant/7.1.1/templates/api-ingress.yaml delete mode 100644 sources/minio-tenant/7.1.1/templates/checks.yaml delete mode 100644 sources/minio-tenant/7.1.1/templates/console-ingress.yaml delete mode 100644 sources/minio-tenant/7.1.1/templates/extra-resources.yaml delete mode 100644 sources/minio-tenant/7.1.1/templates/kes-configuration-secret.yaml delete mode 100644 sources/minio-tenant/7.1.1/templates/tenant-configuration.yaml delete mode 100644 sources/minio-tenant/7.1.1/templates/tenant.yaml delete mode 100644 sources/minio-tenant/7.1.1/values.yaml delete mode 100644 sources/minio-tenant/source.yaml delete mode 100644 sources/minio-tenant/values_ha.yaml delete mode 100644 sources/otel-lgtm-stack/v1.0.7/templates/dashboards-minio.yaml diff --git a/docs/manual_helm_install/secrets/secrets-aiwb-standalone.yaml b/docs/manual_helm_install/secrets/secrets-aiwb-standalone.yaml index a4b0d047..3f3fe5cf 100644 --- a/docs/manual_helm_install/secrets/secrets-aiwb-standalone.yaml +++ b/docs/manual_helm_install/secrets/secrets-aiwb-standalone.yaml @@ -10,6 +10,7 @@ stringData: --- # workbench/minio-credentials (standalone mode only) +# Note: Named "minio-credentials" for backward compatibility, used with SeaweedFS S3 apiVersion: v1 kind: Secret metadata: @@ -17,5 +18,5 @@ metadata: namespace: workbench type: Opaque stringData: - minio-access-key: placeholder - minio-secret-key: placeholder \ No newline at end of file + minio-access-key: placeholder # Key name kept for backward compatibility + minio-secret-key: placeholder # Key name kept for backward compatibility \ No newline at end of file diff --git a/docs/manual_helm_install/secrets/secrets-aiwb.yaml b/docs/manual_helm_install/secrets/secrets-aiwb.yaml index 9723db38..e7941246 100644 --- a/docs/manual_helm_install/secrets/secrets-aiwb.yaml +++ b/docs/manual_helm_install/secrets/secrets-aiwb.yaml @@ -6,9 +6,9 @@ # install_base.sh from AIWB_DB_USER/PASSWORD, KEYCLOAK_DB_USER/PASSWORD, and # the *_CNPG_SUPERUSER_* env vars when PLUGGABLE_DB=false. # -# MinIO-related secrets (minio-credentials, default-user) are created inline by -# install_base.sh from MINIO_API_*/MINIO_CONSOLE_* env vars. In PLUGGABLE_S3=true -# mode only minio-credentials is created (no in-cluster Tenant to bootstrap). +# S3-related secrets (minio-credentials) are created inline by install_base.sh +# from MINIO_API_*/MINIO_CONSOLE_* env vars. Secret names use "minio" for backward +# compatibility but work with SeaweedFS S3 API. # # All credentials use "placeholder" for development — replace with secure # values for production. diff --git a/root/values.yaml b/root/values.yaml index b36f608d..63d06522 100644 --- a/root/values.yaml +++ b/root/values.yaml @@ -717,58 +717,7 @@ apps: path: seaweedfs-config namespace: seaweedfs-instance valuesFile: values.yaml - syncWave: 0 - minio-operator: - namespace: minio-operator - path: minio-operator/7.1.1 - syncWave: -10 - valuesFile: values.yaml - minio-tenant: - namespace: minio-tenant-default - path: minio-tenant/7.1.1 syncWave: 0 - valuesObject: - tenant: - buckets: - - name: default-bucket - objectLock: true - - name: models - objectLock: true - certificate: - externalCaCertSecret: - - name: cluster-tls - type: kubernetes.io/secret/v1 - requestAutoCert: false - configSecret: - existingSecret: true - name: default-minio-tenant-env-configuration - env: - - name: MINIO_PROMETHEUS_AUTH_TYPE - value: "public" - name: default-minio-tenant - pools: - - name: pool-0 - servers: 1 - size: 250Gi # Reduced from 500Gi for workstation - storageClassName: direct - volumesPerServer: 1 - users: - - name: default-user - minio-tenant-config: - helmParameters: - - name: domain - value: "{{ .Values.global.domain }}" - ignoreDifferences: - - group: external-secrets.io - jqPathExpressions: - - ".spec.data[].remoteRef.conversionStrategy" - - ".spec.data[].remoteRef.decodingStrategy" - - ".spec.data[].remoteRef.metadataPolicy" - kind: ExternalSecret - namespace: minio-tenant-default - path: minio-tenant-config - syncWave: 0 - valuesFile: values.yaml openbao: ignoreDifferences: - group: "apps" diff --git a/root/values_large.yaml b/root/values_large.yaml index 0c1624b3..7880e5bb 100644 --- a/root/values_large.yaml +++ b/root/values_large.yaml @@ -38,9 +38,6 @@ enabledApps: - kyverno - kyverno-policies-base - metallb - - minio-operator - - minio-tenant - - minio-tenant-config - openbao - openbao-config - opentelemetry-operator @@ -49,16 +46,6 @@ enabledApps: - rabbitmq apps: - minio-tenant: - valuesObject: - tenant: - pools: - - name: pool-0 - servers: 1 - size: 500Gi - storageClassName: direct - volumesPerServer: 1 - seaweedfs-config: valuesObject: seaweed: diff --git a/root/values_medium.yaml b/root/values_medium.yaml index d2a00db1..7989c02b 100644 --- a/root/values_medium.yaml +++ b/root/values_medium.yaml @@ -44,9 +44,6 @@ enabledApps: - seaweedfs-crds - seaweedfs-operator - seaweedfs-config - - minio-operator - - minio-tenant - - minio-tenant-config - openbao - openbao-config - opentelemetry-operator @@ -126,32 +123,6 @@ apps: # Increase memory resources for Keycloak to prevent OOMKilled during initialization # Medium preset provides 1536Mi memory limit vs small preset's 768Mi resourcesPreset: "medium" - minio-operator: - valuesObject: - operator: - replicaCount: 1 - minio-tenant: - valuesObject: - tenant: - buckets: - - name: default-bucket - objectLock: true - - name: models - objectLock: true - - name: datasets - objectLock: false - pools: - - name: pool-0 - servers: 1 - size: 2Ti - storageClassName: direct - volumesPerServer: 2 - resources: - limits: - memory: "8Gi" - requests: - cpu: "500m" - memory: "2Gi" seaweedfs-config: valuesObject: @@ -387,12 +358,6 @@ apps: requests: cpu: "50m" memory: "256Mi" - minio-tenant-config: - valuesObject: - resources: - requests: - cpu: "25m" - memory: "128Mi" openbao-config: valuesObject: resources: diff --git a/root/values_small.yaml b/root/values_small.yaml index f7bac344..818ffd24 100644 --- a/root/values_small.yaml +++ b/root/values_small.yaml @@ -46,9 +46,6 @@ enabledApps: - kyverno-policies-base # applicable to all cluster sizes - kyverno-policies-storage-local-path # small & medium cluster sizes only - metallb - - minio-operator - - minio-tenant - - minio-tenant-config - seaweedfs-crds - seaweedfs-operator - seaweedfs-config @@ -128,29 +125,6 @@ apps: - group: kyverno.io kind: ClusterPolicy wave: 26 # Deploy after base policies - minio-tenant: - valuesObject: - tenant: - buckets: - - name: default-bucket - objectLock: true - - name: models - objectLock: true - - name: datasets - objectLock: false - pools: - - name: pool-0 - servers: 1 - size: 2Ti - storageClassName: direct - volumesPerServer: 2 - resources: - limits: - cpu: "4000m" - memory: "8Gi" - requests: - cpu: "1000m" - memory: "2Gi" seaweedfs-config: valuesObject: diff --git a/sources/aiwb/1.0.31/values.yaml b/sources/aiwb/1.0.31/values.yaml index c3968754..222c378f 100644 --- a/sources/aiwb/1.0.31/values.yaml +++ b/sources/aiwb/1.0.31/values.yaml @@ -141,12 +141,14 @@ keycloak: secretName: "aiwb-ui-keycloak-secret" # MinIO configuration +# S3-compatible object storage configuration +# Note: Section named "minio" for backward compatibility, but uses SeaweedFS minio: url: "http://filer-s3.seaweedfs-instance.svc.cluster.local:80" bucket: "default-bucket" - credentialsSecretName: "minio-credentials" - accessKeyKey: "minio-access-key" - secretKeyKey: "minio-secret-key" + credentialsSecretName: "minio-credentials" # Secret name kept for backward compatibility + accessKeyKey: "minio-access-key" # Key name kept for backward compatibility + secretKeyKey: "minio-secret-key" # Key name kept for backward compatibility # ClusterAuth configuration (for API key management) clusterAuth: diff --git a/sources/eai-infra/aiwb-external-secrets/0.1.2/values.yaml b/sources/eai-infra/aiwb-external-secrets/0.1.2/values.yaml index 2b1192d0..fafcb635 100644 --- a/sources/eai-infra/aiwb-external-secrets/0.1.2/values.yaml +++ b/sources/eai-infra/aiwb-external-secrets/0.1.2/values.yaml @@ -19,11 +19,12 @@ keycloak: secretName: "aiwb-ui-keycloak-secret" userCredentialsSecretName: "aiwb-user-credentials" -# MinIO configuration +# S3-compatible object storage configuration +# Note: Named "minio" for backward compatibility, but used with SeaweedFS minio: - credentialsSecretName: "minio-credentials" - accessKeyKey: "minio-access-key" - secretKeyKey: "minio-secret-key" + credentialsSecretName: "minio-credentials" # Secret name kept for backward compatibility + accessKeyKey: "minio-access-key" # Key name kept for backward compatibility + secretKeyKey: "minio-secret-key" # Key name kept for backward compatibility # ClusterAuth configuration (for API key management) clusterAuth: diff --git a/sources/kaiwo-config/minio-credentials.yaml b/sources/kaiwo-config/minio-credentials.yaml index 27b77136..56ed614f 100644 --- a/sources/kaiwo-config/minio-credentials.yaml +++ b/sources/kaiwo-config/minio-credentials.yaml @@ -1,4 +1,6 @@ --- +# S3 credentials fetcher for Kaiwo +# Note: Named "minio-credentials" for backward compatibility, used with SeaweedFS apiVersion: external-secrets.io/v1beta1 kind: ExternalSecret metadata: diff --git a/sources/minio-operator/7.0.0/.helmignore b/sources/minio-operator/7.0.0/.helmignore deleted file mode 100644 index 50af0317..00000000 --- a/sources/minio-operator/7.0.0/.helmignore +++ /dev/null @@ -1,22 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ diff --git a/sources/minio-operator/7.0.0/Chart.yaml b/sources/minio-operator/7.0.0/Chart.yaml deleted file mode 100644 index 4e9eab88..00000000 --- a/sources/minio-operator/7.0.0/Chart.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: v2 -appVersion: v7.0.0 -description: A Helm chart for MinIO Operator -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 -version: 7.0.0 diff --git a/sources/minio-operator/7.0.0/README.md b/sources/minio-operator/7.0.0/README.md deleted file mode 100644 index c7e73ec3..00000000 --- a/sources/minio-operator/7.0.0/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# MinIO ![license](https://img.shields.io/badge/license-AGPL%20V3-blue) - -[MinIO](https://min.io) is a High Performance Object Storage released under GNU AGPLv3 or later. It is API compatible -with Amazon S3 cloud storage service. Use MinIO to build high performance infrastructure for machine learning, analytics -and application data workloads. - -For more detailed documentation please visit [here](https://docs.minio.io/) - -Introduction ------------- - -This chart bootstraps MinIO Operator on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. - -Configure MinIO Helm repo --------------------- - -```bash -helm repo add minio https://operator.min.io/ -``` - -Installing the Chart --------------------- - -Install this chart using: - -```bash -helm install \ - --namespace minio-operator \ - --create-namespace \ - minio-operator minio/operator -``` - -The command deploys MinIO Operator on the Kubernetes cluster in the default configuration. - -Creating a Tenant ------------------ - -Once the MinIO Operator Chart is successfully installed, create a MinIO Tenant using: - -```bash -helm install --namespace tenant-ns \ - --create-namespace tenant minio/tenant -``` - -This creates a 4 Node MinIO Tenant (cluster). To change the default values, take a look at various [values.yaml](https://github.com/minio/operator/blob/master/helm/tenant/values.yaml). diff --git a/sources/minio-operator/7.0.0/templates/_helpers.tpl b/sources/minio-operator/7.0.0/templates/_helpers.tpl deleted file mode 100644 index 53e96058..00000000 --- a/sources/minio-operator/7.0.0/templates/_helpers.tpl +++ /dev/null @@ -1,37 +0,0 @@ -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "minio-operator.name" -}} - {{- default .Chart.Name | trunc 63 | trimSuffix "-" -}} -{{- end -}} - - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "minio-operator.chart" -}} - {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Common labels for operator -*/}} -{{- define "minio-operator.labels" -}} -helm.sh/chart: {{ include "minio-operator.chart" . }} -{{- if .Chart.AppVersion }} -app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} -{{- end }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- range $key, $val := .Values.operator.additionalLabels }} -{{ $key }}: {{ $val | quote }} -{{- end }} -{{- end -}} - -{{/* -Selector labels Operator -*/}} -{{- define "minio-operator.selectorLabels" -}} -app.kubernetes.io/name: {{ include "minio-operator.name" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -{{- end -}} diff --git a/sources/minio-operator/7.0.0/templates/minio.min.io_tenants.yaml b/sources/minio-operator/7.0.0/templates/minio.min.io_tenants.yaml deleted file mode 100644 index 72d7e591..00000000 --- a/sources/minio-operator/7.0.0/templates/minio.min.io_tenants.yaml +++ /dev/null @@ -1,5745 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.16.5 - operator.min.io/version: v7.0.0 - 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: .status.healthStatus - name: Health - 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 - recursiveReadOnly: - type: string - 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: - default: ext4 - type: string - kind: - type: string - readOnly: - default: false - 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 - x-kubernetes-list-type: atomic - path: - type: string - readOnly: - type: boolean - secretFile: - type: string - secretRef: - properties: - name: - default: "" - 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: - default: "" - 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 - x-kubernetes-list-type: atomic - name: - default: "" - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - csi: - properties: - driver: - type: string - fsType: - type: string - nodePublishSecretRef: - properties: - name: - default: "" - 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 - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - 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: - 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 - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - storageClassName: - type: string - volumeAttributesClassName: - 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 - x-kubernetes-list-type: atomic - wwids: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - flexVolume: - properties: - driver: - type: string - fsType: - type: string - options: - additionalProperties: - type: string - type: object - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - 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 - image: - properties: - pullPolicy: - type: string - reference: - type: string - type: object - iscsi: - properties: - chapAuthDiscovery: - type: boolean - chapAuthSession: - type: boolean - fsType: - type: string - initiatorName: - type: string - iqn: - type: string - iscsiInterface: - default: default - type: string - lun: - format: int32 - type: integer - portals: - items: - type: string - type: array - x-kubernetes-list-type: atomic - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - 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: - clusterTrustBundle: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - name: - type: string - optional: - type: boolean - path: - type: string - signerName: - type: string - required: - - path - type: object - configMap: - properties: - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-type: atomic - name: - default: "" - 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 - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - name: - default: "" - 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 - x-kubernetes-list-type: atomic - 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: - default: /etc/ceph/keyring - type: string - monitors: - items: - type: string - type: array - x-kubernetes-list-type: atomic - pool: - default: rbd - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - user: - default: admin - type: string - required: - - image - - monitors - type: object - scaleIO: - properties: - fsType: - default: xfs - type: string - gateway: - type: string - protectionDomain: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - sslEnabled: - type: boolean - storageMode: - default: ThinProvisioned - 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 - x-kubernetes-list-type: atomic - optional: - type: boolean - secretName: - type: string - type: object - storageos: - properties: - fsType: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - 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 - certExpiryAlertThreshold: - format: int32 - type: integer - configuration: - properties: - name: - default: "" - 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: - default: "" - 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: - default: "" - 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: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - initContainers: - items: - properties: - args: - items: - type: string - type: array - x-kubernetes-list-type: atomic - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - env: - items: - properties: - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - default: "" - 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: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - envFrom: - items: - properties: - configMapRef: - properties: - name: - default: "" - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - prefix: - type: string - secretRef: - properties: - name: - default: "" - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - type: object - type: array - x-kubernetes-list-type: atomic - image: - type: string - imagePullPolicy: - type: string - lifecycle: - properties: - postStart: - properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - 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 - x-kubernetes-list-type: atomic - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - 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 - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - 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 - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - 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 - x-kubernetes-list-type: atomic - 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 - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - 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 - restartPolicy: - type: string - securityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - capabilities: - properties: - add: - items: - type: string - type: array - x-kubernetes-list-type: atomic - drop: - items: - type: string - type: array - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - 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 - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-map-keys: - - devicePath - x-kubernetes-list-type: map - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - x-kubernetes-list-map-keys: - - mountPath - x-kubernetes-list-type: map - 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 - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - type: object - x-kubernetes-map-type: atomic - weight: - format: int32 - type: integer - required: - - preference - - weight - type: object - type: array - x-kubernetes-list-type: atomic - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - type: object - x-kubernetes-map-type: atomic - type: array - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - namespaces: - items: - type: string - type: array - x-kubernetes-list-type: atomic - topologyKey: - type: string - required: - - topologyKey - type: object - weight: - format: int32 - type: integer - required: - - podAffinityTerm - - weight - type: object - type: array - x-kubernetes-list-type: atomic - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - namespaces: - items: - type: string - type: array - x-kubernetes-list-type: atomic - topologyKey: - type: string - required: - - topologyKey - type: object - type: array - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - namespaces: - items: - type: string - type: array - x-kubernetes-list-type: atomic - topologyKey: - type: string - required: - - topologyKey - type: object - weight: - format: int32 - type: integer - required: - - podAffinityTerm - - weight - type: object - type: array - x-kubernetes-list-type: atomic - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - namespaces: - items: - type: string - type: array - x-kubernetes-list-type: atomic - topologyKey: - type: string - required: - - topologyKey - type: object - type: array - x-kubernetes-list-type: atomic - type: object - type: object - annotations: - additionalProperties: - type: string - type: object - clientCertSecret: - properties: - name: - type: string - type: - type: string - required: - - name - type: object - containerSecurityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - capabilities: - properties: - add: - items: - type: string - type: array - x-kubernetes-list-type: atomic - drop: - items: - type: string - type: array - x-kubernetes-list-type: atomic - 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 - env: - items: - properties: - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - default: "" - 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: - default: "" - 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: - default: "" - 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 - request: - 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: - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - 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 - x-kubernetes-list-type: atomic - supplementalGroupsPolicy: - type: string - sysctls: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - 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 - lifecycle: - properties: - postStart: - properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - 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 - x-kubernetes-list-type: atomic - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - 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 - liveness: - properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - 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 - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - type: object - x-kubernetes-map-type: atomic - weight: - format: int32 - type: integer - required: - - preference - - weight - type: object - type: array - x-kubernetes-list-type: atomic - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - type: object - x-kubernetes-map-type: atomic - type: array - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - namespaces: - items: - type: string - type: array - x-kubernetes-list-type: atomic - topologyKey: - type: string - required: - - topologyKey - type: object - weight: - format: int32 - type: integer - required: - - podAffinityTerm - - weight - type: object - type: array - x-kubernetes-list-type: atomic - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - namespaces: - items: - type: string - type: array - x-kubernetes-list-type: atomic - topologyKey: - type: string - required: - - topologyKey - type: object - type: array - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - namespaces: - items: - type: string - type: array - x-kubernetes-list-type: atomic - topologyKey: - type: string - required: - - topologyKey - type: object - weight: - format: int32 - type: integer - required: - - podAffinityTerm - - weight - type: object - type: array - x-kubernetes-list-type: atomic - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - namespaces: - items: - type: string - type: array - x-kubernetes-list-type: atomic - topologyKey: - type: string - required: - - topologyKey - type: object - type: array - x-kubernetes-list-type: atomic - type: object - type: object - annotations: - additionalProperties: - type: string - type: object - containerSecurityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - capabilities: - properties: - add: - items: - type: string - type: array - x-kubernetes-list-type: atomic - drop: - items: - type: string - type: array - x-kubernetes-list-type: atomic - 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: - minLength: 1 - type: string - nodeSelector: - additionalProperties: - type: string - type: object - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - 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: - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - 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 - x-kubernetes-list-type: atomic - supplementalGroupsPolicy: - type: string - sysctls: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - windowsOptions: - properties: - gmsaCredentialSpec: - type: string - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - runAsUserName: - type: string - type: object - type: object - servers: - format: int32 - type: integer - x-kubernetes-validations: - - message: servers is immutable - rule: self == oldSelf - 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 - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - 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: - 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 - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - storageClassName: - type: string - volumeAttributesClassName: - type: string - volumeMode: - type: string - volumeName: - type: string - type: object - status: - properties: - accessModes: - items: - type: string - type: array - x-kubernetes-list-type: atomic - allocatedResourceStatuses: - additionalProperties: - type: string - type: object - x-kubernetes-map-type: granular - 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 - x-kubernetes-list-map-keys: - - type - x-kubernetes-list-type: map - currentVolumeAttributesClassName: - type: string - modifyVolumeStatus: - properties: - status: - type: string - targetVolumeAttributesClassName: - type: string - required: - - status - type: object - phase: - type: string - type: object - type: object - volumesPerServer: - format: int32 - type: integer - x-kubernetes-validations: - - message: volumesPerServer is immutable - rule: self == oldSelf - required: - - name - - servers - - volumeClaimTemplate - - volumesPerServer - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - poolsMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - priorityClassName: - type: string - prometheusOperator: - type: boolean - readiness: - properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - 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 - x-kubernetes-list-type: atomic - 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 - kesServiceAnnotations: - additionalProperties: - type: string - type: object - kesServiceLabels: - 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 - x-kubernetes-list-type: atomic - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - env: - items: - properties: - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - default: "" - 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: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - envFrom: - items: - properties: - configMapRef: - properties: - name: - default: "" - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - prefix: - type: string - secretRef: - properties: - name: - default: "" - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - type: object - type: array - x-kubernetes-list-type: atomic - image: - type: string - imagePullPolicy: - type: string - lifecycle: - properties: - postStart: - properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - 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 - x-kubernetes-list-type: atomic - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - 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 - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - 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 - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - 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 - x-kubernetes-list-type: atomic - 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 - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - 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 - restartPolicy: - type: string - securityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - capabilities: - properties: - add: - items: - type: string - type: array - x-kubernetes-list-type: atomic - drop: - items: - type: string - type: array - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - 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 - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-map-keys: - - devicePath - x-kubernetes-list-type: map - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - x-kubernetes-list-map-keys: - - mountPath - x-kubernetes-list-type: map - workingDir: - type: string - required: - - name - type: object - type: array - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - 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 - x-kubernetes-list-type: atomic - 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: - 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 - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - storageClassName: - type: string - volumeAttributesClassName: - type: string - volumeMode: - type: string - volumeName: - type: string - type: object - status: - properties: - accessModes: - items: - type: string - type: array - x-kubernetes-list-type: atomic - allocatedResourceStatuses: - additionalProperties: - type: string - type: object - x-kubernetes-map-type: granular - 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 - x-kubernetes-list-map-keys: - - type - x-kubernetes-list-type: map - currentVolumeAttributesClassName: - type: string - modifyVolumeStatus: - properties: - status: - type: string - targetVolumeAttributesClassName: - type: string - required: - - status - type: object - phase: - 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: - default: ext4 - type: string - kind: - type: string - readOnly: - default: false - 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 - x-kubernetes-list-type: atomic - path: - type: string - readOnly: - type: boolean - secretFile: - type: string - secretRef: - properties: - name: - default: "" - 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: - default: "" - 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 - x-kubernetes-list-type: atomic - name: - default: "" - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - csi: - properties: - driver: - type: string - fsType: - type: string - nodePublishSecretRef: - properties: - name: - default: "" - 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 - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - 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: - 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 - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - storageClassName: - type: string - volumeAttributesClassName: - 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 - x-kubernetes-list-type: atomic - wwids: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - flexVolume: - properties: - driver: - type: string - fsType: - type: string - options: - additionalProperties: - type: string - type: object - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - 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 - image: - properties: - pullPolicy: - type: string - reference: - type: string - type: object - iscsi: - properties: - chapAuthDiscovery: - type: boolean - chapAuthSession: - type: boolean - fsType: - type: string - initiatorName: - type: string - iqn: - type: string - iscsiInterface: - default: default - type: string - lun: - format: int32 - type: integer - portals: - items: - type: string - type: array - x-kubernetes-list-type: atomic - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - 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: - clusterTrustBundle: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - name: - type: string - optional: - type: boolean - path: - type: string - signerName: - type: string - required: - - path - type: object - configMap: - properties: - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-type: atomic - name: - default: "" - 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 - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - name: - default: "" - 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 - x-kubernetes-list-type: atomic - 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: - default: /etc/ceph/keyring - type: string - monitors: - items: - type: string - type: array - x-kubernetes-list-type: atomic - pool: - default: rbd - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - user: - default: admin - type: string - required: - - image - - monitors - type: object - scaleIO: - properties: - fsType: - default: xfs - type: string - gateway: - type: string - protectionDomain: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - sslEnabled: - type: boolean - storageMode: - default: ThinProvisioned - 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 - x-kubernetes-list-type: atomic - optional: - type: boolean - secretName: - type: string - type: object - storageos: - properties: - fsType: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - 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 - type: object - startup: - properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - 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 - x-kubernetes-list-type: atomic - 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: - default: "" - 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: {} diff --git a/sources/minio-operator/7.0.0/templates/operator-clusterrole.yaml b/sources/minio-operator/7.0.0/templates/operator-clusterrole.yaml deleted file mode 100644 index 7428beb4..00000000 --- a/sources/minio-operator/7.0.0/templates/operator-clusterrole.yaml +++ /dev/null @@ -1,183 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: minio-operator-role - labels: {{- include "minio-operator.labels" . | nindent 4 }} -rules: - - apiGroups: - - "apiextensions.k8s.io" - resources: - - customresourcedefinitions - verbs: - - get - - update - - apiGroups: - - "" - resources: - - persistentvolumeclaims - verbs: - - get - - update - - list - - apiGroups: - - "" - resources: - - namespaces - - nodes - verbs: - - create - - 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 - - job.min.io - resources: - - "*" - verbs: - - "*" - - apiGroups: - - min.io - resources: - - "*" - verbs: - - "*" - - apiGroups: - - monitoring.coreos.com - resources: - - prometheuses - - prometheusagents - verbs: - - get - - update - - list - - apiGroups: - - "coordination.k8s.io" - resources: - - leases - verbs: - - get - - update - - create - - apiGroups: - - policy - resources: - - poddisruptionbudgets - verbs: - - create - - delete - - get - - list - - patch - - update - - deletecollection diff --git a/sources/minio-operator/7.0.0/templates/operator-clusterrolebinding.yaml b/sources/minio-operator/7.0.0/templates/operator-clusterrolebinding.yaml deleted file mode 100644 index ad4add53..00000000 --- a/sources/minio-operator/7.0.0/templates/operator-clusterrolebinding.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: minio-operator-binding - labels: {{- include "minio-operator.labels" . | nindent 4 }} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: minio-operator-role -subjects: - - kind: ServiceAccount - name: minio-operator - namespace: {{ .Release.Namespace }} diff --git a/sources/minio-operator/7.0.0/templates/operator-deployment.yaml b/sources/minio-operator/7.0.0/templates/operator-deployment.yaml deleted file mode 100644 index 5ffbd317..00000000 --- a/sources/minio-operator/7.0.0/templates/operator-deployment.yaml +++ /dev/null @@ -1,67 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: minio-operator - namespace: {{ .Release.Namespace }} - labels: {{- include "minio-operator.labels" . | nindent 4 }} -spec: - replicas: {{ .Values.operator.replicaCount }} - selector: - matchLabels: {{- include "minio-operator.selectorLabels" . | nindent 6 }} - template: - metadata: - labels: - {{- include "minio-operator.labels" . | nindent 8 }} - {{- include "minio-operator.selectorLabels" . | nindent 8 }} - spec: - {{- with .Values.operator.imagePullSecrets }} - imagePullSecrets: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.operator.runtimeClassName }} - runtimeClassName: {{ . }} - {{- end }} - serviceAccountName: minio-operator - {{- with .Values.operator.securityContext }} - securityContext: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.operator.nodeSelector }} - nodeSelector: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.operator.affinity }} - affinity: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.operator.tolerations }} - tolerations: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.operator.topologySpreadConstraints }} - topologySpreadConstraints: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.operator.priorityClassName }} - priorityClassName: {{ . }} - {{- end }} - {{- with .Values.operator.initContainers }} - initContainers: {{- toYaml . | nindent 8 }} - {{- end }} - containers: - - name: {{ .Chart.Name }} - image: "{{ .Values.operator.image.repository }}:{{ .Values.operator.image.digest | default .Values.operator.image.tag }}" - imagePullPolicy: {{ .Values.operator.image.pullPolicy }} - args: - - controller - {{- with .Values.operator.env }} - env: {{- toYaml . | nindent 12 }} - {{- end }} - {{- if .Values.operator.sidecarImage }} - - name: "OPERATOR_SIDECAR_IMAGE" - value: "{{ .Values.operator.sidecarImage.repository }}:{{ .Values.operator.sidecarImage.digest | default .Values.operator.sidecarImage.tag }}" - {{- end }} - resources: {{- toYaml .Values.operator.resources | nindent 12 }} - {{- with .Values.operator.containerSecurityContext }} - securityContext: {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .Values.operator.volumeMounts }} - volumeMounts: {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .Values.operator.volumes }} - volumes: {{- toYaml . | nindent 8 }} - {{- end }} \ No newline at end of file diff --git a/sources/minio-operator/7.0.0/templates/operator-service.yaml b/sources/minio-operator/7.0.0/templates/operator-service.yaml deleted file mode 100644 index 33f25fbb..00000000 --- a/sources/minio-operator/7.0.0/templates/operator-service.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: operator - namespace: {{ .Release.Namespace }} - labels: {{- include "minio-operator.labels" . | nindent 4 }} -spec: - type: ClusterIP - ports: - - port: 4221 - name: http - selector: - operator: leader - {{- include "minio-operator.selectorLabels" . | nindent 4 }} diff --git a/sources/minio-operator/7.0.0/templates/operator-serviceaccount.yaml b/sources/minio-operator/7.0.0/templates/operator-serviceaccount.yaml deleted file mode 100644 index 8ae899da..00000000 --- a/sources/minio-operator/7.0.0/templates/operator-serviceaccount.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - name: minio-operator - namespace: {{ .Release.Namespace }} - labels: {{- include "minio-operator.labels" . | nindent 4 }} - {{- with .Values.operator.serviceAccountAnnotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} diff --git a/sources/minio-operator/7.0.0/templates/sts-service.yaml b/sources/minio-operator/7.0.0/templates/sts-service.yaml deleted file mode 100644 index 51b06a59..00000000 --- a/sources/minio-operator/7.0.0/templates/sts-service.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: sts - namespace: {{ .Release.Namespace }} - labels: {{- include "minio-operator.labels" . | nindent 4 }} -spec: - type: ClusterIP - ports: - - port: 4223 - name: https - selector: {{- include "minio-operator.selectorLabels" . | nindent 4 }} diff --git a/sources/minio-operator/7.0.0/templates/sts.min.io_policybindings.yaml b/sources/minio-operator/7.0.0/templates/sts.min.io_policybindings.yaml deleted file mode 100644 index 1dc6be59..00000000 --- a/sources/minio-operator/7.0.0/templates/sts.min.io_policybindings.yaml +++ /dev/null @@ -1,133 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.16.5 - operator.min.io/version: v7.0.0 - 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: false - subresources: - status: {} - - additionalPrinterColumns: - - jsonPath: .status.currentState - name: State - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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: {} diff --git a/sources/minio-operator/7.0.0/values.yaml b/sources/minio-operator/7.0.0/values.yaml deleted file mode 100644 index 5d08e8f7..00000000 --- a/sources/minio-operator/7.0.0/values.yaml +++ /dev/null @@ -1,187 +0,0 @@ -### -# Root key for Operator Helm Chart -operator: - ### - # An array of environment variables to pass to the Operator deployment. - # Pass an empty array to start Operator with defaults. - # - # For example: - # - # .. code-block:: yaml - # - # env: - # - name: CLUSTER_DOMAIN - # value: "cluster.domain" - # - name: WATCHED_NAMESPACE - # value: "" - # - name: MINIO_OPERATOR_RUNTIME - # value: "OpenShift" - # - # See `Operator environment variables `__ for a list of all supported values. - env: - - name: OPERATOR_STS_ENABLED - value: "on" - # An array of additional annotations to be applied to the operator service account - serviceAccountAnnotations: [] - # additional labels to be applied to operator resources - additionalLabels: {} - ### - # Specify the Operator container image to use for the deployment. - # ``image.tag`` - # For example, the following sets the image to the ``quay.io/minio/operator`` repo and the v7.0.0 tag. - # The container pulls the image if not already present: - # - # .. code-block:: yaml - # - # image: - # repository: quay.io/minio/operator - # tag: v7.0.0 - # pullPolicy: IfNotPresent - # - # The chart also supports specifying an image based on digest value: - # - # .. code-block:: yaml - # - # image: - # repository: quay.io/minio/operator@sha256 - # digest: 28c80b379c75242c6fe793dfbf212f43c602140a0de5ebe3d9c2a3a7b9f9f983 - # pullPolicy: IfNotPresent - # - image: - repository: quay.io/minio/operator - tag: v7.0.0 - pullPolicy: IfNotPresent - ### - # Specify the sidecar container image to deploy on tenant pods for init container and sidecar. - # Only need to change this if want to use a different version that the default, or want to set a custom registry. - # ``sidecarImage.tag`` - # For example, the following sets the image to the ``quay.io/minio/operator-sidecar`` repo and the v7.0.0 tag. - # The container pulls the image if not already present: - # - # .. code-block:: yaml - # - # sidecarImage: - # repository: quay.io/minio/operator-sidecar - # tag: v7.0.0 - # pullPolicy: IfNotPresent - # - # The chart also supports specifying an image based on digest value: - # - # .. code-block:: yaml - # - # sidecarImage: - # repository: quay.io/minio/operator-sidecar@sha256 - # digest: a11947a230b80fb1b0bffa97173147a505d4f1207958f722e348d11ab9e972c1 - # pullPolicy: IfNotPresent - # - sidecarImage: {} - ### - # - # An array of Kubernetes secrets to use for pulling images from a private ``image.repository``. - # Only one array element is supported at this time. - imagePullSecrets: [ ] - ### - # - # The name of a custom `Container Runtime `__ to use for the Operator pods. - runtimeClassName: ~ - ### - # An array of `initContainers `__ to start up before the Operator pods. - # Exercise care as ``initContainer`` failures prevent Operator pods from starting. - # Pass an empty array to start the Operator normally. - initContainers: [ ] - ### - # The number of Operator pods to deploy. - # Higher values increase availability in the event of worker node failures. - # - # The cluster must have sufficient number of available worker nodes to fulfill the request. - # Operator pods deploy with pod anti-affinity by default, preventing Kubernetes from scheduling multiple pods onto a single Worker node. - replicaCount: 2 - ### - # The Kubernetes `SecurityContext `__ to use for deploying Operator resources. - # - # You may need to modify these values to meet your cluster's security and access settings. - securityContext: - runAsUser: 1000 - runAsGroup: 1000 - runAsNonRoot: true - fsGroup: 1000 - ### - # The Kubernetes `SecurityContext `__ to use for deploying Operator containers. - # You may need to modify these values to meet your cluster's security and access settings. - containerSecurityContext: - runAsUser: 1000 - runAsGroup: 1000 - runAsNonRoot: true - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - seccompProfile: - type: RuntimeDefault - ### - # An array of `Volumes `__ which the Operator can mount to pods. - # - # The volumes must exist *and* be accessible to the Operator pods. - volumes: [ ] - ### - # An array of volume mount points associated to each Operator container. - # - # Specify each item in the array as follows: - # - # .. code-block:: yaml - # - # volumeMounts: - # - name: volumename - # mountPath: /path/to/mount - # - # The ``name`` field must correspond to an entry in the ``volumes`` array. - volumeMounts: [ ] - ### - # Any `Node Selectors `__ to apply to Operator pods. - # - # The Kubernetes scheduler uses these selectors to determine which worker nodes onto which it can deploy Operator pods. - # - # If no worker nodes match the specified selectors, the Operator deployment will fail. - nodeSelector: { } - ### - # - # The `Pod Priority `__ to assign to Operator pods. - priorityClassName: "" - ### - # - # The `affinity `__ or anti-affinity settings to apply to Operator pods. - # - # These settings determine the distribution of pods across worker nodes and can help prevent or allow colocating pods onto the same worker nodes. - affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchExpressions: - - key: name - operator: In - values: - - minio-operator - topologyKey: kubernetes.io/hostname - ### - # - # An array of `Toleration labels `__ to associate to Operator pods. - # - # These settings determine the distribution of pods across worker nodes. - tolerations: [ ] - ### - # - # An array of `Topology Spread Constraints `__ to associate to Operator pods. - # - # These settings determine the distribution of pods across worker nodes. - topologySpreadConstraints: [ ] - ### - # - # The `Requests or Limits `__ for resources to associate to Operator pods. - # - # These settings can control the minimum and maximum resources requested for each pod. - # If no worker nodes can meet the specified requests, the Operator may fail to deploy. - resources: - requests: - cpu: 200m - memory: 256Mi - ephemeral-storage: 500Mi diff --git a/sources/minio-operator/7.1.1/.helmignore b/sources/minio-operator/7.1.1/.helmignore deleted file mode 100644 index 50af0317..00000000 --- a/sources/minio-operator/7.1.1/.helmignore +++ /dev/null @@ -1,22 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ diff --git a/sources/minio-operator/7.1.1/Chart.yaml b/sources/minio-operator/7.1.1/Chart.yaml deleted file mode 100644 index e4329bea..00000000 --- a/sources/minio-operator/7.1.1/Chart.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: v2 -appVersion: v7.1.1 -description: A Helm chart for MinIO Operator -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 -version: 7.1.1 diff --git a/sources/minio-operator/7.1.1/README.md b/sources/minio-operator/7.1.1/README.md deleted file mode 100644 index c7e73ec3..00000000 --- a/sources/minio-operator/7.1.1/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# MinIO ![license](https://img.shields.io/badge/license-AGPL%20V3-blue) - -[MinIO](https://min.io) is a High Performance Object Storage released under GNU AGPLv3 or later. It is API compatible -with Amazon S3 cloud storage service. Use MinIO to build high performance infrastructure for machine learning, analytics -and application data workloads. - -For more detailed documentation please visit [here](https://docs.minio.io/) - -Introduction ------------- - -This chart bootstraps MinIO Operator on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. - -Configure MinIO Helm repo --------------------- - -```bash -helm repo add minio https://operator.min.io/ -``` - -Installing the Chart --------------------- - -Install this chart using: - -```bash -helm install \ - --namespace minio-operator \ - --create-namespace \ - minio-operator minio/operator -``` - -The command deploys MinIO Operator on the Kubernetes cluster in the default configuration. - -Creating a Tenant ------------------ - -Once the MinIO Operator Chart is successfully installed, create a MinIO Tenant using: - -```bash -helm install --namespace tenant-ns \ - --create-namespace tenant minio/tenant -``` - -This creates a 4 Node MinIO Tenant (cluster). To change the default values, take a look at various [values.yaml](https://github.com/minio/operator/blob/master/helm/tenant/values.yaml). diff --git a/sources/minio-operator/7.1.1/templates/_helpers.tpl b/sources/minio-operator/7.1.1/templates/_helpers.tpl deleted file mode 100644 index 53e96058..00000000 --- a/sources/minio-operator/7.1.1/templates/_helpers.tpl +++ /dev/null @@ -1,37 +0,0 @@ -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "minio-operator.name" -}} - {{- default .Chart.Name | trunc 63 | trimSuffix "-" -}} -{{- end -}} - - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "minio-operator.chart" -}} - {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Common labels for operator -*/}} -{{- define "minio-operator.labels" -}} -helm.sh/chart: {{ include "minio-operator.chart" . }} -{{- if .Chart.AppVersion }} -app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} -{{- end }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- range $key, $val := .Values.operator.additionalLabels }} -{{ $key }}: {{ $val | quote }} -{{- end }} -{{- end -}} - -{{/* -Selector labels Operator -*/}} -{{- define "minio-operator.selectorLabels" -}} -app.kubernetes.io/name: {{ include "minio-operator.name" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -{{- end -}} diff --git a/sources/minio-operator/7.1.1/templates/minio.min.io_tenants.yaml b/sources/minio-operator/7.1.1/templates/minio.min.io_tenants.yaml deleted file mode 100644 index d1f4e303..00000000 --- a/sources/minio-operator/7.1.1/templates/minio.min.io_tenants.yaml +++ /dev/null @@ -1,5753 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.17.2 - operator.min.io/version: v7.1.1 - 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: .status.healthStatus - name: Health - 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 - recursiveReadOnly: - type: string - 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: - default: ext4 - type: string - kind: - type: string - readOnly: - default: false - 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 - x-kubernetes-list-type: atomic - path: - type: string - readOnly: - type: boolean - secretFile: - type: string - secretRef: - properties: - name: - default: "" - 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: - default: "" - 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 - x-kubernetes-list-type: atomic - name: - default: "" - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - csi: - properties: - driver: - type: string - fsType: - type: string - nodePublishSecretRef: - properties: - name: - default: "" - 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 - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - 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: - 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 - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - storageClassName: - type: string - volumeAttributesClassName: - 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 - x-kubernetes-list-type: atomic - wwids: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - flexVolume: - properties: - driver: - type: string - fsType: - type: string - options: - additionalProperties: - type: string - type: object - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - 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 - image: - properties: - pullPolicy: - type: string - reference: - type: string - type: object - iscsi: - properties: - chapAuthDiscovery: - type: boolean - chapAuthSession: - type: boolean - fsType: - type: string - initiatorName: - type: string - iqn: - type: string - iscsiInterface: - default: default - type: string - lun: - format: int32 - type: integer - portals: - items: - type: string - type: array - x-kubernetes-list-type: atomic - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - 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: - clusterTrustBundle: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - name: - type: string - optional: - type: boolean - path: - type: string - signerName: - type: string - required: - - path - type: object - configMap: - properties: - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-type: atomic - name: - default: "" - 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 - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - name: - default: "" - 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 - x-kubernetes-list-type: atomic - 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: - default: /etc/ceph/keyring - type: string - monitors: - items: - type: string - type: array - x-kubernetes-list-type: atomic - pool: - default: rbd - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - user: - default: admin - type: string - required: - - image - - monitors - type: object - scaleIO: - properties: - fsType: - default: xfs - type: string - gateway: - type: string - protectionDomain: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - sslEnabled: - type: boolean - storageMode: - default: ThinProvisioned - 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 - x-kubernetes-list-type: atomic - optional: - type: boolean - secretName: - type: string - type: object - storageos: - properties: - fsType: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - 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 - certExpiryAlertThreshold: - format: int32 - type: integer - configuration: - properties: - name: - default: "" - 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: - default: "" - 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: - default: "" - 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: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - initContainers: - items: - properties: - args: - items: - type: string - type: array - x-kubernetes-list-type: atomic - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - env: - items: - properties: - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - default: "" - 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: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - envFrom: - items: - properties: - configMapRef: - properties: - name: - default: "" - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - prefix: - type: string - secretRef: - properties: - name: - default: "" - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - type: object - type: array - x-kubernetes-list-type: atomic - image: - type: string - imagePullPolicy: - type: string - lifecycle: - properties: - postStart: - properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - 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 - x-kubernetes-list-type: atomic - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - 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 - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - 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 - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - 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 - x-kubernetes-list-type: atomic - 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 - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - 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 - restartPolicy: - type: string - securityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - capabilities: - properties: - add: - items: - type: string - type: array - x-kubernetes-list-type: atomic - drop: - items: - type: string - type: array - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - 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 - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-map-keys: - - devicePath - x-kubernetes-list-type: map - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - x-kubernetes-list-map-keys: - - mountPath - x-kubernetes-list-type: map - 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 - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - type: object - x-kubernetes-map-type: atomic - weight: - format: int32 - type: integer - required: - - preference - - weight - type: object - type: array - x-kubernetes-list-type: atomic - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - type: object - x-kubernetes-map-type: atomic - type: array - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - namespaces: - items: - type: string - type: array - x-kubernetes-list-type: atomic - topologyKey: - type: string - required: - - topologyKey - type: object - weight: - format: int32 - type: integer - required: - - podAffinityTerm - - weight - type: object - type: array - x-kubernetes-list-type: atomic - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - namespaces: - items: - type: string - type: array - x-kubernetes-list-type: atomic - topologyKey: - type: string - required: - - topologyKey - type: object - type: array - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - namespaces: - items: - type: string - type: array - x-kubernetes-list-type: atomic - topologyKey: - type: string - required: - - topologyKey - type: object - weight: - format: int32 - type: integer - required: - - podAffinityTerm - - weight - type: object - type: array - x-kubernetes-list-type: atomic - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - namespaces: - items: - type: string - type: array - x-kubernetes-list-type: atomic - topologyKey: - type: string - required: - - topologyKey - type: object - type: array - x-kubernetes-list-type: atomic - type: object - type: object - annotations: - additionalProperties: - type: string - type: object - clientCertSecret: - properties: - name: - type: string - type: - type: string - required: - - name - type: object - containerSecurityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - capabilities: - properties: - add: - items: - type: string - type: array - x-kubernetes-list-type: atomic - drop: - items: - type: string - type: array - x-kubernetes-list-type: atomic - 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 - env: - items: - properties: - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - default: "" - 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: - default: "" - 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: - default: "" - 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 - request: - 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: - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - fsGroup: - format: int64 - type: integer - fsGroupChangePolicy: - type: string - runAsGroup: - format: int64 - type: integer - runAsNonRoot: - type: boolean - runAsUser: - format: int64 - type: integer - seLinuxChangePolicy: - type: string - 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 - x-kubernetes-list-type: atomic - supplementalGroupsPolicy: - type: string - sysctls: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - 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 - lifecycle: - properties: - postStart: - properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - 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 - x-kubernetes-list-type: atomic - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - 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 - liveness: - properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - 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 - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - type: object - x-kubernetes-map-type: atomic - weight: - format: int32 - type: integer - required: - - preference - - weight - type: object - type: array - x-kubernetes-list-type: atomic - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - type: object - x-kubernetes-map-type: atomic - type: array - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - namespaces: - items: - type: string - type: array - x-kubernetes-list-type: atomic - topologyKey: - type: string - required: - - topologyKey - type: object - weight: - format: int32 - type: integer - required: - - podAffinityTerm - - weight - type: object - type: array - x-kubernetes-list-type: atomic - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - namespaces: - items: - type: string - type: array - x-kubernetes-list-type: atomic - topologyKey: - type: string - required: - - topologyKey - type: object - type: array - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - namespaces: - items: - type: string - type: array - x-kubernetes-list-type: atomic - topologyKey: - type: string - required: - - topologyKey - type: object - weight: - format: int32 - type: integer - required: - - podAffinityTerm - - weight - type: object - type: array - x-kubernetes-list-type: atomic - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - namespaces: - items: - type: string - type: array - x-kubernetes-list-type: atomic - topologyKey: - type: string - required: - - topologyKey - type: object - type: array - x-kubernetes-list-type: atomic - type: object - type: object - annotations: - additionalProperties: - type: string - type: object - containerSecurityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - capabilities: - properties: - add: - items: - type: string - type: array - x-kubernetes-list-type: atomic - drop: - items: - type: string - type: array - x-kubernetes-list-type: atomic - 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: - minLength: 1 - type: string - nodeSelector: - additionalProperties: - type: string - type: object - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - 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: - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - fsGroup: - format: int64 - type: integer - fsGroupChangePolicy: - type: string - runAsGroup: - format: int64 - type: integer - runAsNonRoot: - type: boolean - runAsUser: - format: int64 - type: integer - seLinuxChangePolicy: - type: string - 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 - x-kubernetes-list-type: atomic - supplementalGroupsPolicy: - type: string - sysctls: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - windowsOptions: - properties: - gmsaCredentialSpec: - type: string - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - runAsUserName: - type: string - type: object - type: object - servers: - format: int32 - type: integer - x-kubernetes-validations: - - message: servers is immutable - rule: self == oldSelf - 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 - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - 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: - 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 - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - storageClassName: - type: string - volumeAttributesClassName: - type: string - volumeMode: - type: string - volumeName: - type: string - type: object - status: - properties: - accessModes: - items: - type: string - type: array - x-kubernetes-list-type: atomic - allocatedResourceStatuses: - additionalProperties: - type: string - type: object - x-kubernetes-map-type: granular - 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 - x-kubernetes-list-map-keys: - - type - x-kubernetes-list-type: map - currentVolumeAttributesClassName: - type: string - modifyVolumeStatus: - properties: - status: - type: string - targetVolumeAttributesClassName: - type: string - required: - - status - type: object - phase: - type: string - type: object - type: object - volumesPerServer: - format: int32 - type: integer - x-kubernetes-validations: - - message: volumesPerServer is immutable - rule: self == oldSelf - required: - - name - - servers - - volumeClaimTemplate - - volumesPerServer - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - poolsMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - priorityClassName: - type: string - prometheusOperator: - type: boolean - prometheusOperatorScrapeMetricsPaths: - items: - type: string - type: array - readiness: - properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - 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 - x-kubernetes-list-type: atomic - 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 - kesServiceAnnotations: - additionalProperties: - type: string - type: object - kesServiceLabels: - 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 - x-kubernetes-list-type: atomic - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - env: - items: - properties: - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - default: "" - 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: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - envFrom: - items: - properties: - configMapRef: - properties: - name: - default: "" - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - prefix: - type: string - secretRef: - properties: - name: - default: "" - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - type: object - type: array - x-kubernetes-list-type: atomic - image: - type: string - imagePullPolicy: - type: string - lifecycle: - properties: - postStart: - properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - 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 - x-kubernetes-list-type: atomic - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - 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 - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - 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 - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - 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 - x-kubernetes-list-type: atomic - 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 - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - 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 - restartPolicy: - type: string - securityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - capabilities: - properties: - add: - items: - type: string - type: array - x-kubernetes-list-type: atomic - drop: - items: - type: string - type: array - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - 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 - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-map-keys: - - devicePath - x-kubernetes-list-type: map - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - x-kubernetes-list-map-keys: - - mountPath - x-kubernetes-list-type: map - workingDir: - type: string - required: - - name - type: object - type: array - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - 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 - x-kubernetes-list-type: atomic - 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: - 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 - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - storageClassName: - type: string - volumeAttributesClassName: - type: string - volumeMode: - type: string - volumeName: - type: string - type: object - status: - properties: - accessModes: - items: - type: string - type: array - x-kubernetes-list-type: atomic - allocatedResourceStatuses: - additionalProperties: - type: string - type: object - x-kubernetes-map-type: granular - 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 - x-kubernetes-list-map-keys: - - type - x-kubernetes-list-type: map - currentVolumeAttributesClassName: - type: string - modifyVolumeStatus: - properties: - status: - type: string - targetVolumeAttributesClassName: - type: string - required: - - status - type: object - phase: - 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: - default: ext4 - type: string - kind: - type: string - readOnly: - default: false - 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 - x-kubernetes-list-type: atomic - path: - type: string - readOnly: - type: boolean - secretFile: - type: string - secretRef: - properties: - name: - default: "" - 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: - default: "" - 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 - x-kubernetes-list-type: atomic - name: - default: "" - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - csi: - properties: - driver: - type: string - fsType: - type: string - nodePublishSecretRef: - properties: - name: - default: "" - 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 - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - 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: - 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 - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - storageClassName: - type: string - volumeAttributesClassName: - 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 - x-kubernetes-list-type: atomic - wwids: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - flexVolume: - properties: - driver: - type: string - fsType: - type: string - options: - additionalProperties: - type: string - type: object - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - 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 - image: - properties: - pullPolicy: - type: string - reference: - type: string - type: object - iscsi: - properties: - chapAuthDiscovery: - type: boolean - chapAuthSession: - type: boolean - fsType: - type: string - initiatorName: - type: string - iqn: - type: string - iscsiInterface: - default: default - type: string - lun: - format: int32 - type: integer - portals: - items: - type: string - type: array - x-kubernetes-list-type: atomic - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - 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: - clusterTrustBundle: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - name: - type: string - optional: - type: boolean - path: - type: string - signerName: - type: string - required: - - path - type: object - configMap: - properties: - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-type: atomic - name: - default: "" - 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 - x-kubernetes-list-type: atomic - 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 - x-kubernetes-list-type: atomic - name: - default: "" - 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 - x-kubernetes-list-type: atomic - 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: - default: /etc/ceph/keyring - type: string - monitors: - items: - type: string - type: array - x-kubernetes-list-type: atomic - pool: - default: rbd - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - user: - default: admin - type: string - required: - - image - - monitors - type: object - scaleIO: - properties: - fsType: - default: xfs - type: string - gateway: - type: string - protectionDomain: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - sslEnabled: - type: boolean - storageMode: - default: ThinProvisioned - 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 - x-kubernetes-list-type: atomic - optional: - type: boolean - secretName: - type: string - type: object - storageos: - properties: - fsType: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - 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 - type: object - startup: - properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - 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 - x-kubernetes-list-type: atomic - 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: - default: "" - 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: {} diff --git a/sources/minio-operator/7.1.1/templates/operator-clusterrole.yaml b/sources/minio-operator/7.1.1/templates/operator-clusterrole.yaml deleted file mode 100644 index 7428beb4..00000000 --- a/sources/minio-operator/7.1.1/templates/operator-clusterrole.yaml +++ /dev/null @@ -1,183 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: minio-operator-role - labels: {{- include "minio-operator.labels" . | nindent 4 }} -rules: - - apiGroups: - - "apiextensions.k8s.io" - resources: - - customresourcedefinitions - verbs: - - get - - update - - apiGroups: - - "" - resources: - - persistentvolumeclaims - verbs: - - get - - update - - list - - apiGroups: - - "" - resources: - - namespaces - - nodes - verbs: - - create - - 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 - - job.min.io - resources: - - "*" - verbs: - - "*" - - apiGroups: - - min.io - resources: - - "*" - verbs: - - "*" - - apiGroups: - - monitoring.coreos.com - resources: - - prometheuses - - prometheusagents - verbs: - - get - - update - - list - - apiGroups: - - "coordination.k8s.io" - resources: - - leases - verbs: - - get - - update - - create - - apiGroups: - - policy - resources: - - poddisruptionbudgets - verbs: - - create - - delete - - get - - list - - patch - - update - - deletecollection diff --git a/sources/minio-operator/7.1.1/templates/operator-clusterrolebinding.yaml b/sources/minio-operator/7.1.1/templates/operator-clusterrolebinding.yaml deleted file mode 100644 index ad4add53..00000000 --- a/sources/minio-operator/7.1.1/templates/operator-clusterrolebinding.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: minio-operator-binding - labels: {{- include "minio-operator.labels" . | nindent 4 }} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: minio-operator-role -subjects: - - kind: ServiceAccount - name: minio-operator - namespace: {{ .Release.Namespace }} diff --git a/sources/minio-operator/7.1.1/templates/operator-deployment.yaml b/sources/minio-operator/7.1.1/templates/operator-deployment.yaml deleted file mode 100644 index 32d12c8a..00000000 --- a/sources/minio-operator/7.1.1/templates/operator-deployment.yaml +++ /dev/null @@ -1,68 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: minio-operator - namespace: {{ .Release.Namespace }} - labels: {{- include "minio-operator.labels" . | nindent 4 }} -spec: - replicas: {{ .Values.operator.replicaCount }} - selector: - matchLabels: {{- include "minio-operator.selectorLabels" . | nindent 6 }} - template: - metadata: - labels: - {{- include "minio-operator.labels" . | nindent 8 }} - {{- include "minio-operator.selectorLabels" . | nindent 8 }} - spec: - {{- with .Values.operator.imagePullSecrets }} - imagePullSecrets: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.operator.runtimeClassName }} - runtimeClassName: {{ . }} - {{- end }} - serviceAccountName: minio-operator - {{- with .Values.operator.securityContext }} - securityContext: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.operator.nodeSelector }} - nodeSelector: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.operator.affinity }} - affinity: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.operator.tolerations }} - tolerations: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.operator.topologySpreadConstraints }} - topologySpreadConstraints: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.operator.priorityClassName }} - priorityClassName: {{ . }} - {{- end }} - {{- with .Values.operator.initContainers }} - initContainers: {{- toYaml . | nindent 8 }} - {{- end }} - containers: - - name: {{ .Chart.Name }} - image: "{{ .Values.operator.image.repository }}:{{ .Values.operator.image.digest | default .Values.operator.image.tag }}" - imagePullPolicy: {{ .Values.operator.image.pullPolicy }} - args: - - controller - env: - {{- if .Values.operator.sidecarImage }} - - name: "OPERATOR_SIDECAR_IMAGE" - value: "{{ .Values.operator.sidecarImage.repository }}:{{ .Values.operator.sidecarImage.digest | default .Values.operator.sidecarImage.tag }}" - {{- end }} - {{- with .Values.operator.env }} - {{- toYaml . | nindent 12 }} - {{- end }} - resources: {{- toYaml .Values.operator.resources | nindent 12 }} - {{- with .Values.operator.containerSecurityContext }} - securityContext: {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .Values.operator.volumeMounts }} - volumeMounts: {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .Values.operator.volumes }} - volumes: {{- toYaml . | nindent 8 }} - {{- end }} \ No newline at end of file diff --git a/sources/minio-operator/7.1.1/templates/operator-service.yaml b/sources/minio-operator/7.1.1/templates/operator-service.yaml deleted file mode 100644 index 33f25fbb..00000000 --- a/sources/minio-operator/7.1.1/templates/operator-service.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: operator - namespace: {{ .Release.Namespace }} - labels: {{- include "minio-operator.labels" . | nindent 4 }} -spec: - type: ClusterIP - ports: - - port: 4221 - name: http - selector: - operator: leader - {{- include "minio-operator.selectorLabels" . | nindent 4 }} diff --git a/sources/minio-operator/7.1.1/templates/operator-serviceaccount.yaml b/sources/minio-operator/7.1.1/templates/operator-serviceaccount.yaml deleted file mode 100644 index 8ae899da..00000000 --- a/sources/minio-operator/7.1.1/templates/operator-serviceaccount.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - name: minio-operator - namespace: {{ .Release.Namespace }} - labels: {{- include "minio-operator.labels" . | nindent 4 }} - {{- with .Values.operator.serviceAccountAnnotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} diff --git a/sources/minio-operator/7.1.1/templates/sts-service.yaml b/sources/minio-operator/7.1.1/templates/sts-service.yaml deleted file mode 100644 index 51b06a59..00000000 --- a/sources/minio-operator/7.1.1/templates/sts-service.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: sts - namespace: {{ .Release.Namespace }} - labels: {{- include "minio-operator.labels" . | nindent 4 }} -spec: - type: ClusterIP - ports: - - port: 4223 - name: https - selector: {{- include "minio-operator.selectorLabels" . | nindent 4 }} diff --git a/sources/minio-operator/7.1.1/templates/sts.min.io_policybindings.yaml b/sources/minio-operator/7.1.1/templates/sts.min.io_policybindings.yaml deleted file mode 100644 index 36099645..00000000 --- a/sources/minio-operator/7.1.1/templates/sts.min.io_policybindings.yaml +++ /dev/null @@ -1,133 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.17.2 - operator.min.io/version: v7.1.1 - 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: false - subresources: - status: {} - - additionalPrinterColumns: - - jsonPath: .status.currentState - name: State - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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: {} diff --git a/sources/minio-operator/7.1.1/values.yaml b/sources/minio-operator/7.1.1/values.yaml deleted file mode 100644 index 77a6f750..00000000 --- a/sources/minio-operator/7.1.1/values.yaml +++ /dev/null @@ -1,187 +0,0 @@ -### -# Root key for Operator Helm Chart -operator: - ### - # An array of environment variables to pass to the Operator deployment. - # Pass an empty array to start Operator with defaults. - # - # For example: - # - # .. code-block:: yaml - # - # env: - # - name: CLUSTER_DOMAIN - # value: "cluster.domain" - # - name: WATCHED_NAMESPACE - # value: "" - # - name: MINIO_OPERATOR_RUNTIME - # value: "OpenShift" - # - # See `Operator environment variables `__ for a list of all supported values. - env: - - name: OPERATOR_STS_ENABLED - value: "on" - # An array of additional annotations to be applied to the operator service account - serviceAccountAnnotations: [] - # additional labels to be applied to operator resources - additionalLabels: {} - ### - # Specify the Operator container image to use for the deployment. - # ``image.tag`` - # For example, the following sets the image to the ``quay.io/minio/operator`` repo and the v7.1.1 tag. - # The container pulls the image if not already present: - # - # .. code-block:: yaml - # - # image: - # repository: quay.io/minio/operator - # tag: v7.1.1 - # pullPolicy: IfNotPresent - # - # The chart also supports specifying an image based on digest value: - # - # .. code-block:: yaml - # - # image: - # repository: quay.io/minio/operator@sha256 - # digest: 28c80b379c75242c6fe793dfbf212f43c602140a0de5ebe3d9c2a3a7b9f9f983 - # pullPolicy: IfNotPresent - # - image: - repository: quay.io/minio/operator - tag: v7.1.1 - pullPolicy: IfNotPresent - ### - # Specify the sidecar container image to deploy on tenant pods for init container and sidecar. - # Only need to change this if want to use a different version that the default, or want to set a custom registry. - # ``sidecarImage.tag`` - # For example, the following sets the image to the ``quay.io/minio/operator-sidecar`` repo and the v7.1.1 tag. - # The container pulls the image if not already present: - # - # .. code-block:: yaml - # - # sidecarImage: - # repository: quay.io/minio/operator-sidecar - # tag: v7.1.1 - # pullPolicy: IfNotPresent - # - # The chart also supports specifying an image based on digest value: - # - # .. code-block:: yaml - # - # sidecarImage: - # repository: quay.io/minio/operator-sidecar@sha256 - # digest: a11947a230b80fb1b0bffa97173147a505d4f1207958f722e348d11ab9e972c1 - # pullPolicy: IfNotPresent - # - sidecarImage: {} - ### - # - # An array of Kubernetes secrets to use for pulling images from a private ``image.repository``. - # Only one array element is supported at this time. - imagePullSecrets: [ ] - ### - # - # The name of a custom `Container Runtime `__ to use for the Operator pods. - runtimeClassName: ~ - ### - # An array of `initContainers `__ to start up before the Operator pods. - # Exercise care as ``initContainer`` failures prevent Operator pods from starting. - # Pass an empty array to start the Operator normally. - initContainers: [ ] - ### - # The number of Operator pods to deploy. - # Higher values increase availability in the event of worker node failures. - # - # The cluster must have sufficient number of available worker nodes to fulfill the request. - # Operator pods deploy with pod anti-affinity by default, preventing Kubernetes from scheduling multiple pods onto a single Worker node. - replicaCount: 2 - ### - # The Kubernetes `SecurityContext `__ to use for deploying Operator resources. - # - # You may need to modify these values to meet your cluster's security and access settings. - securityContext: - runAsUser: 1000 - runAsGroup: 1000 - runAsNonRoot: true - fsGroup: 1000 - ### - # The Kubernetes `SecurityContext `__ to use for deploying Operator containers. - # You may need to modify these values to meet your cluster's security and access settings. - containerSecurityContext: - runAsUser: 1000 - runAsGroup: 1000 - runAsNonRoot: true - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - seccompProfile: - type: RuntimeDefault - ### - # An array of `Volumes `__ which the Operator can mount to pods. - # - # The volumes must exist *and* be accessible to the Operator pods. - volumes: [ ] - ### - # An array of volume mount points associated to each Operator container. - # - # Specify each item in the array as follows: - # - # .. code-block:: yaml - # - # volumeMounts: - # - name: volumename - # mountPath: /path/to/mount - # - # The ``name`` field must correspond to an entry in the ``volumes`` array. - volumeMounts: [ ] - ### - # Any `Node Selectors `__ to apply to Operator pods. - # - # The Kubernetes scheduler uses these selectors to determine which worker nodes onto which it can deploy Operator pods. - # - # If no worker nodes match the specified selectors, the Operator deployment will fail. - nodeSelector: { } - ### - # - # The `Pod Priority `__ to assign to Operator pods. - priorityClassName: "" - ### - # - # The `affinity `__ or anti-affinity settings to apply to Operator pods. - # - # These settings determine the distribution of pods across worker nodes and can help prevent or allow colocating pods onto the same worker nodes. - affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchExpressions: - - key: name - operator: In - values: - - minio-operator - topologyKey: kubernetes.io/hostname - ### - # - # An array of `Toleration labels `__ to associate to Operator pods. - # - # These settings determine the distribution of pods across worker nodes. - tolerations: [ ] - ### - # - # An array of `Topology Spread Constraints `__ to associate to Operator pods. - # - # These settings determine the distribution of pods across worker nodes. - topologySpreadConstraints: [ ] - ### - # - # The `Requests or Limits `__ for resources to associate to Operator pods. - # - # These settings can control the minimum and maximum resources requested for each pod. - # If no worker nodes can meet the specified requests, the Operator may fail to deploy. - resources: - requests: - cpu: 200m - memory: 256Mi - ephemeral-storage: 500Mi diff --git a/sources/minio-operator/source.yaml b/sources/minio-operator/source.yaml deleted file mode 100644 index 29e2faa8..00000000 --- a/sources/minio-operator/source.yaml +++ /dev/null @@ -1,4 +0,0 @@ -sourceUrl: https://operator.min.io -sourceRepoName: minio-operator -sourceChartName: operator -sourceVersion: 7.1.1 diff --git a/sources/minio-tenant-config/Chart.yaml b/sources/minio-tenant-config/Chart.yaml deleted file mode 100644 index dce19d81..00000000 --- a/sources/minio-tenant-config/Chart.yaml +++ /dev/null @@ -1,4 +0,0 @@ -apiVersion: v2 -name: minio-tenant-config -description: A Helm chart with config for minio-tenant -version: 0.2.0 diff --git a/sources/minio-tenant-config/templates/minio-create-user-cm.yaml b/sources/minio-tenant-config/templates/minio-create-user-cm.yaml deleted file mode 100644 index 26c77d97..00000000 --- a/sources/minio-tenant-config/templates/minio-create-user-cm.yaml +++ /dev/null @@ -1,23 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: mc-user-create-cm - namespace: minio-tenant-default -data: - mc-user-create.sh: | - #!/bin/bash - source /tmp/minio-config/config.env - - until mc alias set init "$MINIO_SERVER_URL" "$MINIO_ROOT_USER" "$MINIO_ROOT_PASSWORD" - do - sleep 5 - done - until mc admin accesskey edit init/ "$(< /tmp/minio-user/API_ACCESS_KEY)" --secret-key "$(< /tmp/minio-user/API_SECRET_KEY)" - do - mc admin user add init "$(< /tmp/minio-user/CONSOLE_ACCESS_KEY)" "$(< /tmp/minio-user/CONSOLE_SECRET_KEY)" - sleep 1 - mc admin policy attach init consoleAdmin --user "$(< /tmp/minio-user/CONSOLE_ACCESS_KEY)" - sleep 1 - mc admin accesskey create init/ "$(< /tmp/minio-user/CONSOLE_ACCESS_KEY)" --access-key "$(< /tmp/minio-user/API_ACCESS_KEY)" --secret-key "$(< /tmp/minio-user/API_SECRET_KEY)" > /dev/null - sleep 1 - done \ No newline at end of file diff --git a/sources/minio-tenant-config/templates/minio-create-user-cronjob.yaml b/sources/minio-tenant-config/templates/minio-create-user-cronjob.yaml deleted file mode 100644 index 75bb5b1c..00000000 --- a/sources/minio-tenant-config/templates/minio-create-user-cronjob.yaml +++ /dev/null @@ -1,49 +0,0 @@ ---- -apiVersion: batch/v1 -kind: CronJob -metadata: - name: mc-user-create-cronjob - namespace: minio-tenant-default -spec: - schedule: "*/5 * * * *" - jobTemplate: - spec: - activeDeadlineSeconds: 300 - backoffLimit: 1 - template: - spec: - containers: - - command: ["bash", "/mnt/scripts/mc-user-create.sh"] - image: minio/mc:latest - name: mc - resources: - requests: - memory: "64Mi" - cpu: "100m" - limits: - memory: "256Mi" - cpu: "500m" - volumeMounts: - - mountPath: /tmp/minio-config - name: configuration - - mountPath: /tmp/minio-user - name: user - - name: script - mountPath: /mnt/scripts/ - restartPolicy: Never - volumes: - - name: script - configMap: - name: mc-user-create-cm - - name: configuration - projected: - defaultMode: 420 - sources: - - secret: - name: default-minio-tenant-env-configuration - - name: user - projected: - defaultMode: 0700 - sources: - - secret: - name: default-user diff --git a/sources/minio-tenant-config/templates/minio-es-default-user.yaml b/sources/minio-tenant-config/templates/minio-es-default-user.yaml deleted file mode 100644 index 06244c7d..00000000 --- a/sources/minio-tenant-config/templates/minio-es-default-user.yaml +++ /dev/null @@ -1,33 +0,0 @@ -{{- if .Values.externalSecrets.enabled }} -apiVersion: external-secrets.io/v1beta1 -kind: ExternalSecret -metadata: - name: default-minio-user - namespace: minio-tenant-default - annotations: - argocd.argoproj.io/hook: PreSync -spec: - secretStoreRef: - kind: ClusterSecretStore - name: openbao-secret-store - refreshInterval: 5m - target: - name: default-user - data: - - secretKey: API_ACCESS_KEY - remoteRef: - key: secrets/data/minio-api-access-key - property: value - - secretKey: API_SECRET_KEY - remoteRef: - key: secrets/data/minio-api-secret-key - property: value - - secretKey: CONSOLE_ACCESS_KEY - remoteRef: - key: secrets/data/minio-console-access-key - property: value - - secretKey: CONSOLE_SECRET_KEY - remoteRef: - key: secrets/data/minio-console-secret-key - property: value -{{- end }} diff --git a/sources/minio-tenant-config/templates/minio-es-env-config.yaml b/sources/minio-tenant-config/templates/minio-es-env-config.yaml deleted file mode 100644 index 34fd1186..00000000 --- a/sources/minio-tenant-config/templates/minio-es-env-config.yaml +++ /dev/null @@ -1,46 +0,0 @@ -{{- if .Values.externalSecrets.enabled }} ---- -apiVersion: external-secrets.io/v1beta1 -kind: ExternalSecret -metadata: - name: default-minio-tenant-env-configuration-spec - namespace: minio-tenant-default - annotations: - argocd.argoproj.io/hook: PreSync -spec: - secretStoreRef: - kind: ClusterSecretStore - name: openbao-secret-store - refreshInterval: 5m - target: - name: default-minio-tenant-env-configuration - template: - data: - config.env: | - export MINIO_SERVER_URL="http://minio:80" - export MINIO_API_ROOT_ACCESS="on" - export MINIO_ROOT_USER="minioroot" - export MINIO_ROOT_PASSWORD="{{ "{{" }}.password{{ "}}"}}" - export MINIO_BROWSER_REDIRECT_URL="https://minio.{{ "{{" }}.domain{{ "}}"}}" - export MINIO_IDENTITY_OPENID_SCOPES="openid,profile,email,policy" - export MINIO_IDENTITY_OPENID_CLIENT_ID=minio - export MINIO_IDENTITY_OPENID_CLIENT_SECRET="{{ "{{" }}.client_secret{{ "}}"}}" - export MINIO_IDENTITY_OPENID_CONFIG_URL="{{ "{{" }}.openid_url{{ "}}"}}" - data: - - secretKey: password - remoteRef: - key: secrets/data/minio-root-password - property: value - - secretKey: client_secret - remoteRef: - key: secrets/data/minio-client-secret - property: value - - secretKey: openid_url - remoteRef: - key: secrets/data/minio-openid-url - property: value - - secretKey: domain - remoteRef: - key: secrets/data/cluster-domain - property: value -{{- end }} \ No newline at end of file diff --git a/sources/minio-tenant-config/templates/minio-httproute.yaml b/sources/minio-tenant-config/templates/minio-httproute.yaml deleted file mode 100644 index 1080afee..00000000 --- a/sources/minio-tenant-config/templates/minio-httproute.yaml +++ /dev/null @@ -1,27 +0,0 @@ ---- -apiVersion: gateway.networking.k8s.io/v1 -kind: HTTPRoute -metadata: - name: minio - namespace: minio-tenant-default -spec: - parentRefs: - - group: gateway.networking.k8s.io - kind: Gateway - name: https - namespace: envoy-gateway-system - rules: - - backendRefs: - - group: "" - kind: Service - name: default-minio-tenant-console - port: 9090 - weight: 1 - matches: - - headers: - - type: RegularExpression - name: Host - value: "minio\\..*" - path: - type: PathPrefix - value: / \ No newline at end of file diff --git a/sources/minio-tenant-config/templates/minio-rbac.yaml b/sources/minio-tenant-config/templates/minio-rbac.yaml deleted file mode 100644 index 31803b91..00000000 --- a/sources/minio-tenant-config/templates/minio-rbac.yaml +++ /dev/null @@ -1,36 +0,0 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - name: minio-secret-readonly - namespace: minio-tenant-default ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: minio-secret-readonly - namespace: minio-tenant-default -rules: -- apiGroups: - - "" - resourceNames: - - default-user - resources: - - secrets - verbs: - - get - - list - - watch ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: minio-secret-readonly-binding - namespace: minio-tenant-default -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: minio-secret-readonly -subjects: - - kind: ServiceAccount - name: minio-secret-readonly - namespace: minio-tenant-default diff --git a/sources/minio-tenant-config/templates/minio-secret-example.yaml b/sources/minio-tenant-config/templates/minio-secret-example.yaml deleted file mode 100644 index f3c2314f..00000000 --- a/sources/minio-tenant-config/templates/minio-secret-example.yaml +++ /dev/null @@ -1,13 +0,0 @@ -{{- if .Values.externalSecrets.enabled }} ---- -apiVersion: v1 -kind: Secret -metadata: - name: example-minio-config-secret - namespace: minio-tenant-default -stringData: - config.env: |- - export MINIO_ROOT_USER="minio" - export MINIO_ROOT_PASSWORD="minio123" -type: Opaque -{{- end }} diff --git a/sources/minio-tenant-config/templates/minio-tls-clustersecretstore.yaml b/sources/minio-tenant-config/templates/minio-tls-clustersecretstore.yaml deleted file mode 100644 index cf191e40..00000000 --- a/sources/minio-tenant-config/templates/minio-tls-clustersecretstore.yaml +++ /dev/null @@ -1,71 +0,0 @@ -{{- if .Values.externalSecrets.enabled }} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: tls-secret-svc-account - namespace: minio-tenant-default ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: external-secrets-tls-role -rules: -- apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: external-secrets-tls-role-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: external-secrets-tls-role -subjects: -- kind: ServiceAccount - name: tls-secret-svc-account - namespace: minio-tenant-default ---- -apiVersion: external-secrets.io/v1beta1 -kind: ClusterSecretStore -metadata: - name: tls-secret-store -spec: - provider: - kubernetes: - remoteNamespace: envoy-gateway-system - server: - caProvider: - type: ConfigMap - name: kube-root-ca.crt - key: ca.crt - namespace: envoy-gateway-system - auth: - serviceAccount: - name: tls-secret-svc-account ---- -apiVersion: external-secrets.io/v1beta1 -kind: ExternalSecret -metadata: - name: cluster-tls - namespace: minio-tenant-default -spec: - refreshInterval: 1h - secretStoreRef: - name: tls-secret-store - kind: ClusterSecretStore - target: - name: cluster-tls - data: - - secretKey: public.crt - remoteRef: - key: cluster-tls - property: tls.crt - - secretKey: private.key - remoteRef: - key: cluster-tls - property: tls.key ---- -{{- end }} - diff --git a/sources/minio-tenant-config/values.yaml b/sources/minio-tenant-config/values.yaml deleted file mode 100644 index 581e205f..00000000 --- a/sources/minio-tenant-config/values.yaml +++ /dev/null @@ -1,6 +0,0 @@ -domain: # to be filled by cluster-forge app - -# Render ExternalSecret/ClusterSecretStore resources (requires external-secrets -# operator). Set false to provide credentials as plain Kubernetes Secrets. -externalSecrets: - enabled: true diff --git a/sources/minio-tenant/7.0.0/.helmignore b/sources/minio-tenant/7.0.0/.helmignore deleted file mode 100644 index 50af0317..00000000 --- a/sources/minio-tenant/7.0.0/.helmignore +++ /dev/null @@ -1,22 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ diff --git a/sources/minio-tenant/7.0.0/Chart.yaml b/sources/minio-tenant/7.0.0/Chart.yaml deleted file mode 100644 index 457bc437..00000000 --- a/sources/minio-tenant/7.0.0/Chart.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: v2 -appVersion: v7.0.0 -description: A Helm chart for MinIO Operator -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 -version: 7.0.0 diff --git a/sources/minio-tenant/7.0.0/README.md b/sources/minio-tenant/7.0.0/README.md deleted file mode 100644 index 1272adf5..00000000 --- a/sources/minio-tenant/7.0.0/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# MinIO ![license](https://img.shields.io/badge/license-AGPL%20V3-blue) - -[MinIO](https://min.io) is a High Performance Object Storage released under GNU AGPLv3 or later. It is API compatible -with Amazon S3 cloud storage service. Use MinIO to build high performance infrastructure for machine learning, analytics -and application data workloads. - -For more detailed documentation please visit [here](https://docs.minio.io/) - -Introduction ------------- - -This chart bootstraps MinIO Tenant on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. - -Configure MinIO Helm repo --------------------- - -```bash -helm repo add minio https://operator.min.io/ -``` - -Creating a Tenant with Helm Chart ------------------ - -Once the [MinIO Operator Chart](https://github.com/minio/operator/tree/master/helm/operator) is successfully installed, create a MinIO Tenant using: - -```bash -helm install --namespace tenant-ns \ - --create-namespace tenant minio/tenant -``` - -This creates a 4 Node MinIO Tenant (cluster). To change the default values, take a look at various [values.yaml](https://github.com/minio/operator/blob/master/helm/tenant/values.yaml). diff --git a/sources/minio-tenant/7.0.0/templates/_helpers.tpl b/sources/minio-tenant/7.0.0/templates/_helpers.tpl deleted file mode 100644 index 4fa28640..00000000 --- a/sources/minio-tenant/7.0.0/templates/_helpers.tpl +++ /dev/null @@ -1,13 +0,0 @@ -{{/* vim: set filetype=mustache: */}} -{{/* -Renders a value that contains template. -Usage: -{{ include "minio-operator.render" ( dict "value" .Values.path.to.the.Value "context" $) }} -*/}} -{{- define "minio-operator.render" -}} - {{- if typeIs "string" .value }} - {{- tpl .value .context }} - {{- else }} - {{- tpl (.value | toYaml) .context }} - {{- end }} -{{- end -}} diff --git a/sources/minio-tenant/7.0.0/templates/api-ingress.yaml b/sources/minio-tenant/7.0.0/templates/api-ingress.yaml deleted file mode 100644 index 97ee9010..00000000 --- a/sources/minio-tenant/7.0.0/templates/api-ingress.yaml +++ /dev/null @@ -1,57 +0,0 @@ -{{- if .Values.ingress.api.enabled }} -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: {{ .Values.tenant.name }} - {{- with .Values.ingress.api.labels }} - labels: {{ toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.ingress.api.annotations }} - annotations: {{ toYaml . | nindent 4 }} - {{- end }} -spec: - {{- with .Values.ingress.api.ingressClassName }} - ingressClassName: {{ . }} - {{- end }} - {{- if .Values.ingress.api.tls }} - tls: - {{- range .Values.ingress.api.tls }} - - hosts: - {{- range .hosts }} - - {{ . | quote }} - {{- end }} - secretName: {{ .secretName }} - {{- end }} - {{- end }} - rules: - - host: {{ .Values.ingress.api.host }} - http: - paths: - - path: {{ .Values.ingress.api.path }} - pathType: {{ .Values.ingress.api.pathType }} - backend: - service: - name: minio - port: - {{- if or .Values.tenant.certificate.requestAutoCert (not (empty .Values.tenant.certificate.externalCertSecret)) }} - name: https-minio - {{- else }} - name: http-minio - {{- end }} - {{- if .Values.tenant.features.bucketDNS }} - - host: "*.{{ .Values.ingress.api.host }}" - http: - paths: - - path: {{ .Values.ingress.api.path }} - pathType: {{ .Values.ingress.api.pathType }} - backend: - service: - name: minio - port: - {{- if or .Values.tenant.certificate.requestAutoCert (not (empty .Values.tenant.certificate.externalCertSecret)) }} - name: https-minio - {{- else }} - name: http-minio - {{- end }} - {{- end }} -{{- end }} diff --git a/sources/minio-tenant/7.0.0/templates/console-ingress.yaml b/sources/minio-tenant/7.0.0/templates/console-ingress.yaml deleted file mode 100644 index 01382faf..00000000 --- a/sources/minio-tenant/7.0.0/templates/console-ingress.yaml +++ /dev/null @@ -1,41 +0,0 @@ -{{- if .Values.ingress.console.enabled }} -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: {{ .Values.tenant.name }}-console - {{- with .Values.ingress.console.labels }} - labels: {{ toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.ingress.console.annotations }} - annotations: {{ toYaml . | nindent 4 }} - {{- end }} -spec: - {{- with .Values.ingress.console.ingressClassName }} - ingressClassName: {{ . }} - {{- end }} - {{- if .Values.ingress.console.tls }} - tls: - {{- range .Values.ingress.console.tls }} - - hosts: - {{- range .hosts }} - - {{ . | quote }} - {{- end }} - secretName: {{ .secretName }} - {{- end }} - {{- end }} - rules: - - host: {{ .Values.ingress.console.host }} - http: - paths: - - path: {{ .Values.ingress.console.path }} - pathType: {{ .Values.ingress.console.pathType }} - backend: - service: - name: {{ .Values.tenant.name }}-console - port: - {{- if or .Values.tenant.certificate.requestAutoCert (not (empty .Values.tenant.certificate.externalCertSecret)) }} - name: https-console - {{- else }} - name: http-console - {{- end }} -{{- end }} diff --git a/sources/minio-tenant/7.0.0/templates/extra-resources.yaml b/sources/minio-tenant/7.0.0/templates/extra-resources.yaml deleted file mode 100644 index 13c5e9a9..00000000 --- a/sources/minio-tenant/7.0.0/templates/extra-resources.yaml +++ /dev/null @@ -1,4 +0,0 @@ -{{- range .Values.extraResources }} ---- -{{- include "minio-operator.render" (dict "value" . "context" $) }} -{{- end }} diff --git a/sources/minio-tenant/7.0.0/templates/kes-configuration-secret.yaml b/sources/minio-tenant/7.0.0/templates/kes-configuration-secret.yaml deleted file mode 100644 index bdbe0ecb..00000000 --- a/sources/minio-tenant/7.0.0/templates/kes-configuration-secret.yaml +++ /dev/null @@ -1,9 +0,0 @@ -{{- if dig "tenant" "kes" "configuration" false (.Values | merge (dict)) }} -apiVersion: v1 -kind: Secret -metadata: - name: kes-configuration -type: Opaque -stringData: - server-config.yaml: {{ .Values.tenant.kes.configuration | toYaml | indent 2 }} -{{- end }} diff --git a/sources/minio-tenant/7.0.0/templates/tenant-configuration.yaml b/sources/minio-tenant/7.0.0/templates/tenant-configuration.yaml deleted file mode 100644 index 1638f9f7..00000000 --- a/sources/minio-tenant/7.0.0/templates/tenant-configuration.yaml +++ /dev/null @@ -1,29 +0,0 @@ -{{- if (.Values.secrets) }} -{{- fail "# ERROR: '.secrets' is deprecated since v5.0.15 and has been removed. Please use '.tenant.configSecret' instead." }} -{{- else }} -{{- if not (.Values.tenant.configSecret) }} -{{- fail "# ERROR: '.tenant.configSecret' should be set." }} -{{- else }} -{{- if not (.Values.tenant.configSecret.existingSecret) }} - -apiVersion: v1 -kind: Secret -metadata: - name: {{ dig "tenant" "configSecret" "name" "" (.Values | merge (dict)) }} -type: Opaque -stringData: - config.env: |- - export MINIO_ROOT_USER={{ .Values.tenant.configSecret.accessKey | quote }} - export MINIO_ROOT_PASSWORD={{ .Values.tenant.configSecret.secretKey | quote }} - -{{- else }} -{{- if (.Values.tenant.configSecret.accessKey) }} -{{- fail "# ERROR: cannot set access-key when an existing secret is used" }} -{{- end }} -{{- if (.Values.tenant.configSecret.secretKey) }} -{{- fail "# ERROR: cannot set secret-key when an existing secret is used" }} -{{- end }} -{{- end }} -{{- end }} -{{- end }} - diff --git a/sources/minio-tenant/7.0.0/templates/tenant.yaml b/sources/minio-tenant/7.0.0/templates/tenant.yaml deleted file mode 100644 index 173e44f4..00000000 --- a/sources/minio-tenant/7.0.0/templates/tenant.yaml +++ /dev/null @@ -1,211 +0,0 @@ -{{- with .Values.tenant }} -apiVersion: minio.min.io/v2 -kind: Tenant -metadata: - name: {{ .name }} - ## Optionally pass labels to be applied to the statefulset pods - labels: - app: minio - {{- if dig "metrics" "enabled" false . }} - ## Annotations for MinIO Tenant Pods - annotations: - prometheus.io/path: /minio/v2/metrics/cluster - prometheus.io/port: {{ dig "metrics" "port" 9000 . | quote }} - prometheus.io/scrape: "true" - prometheus.io/scheme: {{ dig "metrics" "protocol" "http" . | quote }} - {{- end }} -{{- if dig "scheduler" "name" "" . }} -scheduler: - name: {{ dig "scheduler" "name" "" . }} -{{- end }} -spec: - image: "{{ .image.repository }}:{{ .image.digest | default .image.tag }}" - imagePullPolicy: {{ dig "image" "pullPolicy" "IfNotPresent" . }} - {{- if dig "imagePullSecret" "name" "" . }} - imagePullSecret: - name: {{ dig "imagePullSecret" "name" "" . }} - {{- end }} - {{- with (dig "initContainers" (list) .) }} - initContainers: {{- toYaml . | nindent 4 }} - {{- end }} - ## Secret with default environment variable configurations - configuration: - name: {{ .configuration.name }} - {{- if hasKey . "poolsMetadata" }} - poolsMetadata: {{- if eq (len .poolsMetadata) 0 }} {} {{- end }} - {{- with (dig "poolsMetadata" (dict) .) }} - {{- toYaml . | nindent 4 }} - {{- end }} - {{- end }} - pools: - {{- range .pools }} - - servers: {{ .servers | default 4 }} - name: {{ .name | default "" }} - volumesPerServer: {{ .volumesPerServer | default 4 }} - {{- if .runtimeClassName }} - runtimeClassName: {{ .runtimeClassName }} - {{- end }} - volumeClaimTemplate: - metadata: - name: data - {{- with .storageAnnotations }} - annotations: {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .storageLabels }} - labels: {{- toYaml . | nindent 12 }} - {{- end }} - spec: - {{- if .storageClassName }} - storageClassName: {{ .storageClassName }} - {{- end }} - accessModes: - - ReadWriteOnce - resources: - requests: - storage: {{ .size | default "10Gi" }} - {{- with .annotations }} - annotations: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .labels }} - labels: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .tolerations }} - tolerations: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .nodeSelector }} - nodeSelector: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .affinity }} - affinity: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .resources }} - resources: {{- toYaml . | nindent 8 }} - {{- end }} - {{- if .securityContext }} - securityContext: {{- toYaml .securityContext | nindent 8 }} - {{- end }} - {{- if .containerSecurityContext }} - containerSecurityContext: {{- toYaml .containerSecurityContext | nindent 8 }} - {{- end }} - {{- with .topologySpreadConstraints }} - topologySpreadConstraints: {{- toYaml . | nindent 8 }} - {{- end }} - {{- end }} - mountPath: {{ dig "mountPath" "/export" . }} - subPath: {{ dig "subPath" "/data" . }} - {{- with (dig "certificate" "externalCaCertSecret" (list) .) }} - externalCaCertSecret: {{- toYaml . | nindent 6 }} - {{- end }} - {{- with (dig "certificate" "externalCertSecret" (list) .) }} - externalCertSecret: {{- toYaml . | nindent 6 }} - {{- end }} - requestAutoCert: {{ dig "certificate" "requestAutoCert" false . }} - {{- if ((.certificate).certExpiryAlertThreshold) }} - certExpiryAlertThreshold: {{ ((.certificate).certExpiryAlertThreshold) }} - {{- end }} - {{- if dig "s3" "bucketDNS" false . }} - {{- fail "Value 'tenant.s3.bucketDNS' is deprecated since Operator v4.3.2, use 'tenant.features.bucketDNS' instead" }} - {{- end }} - features: - bucketDNS: {{ dig "features" "bucketDNS" false . }} - {{- with (dig "features" "domains" (dict) .) }} - domains: {{- toYaml . | nindent 6 }} - {{- end }} - enableSFTP: {{ dig "features" "enableSFTP" false . }} - {{- with (dig "buckets" (list) .) }} - buckets: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "users" (list) .) }} - users: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "certificate" "certConfig" (dict) .) }} - certConfig: {{- toYaml . | nindent 4 }} - {{- end }} - podManagementPolicy: {{ dig "podManagementPolicy" "Parallel" . }} - {{- with (dig "readiness" (dict) .) }} - readiness: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "liveness" (dict) .) }} - liveness: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "startup" (dict) .) }} - startup: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "lifecycle" (dict) .) }} - lifecycle: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "exposeServices" (dict) .) }} - exposeServices: {{- toYaml . | nindent 4 }} - {{- end }} - {{- if dig "serviceAccountName" "" . }} - serviceAccountName: {{ dig "serviceAccountName" "" . }} - {{- end }} - prometheusOperator: {{ dig "prometheusOperator" "false" . }} - {{- with (dig "logging" (dict) .) }} - logging: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "serviceMetadata" (dict) .) }} - serviceMetadata: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "env" (list) .) }} - env: {{- toYaml . | nindent 4 }} - {{- end }} - {{- if dig "priorityClassName" "" . }} - priorityClassName: {{ dig "priorityClassName" "" . }} - {{- end }} - {{- with (dig "additionalVolumes" (list) .) }} - additionalVolumes: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "additionalVolumeMounts" (list) .) }} - additionalVolumeMounts: {{- toYaml . | nindent 4 }} - {{- end }} - {{- if dig "kes" "configuration" false . }} - kes: - image: "{{ .kes.image.repository }}:{{ .kes.image.digest | default .kes.image.tag }}" - {{- with (dig "kes" "env" (list) .) }} - env: {{- toYaml . | nindent 4 }} - {{- end }} - replicas: {{ .kes.replicas | int }} - kesSecret: - name: "kes-configuration" - imagePullPolicy: {{ .kes.imagePullPolicy | quote }} - {{- with (dig "kes" "externalCertSecret" (dict) .) }} - externalCertSecret: {{- toYaml . | nindent 6 }} - {{- end }} - {{- with (dig "kes" "clientCertSecret" (dict) .) }} - clientCertSecret: {{- toYaml . | nindent 6 }} - {{- end }} - ## Key name to be created on the KMS, default is "my-minio-key" - keyName: {{ .kes.keyName | quote }} - {{- with (dig "resources" (dict) .) }} - resources: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "nodeSelector" (dict) .) }} - nodeSelector: {{- toYaml . | nindent 4 }} - {{- end }} - affinity: - nodeAffinity: {} - podAffinity: {} - podAntiAffinity: {} - tolerations: [] - {{- with (dig "annotations" (dict) .) }} - annotations: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "labels" (dict) .) }} - labels: {{- toYaml . | nindent 4 }} - {{- end }} - serviceAccountName: {{ .kes.serviceAccountName | quote }} - {{- if hasKey .kes "securityContext" }} - securityContext: {{- if eq (len .kes.securityContext) 0 }} {} {{- end }} - {{- with (dig "kes" "securityContext" (dict) .) }} - {{- toYaml . | nindent 6 }} - {{- end }} - {{- end }} - {{- if hasKey .kes "containerSecurityContext" }} - containerSecurityContext: {{- if eq (len .kes.containerSecurityContext) 0 }} { } {{- end }} - {{- with (dig "kes" "containerSecurityContext" (dict) .) }} - {{- toYaml . | nindent 6 }} - {{- end }} - {{- end }} - {{- end }} -{{- end }} diff --git a/sources/minio-tenant/7.0.0/values.yaml b/sources/minio-tenant/7.0.0/values.yaml deleted file mode 100644 index 4fd58527..00000000 --- a/sources/minio-tenant/7.0.0/values.yaml +++ /dev/null @@ -1,515 +0,0 @@ -# Root key for MinIO Tenant Chart -tenant: - ### - # The Tenant name - # - # Change this to match your preferred MinIO Tenant name. - name: myminio - ### - # Specify the Operator container image to use for the deployment. - # ``image.tag`` - # For example, the following sets the image to the ``quay.io/minio/operator`` repo and the v7.0.0 tag. - # The container pulls the image if not already present: - # - # .. code-block:: yaml - # - # image: - # repository: quay.io/minio/minio - # tag: RELEASE.2024-11-07T00-52-20Z - # pullPolicy: IfNotPresent - # - # The chart also supports specifying an image based on digest value: - # - # .. code-block:: yaml - # - # image: - # repository: quay.io/minio/minio@sha256 - # digest: 28c80b379c75242c6fe793dfbf212f43c602140a0de5ebe3d9c2a3a7b9f9f983 - # pullPolicy: IfNotPresent - # - # - image: - repository: quay.io/minio/minio - tag: RELEASE.2024-11-07T00-52-20Z - pullPolicy: IfNotPresent - ### - # - # An array of Kubernetes secrets to use for pulling images from a private ``image.repository``. - # Only one array element is supported at this time. - imagePullSecret: { } - ### - # - # Specify `initContainers `__ to perform setup or configuration tasks before the main Tenant pods starts. - # - # Example of init container which waits for idenity provider to be reachable before starting MinIO Tenant: - # - # .. code-block:: yaml - # - # initContainers: - # - name: wait-for-idp - # image: busybox - # command: - # - sh - # - -c - # - | - # URL="https://idp-url" - # echo "Checking IdP reachability (${URL})" - # until $(wget -q -O "/dev/null" ${URL}) ; do - # echo "IdP (${URL}) not reachable. Waiting to be reachable..." - # sleep 5 - # done - # echo "IdP (${URL}) reachable. Starting MinIO..." - # - initContainers: [ ] - ### - # The Kubernetes `Scheduler `__ to use for dispatching Tenant pods. - # - # Specify an empty dictionary ``{}`` to dispatch pods with the default scheduler. - scheduler: { } - ### - # The Kubernetes secret name that contains MinIO environment variable configurations. - # The secret is expected to have a key named config.env containing environment variables exports. - configuration: - name: myminio-env-configuration - ### - # Root key for dynamically creating a secret for use with configuring root MinIO User - # Specify the ``name`` and then a list of environment variables. - # - # .. important:: - # - # Do not use this in production environments. - # This field is intended for use with rapid development or testing only. - # - # For example: - # - # .. code-block:: yaml - # - # name: myminio-env-configuration - # accessKey: minio - # secretKey: minio123 - # - configSecret: - name: myminio-env-configuration - accessKey: minio - secretKey: minio123 - #existingSecret: true - - ### - # Metadata that will be added to the statefulset and pods of all pools - poolsMetadata: - ### - # Specify `annotations `__ to associate to Tenant pods. - annotations: { } - ### - # Specify `labels `__ to associate to Tenant pods. - labels: { } - - ### - # If this variable is set to true, then enable the usage of an existing Kubernetes secret to set environment variables for the Tenant. - # The existing Kubernetes secret name must be placed under .tenant.configuration.name e.g. existing-minio-env-configuration - # The secret must contain a key ``config.env``. - # The values should be a series of export statements to set environment variables for the Tenant. - # For example: - # - # .. code-block:: shell - # - # stringData: - # config.env: |- - # export MINIO_ROOT_USER=ROOTUSERNAME - # export MINIO_ROOT_PASSWORD=ROOTUSERPASSWORD - # - # existingSecret: false - ### - # Top level key for configuring MinIO Pool(s) in this Tenant. - # - # See `Operator CRD: Pools `__ for more information on all subfields. - pools: - ### - # The number of MinIO Tenant Pods / Servers in this pool. - # For standalone mode, supply 1. For distributed mode, supply 4 or more. - # Note that the operator does not support upgrading from standalone to distributed mode. - - servers: 4 - ### - # Custom name for the pool - name: pool-0 - ### - # The number of volumes attached per MinIO Tenant Pod / Server. - volumesPerServer: 4 - ### - # The capacity per volume requested per MinIO Tenant Pod. - size: 10Gi - ### - # The `storageClass `__ to associate with volumes generated for this pool. - # - # If using Amazon Elastic Block Store (EBS) CSI driver - # Please make sure to set xfs for "csi.storage.k8s.io/fstype" parameter under StorageClass.parameters. - # Docs: https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/docs/parameters.md - # storageClassName: standard - ### - # Specify `storageAnnotations `__ to associate to PVCs. - storageAnnotations: { } - ### - # Specify `storageLabels `__ to associate to PVCs. - storageLabels: { } - ### - # Specify `annotations `__ to associate to Tenant pods. - annotations: { } - ### - # Specify `labels `__ to associate to Tenant pods. - labels: { } - ### - # - # An array of `Toleration labels `__ to associate to Tenant pods. - # - # These settings determine the distribution of pods across worker nodes. - tolerations: [ ] - ### - # Any `Node Selectors `__ to apply to Tenant pods. - # - # The Kubernetes scheduler uses these selectors to determine which worker nodes onto which it can deploy Tenant pods. - # - # If no worker nodes match the specified selectors, the Tenant deployment will fail. - nodeSelector: { } - ### - # - # The `affinity `__ or anti-affinity settings to apply to Tenant pods. - # - # These settings determine the distribution of pods across worker nodes and can help prevent or allow colocating pods onto the same worker nodes. - affinity: { } - ### - # - # The `Requests or Limits `__ for resources to associate to Tenant pods. - # - # These settings can control the minimum and maximum resources requested for each pod. - # If no worker nodes can meet the specified requests, the Operator may fail to deploy. - resources: { } - ### - # The Kubernetes `SecurityContext `__ to use for deploying Tenant resources. - # - # You may need to modify these values to meet your cluster's security and access settings. - # - # We recommend disabling recursive permission changes by setting ``fsGroupChangePolicy`` to ``OnRootMismatch`` as those operations can be expensive for certain workloads (e.g. large volumes with many small files). - securityContext: - runAsUser: 1000 - runAsGroup: 1000 - fsGroup: 1000 - fsGroupChangePolicy: "OnRootMismatch" - runAsNonRoot: true - ### - # The Kubernetes `SecurityContext `__ to use for deploying Tenant containers. - # You may need to modify these values to meet your cluster's security and access settings. - containerSecurityContext: - runAsUser: 1000 - runAsGroup: 1000 - runAsNonRoot: true - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - seccompProfile: - type: RuntimeDefault - ### - # - # An array of `Topology Spread Constraints `__ to associate to Operator Console pods. - # - # These settings determine the distribution of pods across worker nodes. - topologySpreadConstraints: [ ] - ### - # - # The name of a custom `Container Runtime `__ to use for the Operator Console pods. - # runtimeClassName: "" - ### - # The mount path where Persistent Volumes are mounted inside Tenant container(s). - mountPath: /export - ### - # The Sub path inside Mount path where MinIO stores data. - # - # .. warning:: - # - # Treat the ``mountPath`` and ``subPath`` values as immutable once you deploy the Tenant. - # If you change these values post-deployment, then you may have different paths for new and pre-existing data. - # This can vastly increase operational complexity and may result in unpredictable data states. - subPath: /data - ### - # Configures a Prometheus-compatible scraping endpoint at the specified port. - metrics: - enabled: false - port: 9000 - protocol: http - ### - # Configures external certificate settings for the Tenant. - certificate: - ### - # Specify an array of Kubernetes TLS secrets, where each entry corresponds to a secret the TLS private key and public certificate pair. - # - # This is used by MinIO to verify TLS connections from clients using those CAs - # If you omit this and have clients using TLS certificates minted by an external CA, those connections may fail with warnings around certificate verification. - # See `Operator CRD: TenantSpec `__. - externalCaCertSecret: [ ] - ### - # Specify an array of Kubernetes secrets, where each entry corresponds to a secret contains the TLS private key and public certificate pair. - # - # Omit this to use only the MinIO Operator autogenerated certificates. - # - # If you omit this field *and* set ``requestAutoCert`` to false, the Tenant starts without TLS. - # - # See `Operator CRD: TenantSpec `__. - # - # .. important:: - # - # The MinIO Operator may output TLS connectivity errors if it cannot trust the Certificate Authority (CA) which minted the custom certificates. - # - # You can pass the CA to the Operator to allow it to trust that cert. - # See `Self-Signed, Internal, and Private Certificates `__ for more information. - # This step may also be necessary for globally trusted CAs where you must provide intermediate certificates to the Operator to help build the full chain of trust. - externalCertSecret: [ ] - ### - # Enable automatic Kubernetes based `certificate generation and signing `__ - requestAutoCert: true - ### - # The minimum number of days to expiry before an alert for an expiring certificate is fired. - # In the below example, if a given certificate will expire in 7 days then expiration events will only be triggered 1 day before expiry - # certExpiryAlertThreshold: 1 - ### - # This field is used only when ``requestAutoCert: true``. - # Use this field to set CommonName for the auto-generated certificate. - # MinIO defaults to using the internal Kubernetes DNS name for the pod - # The default DNS name format is typically ``*.minio.default.svc.cluster.local``. - # - # See `Operator CRD: CertificateConfig `__ - certConfig: { } - ### - # MinIO features to enable or disable in the MinIO Tenant - # See `Operator CRD: Features `__. - features: - bucketDNS: false - domains: { } - enableSFTP: false - ### - # Array of objects describing one or more buckets to create during tenant provisioning. - # Example: - # - # .. code-block:: yaml - # - # - name: my-minio-bucket - # objectLock: false # optional - # region: us-east-1 # optional - buckets: [ ] - ### - # Array of Kubernetes secrets from which the Operator generates MinIO users during tenant provisioning. - # - # Each secret should specify the ``CONSOLE_ACCESS_KEY`` and ``CONSOLE_SECRET_KEY`` as the access key and secret key for that user. - users: [ ] - ### - # The `PodManagement `__ policy for MinIO Tenant Pods. - # Can be "OrderedReady" or "Parallel" - podManagementPolicy: Parallel - # The `Liveness Probe `__ for monitoring Tenant pod liveness. - # Tenant pods will be restarted if the probe fails. - liveness: { } - ### - # `Readiness Probe `__ for monitoring Tenant container readiness. - # Tenant pods will be removed from service endpoints if the probe fails. - readiness: { } - ### - # `Startup Probe `__ for monitoring container startup. - # Tenant pods will be restarted if the probe fails. - # Refer - startup: { } - ### - # The `Lifecycle hooks `__ for container. - lifecycle: { } - ### - # Directs the Operator to deploy the MinIO S3 API and Console services as LoadBalancer objects. - # - # If the Kubernetes cluster has a configured LoadBalancer, it can attempt to route traffic to those services automatically. - # - # - Specify ``minio: true`` to expose the MinIO S3 API. - # - Specify ``console: true`` to expose the Console. - # - # Both fields default to ``false``. - exposeServices: { } - ### - # The `Kubernetes Service Account `__ associated with the Tenant. - serviceAccountName: "" - ### - # Directs the Operator to add the Tenant's metric scrape configuration to an existing Kubernetes Prometheus deployment managed by the Prometheus Operator. - prometheusOperator: false - ### - # Configure pod logging configuration for the MinIO Tenant. - # - # - Specify ``json`` for JSON-formatted logs. - # - Specify ``anonymous`` for anonymized logs. - # - Specify ``quiet`` to supress logging. - # - # An example of JSON-formatted logs is as follows: - # - # .. code-block:: shell - # - # $ k logs myminio-pool-0-0 -n default - # {"level":"INFO","errKind":"","time":"2022-04-07T21:49:33.740058549Z","message":"All MinIO sub-systems initialized successfully"} - logging: { } - ### - # serviceMetadata allows passing additional labels and annotations to MinIO and Console specific - # services created by the operator. - serviceMetadata: { } - ### - # Add environment variables to be set in MinIO container (https://github.com/minio/minio/tree/master/docs/config) - env: [ ] - ### - # PriorityClassName indicates the Pod priority and hence importance of a Pod relative to other Pods. - # This is applied to MinIO pods only. - # Refer Kubernetes documentation for details https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass/ - priorityClassName: "" - ### - # An array of `Volumes `__ which the Operator can mount to Tenant pods. - # - # The volumes must exist *and* be accessible to the Tenant pods. - additionalVolumes: [ ] - ### - # An array of volume mount points associated to each Tenant container. - # - # Specify each item in the array as follows: - # - # .. code-block:: yaml - # - # volumeMounts: - # - name: volumename - # mountPath: /path/to/mount - # - # The ``name`` field must correspond to an entry in the ``additionalVolumes`` array. - additionalVolumeMounts: [ ] - # Define configuration for KES (stateless and distributed key-management system) - # Refer https://github.com/minio/kes - #kes: - # ## Image field: - # # Image from tag (original behavior), for example: - # # image: - # # repository: quay.io/minio/kes - # # tag: 2024-11-25T13-44-31Z - # # Image from digest (added after original behavior), for example: - # # image: - # # repository: quay.io/minio/kes@sha256 - # # digest: fb15af611149892f357a8a99d1bcd8bf5dae713bd64c15e6eb27fbdb88fc208b - # image: - # repository: quay.io/minio/kes - # tag: 2024-11-25T13-44-31Z - # pullPolicy: IfNotPresent - # env: [ ] - # replicas: 2 - # configuration: |- - # address: :7373 - # tls: - # key: /tmp/kes/server.key # Path to the TLS private key - # cert: /tmp/kes/server.crt # Path to the TLS certificate - # proxy: - # identities: [] - # header: - # cert: X-Tls-Client-Cert - # admin: - # identity: ${MINIO_KES_IDENTITY} - # cache: - # expiry: - # any: 5m0s - # unused: 20s - # log: - # error: on - # audit: off - # keystore: - # # KES configured with fs (File System mode) doesn't work in Kubernetes environments and is not recommended - # # use a real KMS - # # fs: - # # path: "./keys" # Path to directory. Keys will be stored as files. Not Recommended for Production. - # vault: - # endpoint: "http://vault.default.svc.cluster.local:8200" # The Vault endpoint - # namespace: "" # An optional Vault namespace. See: https://www.vaultproject.io/docs/enterprise/namespaces/index.html - # prefix: "my-minio" # An optional K/V prefix. The server will store keys under this prefix. - # approle: # AppRole credentials. See: https://www.vaultproject.io/docs/auth/approle.html - # id: "" # Your AppRole Role ID - # secret: "" # Your AppRole Secret ID - # retry: 15s # Duration until the server tries to re-authenticate after connection loss. - # tls: # The Vault client TLS configuration for mTLS authentication and certificate verification - # key: "" # Path to the TLS client private key for mTLS authentication to Vault - # cert: "" # Path to the TLS client certificate for mTLS authentication to Vault - # ca: "" # Path to one or multiple PEM root CA certificates - # status: # Vault status configuration. The server will periodically reach out to Vault to check its status. - # ping: 10s # Duration until the server checks Vault's status again. - # # aws: - # # # The AWS SecretsManager key store. The server will store - # # # secret keys at the AWS SecretsManager encrypted with - # # # AWS-KMS. See: https://aws.amazon.com/secrets-manager - # # secretsmanager: - # # endpoint: "" # The AWS SecretsManager endpoint - e.g.: secretsmanager.us-east-2.amazonaws.com - # # region: "" # The AWS region of the SecretsManager - e.g.: us-east-2 - # # kmskey: "" # The AWS-KMS key ID used to en/decrypt secrets at the SecretsManager. By default (if not set) the default AWS-KMS key will be used. - # # credentials: # The AWS credentials for accessing secrets at the AWS SecretsManager. - # # accesskey: "" # Your AWS Access Key - # # secretkey: "" # Your AWS Secret Key - # # token: "" # Your AWS session token (usually optional) - # imagePullPolicy: "IfNotPresent" - # externalCertSecret: null - # clientCertSecret: null - # # Key name to be created on the KMS, default is "my-minio-key" - # keyName: "" - # resources: { } - # nodeSelector: { } - # affinity: - # nodeAffinity: { } - # podAffinity: { } - # podAntiAffinity: { } - # tolerations: [ ] - # annotations: { } - # labels: { } - # serviceAccountName: "" - # securityContext: - # runAsUser: 1000 - # runAsGroup: 1000 - # runAsNonRoot: true - # fsGroup: 1000 - # containerSecurityContext: - # runAsUser: 1000 - # runAsGroup: 1000 - # runAsNonRoot: true - # allowPrivilegeEscalation: false - # capabilities: - # drop: - # - ALL - # seccompProfile: - # type: RuntimeDefault - -### -# Configures `Ingress `__ for the Tenant S3 API and Console. -# -# Set the keys to conform to the Ingress controller and configuration of your choice. -ingress: - api: - enabled: false - ingressClassName: "" - labels: { } - annotations: { } - tls: [ ] - host: minio.local - path: / - pathType: Prefix - console: - enabled: false - ingressClassName: "" - labels: { } - annotations: { } - tls: [ ] - host: minio-console.local - path: / - pathType: Prefix -# Use an extraResources template section to include additional Kubernetes resources -# with the Helm deployment. -#extraResources: -# - | -# apiVersion: v1 -# kind: Secret -# type: Opaque -# metadata: -# name: {{ dig "tenant" "configSecret" "name" "" (.Values | merge (dict)) }} -# stringData: -# config.env: |- -# export MINIO_ROOT_USER='minio' -# export MINIO_ROOT_PASSWORD='minio123' diff --git a/sources/minio-tenant/7.1.1/.helmignore b/sources/minio-tenant/7.1.1/.helmignore deleted file mode 100644 index 50af0317..00000000 --- a/sources/minio-tenant/7.1.1/.helmignore +++ /dev/null @@ -1,22 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ diff --git a/sources/minio-tenant/7.1.1/Chart.yaml b/sources/minio-tenant/7.1.1/Chart.yaml deleted file mode 100644 index a0b22ac8..00000000 --- a/sources/minio-tenant/7.1.1/Chart.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: v2 -appVersion: v7.1.1 -description: A Helm chart for MinIO Operator -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 -version: 7.1.1 diff --git a/sources/minio-tenant/7.1.1/README.md b/sources/minio-tenant/7.1.1/README.md deleted file mode 100644 index 1272adf5..00000000 --- a/sources/minio-tenant/7.1.1/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# MinIO ![license](https://img.shields.io/badge/license-AGPL%20V3-blue) - -[MinIO](https://min.io) is a High Performance Object Storage released under GNU AGPLv3 or later. It is API compatible -with Amazon S3 cloud storage service. Use MinIO to build high performance infrastructure for machine learning, analytics -and application data workloads. - -For more detailed documentation please visit [here](https://docs.minio.io/) - -Introduction ------------- - -This chart bootstraps MinIO Tenant on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. - -Configure MinIO Helm repo --------------------- - -```bash -helm repo add minio https://operator.min.io/ -``` - -Creating a Tenant with Helm Chart ------------------ - -Once the [MinIO Operator Chart](https://github.com/minio/operator/tree/master/helm/operator) is successfully installed, create a MinIO Tenant using: - -```bash -helm install --namespace tenant-ns \ - --create-namespace tenant minio/tenant -``` - -This creates a 4 Node MinIO Tenant (cluster). To change the default values, take a look at various [values.yaml](https://github.com/minio/operator/blob/master/helm/tenant/values.yaml). diff --git a/sources/minio-tenant/7.1.1/templates/_helpers.tpl b/sources/minio-tenant/7.1.1/templates/_helpers.tpl deleted file mode 100644 index 4fa28640..00000000 --- a/sources/minio-tenant/7.1.1/templates/_helpers.tpl +++ /dev/null @@ -1,13 +0,0 @@ -{{/* vim: set filetype=mustache: */}} -{{/* -Renders a value that contains template. -Usage: -{{ include "minio-operator.render" ( dict "value" .Values.path.to.the.Value "context" $) }} -*/}} -{{- define "minio-operator.render" -}} - {{- if typeIs "string" .value }} - {{- tpl .value .context }} - {{- else }} - {{- tpl (.value | toYaml) .context }} - {{- end }} -{{- end -}} diff --git a/sources/minio-tenant/7.1.1/templates/api-ingress.yaml b/sources/minio-tenant/7.1.1/templates/api-ingress.yaml deleted file mode 100644 index 97ee9010..00000000 --- a/sources/minio-tenant/7.1.1/templates/api-ingress.yaml +++ /dev/null @@ -1,57 +0,0 @@ -{{- if .Values.ingress.api.enabled }} -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: {{ .Values.tenant.name }} - {{- with .Values.ingress.api.labels }} - labels: {{ toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.ingress.api.annotations }} - annotations: {{ toYaml . | nindent 4 }} - {{- end }} -spec: - {{- with .Values.ingress.api.ingressClassName }} - ingressClassName: {{ . }} - {{- end }} - {{- if .Values.ingress.api.tls }} - tls: - {{- range .Values.ingress.api.tls }} - - hosts: - {{- range .hosts }} - - {{ . | quote }} - {{- end }} - secretName: {{ .secretName }} - {{- end }} - {{- end }} - rules: - - host: {{ .Values.ingress.api.host }} - http: - paths: - - path: {{ .Values.ingress.api.path }} - pathType: {{ .Values.ingress.api.pathType }} - backend: - service: - name: minio - port: - {{- if or .Values.tenant.certificate.requestAutoCert (not (empty .Values.tenant.certificate.externalCertSecret)) }} - name: https-minio - {{- else }} - name: http-minio - {{- end }} - {{- if .Values.tenant.features.bucketDNS }} - - host: "*.{{ .Values.ingress.api.host }}" - http: - paths: - - path: {{ .Values.ingress.api.path }} - pathType: {{ .Values.ingress.api.pathType }} - backend: - service: - name: minio - port: - {{- if or .Values.tenant.certificate.requestAutoCert (not (empty .Values.tenant.certificate.externalCertSecret)) }} - name: https-minio - {{- else }} - name: http-minio - {{- end }} - {{- end }} -{{- end }} diff --git a/sources/minio-tenant/7.1.1/templates/checks.yaml b/sources/minio-tenant/7.1.1/templates/checks.yaml deleted file mode 100644 index 1ac4a361..00000000 --- a/sources/minio-tenant/7.1.1/templates/checks.yaml +++ /dev/null @@ -1,24 +0,0 @@ -{{- with .Values.tenant }} - -# If an existing secret is used, do not set access-key and secret-key explicitly -# (note that we allow the default settings in values.yaml) -{{- with .configSecret }} -{{- if .existingSecret }} -{{- if and .accessKey (ne .accessKey "minio") }} -{{- fail "Cannot set access-key when an existing secret is used" }} -{{- end }} -{{- if and .secretKey (ne .secretKey "minio123") }} -{{- fail "Cannot set secret-key when an existing secret is used" }} -{{- end }} -{{- end }} -{{- end }} - -# If configuration.name is set and not the same as configSecret.name, -# then we should raise an error and abort -{{- if and .configuration .configuration.name }} -{{- if and .configSecret (ne .configuration.name .configSecret.name) -}} -{{- fail "configuration.name is deprecated and doesn't match .tenant.configSecret.name" }} -{{- end -}} -{{- end }} - -{{- end }} diff --git a/sources/minio-tenant/7.1.1/templates/console-ingress.yaml b/sources/minio-tenant/7.1.1/templates/console-ingress.yaml deleted file mode 100644 index 01382faf..00000000 --- a/sources/minio-tenant/7.1.1/templates/console-ingress.yaml +++ /dev/null @@ -1,41 +0,0 @@ -{{- if .Values.ingress.console.enabled }} -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: {{ .Values.tenant.name }}-console - {{- with .Values.ingress.console.labels }} - labels: {{ toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.ingress.console.annotations }} - annotations: {{ toYaml . | nindent 4 }} - {{- end }} -spec: - {{- with .Values.ingress.console.ingressClassName }} - ingressClassName: {{ . }} - {{- end }} - {{- if .Values.ingress.console.tls }} - tls: - {{- range .Values.ingress.console.tls }} - - hosts: - {{- range .hosts }} - - {{ . | quote }} - {{- end }} - secretName: {{ .secretName }} - {{- end }} - {{- end }} - rules: - - host: {{ .Values.ingress.console.host }} - http: - paths: - - path: {{ .Values.ingress.console.path }} - pathType: {{ .Values.ingress.console.pathType }} - backend: - service: - name: {{ .Values.tenant.name }}-console - port: - {{- if or .Values.tenant.certificate.requestAutoCert (not (empty .Values.tenant.certificate.externalCertSecret)) }} - name: https-console - {{- else }} - name: http-console - {{- end }} -{{- end }} diff --git a/sources/minio-tenant/7.1.1/templates/extra-resources.yaml b/sources/minio-tenant/7.1.1/templates/extra-resources.yaml deleted file mode 100644 index 13c5e9a9..00000000 --- a/sources/minio-tenant/7.1.1/templates/extra-resources.yaml +++ /dev/null @@ -1,4 +0,0 @@ -{{- range .Values.extraResources }} ---- -{{- include "minio-operator.render" (dict "value" . "context" $) }} -{{- end }} diff --git a/sources/minio-tenant/7.1.1/templates/kes-configuration-secret.yaml b/sources/minio-tenant/7.1.1/templates/kes-configuration-secret.yaml deleted file mode 100644 index bdbe0ecb..00000000 --- a/sources/minio-tenant/7.1.1/templates/kes-configuration-secret.yaml +++ /dev/null @@ -1,9 +0,0 @@ -{{- if dig "tenant" "kes" "configuration" false (.Values | merge (dict)) }} -apiVersion: v1 -kind: Secret -metadata: - name: kes-configuration -type: Opaque -stringData: - server-config.yaml: {{ .Values.tenant.kes.configuration | toYaml | indent 2 }} -{{- end }} diff --git a/sources/minio-tenant/7.1.1/templates/tenant-configuration.yaml b/sources/minio-tenant/7.1.1/templates/tenant-configuration.yaml deleted file mode 100644 index f38403e8..00000000 --- a/sources/minio-tenant/7.1.1/templates/tenant-configuration.yaml +++ /dev/null @@ -1,22 +0,0 @@ -{{- if (.Values.secrets) }} -{{- fail "# ERROR: '.secrets' is deprecated since v5.0.15 and has been removed. Please use '.tenant.configSecret' instead." }} -{{- else }} -{{- if not (.Values.tenant.configSecret) }} -{{- fail "# ERROR: '.tenant.configSecret' should be set." }} -{{- else }} -{{- if not (.Values.tenant.configSecret.existingSecret) }} - -apiVersion: v1 -kind: Secret -metadata: - name: {{ dig "tenant" "configSecret" "name" "" (.Values | merge (dict)) }} -type: Opaque -stringData: - config.env: |- - export MINIO_ROOT_USER={{ .Values.tenant.configSecret.accessKey | quote }} - export MINIO_ROOT_PASSWORD={{ .Values.tenant.configSecret.secretKey | quote }} - -{{- end }} -{{- end }} -{{- end }} - diff --git a/sources/minio-tenant/7.1.1/templates/tenant.yaml b/sources/minio-tenant/7.1.1/templates/tenant.yaml deleted file mode 100644 index a21613d3..00000000 --- a/sources/minio-tenant/7.1.1/templates/tenant.yaml +++ /dev/null @@ -1,211 +0,0 @@ -{{- with .Values.tenant }} -apiVersion: minio.min.io/v2 -kind: Tenant -metadata: - name: {{ .name }} - ## Optionally pass labels to be applied to the statefulset pods - labels: - app: minio - {{- if dig "metrics" "enabled" false . }} - ## Annotations for MinIO Tenant Pods - annotations: - prometheus.io/path: /minio/v2/metrics/cluster - prometheus.io/port: {{ dig "metrics" "port" 9000 . | quote }} - prometheus.io/scrape: "true" - prometheus.io/scheme: {{ dig "metrics" "protocol" "http" . | quote }} - {{- end }} -{{- if dig "scheduler" "name" "" . }} -scheduler: - name: {{ dig "scheduler" "name" "" . }} -{{- end }} -spec: - image: "{{ .image.repository }}:{{ .image.digest | default .image.tag }}" - imagePullPolicy: {{ dig "image" "pullPolicy" "IfNotPresent" . }} - {{- if dig "imagePullSecret" "name" "" . }} - imagePullSecret: - name: {{ dig "imagePullSecret" "name" "" . }} - {{- end }} - {{- with (dig "initContainers" (list) .) }} - initContainers: {{- toYaml . | nindent 4 }} - {{- end }} - ## Secret with default environment variable configurations - configuration: - name: {{ .configSecret.name }} - {{- if hasKey . "poolsMetadata" }} - poolsMetadata: {{- if eq (len .poolsMetadata) 0 }} {} {{- end }} - {{- with (dig "poolsMetadata" (dict) .) }} - {{- toYaml . | nindent 4 }} - {{- end }} - {{- end }} - pools: - {{- range .pools }} - - servers: {{ .servers | default 4 }} - name: {{ .name | default "" }} - volumesPerServer: {{ .volumesPerServer | default 4 }} - {{- if .runtimeClassName }} - runtimeClassName: {{ .runtimeClassName }} - {{- end }} - volumeClaimTemplate: - metadata: - name: data - {{- with .storageAnnotations }} - annotations: {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .storageLabels }} - labels: {{- toYaml . | nindent 12 }} - {{- end }} - spec: - {{- if .storageClassName }} - storageClassName: {{ .storageClassName }} - {{- end }} - accessModes: - - ReadWriteOnce - resources: - requests: - storage: {{ .size | default "10Gi" }} - {{- with .annotations }} - annotations: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .labels }} - labels: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .tolerations }} - tolerations: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .nodeSelector }} - nodeSelector: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .affinity }} - affinity: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .resources }} - resources: {{- toYaml . | nindent 8 }} - {{- end }} - {{- if .securityContext }} - securityContext: {{- toYaml .securityContext | nindent 8 }} - {{- end }} - {{- if .containerSecurityContext }} - containerSecurityContext: {{- toYaml .containerSecurityContext | nindent 8 }} - {{- end }} - {{- with .topologySpreadConstraints }} - topologySpreadConstraints: {{- toYaml . | nindent 8 }} - {{- end }} - {{- end }} - mountPath: {{ dig "mountPath" "/export" . }} - subPath: {{ dig "subPath" "/data" . }} - {{- with (dig "certificate" "externalCaCertSecret" (list) .) }} - externalCaCertSecret: {{- toYaml . | nindent 6 }} - {{- end }} - {{- with (dig "certificate" "externalCertSecret" (list) .) }} - externalCertSecret: {{- toYaml . | nindent 6 }} - {{- end }} - requestAutoCert: {{ dig "certificate" "requestAutoCert" false . }} - {{- if ((.certificate).certExpiryAlertThreshold) }} - certExpiryAlertThreshold: {{ ((.certificate).certExpiryAlertThreshold) }} - {{- end }} - {{- if dig "s3" "bucketDNS" false . }} - {{- fail "Value 'tenant.s3.bucketDNS' is deprecated since Operator v4.3.2, use 'tenant.features.bucketDNS' instead" }} - {{- end }} - features: - bucketDNS: {{ dig "features" "bucketDNS" false . }} - {{- with (dig "features" "domains" (dict) .) }} - domains: {{- toYaml . | nindent 6 }} - {{- end }} - enableSFTP: {{ dig "features" "enableSFTP" false . }} - {{- with (dig "buckets" (list) .) }} - buckets: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "users" (list) .) }} - users: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "certificate" "certConfig" (dict) .) }} - certConfig: {{- toYaml . | nindent 4 }} - {{- end }} - podManagementPolicy: {{ dig "podManagementPolicy" "Parallel" . }} - {{- with (dig "readiness" (dict) .) }} - readiness: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "liveness" (dict) .) }} - liveness: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "startup" (dict) .) }} - startup: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "lifecycle" (dict) .) }} - lifecycle: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "exposeServices" (dict) .) }} - exposeServices: {{- toYaml . | nindent 4 }} - {{- end }} - {{- if dig "serviceAccountName" "" . }} - serviceAccountName: {{ dig "serviceAccountName" "" . }} - {{- end }} - prometheusOperator: {{ dig "prometheusOperator" "false" . }} - {{- with (dig "logging" (dict) .) }} - logging: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "serviceMetadata" (dict) .) }} - serviceMetadata: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "env" (list) .) }} - env: {{- toYaml . | nindent 4 }} - {{- end }} - {{- if dig "priorityClassName" "" . }} - priorityClassName: {{ dig "priorityClassName" "" . }} - {{- end }} - {{- with (dig "additionalVolumes" (list) .) }} - additionalVolumes: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "additionalVolumeMounts" (list) .) }} - additionalVolumeMounts: {{- toYaml . | nindent 4 }} - {{- end }} - {{- if dig "kes" "configuration" false . }} - kes: - image: "{{ .kes.image.repository }}:{{ .kes.image.digest | default .kes.image.tag }}" - {{- with (dig "kes" "env" (list) .) }} - env: {{- toYaml . | nindent 4 }} - {{- end }} - replicas: {{ .kes.replicas | int }} - kesSecret: - name: "kes-configuration" - imagePullPolicy: {{ .kes.imagePullPolicy | quote }} - {{- with (dig "kes" "externalCertSecret" (dict) .) }} - externalCertSecret: {{- toYaml . | nindent 6 }} - {{- end }} - {{- with (dig "kes" "clientCertSecret" (dict) .) }} - clientCertSecret: {{- toYaml . | nindent 6 }} - {{- end }} - ## Key name to be created on the KMS, default is "my-minio-key" - keyName: {{ .kes.keyName | quote }} - {{- with (dig "resources" (dict) .) }} - resources: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "nodeSelector" (dict) .) }} - nodeSelector: {{- toYaml . | nindent 4 }} - {{- end }} - affinity: - nodeAffinity: {} - podAffinity: {} - podAntiAffinity: {} - tolerations: [] - {{- with (dig "annotations" (dict) .) }} - annotations: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "labels" (dict) .) }} - labels: {{- toYaml . | nindent 4 }} - {{- end }} - serviceAccountName: {{ .kes.serviceAccountName | quote }} - {{- if hasKey .kes "securityContext" }} - securityContext: {{- if eq (len .kes.securityContext) 0 }} {} {{- end }} - {{- with (dig "kes" "securityContext" (dict) .) }} - {{- toYaml . | nindent 6 }} - {{- end }} - {{- end }} - {{- if hasKey .kes "containerSecurityContext" }} - containerSecurityContext: {{- if eq (len .kes.containerSecurityContext) 0 }} { } {{- end }} - {{- with (dig "kes" "containerSecurityContext" (dict) .) }} - {{- toYaml . | nindent 6 }} - {{- end }} - {{- end }} - {{- end }} -{{- end }} diff --git a/sources/minio-tenant/7.1.1/values.yaml b/sources/minio-tenant/7.1.1/values.yaml deleted file mode 100644 index 4f9f0af4..00000000 --- a/sources/minio-tenant/7.1.1/values.yaml +++ /dev/null @@ -1,510 +0,0 @@ -# Root key for MinIO Tenant Chart -tenant: - ### - # The Tenant name - # - # Change this to match your preferred MinIO Tenant name. - name: myminio - ### - # Specify the Operator container image to use for the deployment. - # ``image.tag`` - # For example, the following sets the image to the ``quay.io/minio/operator`` repo and the v7.1.1 tag. - # The container pulls the image if not already present: - # - # .. code-block:: yaml - # - # image: - # repository: quay.io/minio/minio - # tag: RELEASE.2025-04-08T15-41-24Z - # pullPolicy: IfNotPresent - # - # The chart also supports specifying an image based on digest value: - # - # .. code-block:: yaml - # - # image: - # repository: quay.io/minio/minio@sha256 - # digest: 28c80b379c75242c6fe793dfbf212f43c602140a0de5ebe3d9c2a3a7b9f9f983 - # pullPolicy: IfNotPresent - # - # - image: - repository: quay.io/minio/minio - tag: RELEASE.2025-04-08T15-41-24Z - pullPolicy: IfNotPresent - ### - # - # An array of Kubernetes secrets to use for pulling images from a private ``image.repository``. - # Only one array element is supported at this time. - imagePullSecret: { } - ### - # - # Specify `initContainers `__ to perform setup or configuration tasks before the main Tenant pods starts. - # - # Example of init container which waits for idenity provider to be reachable before starting MinIO Tenant: - # - # .. code-block:: yaml - # - # initContainers: - # - name: wait-for-idp - # image: busybox - # command: - # - sh - # - -c - # - | - # URL="https://idp-url" - # echo "Checking IdP reachability (${URL})" - # until $(wget -q -O "/dev/null" ${URL}) ; do - # echo "IdP (${URL}) not reachable. Waiting to be reachable..." - # sleep 5 - # done - # echo "IdP (${URL}) reachable. Starting MinIO..." - # - initContainers: [ ] - ### - # The Kubernetes `Scheduler `__ to use for dispatching Tenant pods. - # - # Specify an empty dictionary ``{}`` to dispatch pods with the default scheduler. - scheduler: { } - ### - # Root key for dynamically creating a secret for use with configuring root MinIO User - # Specify the ``name`` and then a list of environment variables. - # - # .. important:: - # - # Do not use this in production environments. - # This field is intended for use with rapid development or testing only. - # - # For example: - # - # .. code-block:: yaml - # - # name: myminio-env-configuration - # accessKey: minio - # secretKey: minio123 - # - configSecret: - name: myminio-env-configuration - accessKey: minio - secretKey: minio123 - #existingSecret: true - - ### - # Metadata that will be added to the statefulset and pods of all pools - poolsMetadata: - ### - # Specify `annotations `__ to associate to Tenant pods. - annotations: { } - ### - # Specify `labels `__ to associate to Tenant pods. - labels: { } - - ### - # If this variable is set to true, then enable the usage of an existing Kubernetes secret to set environment variables for the Tenant. - # The existing Kubernetes secret name must be placed under .tenant.configuration.name e.g. existing-minio-env-configuration - # The secret must contain a key ``config.env``. - # The values should be a series of export statements to set environment variables for the Tenant. - # For example: - # - # .. code-block:: shell - # - # stringData: - # config.env: |- - # export MINIO_ROOT_USER=ROOTUSERNAME - # export MINIO_ROOT_PASSWORD=ROOTUSERPASSWORD - # - # existingSecret: false - ### - # Top level key for configuring MinIO Pool(s) in this Tenant. - # - # See `Operator CRD: Pools `__ for more information on all subfields. - pools: - ### - # The number of MinIO Tenant Pods / Servers in this pool. - # For standalone mode, supply 1. For distributed mode, supply 4 or more. - # Note that the operator does not support upgrading from standalone to distributed mode. - - servers: 4 - ### - # Custom name for the pool - name: pool-0 - ### - # The number of volumes attached per MinIO Tenant Pod / Server. - volumesPerServer: 4 - ### - # The capacity per volume requested per MinIO Tenant Pod. - size: 10Gi - ### - # The `storageClass `__ to associate with volumes generated for this pool. - # - # If using Amazon Elastic Block Store (EBS) CSI driver - # Please make sure to set xfs for "csi.storage.k8s.io/fstype" parameter under StorageClass.parameters. - # Docs: https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/docs/parameters.md - # storageClassName: standard - ### - # Specify `storageAnnotations `__ to associate to PVCs. - storageAnnotations: { } - ### - # Specify `storageLabels `__ to associate to PVCs. - storageLabels: { } - ### - # Specify `annotations `__ to associate to Tenant pods. - annotations: { } - ### - # Specify `labels `__ to associate to Tenant pods. - labels: { } - ### - # - # An array of `Toleration labels `__ to associate to Tenant pods. - # - # These settings determine the distribution of pods across worker nodes. - tolerations: [ ] - ### - # Any `Node Selectors `__ to apply to Tenant pods. - # - # The Kubernetes scheduler uses these selectors to determine which worker nodes onto which it can deploy Tenant pods. - # - # If no worker nodes match the specified selectors, the Tenant deployment will fail. - nodeSelector: { } - ### - # - # The `affinity `__ or anti-affinity settings to apply to Tenant pods. - # - # These settings determine the distribution of pods across worker nodes and can help prevent or allow colocating pods onto the same worker nodes. - affinity: { } - ### - # - # The `Requests or Limits `__ for resources to associate to Tenant pods. - # - # These settings can control the minimum and maximum resources requested for each pod. - # If no worker nodes can meet the specified requests, the Operator may fail to deploy. - resources: { } - ### - # The Kubernetes `SecurityContext `__ to use for deploying Tenant resources. - # - # You may need to modify these values to meet your cluster's security and access settings. - # - # We recommend disabling recursive permission changes by setting ``fsGroupChangePolicy`` to ``OnRootMismatch`` as those operations can be expensive for certain workloads (e.g. large volumes with many small files). - securityContext: - runAsUser: 1000 - runAsGroup: 1000 - fsGroup: 1000 - fsGroupChangePolicy: "OnRootMismatch" - runAsNonRoot: true - ### - # The Kubernetes `SecurityContext `__ to use for deploying Tenant containers. - # You may need to modify these values to meet your cluster's security and access settings. - containerSecurityContext: - runAsUser: 1000 - runAsGroup: 1000 - runAsNonRoot: true - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - seccompProfile: - type: RuntimeDefault - ### - # - # An array of `Topology Spread Constraints `__ to associate to Operator Console pods. - # - # These settings determine the distribution of pods across worker nodes. - topologySpreadConstraints: [ ] - ### - # - # The name of a custom `Container Runtime `__ to use for the Operator Console pods. - # runtimeClassName: "" - ### - # The mount path where Persistent Volumes are mounted inside Tenant container(s). - mountPath: /export - ### - # The Sub path inside Mount path where MinIO stores data. - # - # .. warning:: - # - # Treat the ``mountPath`` and ``subPath`` values as immutable once you deploy the Tenant. - # If you change these values post-deployment, then you may have different paths for new and pre-existing data. - # This can vastly increase operational complexity and may result in unpredictable data states. - subPath: /data - ### - # Configures a Prometheus-compatible scraping endpoint at the specified port. - metrics: - enabled: false - port: 9000 - protocol: http - ### - # Configures external certificate settings for the Tenant. - certificate: - ### - # Specify an array of Kubernetes TLS secrets, where each entry corresponds to a secret the TLS private key and public certificate pair. - # - # This is used by MinIO to verify TLS connections from clients using those CAs - # If you omit this and have clients using TLS certificates minted by an external CA, those connections may fail with warnings around certificate verification. - # See `Operator CRD: TenantSpec `__. - externalCaCertSecret: [ ] - ### - # Specify an array of Kubernetes secrets, where each entry corresponds to a secret contains the TLS private key and public certificate pair. - # - # Omit this to use only the MinIO Operator autogenerated certificates. - # - # If you omit this field *and* set ``requestAutoCert`` to false, the Tenant starts without TLS. - # - # See `Operator CRD: TenantSpec `__. - # - # .. important:: - # - # The MinIO Operator may output TLS connectivity errors if it cannot trust the Certificate Authority (CA) which minted the custom certificates. - # - # You can pass the CA to the Operator to allow it to trust that cert. - # See `Self-Signed, Internal, and Private Certificates `__ for more information. - # This step may also be necessary for globally trusted CAs where you must provide intermediate certificates to the Operator to help build the full chain of trust. - externalCertSecret: [ ] - ### - # Enable automatic Kubernetes based `certificate generation and signing `__ - requestAutoCert: true - ### - # The minimum number of days to expiry before an alert for an expiring certificate is fired. - # In the below example, if a given certificate will expire in 7 days then expiration events will only be triggered 1 day before expiry - # certExpiryAlertThreshold: 1 - ### - # This field is used only when ``requestAutoCert: true``. - # Use this field to set CommonName for the auto-generated certificate. - # MinIO defaults to using the internal Kubernetes DNS name for the pod - # The default DNS name format is typically ``*.minio.default.svc.cluster.local``. - # - # See `Operator CRD: CertificateConfig `__ - certConfig: { } - ### - # MinIO features to enable or disable in the MinIO Tenant - # See `Operator CRD: Features `__. - features: - bucketDNS: false - domains: { } - enableSFTP: false - ### - # Array of objects describing one or more buckets to create during tenant provisioning. - # Example: - # - # .. code-block:: yaml - # - # - name: my-minio-bucket - # objectLock: false # optional - # region: us-east-1 # optional - buckets: [ ] - ### - # Array of Kubernetes secrets from which the Operator generates MinIO users during tenant provisioning. - # - # Each secret should specify the ``CONSOLE_ACCESS_KEY`` and ``CONSOLE_SECRET_KEY`` as the access key and secret key for that user. - users: [ ] - ### - # The `PodManagement `__ policy for MinIO Tenant Pods. - # Can be "OrderedReady" or "Parallel" - podManagementPolicy: Parallel - # The `Liveness Probe `__ for monitoring Tenant pod liveness. - # Tenant pods will be restarted if the probe fails. - liveness: { } - ### - # `Readiness Probe `__ for monitoring Tenant container readiness. - # Tenant pods will be removed from service endpoints if the probe fails. - readiness: { } - ### - # `Startup Probe `__ for monitoring container startup. - # Tenant pods will be restarted if the probe fails. - # Refer - startup: { } - ### - # The `Lifecycle hooks `__ for container. - lifecycle: { } - ### - # Directs the Operator to deploy the MinIO S3 API and Console services as LoadBalancer objects. - # - # If the Kubernetes cluster has a configured LoadBalancer, it can attempt to route traffic to those services automatically. - # - # - Specify ``minio: true`` to expose the MinIO S3 API. - # - Specify ``console: true`` to expose the Console. - # - # Both fields default to ``false``. - exposeServices: { } - ### - # The `Kubernetes Service Account `__ associated with the Tenant. - serviceAccountName: "" - ### - # Directs the Operator to add the Tenant's metric scrape configuration to an existing Kubernetes Prometheus deployment managed by the Prometheus Operator. - prometheusOperator: false - ### - # Configure pod logging configuration for the MinIO Tenant. - # - # - Specify ``json`` for JSON-formatted logs. - # - Specify ``anonymous`` for anonymized logs. - # - Specify ``quiet`` to supress logging. - # - # An example of JSON-formatted logs is as follows: - # - # .. code-block:: shell - # - # $ k logs myminio-pool-0-0 -n default - # {"level":"INFO","errKind":"","time":"2022-04-07T21:49:33.740058549Z","message":"All MinIO sub-systems initialized successfully"} - logging: { } - ### - # serviceMetadata allows passing additional labels and annotations to MinIO and Console specific - # services created by the operator. - serviceMetadata: { } - ### - # Add environment variables to be set in MinIO container (https://github.com/minio/minio/tree/master/docs/config) - env: [ ] - ### - # PriorityClassName indicates the Pod priority and hence importance of a Pod relative to other Pods. - # This is applied to MinIO pods only. - # Refer Kubernetes documentation for details https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass/ - priorityClassName: "" - ### - # An array of `Volumes `__ which the Operator can mount to Tenant pods. - # - # The volumes must exist *and* be accessible to the Tenant pods. - additionalVolumes: [ ] - ### - # An array of volume mount points associated to each Tenant container. - # - # Specify each item in the array as follows: - # - # .. code-block:: yaml - # - # volumeMounts: - # - name: volumename - # mountPath: /path/to/mount - # - # The ``name`` field must correspond to an entry in the ``additionalVolumes`` array. - additionalVolumeMounts: [ ] - # Define configuration for KES (stateless and distributed key-management system) - # Refer https://github.com/minio/kes - #kes: - # ## Image field: - # # Image from tag (original behavior), for example: - # # image: - # # repository: quay.io/minio/kes - # # tag: 2025-03-12T09-35-18Z - # # Image from digest (added after original behavior), for example: - # # image: - # # repository: quay.io/minio/kes@sha256 - # # digest: fb15af611149892f357a8a99d1bcd8bf5dae713bd64c15e6eb27fbdb88fc208b - # image: - # repository: quay.io/minio/kes - # tag: 2025-03-12T09-35-18Z - # pullPolicy: IfNotPresent - # env: [ ] - # replicas: 2 - # configuration: |- - # address: :7373 - # tls: - # key: /tmp/kes/server.key # Path to the TLS private key - # cert: /tmp/kes/server.crt # Path to the TLS certificate - # proxy: - # identities: [] - # header: - # cert: X-Tls-Client-Cert - # admin: - # identity: ${MINIO_KES_IDENTITY} - # cache: - # expiry: - # any: 5m0s - # unused: 20s - # log: - # error: on - # audit: off - # keystore: - # # KES configured with fs (File System mode) doesn't work in Kubernetes environments and is not recommended - # # use a real KMS - # # fs: - # # path: "./keys" # Path to directory. Keys will be stored as files. Not Recommended for Production. - # vault: - # endpoint: "http://vault.default.svc.cluster.local:8200" # The Vault endpoint - # namespace: "" # An optional Vault namespace. See: https://www.vaultproject.io/docs/enterprise/namespaces/index.html - # prefix: "my-minio" # An optional K/V prefix. The server will store keys under this prefix. - # approle: # AppRole credentials. See: https://www.vaultproject.io/docs/auth/approle.html - # id: "" # Your AppRole Role ID - # secret: "" # Your AppRole Secret ID - # retry: 15s # Duration until the server tries to re-authenticate after connection loss. - # tls: # The Vault client TLS configuration for mTLS authentication and certificate verification - # key: "" # Path to the TLS client private key for mTLS authentication to Vault - # cert: "" # Path to the TLS client certificate for mTLS authentication to Vault - # ca: "" # Path to one or multiple PEM root CA certificates - # status: # Vault status configuration. The server will periodically reach out to Vault to check its status. - # ping: 10s # Duration until the server checks Vault's status again. - # # aws: - # # # The AWS SecretsManager key store. The server will store - # # # secret keys at the AWS SecretsManager encrypted with - # # # AWS-KMS. See: https://aws.amazon.com/secrets-manager - # # secretsmanager: - # # endpoint: "" # The AWS SecretsManager endpoint - e.g.: secretsmanager.us-east-2.amazonaws.com - # # region: "" # The AWS region of the SecretsManager - e.g.: us-east-2 - # # kmskey: "" # The AWS-KMS key ID used to en/decrypt secrets at the SecretsManager. By default (if not set) the default AWS-KMS key will be used. - # # credentials: # The AWS credentials for accessing secrets at the AWS SecretsManager. - # # accesskey: "" # Your AWS Access Key - # # secretkey: "" # Your AWS Secret Key - # # token: "" # Your AWS session token (usually optional) - # imagePullPolicy: "IfNotPresent" - # externalCertSecret: null - # clientCertSecret: null - # # Key name to be created on the KMS, default is "my-minio-key" - # keyName: "" - # resources: { } - # nodeSelector: { } - # affinity: - # nodeAffinity: { } - # podAffinity: { } - # podAntiAffinity: { } - # tolerations: [ ] - # annotations: { } - # labels: { } - # serviceAccountName: "" - # securityContext: - # runAsUser: 1000 - # runAsGroup: 1000 - # runAsNonRoot: true - # fsGroup: 1000 - # containerSecurityContext: - # runAsUser: 1000 - # runAsGroup: 1000 - # runAsNonRoot: true - # allowPrivilegeEscalation: false - # capabilities: - # drop: - # - ALL - # seccompProfile: - # type: RuntimeDefault - -### -# Configures `Ingress `__ for the Tenant S3 API and Console. -# -# Set the keys to conform to the Ingress controller and configuration of your choice. -ingress: - api: - enabled: false - ingressClassName: "" - labels: { } - annotations: { } - tls: [ ] - host: minio.local - path: / - pathType: Prefix - console: - enabled: false - ingressClassName: "" - labels: { } - annotations: { } - tls: [ ] - host: minio-console.local - path: / - pathType: Prefix -# Use an extraResources template section to include additional Kubernetes resources -# with the Helm deployment. -#extraResources: -# - | -# apiVersion: v1 -# kind: Secret -# type: Opaque -# metadata: -# name: {{ dig "tenant" "configSecret" "name" "" (.Values | merge (dict)) }} -# stringData: -# config.env: |- -# export MINIO_ROOT_USER='minio' -# export MINIO_ROOT_PASSWORD='minio123' diff --git a/sources/minio-tenant/source.yaml b/sources/minio-tenant/source.yaml deleted file mode 100644 index 7e03fffb..00000000 --- a/sources/minio-tenant/source.yaml +++ /dev/null @@ -1,4 +0,0 @@ -sourceUrl: https://operator.min.io -sourceRepoName: minio-operator -sourceChartName: tenant -sourceVersion: 7.1.1 diff --git a/sources/minio-tenant/values_ha.yaml b/sources/minio-tenant/values_ha.yaml deleted file mode 100644 index 4e7c08d1..00000000 --- a/sources/minio-tenant/values_ha.yaml +++ /dev/null @@ -1,26 +0,0 @@ -tenant: - name: default-minio-tenant - configSecret: - name: default-minio-tenant-env-configuration - existingSecret: true - pools: - - servers: 4 - name: pool-0 - volumesPerServer: 1 - size: 500Gi - storageClassName: direct - buckets: - - name: default-bucket - objectLock: true - - name: models - objectLock: true - users: - - name: default-user - certificate: - requestAutoCert: false - externalCaCertSecret: - - name: cluster-tls - type: kubernetes.io/secret/v1 - env: - - name: MINIO_PROMETHEUS_AUTH_TYPE - value: "public" diff --git a/sources/otel-lgtm-stack/v1.0.7/templates/dashboards-minio.yaml b/sources/otel-lgtm-stack/v1.0.7/templates/dashboards-minio.yaml deleted file mode 100644 index 29e06ddc..00000000 --- a/sources/otel-lgtm-stack/v1.0.7/templates/dashboards-minio.yaml +++ /dev/null @@ -1,657 +0,0 @@ ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: lgtm-minio-dashboard - namespace: {{ .Release.Namespace }} - labels: - grafana_dashboard: "1" - annotations: - grafana_folder: "common" -data: - lgtm-minio-dashboard.json: |- - { - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "grafana", - "uid": "-- Grafana --" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] - }, - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 0, - "id": 11, - "links": [], - "panels": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "fieldMinMax": false, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green" - }, - { - "color": "dark-red", - "value": 20 - }, - { - "color": "#EAB839", - "value": 30 - }, - { - "color": "green", - "value": 40 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 6, - "x": 0, - "y": 0 - }, - "id": 7, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.6.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "editorMode": "code", - "expr": "(minio_cluster_capacity_usable_free_bytes{job=\"minio-cluster-metrics\"} / minio_cluster_capacity_usable_total_bytes{job=\"minio-cluster-metrics\"}) * 100", - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Cluster Free Capacity (%)", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "description": "Total bytes on a drive", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 6, - "x": 6, - "y": 0 - }, - "id": 1, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.6.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "disableTextWrap": false, - "editorMode": "code", - "expr": "minio_node_drive_total_bytes{job=\"minio-resource-metrics\"}", - "fullMetaSearch": false, - "includeNullMetadata": true, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "A", - "useBackend": false - } - ], - "title": "Drive Total Bytes", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "description": "Used bytes on a drive", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 6, - "x": 12, - "y": 0 - }, - "id": 2, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.6.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "editorMode": "code", - "expr": "minio_node_drive_used_bytes{job=\"minio-resource-metrics\"}", - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Drive Used Bytes", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "description": "Total number of buckets in the cluster", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - } - ] - }, - "unit": "buckets" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 6, - "x": 18, - "y": 0 - }, - "id": 5, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.6.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "editorMode": "code", - "expr": "minio_cluster_bucket_total{job=\"minio-cluster-metrics\"}", - "instant": false, - "legendFormat": "{{ "{{" }}job{{ "}}" }}", - "range": true, - "refId": "A" - } - ], - "title": "Total Number of Buckets", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "description": "Total bucket size in bytes", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 6, - "x": 0, - "y": 9 - }, - "id": 3, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "11.6.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "editorMode": "code", - "expr": "minio_bucket_usage_total_bytes{}", - "instant": false, - "legendFormat": "{{ "{{" }}bucket{{ "}}" }}", - "range": true, - "refId": "A" - } - ], - "title": "minio_bucket_usage_total_bytes", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [ - { - "__systemRef": "hideSeriesFrom", - "matcher": { - "id": "byNames", - "options": { - "mode": "exclude", - "names": [ - "default-bucket" - ], - "prefix": "All except:", - "readOnly": true - } - }, - "properties": [ - { - "id": "custom.hideFrom", - "value": { - "legend": false, - "tooltip": false, - "viz": true - } - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 6, - "x": 6, - "y": 9 - }, - "id": 4, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "hideZeros": false, - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "11.6.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "editorMode": "code", - "expr": "increase(minio_bucket_usage_total_bytes[10m])\n", - "instant": false, - "legendFormat": "{{ "{{" }}bucket{{ "}}" }}", - "range": true, - "refId": "A" - } - ], - "title": "MinIO Bucket Growth Rate", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 3, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [ - { - "__systemRef": "hideSeriesFrom", - "matcher": { - "id": "byNames", - "options": { - "mode": "exclude", - "names": [ - "{__name__=\"minio_bucket_usage_total_bytes\", bucket=\"default-bucket\", instance=\"filer-s3.seaweedfs-instance.svc.cluster.local:80\", job=\"minio-bucket-metrics\", server=\"127.0.0.1:9000\", service_instance_id=\"filer-s3.seaweedfs-instance.svc.cluster.local:80\", service_name=\"minio-bucket-metrics\"}" - ], - "prefix": "All except:", - "readOnly": true - } - }, - "properties": [ - { - "id": "custom.hideFrom", - "value": { - "legend": false, - "tooltip": false, - "viz": true - } - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 9 - }, - "id": 8, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "hideZeros": false, - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "11.6.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "editorMode": "code", - "expr": "minio_bucket_usage_total_bytes{}", - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Bucket Usage Bytes", - "type": "timeseries" - } - ], - "preload": false, - "schemaVersion": 41, - "tags": [], - "templating": { - "list": [] - }, - "time": { - "from": "now-12h", - "to": "now" - }, - "timepicker": { - "refresh_intervals": [ - "5s", - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d", - "7d" - ] - }, - "timezone": "browser", - "title": "MinIO simple dashboard", - "uid": "minioSimple", - "version": 5 - } From 1f2fb3cefc2fe46d22d780f8dc0919d3c82ba7c2 Mon Sep 17 00:00:00 2001 From: Stefan Negru Date: Fri, 5 Jun 2026 09:42:01 +0300 Subject: [PATCH 39/51] EAI-1452 swtich httproutes to use envoy-gateway-system --- .../seaweedfs-config/templates/seaweedfs-httproute-admin.yaml | 2 +- sources/seaweedfs-config/templates/seaweedfs-httproute.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/seaweedfs-config/templates/seaweedfs-httproute-admin.yaml b/sources/seaweedfs-config/templates/seaweedfs-httproute-admin.yaml index 55970651..70fde460 100644 --- a/sources/seaweedfs-config/templates/seaweedfs-httproute-admin.yaml +++ b/sources/seaweedfs-config/templates/seaweedfs-httproute-admin.yaml @@ -6,7 +6,7 @@ metadata: spec: parentRefs: - name: https - namespace: kgateway-system + namespace: envoy-gateway-system rules: - backendRefs: - name: admin diff --git a/sources/seaweedfs-config/templates/seaweedfs-httproute.yaml b/sources/seaweedfs-config/templates/seaweedfs-httproute.yaml index 46715010..536469e2 100644 --- a/sources/seaweedfs-config/templates/seaweedfs-httproute.yaml +++ b/sources/seaweedfs-config/templates/seaweedfs-httproute.yaml @@ -6,7 +6,7 @@ metadata: spec: parentRefs: - name: https - namespace: kgateway-system + namespace: envoy-gateway-system rules: - backendRefs: - name: filer-s3 From 658c56fcee9a21c22b7fe28e5b5d35ff36264846 Mon Sep 17 00:00:00 2001 From: Stefan Negru Date: Thu, 4 Jun 2026 13:20:17 +0300 Subject: [PATCH 40/51] fix: render argocd application template for oci and https --- root/templates/cluster-apps.yaml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/root/templates/cluster-apps.yaml b/root/templates/cluster-apps.yaml index 70067a78..c94c3534 100644 --- a/root/templates/cluster-apps.yaml +++ b/root/templates/cluster-apps.yaml @@ -24,14 +24,12 @@ spec: sources: # Primary source: OCI/external chart - repoURL: {{ $renderedRepoURL }} - {{- if hasPrefix "oci://" $renderedRepoURL }} - {{- if eq .path "." }} - chart: {{ trimPrefix "oci://" $renderedRepoURL | base }} - {{- else }} - chart: {{ .path }} - {{- end }} - {{- else }} + {{- if and .path (not (hasPrefix "oci://" $renderedRepoURL)) }} path: {{ .path }} + {{- else if .chart }} + chart: {{ .chart }} + {{- else if hasPrefix "oci://" $renderedRepoURL }} + path: {{ .path | default "." }} {{- end }} targetRevision: {{ .repoVersion | default $clusterForgeTargetRevision | quote }} helm: @@ -72,16 +70,18 @@ spec: source: repoURL: {{ $renderedRepoURL | default $clusterForgeRepoUrl }} targetRevision: {{ .repoVersion | default $clusterForgeTargetRevision | quote }} - {{- if .chart }} + {{- if and .path (not (hasPrefix "oci://" $renderedRepoURL)) }} + {{- if .repoURL }} + path: {{ .path }} + {{- else }} + path: sources/{{ .path }} + {{- end }} + {{- else if .chart }} chart: {{ .chart }} {{- else if .repoURL }} {{- if hasPrefix "oci://" $renderedRepoURL }} path: {{ .path | default "." }} - {{- else }} - path: {{ .path }} {{- end }} - {{- else }} - path: sources/{{ .path }} {{- end }} {{- if or .valuesFile .valuesObject .helmParameters }} helm: From e43663492ae37ebd71f4717755cd1b64a642bc91 Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Tue, 9 Jun 2026 12:57:12 +0000 Subject: [PATCH 41/51] Remove excess filler in template --- sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml b/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml index 2cc01e84..79f2561d 100644 --- a/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml +++ b/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml @@ -1,4 +1,3 @@ ---- apiVersion: external-secrets.io/v1beta1 kind: ExternalSecret metadata: From b558d667c9933db182da344bf2bdcbe12acfc153 Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Tue, 9 Jun 2026 13:22:48 +0000 Subject: [PATCH 42/51] Fix issue with the templating string ending up in live k8s objects --- .../0.1.0/templates/openbao-secret-definitions.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/openbao-config/0.1.0/templates/openbao-secret-definitions.yaml b/sources/openbao-config/0.1.0/templates/openbao-secret-definitions.yaml index d00c5706..7c3ceae8 100644 --- a/sources/openbao-config/0.1.0/templates/openbao-secret-definitions.yaml +++ b/sources/openbao-config/0.1.0/templates/openbao-secret-definitions.yaml @@ -87,11 +87,11 @@ data: # ============================================================================= # MinIO API access credentials - secrets/minio-api-access-key|static|{{ .Values.minio.apiAccessKey }}|0 + secrets/minio-api-access-key|static|api-default-user|0 secrets/minio-api-secret-key|random||16 # MinIO console access credentials - secrets/minio-console-access-key|static|{{ .Values.minio.consoleAccessKey }}|0 + secrets/minio-console-access-key|static|default-user|0 secrets/minio-console-secret-key|random||16 # MinIO root admin password From df6f069b3cc98b5009b5e9a2d2f6c63e2a09beae Mon Sep 17 00:00:00 2001 From: Petrus Repo Date: Tue, 9 Jun 2026 17:51:13 +0300 Subject: [PATCH 43/51] fix: Reconcile static OpenBao secrets instead of skipping The secret-manager script was strictly write-once: any existing path in OpenBao was always skipped. An unrendered template literal previously stored by the old cat|sed bootstrap (e.g. {{ .Values.minio.consoleAccessKey }}) could therefore never be corrected, and leaked through the seaweedfs ExternalSecret into the rendered s3.json. Now static secrets are reconciled: if the stored value differs from the desired envsubst-rendered value, it is updated so downstream ExternalSecrets converge. random secrets stay write-once so generated credentials are never regenerated. --- .../templates/openbao-secret-manager-cm.yaml | 36 ++++++++++++++----- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/sources/openbao-config/0.1.0/templates/openbao-secret-manager-cm.yaml b/sources/openbao-config/0.1.0/templates/openbao-secret-manager-cm.yaml index c35bd242..6ce720f3 100644 --- a/sources/openbao-config/0.1.0/templates/openbao-secret-manager-cm.yaml +++ b/sources/openbao-config/0.1.0/templates/openbao-secret-manager-cm.yaml @@ -15,19 +15,37 @@ data: fi echo "Managing OpenBao secrets from /tmp/secrets/secrets.env..." - + created=0 + updated=0 skipped=0 - + while IFS='|' read -r path type value bytes; do [[ "$path" =~ ^#.*$ ]] || [[ -z "$path" ]] && continue - + if bao kv get "$path" > /dev/null 2>&1; then - echo "SKIP: $path (already exists)" - skipped=$((skipped + 1)) + # Path already exists. random secrets are write-once so they are never + # regenerated. static secrets are reconciled: if the desired value has + # changed (e.g. a previously stored unrendered template literal), update + # it so downstream ExternalSecrets converge on the correct value. + if [ "$type" = "static" ]; then + final_value=$(echo "$value" | envsubst) + current_value=$(bao kv get -field=value "$path" 2>/dev/null || echo "") + if [ "$current_value" = "$final_value" ]; then + echo "SKIP: $path (static, unchanged)" + skipped=$((skipped + 1)) + else + echo "UPDATE: $path (static, value changed)" + bao kv put "$path" value="$final_value" || { echo "ERROR: Failed to update $path"; exit 1; } + updated=$((updated + 1)) + fi + else + echo "SKIP: $path (already exists)" + skipped=$((skipped + 1)) + fi else echo "CREATE: $path ($type)" - + if [ "$type" = "static" ]; then final_value=$(echo "$value" | envsubst) bao kv put "$path" value="$final_value" || { echo "ERROR: Failed to create $path"; exit 1; } @@ -38,12 +56,12 @@ data: echo "ERROR: Unknown secret type: $type" exit 1 fi - + created=$((created + 1)) fi done < /tmp/secrets/secrets.env - - echo "DONE: Created $created, Skipped $skipped" + + echo "DONE: Created $created, Updated $updated, Skipped $skipped" # Special case: cluster-auth-openbao-token uses actual BAO_TOKEN (for init job only) if [ "$INIT_MODE" = "true" ]; then From 478062276cb7965f5c1f3264ad5dc7effa440387 Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Wed, 10 Jun 2026 09:12:38 +0000 Subject: [PATCH 44/51] Revert "Fix issue with the templating string ending up in live k8s objects" This reverts commit d4859aa6e0b8f91d18f0488a6e2f348cbbbecba7. --- .../0.1.0/templates/openbao-secret-definitions.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/openbao-config/0.1.0/templates/openbao-secret-definitions.yaml b/sources/openbao-config/0.1.0/templates/openbao-secret-definitions.yaml index 7c3ceae8..d00c5706 100644 --- a/sources/openbao-config/0.1.0/templates/openbao-secret-definitions.yaml +++ b/sources/openbao-config/0.1.0/templates/openbao-secret-definitions.yaml @@ -87,11 +87,11 @@ data: # ============================================================================= # MinIO API access credentials - secrets/minio-api-access-key|static|api-default-user|0 + secrets/minio-api-access-key|static|{{ .Values.minio.apiAccessKey }}|0 secrets/minio-api-secret-key|random||16 # MinIO console access credentials - secrets/minio-console-access-key|static|default-user|0 + secrets/minio-console-access-key|static|{{ .Values.minio.consoleAccessKey }}|0 secrets/minio-console-secret-key|random||16 # MinIO root admin password From ccf7c01dc8c2ba2d034253b44c6a6d71491cf018 Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Thu, 11 Jun 2026 12:03:03 +0000 Subject: [PATCH 45/51] 'Reapply "Fix issue with the templating string ending up in live k8s objects" This reverts commit 032060a8af17685e81d050519f06d745705cd9fc. --- .../0.1.0/templates/openbao-secret-definitions.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/openbao-config/0.1.0/templates/openbao-secret-definitions.yaml b/sources/openbao-config/0.1.0/templates/openbao-secret-definitions.yaml index d00c5706..7c3ceae8 100644 --- a/sources/openbao-config/0.1.0/templates/openbao-secret-definitions.yaml +++ b/sources/openbao-config/0.1.0/templates/openbao-secret-definitions.yaml @@ -87,11 +87,11 @@ data: # ============================================================================= # MinIO API access credentials - secrets/minio-api-access-key|static|{{ .Values.minio.apiAccessKey }}|0 + secrets/minio-api-access-key|static|api-default-user|0 secrets/minio-api-secret-key|random||16 # MinIO console access credentials - secrets/minio-console-access-key|static|{{ .Values.minio.consoleAccessKey }}|0 + secrets/minio-console-access-key|static|default-user|0 secrets/minio-console-secret-key|random||16 # MinIO root admin password From bdadc60776ed6105e113257baefc066b5a945cfa Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Thu, 11 Jun 2026 15:04:48 +0000 Subject: [PATCH 46/51] Revert "'Reapply "Fix issue with the templating string ending up in live k8s objects"" This reverts commit 2a273035287882f035de1f975149ed01b9325a37. --- .../0.1.0/templates/openbao-secret-definitions.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/openbao-config/0.1.0/templates/openbao-secret-definitions.yaml b/sources/openbao-config/0.1.0/templates/openbao-secret-definitions.yaml index 7c3ceae8..d00c5706 100644 --- a/sources/openbao-config/0.1.0/templates/openbao-secret-definitions.yaml +++ b/sources/openbao-config/0.1.0/templates/openbao-secret-definitions.yaml @@ -87,11 +87,11 @@ data: # ============================================================================= # MinIO API access credentials - secrets/minio-api-access-key|static|api-default-user|0 + secrets/minio-api-access-key|static|{{ .Values.minio.apiAccessKey }}|0 secrets/minio-api-secret-key|random||16 # MinIO console access credentials - secrets/minio-console-access-key|static|default-user|0 + secrets/minio-console-access-key|static|{{ .Values.minio.consoleAccessKey }}|0 secrets/minio-console-secret-key|random||16 # MinIO root admin password From e6afa51d135f116584525810a069a2b93da6df90 Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Thu, 11 Jun 2026 15:06:38 +0000 Subject: [PATCH 47/51] Change syncwave to fix templating issue --- root/values.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/root/values.yaml b/root/values.yaml index 63d06522..68a66759 100644 --- a/root/values.yaml +++ b/root/values.yaml @@ -693,7 +693,7 @@ apps: seaweedfs-crds: path: seaweedfs-crds/0.1.13 namespace: seaweedfs-operator - syncWave: -1 + syncWave: -20 seaweedfs-operator: path: seaweedfs-operator/0.1.13 namespace: seaweedfs-operator @@ -717,7 +717,7 @@ apps: path: seaweedfs-config namespace: seaweedfs-instance valuesFile: values.yaml - syncWave: 0 + syncWave: -10 openbao: ignoreDifferences: - group: "apps" From b9a486084d972cb5a95df7a454c39c046b61f4f9 Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Thu, 11 Jun 2026 15:35:53 +0000 Subject: [PATCH 48/51] Revert "Change syncwave to fix templating issue" This reverts commit 797659b4d2b2f16086d11d313347798eff6d6f5e. --- root/values.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/root/values.yaml b/root/values.yaml index 68a66759..63d06522 100644 --- a/root/values.yaml +++ b/root/values.yaml @@ -693,7 +693,7 @@ apps: seaweedfs-crds: path: seaweedfs-crds/0.1.13 namespace: seaweedfs-operator - syncWave: -20 + syncWave: -1 seaweedfs-operator: path: seaweedfs-operator/0.1.13 namespace: seaweedfs-operator @@ -717,7 +717,7 @@ apps: path: seaweedfs-config namespace: seaweedfs-instance valuesFile: values.yaml - syncWave: -10 + syncWave: 0 openbao: ignoreDifferences: - group: "apps" From 8a1e502062b3901b82f4ac31b18136ce9ca87952 Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Thu, 11 Jun 2026 15:36:10 +0000 Subject: [PATCH 49/51] Reapply "'Reapply "Fix issue with the templating string ending up in live k8s objects"" This reverts commit bcede1c538d958bc478a1b27649634879634761d. --- .../0.1.0/templates/openbao-secret-definitions.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/openbao-config/0.1.0/templates/openbao-secret-definitions.yaml b/sources/openbao-config/0.1.0/templates/openbao-secret-definitions.yaml index d00c5706..7c3ceae8 100644 --- a/sources/openbao-config/0.1.0/templates/openbao-secret-definitions.yaml +++ b/sources/openbao-config/0.1.0/templates/openbao-secret-definitions.yaml @@ -87,11 +87,11 @@ data: # ============================================================================= # MinIO API access credentials - secrets/minio-api-access-key|static|{{ .Values.minio.apiAccessKey }}|0 + secrets/minio-api-access-key|static|api-default-user|0 secrets/minio-api-secret-key|random||16 # MinIO console access credentials - secrets/minio-console-access-key|static|{{ .Values.minio.consoleAccessKey }}|0 + secrets/minio-console-access-key|static|default-user|0 secrets/minio-console-secret-key|random||16 # MinIO root admin password From 4aa82c0a917a9c3778806fe5d85d4194b42dfa4c Mon Sep 17 00:00:00 2001 From: Pontus Wistbacka Date: Thu, 11 Jun 2026 16:51:11 +0000 Subject: [PATCH 50/51] Make sure the webhook is disabled for seaweedfs operator --- root/values.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/root/values.yaml b/root/values.yaml index 63d06522..925fcd94 100644 --- a/root/values.yaml +++ b/root/values.yaml @@ -695,6 +695,11 @@ apps: namespace: seaweedfs-operator syncWave: -1 seaweedfs-operator: + helmParameters: + - name: domain + value: "{{ .Values.global.domain }}" + - name: webhook.enabled + value: "false" path: seaweedfs-operator/0.1.13 namespace: seaweedfs-operator valuesFile: values.yaml From 181db35e9af520ec94632fc274ddaf6e4d85e109 Mon Sep 17 00:00:00 2001 From: Stefan Negru Date: Fri, 12 Jun 2026 17:41:15 +0300 Subject: [PATCH 51/51] EAI-1452 update components for seaweed CRD --- sbom/components.yaml | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/sbom/components.yaml b/sbom/components.yaml index ff93a5b4..6a9cd37c 100644 --- a/sbom/components.yaml +++ b/sbom/components.yaml @@ -59,7 +59,7 @@ components: licenseUrl: https://github.com/silogen/cluster-forge/blob/main/LICENSE aiwb: path: null - repoVersion: 1.1.9 + repoVersion: 2.0.0-rc.1 valuesFile: values.yaml sourceUrl: oci://registry-1.docker.io/amdenterpriseai/aiwb-chart projectUrl: https://github.com/silogen/aiwb @@ -124,7 +124,7 @@ components: sourceUrl: oci://docker.io/envoyproxy/gateway-helm projectUrl: https://github.com/envoyproxy/gateway license: Apache License 2.0 - licenseUrl: https://github.com/envoyproxy/gateway + licenseUrl: https://github.com/envoyproxy/gateway/blob/main/LICENSE external-secrets: path: external-secrets/0.15.1 valuesFile: values.yaml @@ -222,18 +222,6 @@ components: projectUrl: https://github.com/metallb/metallb/ license: Apache License 2.0 licenseUrl: https://github.com/metallb/metallb/blob/main/LICENSE - seaweedfs-operator: - path: seaweedfs-operator/0.1.13 - sourceUrl: https://github.com/seaweedfs/seaweedfs-operator - projectUrl: https://github.com/seaweedfs/seaweedfs - license: Apache License 2.0 - licenseUrl: https://github.com/seaweedfs/seaweedfs/blob/master/LICENSE - seaweedfs-config: - path: seaweedfs-config - sourceUrl: https://github.com/silogen/cluster-forge/tree/main/sources/seaweedfs-config - projectUrl: https://github.com/seaweedfs/seaweedfs - license: Apache License 2.0 - licenseUrl: https://github.com/seaweedfs/seaweedfs/blob/master/LICENSE openbao: path: openbao/0.18.2 sourceUrl: https://openbao.github.io/openbao-helm @@ -265,3 +253,16 @@ components: projectUrl: https://github.com/rabbitmq/cluster-operator/ license: Mozilla Public License 2.0 licenseUrl: https://github.com/rabbitmq/cluster-operator/blob/main/LICENSE.txt + seaweedfs-crds: + path: seaweedfs-crds/0.1.13 + sourceUrl: https://github.com/seaweedfs/seaweedfs-operator/tree/master/deploy/helm + projectUrl: https://github.com/seaweedfs/seaweedfs-operator + license: Apache License 2.0 + licenseUrl: https://github.com/seaweedfs/seaweedfs/blob/master/LICENSE + seaweedfs-operator: + path: seaweedfs-operator/0.1.13 + valuesFile: values.yaml + sourceUrl: https://github.com/seaweedfs/seaweedfs-operator + projectUrl: https://github.com/seaweedfs/seaweedfs + license: Apache License 2.0 + licenseUrl: https://github.com/seaweedfs/seaweedfs/blob/master/LICENSE