groups: - name: "Configuration" description: "Photo Prism application configuration" - name: "Storage" description: "Configure storage for photo prism" - name: "Networking" description: "Networking Configuration for photo prism" - name: "Advanced DNS Settings" description: "Configure DNS settings" - name: "Resource Reservation" description: "Specify resources to be allocated to workload" - name: "Resource Limits" description: "Set CPU/memory limits for Kubernetes Pod" portals: web_portal: protocols: - "http" host: - "$node_ip" ports: - "$variable-web_port" path: "/" questions: - variable: host_network group: Networking label: Host Network description: | Bind to the host network. It's recommended to keep this disabled but may be needed for photoprism to be reachable from a hostNetworked VPN.
schema: type: boolean default: false - variable: web_port label: "Web Port for photo prism" group: Networking schema: type: int min: 8000 max: 65535 default: 20800 required: true - 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: ownerUID label: "Storage User ID" description: "User ID of the storage volume being used (application will chown the storage volume path with specified UID)" group: Configuration schema: type: int default: 568 min: 1 max: 65535 - variable: ownerGID label: "Storage Group ID" description: "Group ID of the storage volume being used (application will chown the storage volume path with specified GID)" group: Configuration schema: type: int default: 568 min: 1 max: 65535 - variable: password label: "Password" group: "Configuration" schema: type: string private: true required: true empty: false immutable: true default: "admin123" show_if: [["public", "=", false]] - variable: public label: "Enable Public Access" description: "Disable password authentication, WebDAV, and the advanced settings page" group: "Configuration" schema: type: boolean default: false - variable: environmentVariables label: "Photo Prism environment" group: "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: appVolumeMounts label: "Photo Prism Storage" group: "Storage" schema: type: dict attrs: - variable: original label: "Storage Volume for Original Media" schema: type: dict attrs: - variable: datasetName label: "Original Storage Volume Dataset Name" schema: type: string hidden: true $ref: - "normalize/ixVolume" show_if: [["hostPathEnabled", "=", false]] default: "ix-photoprism_original" editable: false - variable: mountPath label: "Original Storage Mount Path" description: "Path where the volume will be mounted inside the pod" schema: type: path hidden: true editable: true default: "/photoprism/originals" - variable: readOnly label: "Read Only" description: "Mount volume as read only" schema: type: boolean default: false - variable: hostPathEnabled label: "Enable Custom Host Path for Photo Prism Original Storage Volume" schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: hostPath label: "Host Path for Photo Prism Original Storage Volume" schema: type: hostpath required: true - variable: storage label: "Storage Volume for sidecar/cache/database" schema: type: dict attrs: - variable: datasetName label: "Storage Volume Dataset Name" schema: type: string hidden: true $ref: - "normalize/ixVolume" show_if: [["hostPathEnabled", "=", false]] default: "ix-photoprism_storage" editable: false - variable: mountPath label: "Storage Mount Path" description: "Path where the volume will be mounted inside the pod" schema: type: path hidden: true editable: true default: "/photoprism/storage" - variable: hostPathEnabled label: "Enable Custom Host Path for Photo Prism Storage Volume" schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: hostPath label: "Host Path for Photo Prism Storage Volume" schema: type: hostpath required: true - variable: import label: "Storage Volume for imports" schema: type: dict attrs: - variable: datasetName label: "Import Storage Volume Dataset Name" schema: type: string hidden: true $ref: - "normalize/ixVolume" show_if: [["hostPathEnabled", "=", false]] default: "ix-photoprism_import" editable: false - variable: mountPath label: "Storage Mount Path" description: "Path where the volume will be mounted inside the pod" schema: type: path hidden: true editable: true default: "/photoprism/import" - variable: hostPathEnabled label: "Enable Custom Host Path for Photo Prism Import Storage Volume" schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: hostPath label: "Host Path for Photo Prism Import Storage Volume" schema: type: hostpath required: 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 Photo Prism 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: readOnly label: "Read Only" description: "Mount volume as read only" schema: type: boolean default: false - variable: hostPath label: "Host Path" description: "Host path" schema: type: hostpath required: true # Specify GPU configuration - variable: gpuConfiguration label: "GPU Configuration" group: "Resource Reservation" schema: type: dict $ref: - "definitions/gpuConfiguration" attrs: [] - 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"