{ "2.0.1": { "healthy": true, "supported": false, "healthy_error": null, "location": "/__w/charts/charts/charts/storj/2.0.1", "last_update": "2024-03-29 12:30:11", "required_features": [ "normalize/acl", "normalize/ixVolume" ], "human_version": "v1.68.2_2.0.1", "version": "2.0.1", "chart_metadata": { "name": "storj", "description": "Share your storage on the internet and earn.", "annotations": { "title": "Storj" }, "type": "application", "version": "2.0.1", "apiVersion": "v2", "appVersion": "v1.68.2", "kubeVersion": ">=1.16.0-0", "maintainers": [ { "name": "truenas", "url": "https://www.truenas.com/", "email": "dev@ixsystems.com" } ], "dependencies": [ { "name": "common", "repository": "file://../../../common", "version": "1.2.9" } ], "home": "https://www.storj.io", "icon": "https://media.sys.truenas.net/apps/storj/icons/icon.svg", "sources": [ "https://www.storj.io", "https://github.com/truenas/charts/tree/master/charts/storj" ], "keywords": [ "storage", "dapps", "networking", "financial" ] }, "app_metadata": { "runAsContext": [ { "userName": "storj", "groupName": "storj", "gid": 568, "uid": 568, "description": "Storj runs as non-root user." } ], "capabilities": [ { "name": "CHOWN", "description": "Storj is able to chown files." }, { "name": "FOWNER", "description": "Storj is able to bypass permission checks for it's sub-processes." }, { "name": "SYS_CHROOT", "description": "Storj is able to use chroot." }, { "name": "MKNOD", "description": "Storj is able to create device nodes." }, { "name": "DAC_OVERRIDE", "description": "Storj is able to bypass permission checks." }, { "name": "FSETID", "description": "Storj is able to set file capabilities." }, { "name": "KILL", "description": "Storj is able to kill processes." }, { "name": "SETGID", "description": "Storj is able to set group ID for it's sub-processes." }, { "name": "SETUID", "description": "Storj is able to set user ID for it's sub-processes." }, { "name": "SETPCAP", "description": "Storj is able to set process capabilities." }, { "name": "NET_BIND_SERVICE", "description": "Storj is able to bind to privileged ports." }, { "name": "SETFCAP", "description": "Storj is able to set file capabilities." }, { "name": "NET_RAW", "description": "Storj is able to use raw sockets." }, { "name": "AUDIT_WRITE", "description": "Storj is able to write to audit log." } ], "hostMounts": [] }, "schema": { "groups": [ { "name": "Storj Configuration", "description": "Configure Storj" }, { "name": "User and Group Configuration", "description": "Configure User and Group for Storj" }, { "name": "Advanced Pod Configuration", "description": "Configure Advanced Pod Options for Storj" }, { "name": "Network Configuration", "description": "Configure Network for Storj" }, { "name": "Storage Configuration", "description": "Configure Storage for Storj" }, { "name": "Resources Configuration", "description": "Configure Resources for Storj" } ], "portals": { "web_portal": { "protocols": [ "$kubernetes-resource_configmap_portal_protocol" ], "host": [ "$kubernetes-resource_configmap_portal_host" ], "ports": [ "$kubernetes-resource_configmap_portal_port" ], "path": "$kubernetes-resource_configmap_portal_path" } }, "questions": [ { "variable": "storjConfig", "label": "", "group": "Storj Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "wallet", "label": "Wallet", "description": "The wallet to use for Storj.", "schema": { "type": "string", "required": true, "private": true } }, { "variable": "authToken", "label": "Auth Token", "description": "The auth token to use for Storj.", "schema": { "type": "string", "required": true, "private": true } }, { "variable": "email", "label": "Email", "description": "The email to use for Storj.", "schema": { "type": "string", "required": true } }, { "variable": "domainAddress", "label": "Domain Address", "description": "The domain address to use for Storj.", "schema": { "type": "string", "required": true, "private": true } }, { "variable": "gracePeriod", "label": "Grace Period", "description": "The grace period to use for Storj.", "schema": { "type": "int", "min": 30, "default": 30, "required": true } }, { "variable": "storageSizeGB", "label": "Storage Size", "description": "The storage size to use for Storj.", "schema": { "type": "int", "min": 500, "default": 500, "required": true } }, { "variable": "wallets", "label": "Opt-in to additional Wallets", "schema": { "type": "dict", "attrs": [ { "variable": "zkSync", "label": "zkSync", "description": "Appends \"zksync\" to --operator.wallet-features flag to the storagenode command", "schema": { "type": "boolean", "default": false } }, { "variable": "zkSyncEra", "label": "zkSync Era", "description": "Appends \"zksync-era\" to --operator.wallet-features flag to the storagenode command", "schema": { "type": "boolean", "default": false } } ] } }, { "variable": "additionalEnvs", "label": "Additional Environment Variables", "description": "Configure additional environment variables for Storj.", "schema": { "type": "list", "default": [], "items": [ { "variable": "env", "label": "Environment Variable", "schema": { "type": "dict", "attrs": [ { "variable": "name", "label": "Name", "schema": { "type": "string", "required": true } }, { "variable": "value", "label": "Value", "schema": { "type": "string", "required": true } } ] } } ] } } ] } }, { "variable": "storjRunAs", "label": "", "group": "User and Group Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "user", "label": "User ID", "description": "The user id that Storj will run as.", "schema": { "type": "int", "min": 568, "default": 568, "required": true } }, { "variable": "group", "label": "Group ID", "description": "The group id that Storj will run as.", "schema": { "type": "int", "min": 568, "default": 568, "required": true } } ] } }, { "variable": "podOptions", "label": "", "group": "Advanced Pod Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "dnsConfig", "label": "Advanced DNS Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "options", "label": "DNS Options", "schema": { "type": "list", "items": [ { "variable": "optionsEntry", "label": "DNS Option Entry", "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": "storjNetwork", "label": "", "group": "Network Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "webPort", "label": "Web Port", "description": "The port for the Storj Web UI.", "schema": { "type": "int", "default": 20909, "min": 9000, "max": 65535, "required": true } }, { "variable": "p2pPort", "label": "P2P Port", "description": "This port will be used for both TCP and UDP traffic.
\nNote that this port must be open on your firewall and that internal\nStorj port will not be affected by this change, but only the external (Node Port)\n", "schema": { "type": "int", "default": 28967, "min": 9000, "max": 65535, "required": true } }, { "variable": "hostNetwork", "label": "Host Network", "description": "Enable host network for Storj\n", "schema": { "type": "boolean", "default": false } } ] } }, { "variable": "storjStorage", "label": "", "group": "Storage Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "data", "label": "Storj Data Storage", "description": "The path to store Storj Data.", "schema": { "type": "dict", "attrs": [ { "variable": "type", "label": "Type", "description": "ixVolume: Is dataset created automatically by the system.
\nHost Path: Is a path that already exists on the system.\n", "schema": { "type": "string", "required": true, "immutable": true, "default": "ixVolume", "enum": [ { "value": "hostPath", "description": "Host Path (Path that already exists on the system)" }, { "value": "ixVolume", "description": "ixVolume (Dataset created automatically by the system)" } ] } }, { "variable": "ixVolumeConfig", "label": "ixVolume Configuration", "description": "The configuration for the ixVolume dataset.", "schema": { "type": "dict", "show_if": [ [ "type", "=", "ixVolume" ] ], "$ref": [ "normalize/ixVolume" ], "attrs": [ { "variable": "aclEnable", "label": "Enable ACL", "description": "Enable ACL for the dataset.", "schema": { "type": "boolean", "default": false } }, { "variable": "datasetName", "label": "Dataset Name", "description": "The name of the dataset to use for storage.", "schema": { "type": "string", "required": true, "immutable": true, "hidden": true, "default": "data" } }, { "variable": "aclEntries", "label": "ACL Configuration", "schema": { "type": "dict", "show_if": [ [ "aclEnable", "=", true ] ], "attrs": [ { "variable": "path", "label": "Path", "description": "Path to perform ACL", "schema": { "type": "string", "hidden": true } }, { "variable": "entries", "label": "ACL Entries", "description": "ACL Entries", "schema": { "type": "list", "items": [ { "variable": "aclEntry", "label": "ACL Entry", "schema": { "type": "dict", "attrs": [ { "variable": "id_type", "label": "ID Type", "schema": { "type": "string", "enum": [ { "value": "USER", "description": "Entry is for a USER" }, { "value": "GROUP", "description": "Entry is for a GROUP" } ], "default": "USER" } }, { "variable": "id", "label": "ID", "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application", "schema": { "type": "int", "required": true, "min": 0 } }, { "variable": "access", "label": "Access", "schema": { "type": "string", "enum": [ { "value": "READ", "description": "Read Access" }, { "value": "MODIFY", "description": "Modify Access" }, { "value": "FULL_CONTROL", "description": "FULL_CONTROL Access" } ] } } ] } } ] } } ] } } ] } }, { "variable": "hostPathConfig", "label": "Host Path Config", "schema": { "type": "dict", "show_if": [ [ "type", "=", "hostPath" ] ], "attrs": [ { "variable": "aclEnable", "label": "Enable ACL", "description": "Enable ACL for the dataset.", "schema": { "type": "boolean", "default": false } }, { "variable": "acl", "label": "ACL Configuration", "schema": { "type": "dict", "show_if": [ [ "aclEnable", "=", true ] ], "attrs": [ { "variable": "path", "label": "Host Path", "description": "Host Path to perform ACL", "schema": { "type": "hostpath", "required": true, "empty": false } }, { "variable": "entries", "label": "ACL Entries", "description": "ACL Entries", "schema": { "type": "list", "items": [ { "variable": "aclEntry", "label": "ACL Entry", "schema": { "type": "dict", "attrs": [ { "variable": "id_type", "label": "ID Type", "schema": { "type": "string", "enum": [ { "value": "USER", "description": "Entry is for a USER" }, { "value": "GROUP", "description": "Entry is for a GROUP" } ], "default": "USER" } }, { "variable": "id", "label": "ID", "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application", "schema": { "type": "int", "required": true, "min": 0 } }, { "variable": "access", "label": "Access", "schema": { "type": "string", "enum": [ { "value": "READ", "description": "Read Access" }, { "value": "MODIFY", "description": "Modify Access" }, { "value": "FULL_CONTROL", "description": "FULL_CONTROL Access" } ] } } ] } } ] } }, { "variable": "options", "label": "ACL Options", "schema": { "type": "dict", "attrs": [ { "variable": "force", "label": "Force Flag", "description": "Enabling `Force` applies ACL even if the path has existing data", "schema": { "type": "boolean", "default": false } } ] } } ], "$ref": [ "normalize/acl" ] } }, { "variable": "hostPath", "label": "Host Path", "description": "The host path to use for storage.", "schema": { "type": "hostpath", "show_if": [ [ "aclEnable", "=", false ] ], "required": true } } ] } } ] } }, { "variable": "identity", "label": "Storj Identity Storage", "description": "The path to store Storj Identity.", "schema": { "type": "dict", "attrs": [ { "variable": "type", "label": "Type", "description": "ixVolume: Is dataset created automatically by the system.
\nHost Path: Is a path that already exists on the system.\n", "schema": { "type": "string", "required": true, "immutable": true, "default": "ixVolume", "enum": [ { "value": "hostPath", "description": "Host Path (Path that already exists on the system)" }, { "value": "ixVolume", "description": "ixVolume (Dataset created automatically by the system)" } ] } }, { "variable": "ixVolumeConfig", "label": "ixVolume Configuration", "description": "The configuration for the ixVolume dataset.", "schema": { "type": "dict", "show_if": [ [ "type", "=", "ixVolume" ] ], "$ref": [ "normalize/ixVolume" ], "attrs": [ { "variable": "aclEnable", "label": "Enable ACL", "description": "Enable ACL for the dataset.", "schema": { "type": "boolean", "default": false } }, { "variable": "datasetName", "label": "Dataset Name", "description": "The name of the dataset to use for storage.", "schema": { "type": "string", "required": true, "immutable": true, "hidden": true, "default": "identity" } }, { "variable": "aclEntries", "label": "ACL Configuration", "schema": { "type": "dict", "show_if": [ [ "aclEnable", "=", true ] ], "attrs": [ { "variable": "path", "label": "Path", "description": "Path to perform ACL", "schema": { "type": "string", "hidden": true } }, { "variable": "entries", "label": "ACL Entries", "description": "ACL Entries", "schema": { "type": "list", "items": [ { "variable": "aclEntry", "label": "ACL Entry", "schema": { "type": "dict", "attrs": [ { "variable": "id_type", "label": "ID Type", "schema": { "type": "string", "enum": [ { "value": "USER", "description": "Entry is for a USER" }, { "value": "GROUP", "description": "Entry is for a GROUP" } ], "default": "USER" } }, { "variable": "id", "label": "ID", "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application", "schema": { "type": "int", "required": true, "min": 0 } }, { "variable": "access", "label": "Access", "schema": { "type": "string", "enum": [ { "value": "READ", "description": "Read Access" }, { "value": "MODIFY", "description": "Modify Access" }, { "value": "FULL_CONTROL", "description": "FULL_CONTROL Access" } ] } } ] } } ] } } ] } } ] } }, { "variable": "hostPathConfig", "label": "Host Path Config", "schema": { "type": "dict", "show_if": [ [ "type", "=", "hostPath" ] ], "attrs": [ { "variable": "aclEnable", "label": "Enable ACL", "description": "Enable ACL for the dataset.", "schema": { "type": "boolean", "default": false } }, { "variable": "acl", "label": "ACL Configuration", "schema": { "type": "dict", "show_if": [ [ "aclEnable", "=", true ] ], "attrs": [ { "variable": "path", "label": "Host Path", "description": "Host Path to perform ACL", "schema": { "type": "hostpath", "required": true, "empty": false } }, { "variable": "entries", "label": "ACL Entries", "description": "ACL Entries", "schema": { "type": "list", "items": [ { "variable": "aclEntry", "label": "ACL Entry", "schema": { "type": "dict", "attrs": [ { "variable": "id_type", "label": "ID Type", "schema": { "type": "string", "enum": [ { "value": "USER", "description": "Entry is for a USER" }, { "value": "GROUP", "description": "Entry is for a GROUP" } ], "default": "USER" } }, { "variable": "id", "label": "ID", "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application", "schema": { "type": "int", "required": true, "min": 0 } }, { "variable": "access", "label": "Access", "schema": { "type": "string", "enum": [ { "value": "READ", "description": "Read Access" }, { "value": "MODIFY", "description": "Modify Access" }, { "value": "FULL_CONTROL", "description": "FULL_CONTROL Access" } ] } } ] } } ] } }, { "variable": "options", "label": "ACL Options", "schema": { "type": "dict", "attrs": [ { "variable": "force", "label": "Force Flag", "description": "Enabling `Force` applies ACL even if the path has existing data", "schema": { "type": "boolean", "default": false } } ] } } ], "$ref": [ "normalize/acl" ] } }, { "variable": "hostPath", "label": "Host Path", "description": "The host path to use for storage.", "schema": { "type": "hostpath", "show_if": [ [ "aclEnable", "=", false ] ], "required": true } } ] } } ] } }, { "variable": "additionalStorages", "label": "Additional Storage", "description": "Additional storage for Storj.", "schema": { "type": "list", "default": [], "items": [ { "variable": "storageEntry", "label": "Storage Entry", "schema": { "type": "dict", "attrs": [ { "variable": "type", "label": "Type", "description": "ixVolume: Is dataset created automatically by the system.
\nHost Path: Is a path that already exists on the system.
\nSMB Share: Is a SMB share that is mounted to a persistent volume claim.\n", "schema": { "type": "string", "required": true, "default": "ixVolume", "immutable": true, "enum": [ { "value": "hostPath", "description": "Host Path (Path that already exists on the system)" }, { "value": "ixVolume", "description": "ixVolume (Dataset created automatically by the system)" }, { "value": "smb-pv-pvc", "description": "SMB Share (Mounts a persistent volume claim to a SMB share)" } ] } }, { "variable": "readOnly", "label": "Read Only", "description": "Mount the volume as read only.", "schema": { "type": "boolean", "default": false } }, { "variable": "mountPath", "label": "Mount Path", "description": "The path inside the container to mount the storage.", "schema": { "type": "path", "required": true } }, { "variable": "hostPathConfig", "label": "Host Path Config", "schema": { "type": "dict", "show_if": [ [ "type", "=", "hostPath" ] ], "attrs": [ { "variable": "aclEnable", "label": "Enable ACL", "description": "Enable ACL for the dataset.", "schema": { "type": "boolean", "default": false } }, { "variable": "acl", "label": "ACL Configuration", "schema": { "type": "dict", "show_if": [ [ "aclEnable", "=", true ] ], "attrs": [ { "variable": "path", "label": "Host Path", "description": "Host Path to perform ACL", "schema": { "type": "hostpath", "required": true, "empty": false } }, { "variable": "entries", "label": "ACL Entries", "description": "ACL Entries", "schema": { "type": "list", "items": [ { "variable": "aclEntry", "label": "ACL Entry", "schema": { "type": "dict", "attrs": [ { "variable": "id_type", "label": "ID Type", "schema": { "type": "string", "enum": [ { "value": "USER", "description": "Entry is for a USER" }, { "value": "GROUP", "description": "Entry is for a GROUP" } ], "default": "USER" } }, { "variable": "id", "label": "ID", "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application", "schema": { "type": "int", "required": true, "min": 0 } }, { "variable": "access", "label": "Access", "schema": { "type": "string", "enum": [ { "value": "READ", "description": "Read Access" }, { "value": "MODIFY", "description": "Modify Access" }, { "value": "FULL_CONTROL", "description": "FULL_CONTROL Access" } ] } } ] } } ] } }, { "variable": "options", "label": "ACL Options", "schema": { "type": "dict", "attrs": [ { "variable": "force", "label": "Force Flag", "description": "Enabling `Force` applies ACL even if the path has existing data", "schema": { "type": "boolean", "default": false } } ] } } ], "$ref": [ "normalize/acl" ] } }, { "variable": "hostPath", "label": "Host Path", "description": "The host path to use for storage.", "schema": { "type": "hostpath", "show_if": [ [ "aclEnable", "=", false ] ], "required": true } } ] } }, { "variable": "ixVolumeConfig", "label": "ixVolume Configuration", "description": "The configuration for the ixVolume dataset.", "schema": { "type": "dict", "show_if": [ [ "type", "=", "ixVolume" ] ], "$ref": [ "normalize/ixVolume" ], "attrs": [ { "variable": "aclEnable", "label": "Enable ACL", "description": "Enable ACL for the dataset.", "schema": { "type": "boolean", "default": false } }, { "variable": "datasetName", "label": "Dataset Name", "description": "The name of the dataset to use for storage.", "schema": { "type": "string", "required": true, "immutable": true, "default": "storage_entry" } }, { "variable": "aclEntries", "label": "ACL Configuration", "schema": { "type": "dict", "show_if": [ [ "aclEnable", "=", true ] ], "attrs": [ { "variable": "path", "label": "Path", "description": "Path to perform ACL", "schema": { "type": "string", "hidden": true } }, { "variable": "entries", "label": "ACL Entries", "description": "ACL Entries", "schema": { "type": "list", "items": [ { "variable": "aclEntry", "label": "ACL Entry", "schema": { "type": "dict", "attrs": [ { "variable": "id_type", "label": "ID Type", "schema": { "type": "string", "enum": [ { "value": "USER", "description": "Entry is for a USER" }, { "value": "GROUP", "description": "Entry is for a GROUP" } ], "default": "USER" } }, { "variable": "id", "label": "ID", "description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application", "schema": { "type": "int", "required": true, "min": 0 } }, { "variable": "access", "label": "Access", "schema": { "type": "string", "enum": [ { "value": "READ", "description": "Read Access" }, { "value": "MODIFY", "description": "Modify Access" }, { "value": "FULL_CONTROL", "description": "FULL_CONTROL Access" } ] } } ] } } ] } } ] } } ] } }, { "variable": "smbConfig", "label": "SMB Share Configuration", "description": "The configuration for the SMB Share.", "schema": { "type": "dict", "show_if": [ [ "type", "=", "smb-pv-pvc" ] ], "attrs": [ { "variable": "server", "label": "Server", "description": "The server for the SMB share.", "schema": { "type": "string", "required": true } }, { "variable": "share", "label": "Share", "description": "The share name for the SMB share.", "schema": { "type": "string", "required": true } }, { "variable": "domain", "label": "Domain (Optional)", "description": "The domain for the SMB share.", "schema": { "type": "string" } }, { "variable": "username", "label": "Username", "description": "The username for the SMB share.", "schema": { "type": "string", "required": true } }, { "variable": "password", "label": "Password", "description": "The password for the SMB share.", "schema": { "type": "string", "required": true, "private": true } }, { "variable": "size", "label": "Size (in Gi)", "description": "The size of the volume quota.", "schema": { "type": "int", "required": true, "min": 1, "default": 1 } } ] } } ] } } ] } } ] } }, { "variable": "resources", "group": "Resources Configuration", "label": "", "schema": { "type": "dict", "attrs": [ { "variable": "limits", "label": "Limits", "schema": { "type": "dict", "attrs": [ { "variable": "cpu", "label": "CPU", "description": "CPU limit for Storj.", "schema": { "type": "string", "max_length": 6, "valid_chars": "^(0\\.[1-9]|[1-9][0-9]*)(\\.[0-9]|m?)$", "valid_chars_error": "Valid CPU limit formats are
\n- Plain Integer - eg. 1
\n- Float - eg. 0.5
\n- Milicpu - eg. 500m\n", "default": "4000m", "required": true } }, { "variable": "memory", "label": "Memory", "description": "Memory limit for Storj.", "schema": { "type": "string", "max_length": 12, "valid_chars": "^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$", "valid_chars_error": "Valid Memory limit formats are
\n- Suffixed with E/P/T/G/M/K - eg. 1G
\n- Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi
\n- Plain Integer in bytes - eg. 1024
\n- Exponent - eg. 134e6\n", "default": "8Gi", "required": true } } ] } } ] } } ] }, "app_readme": "

Storj

\n

Storj - share your extra storage and earn money

\n

During the first startup a container with root privileges is created.\nAnd it will generate an identity (if it doesn't exist)\nAfter the identity is created, the container will run as a non-root user.

", "detailed_readme": "

Storj

\n

Storj - share your extra storage and earn money

\n

During the first startup a container with root privileges is created.\nAnd it will generate an identity (if it doesn't exist)\nAfter the identity is created, the container will run as a non-root user.

", "changelog": null }, "1.0.18": { "healthy": true, "supported": true, "healthy_error": null, "location": "/__w/charts/charts/charts/storj/1.0.18", "last_update": "2024-03-29 12:30:11", "required_features": [ "normalize/ixVolume" ], "human_version": "v1.68.2_1.0.18", "version": "1.0.18", "chart_metadata": { "name": "storj", "description": "Share your storage on the internet and earn.", "annotations": { "title": "Storj" }, "type": "application", "version": "1.0.18", "apiVersion": "v2", "appVersion": "v1.68.2", "kubeVersion": ">=1.16.0-0", "maintainers": [ { "name": "truenas", "url": "https://www.truenas.com/", "email": "dev@ixsystems.com" } ], "dependencies": [ { "name": "common", "repository": "file://../../../common/2304.0.1", "version": "2304.0.1" } ], "home": "https://www.storj.io", "icon": "https://media.sys.truenas.net/apps/storj/icons/icon.svg", "sources": [ "https://www.storj.io", "https://github.com/truenas/charts/tree/master/charts/storj" ], "keywords": [ "storage", "dapps", "networking", "financial" ] }, "app_metadata": { "runAsContext": [ { "userName": "root", "groupName": "root", "gid": 0, "uid": 0, "description": "Storj runs as root user." } ], "capabilities": [ { "name": "CHOWN", "description": "Storj is able to chown files." }, { "name": "FOWNER", "description": "Storj is able to bypass permission checks for it's sub-processes." }, { "name": "SYS_CHROOT", "description": "Storj is able to use chroot." }, { "name": "MKNOD", "description": "Storj is able to create device nodes." }, { "name": "DAC_OVERRIDE", "description": "Storj is able to bypass permission checks." }, { "name": "FSETID", "description": "Storj is able to set file capabilities." }, { "name": "KILL", "description": "Storj is able to kill processes." }, { "name": "SETGID", "description": "Storj is able to set group ID for it's sub-processes." }, { "name": "SETUID", "description": "Storj is able to set user ID for it's sub-processes." }, { "name": "SETPCAP", "description": "Storj is able to set process capabilities." }, { "name": "NET_BIND_SERVICE", "description": "Storj is able to bind to privileged ports." }, { "name": "SETFCAP", "description": "Storj is able to set file capabilities." }, { "name": "NET_RAW", "description": "Storj is able to use raw sockets." }, { "name": "AUDIT_WRITE", "description": "Storj is able to write to audit log." } ], "hostMounts": [] }, "schema": { "groups": [ { "name": "Configuration", "description": "Storj application configuration" }, { "name": "Storage", "description": "Configure storage for storj" }, { "name": "Networking", "description": "Networking Configuration for storj" }, { "name": "Advanced DNS Settings", "description": "Configure DNS settings" }, { "name": "Resource Limits", "description": "Set CPU/memory limits for Kubernetes Pod" } ], "portals": { "web_portal": { "protocols": [ "http" ], "host": [ "$node_ip" ], "ports": [ "$variable-webPort" ], "path": "/" } }, "questions": [ { "variable": "webPort", "label": "Web Port for Storj", "group": "Networking", "schema": { "type": "int", "min": 9000, "max": 65535, "default": 20909, "required": true } }, { "variable": "nodePort", "label": "Node Port for Storj", "description": "This port will be used for both TCP and UDP traffic.
\nNote that this port must be open on your firewall and that internal\nStorj port will not be affected by this change, but only the external (Node Port)\n", "group": "Networking", "schema": { "type": "int", "min": 9000, "max": 65535, "default": 28967, "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": "wallet", "label": "Configure Wallet for Storj", "group": "Configuration", "schema": { "type": "string", "required": true } }, { "variable": "authToken", "label": "Configure Auth token for Storj Node", "group": "Configuration", "schema": { "type": "string", "required": true } }, { "variable": "email", "label": "Configure Email for Storj", "group": "Configuration", "schema": { "type": "string", "required": true } }, { "variable": "domainAddress", "label": "Add Your Storage Domain for Storj", "group": "Configuration", "schema": { "type": "string", "required": true } }, { "variable": "zksync", "label": "Opt-in to zkSync", "description": "Appends \"zksync\" to --operator.wallet-features flag to the storagenode command", "group": "Configuration", "schema": { "type": "boolean", "default": false } }, { "variable": "zksyncEra", "label": "Opt-in to zkSync era", "description": "Appends \"zksync-era\" to --operator.wallet-features flag to the storagenode command", "group": "Configuration", "schema": { "type": "boolean", "default": false } }, { "variable": "terminationGracePeriod", "label": "Termination Grace Period", "description": "Optional duration in seconds the pod needs to terminate gracefully.", "group": "Configuration", "schema": { "type": "int", "min": 30, "default": 30 } }, { "variable": "storageSize", "label": "Configure Storage Size You Want To Share in GB's", "group": "Storage", "schema": { "type": "int", "min": 500, "default": 500 } }, { "variable": "runAsUser", "label": "Owner User ID", "group": "Configuration", "schema": { "immutable": true, "type": "int", "default": 568, "min": 1, "max": 65535 } }, { "variable": "runAsGroup", "label": "Owner Group ID", "group": "Configuration", "schema": { "immutable": true, "type": "int", "default": 568, "min": 1, "max": 65535 } }, { "variable": "environmentVariables", "label": "Storj Extra Environment Variables", "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": "Storj Configuration", "group": "Storage", "schema": { "type": "dict", "attrs": [ { "variable": "data", "label": "Configuration Data Volume to Share on Storj", "schema": { "type": "dict", "attrs": [ { "variable": "datasetName", "label": "Configuration Volume Dataset Name", "schema": { "type": "string", "hidden": true, "$ref": [ "normalize/ixVolume" ], "show_if": [ [ "hostPathEnabled", "=", false ] ], "default": "ix_data", "editable": false } }, { "variable": "mountPath", "label": "Configuration Mount Path", "description": "Path Where the Volume Will be Mounted Inside the Pod", "schema": { "type": "path", "hidden": true, "editable": false, "default": "/app/config" } }, { "variable": "hostPathEnabled", "label": "Enable Custom Host Path for Storj Configuration Volume", "schema": { "type": "boolean", "default": false, "show_subquestions_if": true, "subquestions": [ { "variable": "hostPath", "label": "Host Path for Storj Configuration Volume", "schema": { "type": "hostpath", "required": true } } ] } } ] } }, { "variable": "identity", "label": "Configure Identity Volume for Storage Node", "schema": { "type": "dict", "attrs": [ { "variable": "datasetName", "label": "Configure Storj Identity Volume to Allocate", "schema": { "type": "string", "hidden": true, "$ref": [ "normalize/ixVolume" ], "show_if": [ [ "hostPathEnabled", "=", false ] ], "default": "ix_identity", "editable": false } }, { "variable": "mountPath", "label": "Configure Storj Identity Volume to Allocate", "description": "Path where the volume will be mounted inside the pod", "schema": { "type": "path", "hidden": true, "editable": false, "default": "/app/identity" } }, { "variable": "hostPathEnabled", "label": "Enable Custom Host Path for Storj Identity Volume", "schema": { "type": "boolean", "default": false, "show_subquestions_if": true, "subquestions": [ { "variable": "hostPath", "label": "Host Path for Storj identity 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 storj", "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": "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" } } ] }, "app_readme": "

storj

\n

storj share your extra storage and earn money

", "detailed_readme": "

storj

\n

storj share your extra storage and earn money

", "changelog": null } }