groups: - name: "Container Images" description: "Image to be used for container" - name: "Workload Configuration" description: "Configure workload deployment" - name: "Minio Configuration" description: "Configure Minio credentials" - name: "Storage" description: "Configure Storage for Nextcloud" - name: "Advanced DNS Settings" description: "Configure DNS settings" - name: "Resource Limits" description: "Set CPU/memory limits for Kubernetes Pod" portals: web_portal: protocols: - "$kubernetes-resource_configmap_minio-config_protocol" host: - "$node_ip" ports: - "$variable-service.consolePort" questions: - variable: dnsConfig label: "DNS Configuration" group: "Advanced DNS Settings" schema: type: dict attrs: - variable: options label: "DNS Options" schema: type: list items: - variable: optionsEntry label: "Option Entry Configuration" schema: type: dict attrs: - variable: name label: "Option Name" schema: type: string required: true - variable: value label: "Option Value" schema: type: string required: true - variable: updateStrategy label: "Minio update strategy" group: "Workload Configuration" schema: type: string default: "RollingUpdate" enum: - value: "RollingUpdate" description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - variable: distributedMode label: "Enable Distributed Mode" description: "Run Minio instance to connect to a distributed minio cluster" group: "Minio Configuration" schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: distributedIps label: "Distributed Minio Instance URI(s)" schema: type: list required: true default: [] items: - variable: ip label: "Distributed Minio Instance URI" schema: type: string empty: false - variable: extraArgs label: "Minio Extra Arguments" group: "Minio Configuration" schema: type: list default: [] items: - variable: arg label: "Argument" schema: type: string - variable: accessKey label: "Root User" group: "Minio Configuration" description: "Enter the S3 Root User" schema: type: string private: true required: true min_length: 5 max_length: 20 - variable: secretKey label: "Root Password" group: "Minio Configuration" description: "Enter the S3 Root Password" schema: type: string private: true required: true min_length: 8 max_length: 40 - variable: environmentVariables label: "Minio image environment" group: "Minio Configuration" schema: type: list default: [] items: - variable: environmentVariable label: "Environment Variable" schema: type: dict attrs: - variable: name label: "Name" schema: type: string - variable: value label: "Value" schema: type: string - variable: service description: "Minio Service Configuration" label: "Minio Service Configuration" group: "Minio Configuration" schema: type: dict required: true attrs: - variable: nodePort label: "Node Port to use for Minio API" schema: type: int min: 9000 max: 65535 default: 9000 required: true - variable: consolePort label: "Node Port to use for Minio UI Access" schema: type: int min: 9000 max: 65535 default: 9002 required: true - variable: certificate description: "Minio Certificate" label: "Minio Certificate" group: "Minio Configuration" schema: type: int $ref: - "definitions/certificate" - variable: minioDomain label: "Minio Domain Name" description: "This is only required if TLS is configured for Minio" group: "Minio Configuration" schema: type: string default: null "null": true show_if: [["certificate", "!=", null]] - variable: logsearchapi label: Log Search API Configuration description: Log Search API Configuration group: Minio Configuration schema: type: dict attrs: - variable: enabled label: Enable Log Search API description: Enables Log Search API and configures MinIO to use it. It also deploys a postgres DB for it. schema: type: boolean default: false - variable: diskCapacityGB label: Disk Capacity in GB description: Capacity in GB that logs are allowed to occupy. schema: type: int show_if: [["enabled", "=", true]] default: 5 - variable: appVolumeMounts label: "Minio Storage" group: "Storage" schema: type: dict show_if: [["distributedMode", "=", false]] attrs: - variable: export label: "Data Volume" schema: type: dict attrs: - variable: datasetName label: "Minio Data Volume Name" schema: type: string hidden: true $ref: - "normalize/ixVolume" show_if: [["hostPathEnabled", "=", false]] default: "ix-minio" editable: false - variable: mountPath label: "Minio Data Mount Path" description: "Path where the volume will be mounted inside the pod" schema: type: path default: "/export" immutable: true - variable: hostPathEnabled label: "Enable Host Path for Minio Data Volume" schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: hostPath label: "Host Path for Minio Data Volume" schema: type: hostpath required: true immutable: true - variable: extraAppVolumeMounts label: "Extra Host Path Volumes" group: "Storage" schema: type: list items: - variable: extraAppVolume label: "Host Path Volume" description: "Add an extra host path volume for Minio application" schema: type: dict attrs: - variable: mountPath label: "Mount Path in Pod" description: "Path where the volume will be mounted inside the pod" schema: type: path required: true - variable: hostPath label: "Host Path" description: "Host path" schema: type: hostpath required: true - variable: postgresAppVolumeMounts label: Postgres Storage group: Storage schema: type: dict attrs: - variable: postgres-data label: Postgres Data Volume schema: type: dict attrs: - variable: datasetName label: Postgres Data Volume Name schema: type: string hidden: true $ref: - normalize/ixVolume default: ix-postgres_data show_if: [["hostPathEnabled", "=", false]] editable: false - variable: mountPath label: Postgresql Data Mount Path description: Path where the volume will be mounted inside the pod schema: type: path hidden: true editable: false default: /var/lib/postgresql/data - variable: hostPathEnabled label: Enable Host Path for Postgres Data Volume schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: hostPath label: Host Path for Postgres Data Volume schema: type: hostpath required: true immutable: true - variable: postgres-backup label: Postgres Backup Volume schema: type: dict attrs: - variable: datasetName label: Postgres Backup Volume Name schema: type: string hidden: true $ref: - normalize/ixVolume default: ix-postgres_backups show_if: [["hostPathEnabled", "=", false]] editable: false - variable: mountPath label: Postgresql Backup Mount Path description: Path where the volume will be mounted inside the pod schema: type: path hidden: true editable: false default: /postgres_backups - variable: hostPathEnabled label: Enable Host Path for Postgres Backup Volume schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: hostPath label: Host Path for Postgres Backup Volume schema: type: hostpath required: true - variable: enableResourceLimits label: "Enable Pod resource limits" group: "Resource Limits" schema: type: boolean default: false - variable: cpuLimit label: "CPU Limit" description: "CPU resource limit allow plain integer values with suffix m(milli) e.g 1000m, 100." group: "Resource Limits" schema: type: string show_if: [["enableResourceLimits", "=", true]] valid_chars: "^\\d+(?:\\.\\d+(?!.*m$)|m?$)" default: "4000m" - variable: memLimit label: "Memory Limit" group: "Resource Limits" description: "Memory limits is specified by number of bytes. Followed by quantity suffix like E,P,T,G,M,k and Ei,Pi,Ti,Mi,Gi,Ki can also be used. e.g 129e6, 129M, 128974848000m, 123Mi" schema: type: string show_if: [["enableResourceLimits", "=", true]] valid_chars: "^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$" default: "8Gi"