feat(ipfs): Use official image BREAKING CHANGE (#2331)

BREAKING CHANGE

* pass tests

* firstrun

* no underscores

* different way

* dont do installConainers

* add installContainers

* add vars

* add vars to installCont

* add init command

* nmo key

* space

* switch to job

* move ifinstall to commonyaml

* fix env

* identation

* fix logic

* whoops

* escape everywhere

* less escapes

* try 1

* wait some time

* wait less

* try more aggresive

* whoops

* revert to installContainers again

* try again

* arg?

* Update charts/stable/ipfs/values.yaml

* Update charts/stable/ipfs/values.yaml

* document

Co-authored-by: Kjeld Schouten-Lebbing <kjeld@schouten-lebbing.nl>
This commit is contained in:
Stavros Kois
2022-03-31 20:37:50 +00:00
committed by GitHub
co-authored by Kjeld Schouten-Lebbing
parent 5c2f503416
commit d93ec26f60
6 changed files with 236 additions and 40 deletions
+3 -3
View File
@@ -1,9 +1,9 @@
apiVersion: v2 apiVersion: v2
kubeVersion: ">=1.16.0-0" kubeVersion: ">=1.16.0-0"
name: ipfs name: ipfs
version: 1.0.8 version: 2.0.0
appVersion: "2.14.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 type: application
deprecated: false deprecated: false
home: https://github.com/truecharts/apps/tree/master/charts/stable/ipfs home: https://github.com/truecharts/apps/tree/master/charts/stable/ipfs
@@ -23,6 +23,6 @@ maintainers:
url: https://truecharts.org url: https://truecharts.org
annotations: annotations:
truecharts.org/catagories: | truecharts.org/catagories: |
- incubator - storage
truecharts.org/SCALE-support: "true" truecharts.org/SCALE-support: "true"
truecharts.org/grade: U truecharts.org/grade: U
+187 -22
View File
@@ -7,6 +7,7 @@ portals:
- "$kubernetes-resource_configmap_portal_host" - "$kubernetes-resource_configmap_portal_host"
ports: ports:
- "$kubernetes-resource_configmap_portal_port" - "$kubernetes-resource_configmap_portal_port"
path: "/webui"
questions: questions:
- variable: portal - variable: portal
group: "Container Image" group: "Container Image"
@@ -75,7 +76,18 @@ questions:
- value: "OnDelete" - value: "OnDelete"
description: "(Legacy) OnDelete: ignore .spec.template changes" description: "(Legacy) OnDelete: ignore .spec.template changes"
# Include{controllerExpert} # 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} # Include{containerConfig}
- variable: service - variable: service
@@ -144,17 +156,17 @@ questions:
description: "The internal(!) port on the container the Application runs on" description: "The internal(!) port on the container the Application runs on"
schema: schema:
type: int type: int
default: 80 default: 5001
- variable: peer - variable: peer-tcp
label: "peer Service" label: "Peer-TCP Service"
description: "The peer service." description: "The Peer-TCP service."
schema: schema:
additional_attrs: true additional_attrs: true
type: dict type: dict
attrs: attrs:
# Include{serviceSelector} # Include{serviceSelector}
- variable: peer - variable: peer-tcp
label: "peer Service Port Configuration" label: "Peer-TCP Service Port Configuration"
schema: schema:
additional_attrs: true additional_attrs: true
type: dict type: dict
@@ -182,7 +194,7 @@ questions:
label: "Port Type" label: "Port Type"
schema: schema:
type: string type: string
default: "HTTP" default: "TCP"
enum: enum:
- value: HTTP - value: HTTP
description: "HTTP" description: "HTTP"
@@ -205,16 +217,16 @@ questions:
schema: schema:
type: int type: int
default: 4001 default: 4001
- variable: api - variable: peer-udp
label: "api Service" label: "Peer-UDP Service"
description: "The api service." description: "The Peer-udp service."
schema: schema:
additional_attrs: true additional_attrs: true
type: dict type: dict
attrs: attrs:
# Include{serviceSelector} # Include{serviceSelector}
- variable: api - variable: peer-udp
label: "api Service Port Configuration" label: "Peer-UDP Service Port Configuration"
schema: schema:
additional_attrs: true additional_attrs: true
type: dict type: dict
@@ -224,7 +236,7 @@ questions:
description: "This port exposes the container port on the service" description: "This port exposes the container port on the service"
schema: schema:
type: int type: int
default: 5001 default: 4001
required: true required: true
- variable: advanced - variable: advanced
label: "Show Advanced settings" label: "Show Advanced settings"
@@ -242,7 +254,7 @@ questions:
label: "Port Type" label: "Port Type"
schema: schema:
type: string type: string
default: "HTTP" default: "UDP"
enum: enum:
- value: HTTP - value: HTTP
description: "HTTP" description: "HTTP"
@@ -264,17 +276,17 @@ questions:
description: "The internal(!) port on the container the Application runs on" description: "The internal(!) port on the container the Application runs on"
schema: schema:
type: int type: int
default: 5001 default: 4001
- variable: gateway - variable: gateway
label: "gateway Service" label: "Gateway Service"
description: "The gateway service." description: "The Gateway Service."
schema: schema:
additional_attrs: true additional_attrs: true
type: dict type: dict
attrs: attrs:
# Include{serviceSelector} # Include{serviceSelector}
- variable: gateway - variable: gateway
label: "gateway Service Port Configuration" label: "Gateway Service Port Configuration"
schema: schema:
additional_attrs: true additional_attrs: true
type: dict type: dict
@@ -353,9 +365,162 @@ questions:
additional_attrs: true additional_attrs: true
type: dict type: dict
attrs: attrs:
- variable: config - variable: data
label: "App Config Storage" label: "App Data Storage"
description: "Stores the Application Configuration." 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: schema:
additional_attrs: true additional_attrs: true
type: dict type: dict
+1 -1
View File
@@ -1 +1 @@
{{ include "common.all" . }} {{- include "common.all" . }}
+34 -12
View File
@@ -1,7 +1,7 @@
image: image:
repository: tccr.io/truecharts/ipfs repository: ipfs/go-ipfs
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
tag: v2.14.0 tag: v0.12.1
securityContext: securityContext:
runAsNonRoot: false runAsNonRoot: false
@@ -11,37 +11,59 @@ podSecurityContext:
runAsUser: 0 runAsUser: 0
runAsGroup: 0 runAsGroup: 0
env:
IPFS_PROFILE: "server"
IPFS_SWARM_KEY: ""
IPFS_SWARM_KEY_FILE: ""
service: service:
main: main:
ports: ports:
main: main:
targetPort: 80
port: 10125 port: 10125
peer: targetPort: 5001
peer-tcp:
enabled: true enabled: true
ports: ports:
peer: peer-tcp:
enabled: true enabled: true
targetPort: 4001 targetPort: 4001
port: 4001 port: 4001
api: peer-udp:
enabled: true enabled: true
ports: ports:
api: peer-udp:
protocol: UDP
enabled: true enabled: true
targetPort: 5001 targetPort: 4001
port: 5001 port: 4001
gateway: gateway:
enabled: true enabled: true
type: ClusterIP
ports: ports:
gateway: gateway:
enabled: true enabled: true
targetPort: 8080 targetPort: 8080
port: 10147 port: 10147
probes:
liveness:
path: "/webui"
readiness:
path: "/webui"
startup:
path: "/webui"
persistence: persistence:
config: data:
enabled: true enabled: true
mountPath: "/config" mountPath: "/data/ipfs"
varrun: staging:
enabled: true enabled: true
mountPath: "/export"
ipfs:
enabled: true
mountPath: "/ipfs"
ipns:
enabled: true
mountPath: "/ipns"
+7
View File
@@ -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.
+4 -2
View File
@@ -20,6 +20,7 @@ These defaults can of course be changed, but as we guarantee "sane, working defa
## Stable, Games and Incubator Apps ## Stable, Games and Incubator Apps
| App | Service | Port Name | Port | Protocol | Note | | App | Service | Port Name | Port | Protocol | Note |
| :------------------------- | :-------------: | :-------------: | :---: | :------: | :-----------------------------------------------------: | | :------------------------- | :-------------: | :-------------: | :---: | :------: | :-----------------------------------------------------: |
| amcrest2mqtt | main | main | - | - | Service disabled | | 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 | playertcp | slimprototcp | 3483 | TCP | |
| logitech-media-server | playerudp | slimprotoudp | 3483 | UDP | | | logitech-media-server | playerudp | slimprotoudp | 3483 | UDP | |
| ombi | main | main | 3579 | TCP | | | 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 | | | quassel-core | main | main | 4242 | TCP | |
| navidrome | main | main | 4533 | TCP | | | navidrome | main | main | 4533 | TCP | |
| requestrr | main | main | 4545 | TCP | | | requestrr | main | main | 4545 | TCP | |
| guacd | main | main | 4822 | TCP | | | guacd | main | main | 4822 | TCP | |
| frigate | main | main | 5000 | TCP | | | frigate | main | main | 5000 | TCP | |
| ipfs | api | api | 5001 | TCP | |
| appdaemon | main | main | 5050 | TCP | | | appdaemon | main | main | 5050 | TCP | |
| overseer | main | main | 5055 | TCP | | | overseer | main | main | 5055 | TCP | |
| nzbhydra | main | main | 5076 | 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 | | | resilio-sync | bt-udp | bt-udp | 55555 | UDP | |
| quassel-web | main | main | 64080 | TCP | | | quassel-web | main | main | 64080 | TCP | |
## Dependency Apps ## Dependency Apps
| App | Service | Port Name | Port | Protocol | Note | | App | Service | Port Name | Port | Protocol | Note |