groups: - name: "Container Images" description: "Image to be used for container" - name: "Workload Configuration" description: "Configure Storage for IPFS" - name: "Storage" description: "Configure Storage for IPFS" - name: "IPFS Configuration" description: "Configure Storage for IPFS" portals: web_portal: protocols: - "http" host: - "$node_ip" ports: - "$variable-service.apiPort" path: "/webui" questions: # Image related - variable: image description: "Docker Image Details" label: "Docker Image" group: "Container Images" schema: type: dict required: true attrs: - variable: repository description: "Docker image repository" label: "Image repository" schema: type: string default: "ipfs/go-ipfs" required: true - variable: tag description: "Tag to use for specified image" label: "Image Tag" schema: type: string default: "v0.8.0-rc1" - variable: pullPolicy description: "Docker Image Pull Policy" label: "Image Pull Policy" schema: type: string default: "IfNotPresent" enum: - value: "IfNotPresent" description: "Only pull image if not present on host" - value: "Always" description: "Always pull image even if present on host" - value: "Never" description: "Never pull image even if it's not present on host" - variable: updateStrategy label: "IPFS update strategy" group: "Workload Configuration" schema: type: string default: "Recreate" enum: - value: "RollingUpdate" description: "Create new pods and then kill old ones" - value: "Recreate" description: "Kill existing pods before creating new ones" - variable: environmentVariables label: "IPFS image environment" group: "IPFS 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: "IPFS Service Configuration" label: "IPFS Service Configuration" group: "IPFS Configuration" schema: type: dict required: true attrs: - variable: swarmPort label: "Swarm Port to use for IPFS (Public)" schema: type: int min: 9000 max: 65535 default: 9401 required: true - variable: apiPort label: "API Port to use for IPFS (local)" schema: type: int min: 9000 max: 65535 default: 9501 required: true - variable: gatewayPort label: "Gateway Port to use for IPFS (local)" schema: type: int min: 9000 max: 65535 default: 9880 required: true - variable: appVolumeMounts label: "IPFS Storage" group: "Storage" schema: type: dict attrs: - variable: staging label: "Staging Volume" schema: type: dict attrs: - variable: datasetName label: "IPFS Staging Volume Dataset Name" schema: type: string hidden: true $ref: - "normalize/ixVolume" show_if: [["hostPathEnabled", "=", false]] default: "ix-ipfs-staging" editable: false - variable: mountPath label: "IPFS Staging Mount Path" description: "Path where the volume will be mounted inside the pod" schema: type: path hidden: true editable: false default: "/export" - variable: hostPathEnabled label: "Enable Host Path for IPFS Staging Volume" schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: hostPath label: "Host Path for IPFS Staging Volume" schema: type: hostpath required: true - variable: data label: "Data Volume" schema: type: dict attrs: - variable: datasetName label: "IPFS Data Volume Name" schema: type: string hidden: true $ref: - "normalize/ixVolume" show_if: [["hostPathEnabled", "=", false]] default: "ix-ipfs-data" editable: false - variable: mountPath label: "IPFS Data Mount Path" description: "Path where the volume will be mounted inside the pod" schema: type: path hidden: true editable: false default: "/data/ipfs" - variable: hostPathEnabled label: "Enable Host Path for IPFS Data Volume" schema: type: boolean default: false show_subquestions_if: true subquestions: - variable: hostPath label: "Host Path for IPFS Data Volume" schema: type: hostpath required: true