diff --git a/charts/stable/ipfs/Chart.yaml b/charts/stable/ipfs/Chart.yaml index 734725dbd8c..5305030c646 100644 --- a/charts/stable/ipfs/Chart.yaml +++ b/charts/stable/ipfs/Chart.yaml @@ -1,9 +1,9 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" name: ipfs -version: 1.0.8 +version: 2.0.0 appVersion: "2.14.0" -description: Ipfs - A peer-to-peer hypermedia protocol designed to make the web faster, safer, and more open +description: IPFS is a global, versioned, peer-to-peer filesystem. It combines good ideas from previous systems such Git, BitTorrent, Kademlia, SFS, and the Web. It is like a single bittorrent swarm, exchanging git objects. type: application deprecated: false home: https://github.com/truecharts/apps/tree/master/charts/stable/ipfs @@ -23,6 +23,6 @@ maintainers: url: https://truecharts.org annotations: truecharts.org/catagories: | - - incubator + - storage truecharts.org/SCALE-support: "true" truecharts.org/grade: U diff --git a/charts/stable/ipfs/questions.yaml b/charts/stable/ipfs/questions.yaml index 0b7203942b2..f8ca421a76d 100644 --- a/charts/stable/ipfs/questions.yaml +++ b/charts/stable/ipfs/questions.yaml @@ -7,6 +7,7 @@ portals: - "$kubernetes-resource_configmap_portal_host" ports: - "$kubernetes-resource_configmap_portal_port" + path: "/webui" questions: - variable: portal group: "Container Image" @@ -75,7 +76,18 @@ questions: - value: "OnDelete" description: "(Legacy) OnDelete: ignore .spec.template changes" # Include{controllerExpert} - + - variable: IPFS_SWARM_KEY + label: "IPFS_SWARM_KEY" + description: "The IPFS_SWARM_KEY creates swarm.key with the contents of the variable itself." + schema: + type: string + default: "" + - variable: IPFS_PROFILE + label: "IPFS_PROFILE (Initial install only)" + description: "When starting a container running ipfs for the first time with an empty data directory, it will call ipfs init to initialize configuration files and generate a new keypair. At this time, you can choose which profile to apply using the IPFS_PROFILE." + schema: + type: string + default: "server" # Include{containerConfig} - variable: service @@ -144,17 +156,17 @@ questions: description: "The internal(!) port on the container the Application runs on" schema: type: int - default: 80 - - variable: peer - label: "peer Service" - description: "The peer service." + default: 5001 + - variable: peer-tcp + label: "Peer-TCP Service" + description: "The Peer-TCP service." schema: additional_attrs: true type: dict attrs: # Include{serviceSelector} - - variable: peer - label: "peer Service Port Configuration" + - variable: peer-tcp + label: "Peer-TCP Service Port Configuration" schema: additional_attrs: true type: dict @@ -182,7 +194,7 @@ questions: label: "Port Type" schema: type: string - default: "HTTP" + default: "TCP" enum: - value: HTTP description: "HTTP" @@ -205,16 +217,16 @@ questions: schema: type: int default: 4001 - - variable: api - label: "api Service" - description: "The api service." + - variable: peer-udp + label: "Peer-UDP Service" + description: "The Peer-udp service." schema: additional_attrs: true type: dict attrs: # Include{serviceSelector} - - variable: api - label: "api Service Port Configuration" + - variable: peer-udp + label: "Peer-UDP Service Port Configuration" schema: additional_attrs: true type: dict @@ -224,7 +236,7 @@ questions: description: "This port exposes the container port on the service" schema: type: int - default: 5001 + default: 4001 required: true - variable: advanced label: "Show Advanced settings" @@ -242,7 +254,7 @@ questions: label: "Port Type" schema: type: string - default: "HTTP" + default: "UDP" enum: - value: HTTP description: "HTTP" @@ -264,17 +276,17 @@ questions: description: "The internal(!) port on the container the Application runs on" schema: type: int - default: 5001 + default: 4001 - variable: gateway - label: "gateway Service" - description: "The gateway service." + label: "Gateway Service" + description: "The Gateway Service." schema: additional_attrs: true type: dict attrs: # Include{serviceSelector} - variable: gateway - label: "gateway Service Port Configuration" + label: "Gateway Service Port Configuration" schema: additional_attrs: true type: dict @@ -353,9 +365,162 @@ questions: additional_attrs: true type: dict attrs: - - variable: config - label: "App Config Storage" - description: "Stores the Application Configuration." + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + additional_attrs: true + type: dict + attrs: + - variable: staging + label: "App Staging Storage" + description: "Stores the Application Staging." + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipfs + label: "App IPFS Storage" + description: "Stores the Application IPFS." + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipns + label: "App IPNS Storage" + description: "Stores the Application IPNS." schema: additional_attrs: true type: dict diff --git a/charts/stable/ipfs/templates/common.yaml b/charts/stable/ipfs/templates/common.yaml index a6613c2ce21..a17e923ef88 100644 --- a/charts/stable/ipfs/templates/common.yaml +++ b/charts/stable/ipfs/templates/common.yaml @@ -1 +1 @@ -{{ include "common.all" . }} +{{- include "common.all" . }} diff --git a/charts/stable/ipfs/values.yaml b/charts/stable/ipfs/values.yaml index 4b1b5f67e18..f6a86ef4f0c 100644 --- a/charts/stable/ipfs/values.yaml +++ b/charts/stable/ipfs/values.yaml @@ -1,7 +1,7 @@ image: - repository: tccr.io/truecharts/ipfs + repository: ipfs/go-ipfs pullPolicy: IfNotPresent - tag: v2.14.0 + tag: v0.12.1 securityContext: runAsNonRoot: false @@ -11,37 +11,59 @@ podSecurityContext: runAsUser: 0 runAsGroup: 0 +env: + IPFS_PROFILE: "server" + IPFS_SWARM_KEY: "" + IPFS_SWARM_KEY_FILE: "" + service: main: ports: main: - targetPort: 80 port: 10125 - peer: + targetPort: 5001 + peer-tcp: enabled: true ports: - peer: + peer-tcp: enabled: true targetPort: 4001 port: 4001 - api: + peer-udp: enabled: true ports: - api: + peer-udp: + protocol: UDP enabled: true - targetPort: 5001 - port: 5001 + targetPort: 4001 + port: 4001 gateway: enabled: true + type: ClusterIP ports: gateway: enabled: true targetPort: 8080 port: 10147 +probes: + liveness: + path: "/webui" + readiness: + path: "/webui" + startup: + path: "/webui" + persistence: - config: + data: enabled: true - mountPath: "/config" - varrun: + mountPath: "/data/ipfs" + staging: enabled: true + mountPath: "/export" + ipfs: + enabled: true + mountPath: "/ipfs" + ipns: + enabled: true + mountPath: "/ipns" diff --git a/docs/apps/stable/ipfs/notes.md b/docs/apps/stable/ipfs/notes.md new file mode 100644 index 00000000000..f7541460a61 --- /dev/null +++ b/docs/apps/stable/ipfs/notes.md @@ -0,0 +1,7 @@ +# Initial Install + +IPFS comes with it's web access disabled to even LAN connections. + +First time you visit it's webUI, it will show you what you need to do, in order to have access. + +It requires to open a shell to the App, which you can easily do. On the App card by click the 3-dots > Shell. \ No newline at end of file diff --git a/docs/manual/default-ports.md b/docs/manual/default-ports.md index 1dc36deb59a..e1b6abb675c 100644 --- a/docs/manual/default-ports.md +++ b/docs/manual/default-ports.md @@ -20,6 +20,7 @@ These defaults can of course be changed, but as we guarantee "sane, working defa ## Stable, Games and Incubator Apps + | App | Service | Port Name | Port | Protocol | Note | | :------------------------- | :-------------: | :-------------: | :---: | :------: | :-----------------------------------------------------: | | amcrest2mqtt | main | main | - | - | Service disabled | @@ -76,13 +77,13 @@ These defaults can of course be changed, but as we guarantee "sane, working defa | logitech-media-server | playertcp | slimprototcp | 3483 | TCP | | | logitech-media-server | playerudp | slimprotoudp | 3483 | UDP | | | ombi | main | main | 3579 | TCP | | -| ipfs | peer | peer | 4001 | TCP | | +| ipfs | peer-tcp | peer-tcp | 4001 | TCP | | +| ipfs | peer-udp | peer-udp | 4001 | UDP | | | quassel-core | main | main | 4242 | TCP | | | navidrome | main | main | 4533 | TCP | | | requestrr | main | main | 4545 | TCP | | | guacd | main | main | 4822 | TCP | | | frigate | main | main | 5000 | TCP | | -| ipfs | api | api | 5001 | TCP | | | appdaemon | main | main | 5050 | TCP | | | overseer | main | main | 5055 | TCP | | | nzbhydra | main | main | 5076 | TCP | | @@ -424,6 +425,7 @@ These defaults can of course be changed, but as we guarantee "sane, working defa | resilio-sync | bt-udp | bt-udp | 55555 | UDP | | | quassel-web | main | main | 64080 | TCP | | + ## Dependency Apps | App | Service | Port Name | Port | Protocol | Note |