Update ipfs chart, works on fresh install now, and on restart. Enables

setting options on each startup so that the WebUI is functional
This commit is contained in:
Kris Moore
2021-01-23 11:21:58 -05:00
parent 96b8da5fb0
commit e5a7976ba5
6 changed files with 139 additions and 30 deletions

View File

@@ -1,8 +1,12 @@
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:
@@ -11,7 +15,8 @@ portals:
host:
- "$node_ip"
ports:
- "$variable-service.nodePort"
- "$variable-service.apiPort"
path: "/webui"
questions:
# Image related
@@ -55,7 +60,7 @@ questions:
group: "Workload Configuration"
schema:
type: string
default: "RollingUpdate"
default: "Recreate"
enum:
- value: "RollingUpdate"
description: "Create new pods and then kill old ones"
@@ -78,14 +83,31 @@ questions:
type: dict
required: true
attrs:
- variable: nodePort
label: "Node Port to use for IPFS"
- variable: swarmPort
label: "Swarm Port to use for IPFS (Public)"
schema:
type: int
min: 9000
min: 4000
max: 65535
default: 9080
default: 9401
required: true
- variable: apiPort
label: "API Port to use for IPFS (local)"
schema:
type: int
min: 4000
max: 65535
default: 9501
required: true
- variable: gatewayPort
label: "Gateway Port to use for IPFS (local)"
schema:
type: int
min: 4000
max: 65535
default: 9880
required: true
- variable: ipfsDataHostPathEnabled
label: "Configure Host Path for IPFS data"
@@ -124,7 +146,7 @@ questions:
editable: false
- variable: ipfsStagingHostPathEnabled
label: "Configure Host Path for IPFS staging"
label: "Configure Host Path for IPFS staging data"
group: "Storage"
schema:
type: boolean
@@ -132,7 +154,7 @@ questions:
show_subquestions_if: true
subquestions:
- variable: ipfsStagingHostPath
label: "Specify HostPath for IPFS staging"
label: "Specify HostPath for IPFS staging data"
schema:
type: hostpath

View File

@@ -13,7 +13,7 @@ Retrieve host path from ix volumes based on dataset name
{{/*
Retrieve host path for ipfs
*/}}
{{- define "configuredDataHostPath" -}}
{{- define "configuredHostPathData" -}}
{{- if .Values.ipfsDataHostPathEnabled -}}
{{- .Values.ipfsDataHostPath -}}
{{- else -}}
@@ -25,7 +25,7 @@ Retrieve host path for ipfs
{{/*
Retrieve host path for ipfs
*/}}
{{- define "configuredStagingHostPath" -}}
{{- define "configuredHostPathStaging" -}}
{{- if .Values.ipfsStagingHostPathEnabled -}}
{{- .Values.ipfsStagingHostPath -}}
{{- else -}}

View File

@@ -23,35 +23,102 @@ spec:
release: {{ .Release.Name }}
spec:
serviceAccountName: {{ include "ipfs.serviceAccountName" . | quote }}
initContainers:
- name: init-init
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
command: ['/bin/sh', '-c', '[ ! -e /data/ipfs/config ] && /usr/local/bin/ipfs init ; exit 0']
imagePullPolicy: {{ .Values.image.pullPolicy }}
volumeMounts:
- name: data
mountPath: /data/ipfs
- name: staging
mountPath: /export
- name: init-api
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
command: ['/usr/local/bin/ipfs', 'config', 'Addresses.API', "/ip4/0.0.0.0/tcp/{{ .Values.service.apiPort}}"]
imagePullPolicy: {{ .Values.image.pullPolicy }}
volumeMounts:
- name: data
mountPath: /data/ipfs
- name: staging
mountPath: /export
- name: init-gateway
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
command: ['/usr/local/bin/ipfs', 'config', 'Addresses.Gateway', "/ip4/0.0.0.0/tcp/{{ .Values.service.gatewayPort}}"]
imagePullPolicy: {{ .Values.image.pullPolicy }}
volumeMounts:
- name: data
mountPath: /data/ipfs
- name: staging
mountPath: /export
- name: init-swarm
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
command: ['/usr/local/bin/ipfs', 'config', '--json', 'Addresses.Swarm', "[\"/ip4/0.0.0.0/tcp/{{ .Values.service.swarmPort}}\",\"/ip4/0.0.0.0/tcp/{{ .Values.service.swarmPort}}/quic\"]" ]
imagePullPolicy: {{ .Values.image.pullPolicy }}
volumeMounts:
- name: data
mountPath: /data/ipfs
- name: staging
mountPath: /export
- name: init-access-origin
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
command: ['/usr/local/bin/ipfs', 'config', '--json', 'API.HTTPHeaders.Access-Control-Allow-Origin', "[\"*\"]" ]
imagePullPolicy: {{ .Values.image.pullPolicy }}
volumeMounts:
- name: data
mountPath: /data/ipfs
- name: staging
mountPath: /export
- name: init-access-methods
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
command: ['/usr/local/bin/ipfs', 'config', '--json', 'API.HTTPHeaders.Access-Control-Allow-Methods', "[\"PUT\",\"POST\"]" ]
imagePullPolicy: {{ .Values.image.pullPolicy }}
volumeMounts:
- name: data
mountPath: /data/ipfs
- name: staging
mountPath: /export
- name: init-chown
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
command: ['chown', '-R', '1000:100', '/data/ipfs']
imagePullPolicy: {{ .Values.image.pullPolicy }}
volumeMounts:
- name: data
mountPath: /data/ipfs
- name: staging
mountPath: /export
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
volumeMounts:
- name: data
mountPath: /data/ipfs
volumeMounts:
mountPath: /data/ipfs
- name: staging
mountPath: /export
ports:
- name: {{ $scheme }}
containerPort: 9080
- name: swarm
containerPort: 9401
- name: api
containerPort: 9501
- name: gateway
containerPort: 9880
{{- range $key, $val := .Values.environment }}
- name: {{ $key }}
value: {{ $val | quote }}
{{- end}}
volumes:
- name: data
{{- if .Values.emptyDirVolumes }}
emptyDir: {}
{{- else }}
{{- if ne (include "configuredHostPathData" .) "" }}
hostPath:
path: {{ template "configuredDataHostPath" . }}
path: {{ template "configuredHostPathData" . }}
{{- else }}
emptyDir: {}
{{- end }}
- name: staging
{{- if .Values.emptyDirVolumes }}
emptyDir: {}
{{- else }}
{{- if ne (include "configuredHostPathStaging" .) "" }}
hostPath:
path: {{ template "configuredStagingHostPath" . }}
path: {{ template "configuredHostPathStaging" . }}
{{- else }}
emptyDir: {}
{{- end }}

View File

@@ -11,11 +11,21 @@ metadata:
spec:
type: "NodePort"
ports:
- name: {{ $scheme }}
port: {{ .Values.service.nodePort }}
- name: swarm
port: {{ .Values.service.swarmPort }}
protocol: TCP
nodePort: {{ .Values.service.nodePort }}
targetPort: 9080
nodePort: {{ .Values.service.swarmPort }}
targetPort: 9401
- name: api
port: {{ .Values.service.apiPort }}
protocol: TCP
nodePort: {{ .Values.service.apiPort }}
targetPort: 9501
- name: gateway
port: {{ .Values.service.gatewayPort }}
protocol: TCP
nodePort: {{ .Values.service.gatewayPort }}
targetPort: 9880
selector:
app: {{ template "ipfs.name" . }}
release: {{ .Release.Name }}

View File

@@ -8,11 +8,16 @@ image:
## Additional arguments to pass to minio binary
extraArgs: []
updateStrategy: RollingUpdate
updateStrategy: Recreate
service:
nodePort: 9080
swarmPort: 9401
apiPort: 9501
gatewayPort: 9080
environment:
emptyDirVolumes: true
ipfsDataHostPathEnabled: false
ipfsStagingHostPathEnabled: false

View File

@@ -8,9 +8,14 @@ image:
## Additional arguments to pass to ipfs binary
extraArgs: []
updateStrategy: RollingUpdate
updateStrategy: Recreate
service:
nodePort: 9080
swarmPort: 9401
apiPort: 9501
gatewayPort: 9080
environment:
ipfsDataHostPathEnabled: false
ipfsStagingHostPathEnabled: false