Remove chia,ipfs,machinaris from charts and all apps from test train (#1038)

* remove chia

* remove ipfs

* remove machinaris

* remove apps from test train
This commit is contained in:
Stavros Kois
2023-03-20 18:11:59 +02:00
committed by GitHub
parent 71aa01ca93
commit 23be0dabe2
410 changed files with 0 additions and 17867 deletions

View File

@@ -1,23 +0,0 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj
# OWNERS file for Kubernetes
OWNERS

View File

@@ -1,18 +0,0 @@
apiVersion: v1
appVersion: v1.7.0
dependencies:
- name: common
repository: file://../../../library/common/2207.0.0
version: 2207.0.0
description: Global, Versioned, peer-to-peer filesystem.
home: https://www.chia.net/
icon: https://www.chia.net/wp-content/uploads/2022/09/chia-logo.svg
keywords:
- storage
- crypto
- blockchain
name: chia
sources:
- https://github.com/Chia-Network/chia-blockchain
- https://github.com/orgs/chia-network/packages/container/package/chia
version: 1.3.39

View File

@@ -1,8 +0,0 @@
Chia Network
=====
[CHIA](https://www.chia.net/) is a new blockchain and smart transaction platform that is easier to use, more efficient, and secure.
Introduction
------------
This chart bootstraps CHIA deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.

View File

@@ -1,4 +0,0 @@
Chia Network
=====
[CHIA](https://www.chia.net/) is a new blockchain and smart transaction platform that is easier to use, more efficient, and secure.

View File

@@ -1,17 +0,0 @@
image:
repository: ghcr.io/chia-network/chia
tag: 1.1.4
pullPolicy: IfNotPresent
updateStrategy: Recreate
environmentVariables:
- name: "keys"
value: "/plots/keyfile"
appVolumeMounts:
staging:
emptyDir: true
mountPath: "/plots"
data:
emptyDir: true
mountPath: "/root/.chia"

View File

@@ -1,5 +0,0 @@
image:
pullPolicy: IfNotPresent
repository: ixsystems/chia-docker
tag: v1.7.0
updateStrategy: Recreate

View File

@@ -1,209 +0,0 @@
groups:
- name: "Storage"
description: "Configure Storage for Chia"
- name: "Farmr.net Configuration"
description: "Configure farmr.net support"
- name: "Chia Environment Variables"
description: "Set the environment that will be visible to the container"
- name: "Networking"
description: "Configure networking for Chia container"
- name: "Resource Limits"
description: "Set CPU/memory limits for Kubernetes Pod"
portals:
web_portal:
protocols:
- "https"
host:
- "www.truepool.io"
ports:
- "443"
path: "/kb/truepool-docker-image/"
questions:
- variable: farmr_env
label: "Enable 'farmr.net' support"
group: "Farmr.net Configuration"
description: "Configure 'farmr.net' support for chia"
schema:
type: string
default: "off"
enum:
- value: "off"
description: "OFF"
- value: "farmer"
description: "FARMER"
- value: "harvester"
description: "HARVESTER"
- variable: appVolumeMounts
label: "Chia Storage"
group: "Storage"
schema:
type: dict
attrs:
- variable: config
label: "Configuration Volume"
schema:
type: dict
attrs:
- variable: datasetName
label: "Configuration Volume Dataset Name"
schema:
type: string
hidden: true
$ref:
- "normalize/ixVolume"
show_if: [["hostPathEnabled", "=", false]]
default: "config"
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: true
default: "/data"
- variable: hostPathEnabled
label: "Enable Custom Host Path for Chia Configuration Volume"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: hostPath
label: "Host Path for Chia Configuration Volume"
schema:
type: hostpath
required: true
- variable: plots
label: "Plot Volume"
schema:
type: dict
attrs:
- variable: datasetName
label: "Plots Volume Name"
schema:
type: string
hidden: true
$ref:
- "normalize/ixVolume"
show_if: [["hostPathEnabled", "=", false]]
default: "plots"
editable: false
- variable: mountPath
label: "Plots Mount Path"
description: "Path where the volume will be mounted inside the pod"
schema:
type: path
hidden: true
editable: false
default: "/plots"
- variable: hostPathEnabled
label: "Enable Custom Host Path for Chia Plots Volume"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: hostPath
label: "Host Path for Chia Plots Volume"
schema:
type: hostpath
required: true
- variable: extraAppVolumeMounts
label: "Chia Extra Host Path Volumes"
group: "Storage"
schema:
type: list
items:
- variable: extraAppVolume
label: "Chia Host Path Volume"
description: "Add an extra host path volume for chia application"
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: environmentVariables
label: "Environment Variables for Chia"
group: "Chia Environment Variables"
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: "Networking Configuration"
label: "Networking Configuration"
group: "Networking"
schema:
type: dict
required: true
attrs:
- variable: nodePort
label: "Node Port to use for Chia"
schema:
type: int
min: 8000
max: 65535
default: 8444
required: true
- variable: farmerPort
label: "Farmer Port to use for Chia"
schema:
type: int
min: 8000
max: 65535
default: 8447
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"

View File

@@ -1,6 +0,0 @@
dependencies:
- name: common
repository: file://../../../library/common/2207.0.0
version: 2207.0.0
digest: sha256:f17f3d458ca0210a52e39da0dce35034e900b36f2040d4b19bed46a7aae91506
generated: "2022-07-25T00:20:43.583595794+05:00"

View File

@@ -1,48 +0,0 @@
{{ include "common.storage.hostPathValidate" .Values }}
apiVersion: {{ template "common.capabilities.deployment.apiVersion" . }}
kind: Deployment
metadata:
name: {{ template "common.names.fullname" . }}
labels: {{ include "common.labels" . | nindent 4 }}
annotations:
rollme: {{ randAlphaNum 5 | quote }}
spec:
strategy:
type: {{ .Values.updateStrategy }}
selector:
matchLabels: {{ include "common.labels.selectorLabels" . | nindent 6 }}
template:
metadata:
name: {{ template "common.names.fullname" . }}
labels: {{ include "common.labels.selectorLabels" . | nindent 8 }}
spec:
# FIXME: Let's please remove hostnetwork when upstream hostport issue is sorted out with kube-router
hostNetwork: {{ include "hostNetworkingEnabled" . }}
containers:
- name: {{ .Chart.Name }}
{{ include "common.containers.imageConfig" .Values.image | nindent 10 }}
{{ include "common.resources.limitation" . | nindent 10 }}
volumeMounts: {{ include "common.storage.configureAppVolumeMountsInContainer" .Values | nindent 12 }}
{{ range $index, $hostPathConfiguration := .Values.extraAppVolumeMounts }}
- name: extrappvolume-{{ $index }}
mountPath: {{ $hostPathConfiguration.mountPath }}
{{ end }}
ports:
- name: chia-network
protocol: TCP
containerPort: 8444
hostPort: null
- name: chia-farmer
protocol: TCP
containerPort: 8447
hostPort: null
{{ $envList := (default list .Values.environmentVariables) }}
{{ $envList = mustAppend $envList (dict "name" "keys" "value" "/plots/keyfile") }}
{{ $envList = mustAppend $envList (dict "name" "farmr" "value" $.Values.farmr_env) }}
{{ include "common.containers.allEnvironmentVariables" (dict "environmentVariables" $envList) | nindent 10 }}
volumes: {{ include "common.storage.configureAppVolumes" .Values | nindent 8 }}
{{ range $index, $hostPathConfiguration := .Values.extraAppVolumeMounts }}
- name: extrappvolume-{{ $index }}
hostPath:
path: {{ $hostPathConfiguration.hostPath }}
{{ end }}

View File

@@ -1,30 +0,0 @@
apiVersion: batch/v1
kind: Job
metadata:
name: "pre-install"
annotations:
"helm.sh/hook": pre-install
"helm.sh/hook-weight": "1"
"helm.sh/hook-delete-policy": hook-succeeded
spec:
template:
metadata:
name: "pre-upgrade-hook2"
spec:
restartPolicy: Never
containers:
- name: {{ .Chart.Name }}-generate-mnemonic
{{ include "common.containers.imageConfig" .Values.image | nindent 8 }}
volumeMounts:{{ include "common.storage.configureAppVolumeMountsInContainer" .Values | nindent 10 }}
- name: generate-mnemonic-configmap
mountPath: /generate_entrypoint.sh
readOnly: true
subPath: entrypoint.sh
command:
- "/generate_entrypoint.sh"
volumes: {{- include "common.storage.configureAppVolumes" .Values | nindent 8 -}}
- name: generate-mnemonic-configmap
configMap:
defaultMode: 0700
name: "generate-mnemonic-config-map"

View File

@@ -1,14 +0,0 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: "generate-mnemonic-config-map"
annotations:
"helm.sh/hook": pre-install
"helm.sh/hook-weight": "-1"
"helm.sh/hook-delete-policy": hook-succeeded
data:
entrypoint.sh: |-
#!/bin/sh
if [ ! -e /plots/keyfile ]; then
/chia-blockchain/venv/bin/python3 -c "from chia.util.keychain import generate_mnemonic;print(generate_mnemonic())" > /plots/keyfile;
fi

View File

@@ -1,21 +0,0 @@
{{/*
Enable host networking
*/}}
{{- define "hostNetworkingEnabled" -}}
{{- if or (lt (.Values.service.nodePort | int) 9000) (lt (.Values.service.farmerPort | int) 9000) -}}
{{- print "true" -}}
{{- else -}}
{{- print "false" -}}
{{- end -}}
{{- end -}}
{{/*
Enable Node Port Service
*/}}
{{- define "enableService" -}}
{{- if or (ge (.Values.service.nodePort | int) 9000) (ge (.Values.service.farmerPort | int) 9000) -}}
{{- print "true" -}}
{{- else -}}
{{- print "false" -}}
{{- end -}}
{{- end -}}

View File

@@ -1,13 +0,0 @@
{{ if eq (include "enableService" .) "true" }}
{{ $svc := .Values.service }}
{{ $ports := list }}
{{ if ge ($svc.nodePort | int) 9000 }}
{{ $ports = mustAppend $ports (dict "name" "chia-network" "port" $svc.nodePort "nodePort" $svc.nodePort "targetPort" 8444) }}
{{ end }}
{{ if ge ($svc.farmerPort | int) 9000 }}
{{ $ports = mustAppend $ports (dict "name" "chia-farmer" "port" $svc.farmerPort "nodePort" $svc.farmerPort "targetPort" 8447) }}
{{ end }}
{{ $params := . }}
{{ $_ := set $params "commonService" (dict "type" "NodePort" "ports" $ports ) }}
{{ include "common.classes.service" $params }}
{{ end }}

View File

@@ -1,16 +0,0 @@
appVolumeMounts:
data:
emptyDir: true
mountPath: /data
staging:
emptyDir: true
mountPath: /plots
farmr_env: 'off'
image:
pullPolicy: IfNotPresent
repository: ixsystems/chia-docker
tag: v1.7.0
service:
farmerPort: 31122
nodePort: 31121
updateStrategy: Recreate

View File

@@ -1,4 +0,0 @@
categories:
- storage
- crypto
icon_url: https://www.chia.net/wp-content/uploads/2022/09/chia-logo.svg

View File

@@ -1 +0,0 @@
{"filename": "ix_values.yaml", "keys": ["image"], "test_filename": "test_values.yaml"}

View File

@@ -1,27 +0,0 @@
#!/usr/bin/python3
import json
import sys
from catalog_update.upgrade_strategy import semantic_versioning
def newer_mapping(image_tags):
key = list(image_tags.keys())[0]
tags = {t.strip('v').replace('_', '.'): t for t in image_tags[key]}
version = semantic_versioning(tags)
if not version:
return {}
return {
'tags': {key: tags[version]},
'app_version': tags[version],
}
if __name__ == '__main__':
try:
versions_json = json.loads(sys.stdin.read())
except ValueError:
raise ValueError('Invalid json specified')
print(json.dumps(newer_mapping(versions_json)))

View File

@@ -1,23 +0,0 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj
# OWNERS file for Kubernetes
OWNERS

View File

@@ -1,18 +0,0 @@
apiVersion: v1
appVersion: v0.18.1
dependencies:
- name: common
repository: file://../../../library/common/2207.0.0
version: 2207.0.0
description: Global, Versioned, peer-to-peer filesystem.
home: https://ipfs.io
icon: https://ipfs.io/ipfs/QmVk7srrwahXLNmcDYvyUEJptyoxpndnRa57YJ11L4jV26/ipfs.go.png
keywords:
- storage
- p2p
name: ipfs
sources:
- https://github.com/ipfs/go-ipfs
- https://hub.docker.com/r/ipfs/go-ipfs
upstream_version: 0.8.0-rc1
version: 1.2.13

View File

@@ -1,22 +0,0 @@
IPFS
=====
[IPFS](https://ipfs.io) 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. IPFS provides an interface as simple as the HTTP web, but with permanence built in. You can also mount the world at /ipfs.
Introduction
------------
This chart bootstraps IPFS deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
Configuration
-------------
The following table lists the configurable parameters of the IPFS chart and their default values.
| Parameter | Description | Default |
|:-------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------|
| `image.repository` | Image repository | `ipfs/go-ipfs` |
| `image.tag` | IPFS image tag. Possible values listed [here](https://hub.docker.com/r/ipfs/go-ipfs/tags). | `v0.8.0-rc1` |
| `image.pullPolicy` | Image pull policy | `IfNotPresent` |
| `extraArgs` | Additional command line arguments to pass to the IPFS server | `[]` |

View File

@@ -1 +0,0 @@
[IPFS](https://ipfs.io) 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. IPFS provides an interface as simple as the HTTP web, but with permanence built in. You can also mount the world at /ipfs.

View File

@@ -1,4 +0,0 @@
image:
pullPolicy: IfNotPresent
repository: ipfs/go-ipfs
tag: v0.18.1

View File

@@ -1,221 +0,0 @@
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"
- 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-service.apiPort"
path: "/webui"
questions:
- 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: 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
- 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"

View File

@@ -1,6 +0,0 @@
dependencies:
- name: common
repository: file://../../../library/common/2207.0.0
version: 2207.0.0
digest: sha256:f17f3d458ca0210a52e39da0dce35034e900b36f2040d4b19bed46a7aae91506
generated: "2022-07-25T00:20:48.197830691+05:00"

View File

@@ -1,2 +0,0 @@
IPFS can be accessed from the following URL:
http://$node_ip:{{ .Values.service.apiPort }}/webui

View File

@@ -1,61 +0,0 @@
{{ include "common.storage.hostPathValidate" .Values }}
apiVersion: {{ template "common.capabilities.deployment.apiVersion" . }}
kind: Deployment
metadata:
name: {{ template "common.names.fullname" . }}
labels: {{ include "common.labels" . | nindent 4 }}
spec:
strategy:
type: {{ .Values.updateStrategy }}
selector:
matchLabels: {{ include "common.labels.selectorLabels" . | nindent 6 }}
template:
metadata:
name: {{ template "common.names.fullname" . }}
labels: {{ include "common.labels.selectorLabels" . | nindent 8 }}
spec:
serviceAccountName: {{ include "common.names.serviceAccountName" . | quote }}
initContainers:
- name: init-init
{{ include "common.containers.imageConfig" .Values.image | nindent 10 }}
command: ['/bin/sh', '-c', '[ ! -e /data/ipfs/config ] && (/usr/local/bin/ipfs init ; chown -R 1000:100 /data/ipfs) ; exit 0']
{{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }}
- name: init-api
{{ include "common.containers.imageConfig" .Values.image | nindent 10 }}
command: ['/usr/local/bin/ipfs', 'config', 'Addresses.API', "/ip4/0.0.0.0/tcp/9501"]
{{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }}
- name: init-gateway
{{ include "common.containers.imageConfig" .Values.image | nindent 10 }}
command: ['/usr/local/bin/ipfs', 'config', 'Addresses.Gateway', "/ip4/0.0.0.0/tcp/9080"]
{{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }}
- name: init-swarm
{{ include "common.containers.imageConfig" .Values.image | nindent 10 }}
command: ['/usr/local/bin/ipfs', 'config', '--json', 'Addresses.Swarm', "[\"/ip4/0.0.0.0/tcp/9401\",\"/ip4/0.0.0.0/tcp/9401/quic\"]" ]
{{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }}
- name: init-access-origin
{{ include "common.containers.imageConfig" .Values.image | nindent 10 }}
command: ['/usr/local/bin/ipfs', 'config', '--json', 'API.HTTPHeaders.Access-Control-Allow-Origin', "[\"*\"]" ]
{{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }}
- name: init-access-methods
{{ include "common.containers.imageConfig" .Values.image | nindent 10 }}
command: ['/usr/local/bin/ipfs', 'config', '--json', 'API.HTTPHeaders.Access-Control-Allow-Methods', "[\"PUT\",\"POST\"]" ]
{{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }}
- name: init-chown
{{ include "common.containers.imageConfig" .Values.image | nindent 10 }}
command: ['chown', '1000:100', '/data/ipfs/config']
{{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }}
containers:
- name: {{ .Chart.Name }}
{{ include "common.resources.limitation" . | nindent 10 }}
{{ include "common.containers.imageConfig" .Values.image | nindent 10 }}
{{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }}
ports:
- name: swarm
containerPort: 9401
- name: api
containerPort: 9501
- name: gateway
containerPort: 9880
{{ include "common.containers.allEnvironmentVariables" .Values | nindent 10 }}
{{ include "common.networking.dnsConfiguration" .Values | nindent 6 }}
{{ include "common.storage.allAppVolumes" .Values | nindent 6 }}

View File

@@ -1,8 +0,0 @@
{{ $svc := .Values.service }}
{{ $ports := list }}
{{ $ports = mustAppend $ports (dict "name" "swarm" "port" $svc.swarmPort "nodePort" $svc.swarmPort "targetPort" 9401) }}
{{ $ports = mustAppend $ports (dict "name" "api" "port" $svc.apiPort "nodePort" $svc.apiPort "targetPort" 9501) }}
{{ $ports = mustAppend $ports (dict "name" "gateway" "port" $svc.gatewayPort "nodePort" $svc.gatewayPort "targetPort" 9880) }}
{{ $params := . }}
{{ $_ := set $params "commonService" (dict "type" "NodePort" "ports" $ports ) }}
{{ include "common.classes.service" $params }}

View File

@@ -1 +0,0 @@
{{ include "common.serviceaccount" . }}

View File

@@ -1,21 +0,0 @@
{{- $serviceName := (include "common.names.fullname" .) -}}
apiVersion: v1
kind: Pod
metadata:
name: "{{ .Release.Name }}-ipfs-test"
labels:
app: {{ .Release.Name }}
release: {{ .Release.Name }}
annotations:
"helm.sh/hook": test
spec:
containers:
- name: test-curl
image: alpine/curl
imagePullPolicy: "IfNotPresent"
command:
- /bin/sh
- -ec
- |
curl --connect-timeout 5 --max-time 10 --retry 5 --retry-delay 15 --retry-max-time 90 --retry-all-errors -ksf http://{{ $serviceName }}:{{ .Values.service.apiPort }}/webui/
restartPolicy: Never

View File

@@ -1,21 +0,0 @@
appVolumeMounts:
data:
emptyDir: true
mountPath: /data/ipfs
staging:
emptyDir: true
mountPath: /export
dnsConfig:
options: []
emptyDirVolumes: true
environmentVariables: []
extraArgs: []
image:
pullPolicy: IfNotPresent
repository: ipfs/go-ipfs
tag: v0.18.1
service:
apiPort: 30951
gatewayPort: 30980
swarmPort: 30941
updateStrategy: Recreate

View File

@@ -1,3 +0,0 @@
categories:
- storage
icon_url: https://ipfs.io/ipfs/QmVk7srrwahXLNmcDYvyUEJptyoxpndnRa57YJ11L4jV26/ipfs.go.png

View File

@@ -1 +0,0 @@
{"filename": "ix_values.yaml", "keys": ["image"], "test_filename": "test_values.yaml"}

View File

@@ -1,26 +0,0 @@
#!/usr/bin/python3
import json
import sys
from catalog_update.upgrade_strategy import semantic_versioning
def newer_mapping(image_tags):
key = list(image_tags.keys())[0]
version = semantic_versioning(image_tags[key])
if not version:
return {}
return {
'tags': {key: f'v{version}'},
'app_version': f'v{version}',
}
if __name__ == '__main__':
try:
versions_json = json.loads(sys.stdin.read())
except ValueError:
raise ValueError('Invalid json specified')
print(json.dumps(newer_mapping(versions_json)))

View File

@@ -1,23 +0,0 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj
# OWNERS file for Kubernetes
OWNERS

View File

@@ -1,17 +0,0 @@
apiVersion: v1
appVersion: v0.8.5
dependencies:
- name: common
repository: file://../../../library/common/2207.0.0
version: 2207.0.0
description: Global, Versioned, peer-to-peer filesystem.
home: https://github.com/guydavis/machinaris
icon: https://raw.githubusercontent.com/guydavis/machinaris/main/web/static/favicon.ico
keywords:
- storage
- crypto
- blockchain
name: machinaris
sources:
- https://github.com/guydavis/machinaris
version: 1.1.14

View File

@@ -1,71 +0,0 @@
Machinaris
=====
[MACHINARIS](https://github.com/guydavis/machinaris) is an easy-to-use WebUI for Chia plotting and farming. This includes Chia, Plotman, MadMax, Chiadog under main node along with various coin-forks which can be enabled conditionally.
Coins include Cactus, Chives, CrypoDoge, Flax, Flora, HDDCoin, Maize, NChain, StaiCoin, Stor, BTCGreen and Shibgreen.
Introduction
------------
This chart bootstraps MACHINARIS deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
# Machinaris Defaults
This section contains information about the defaults of Machinaris application for visibility.
## 1. Environment Variables
Following are the default environment variables for Machinaris main node and the coin forks.
### Machinaris Node
Machinaris main node comes with following default environment variables:
| Variable | Default Value | Description |
| ---------------- | ----------------------------------------------------- | --------------------- |
| TZ | Same as to User selected Timezone | Timezone information |
| worker_address | Same as to LAN IP address | Worker Address |
| blockchains | chia | Block Chain |
| plots_dir | Same as to User selected plots volume | Plots Directory |
| mode | fullnode | Machinaris Mode |
These values can be overridden while configuring Machinaris application.
### Coin Forks
Coin forks also come with a set of default environment variables:
| Variable | Default Value | Description |
| ---------------- | ----------------------------------------------------- | --------------------- |
| TZ | Same as to User selected Timezone | Timezone information |
| worker_address | Same as to LAN IP address | Worker Address |
| blockchains | chia | BlockChain |
| plots_dir | Same as to User selected plots volume | Plots Directory |
| mode | fullnode | Machinaris Mode |
| controller_host| Same as to LAN IP address | Controller Host |
| worker_api_port| Coin's Workload REST API Port | Worker API Port |
These defaults can be overridden for each coin fork when you enable them through Machinaris application configuration.
## 2. Volumes
Before getting to defaults, please take the following note:
>
>If Custom Host Path is not enabled for a Volume Configuration then, application will use ix-volumes and create datasets inside for Host Path by default.
>
>The path for ix-volumes has the following composition:
>```
>/mnt/<pool_name>/ix-applications/releases/<application_name>/volumes/ix-volumes/
>```
>And with the dataset inside, would be like:
>```
>/mnt/<pool_name>/ix-applications/releases/<application_name>/volumes/ix-volumes/><dataset_name>
>```
>
Following are the Volume Configurations for Machinaris main node & the coin-forks by default:
| Volume | hostPath (default value) | mountPath in container | Description |
| ---------------------- | ----------------------------------------------------- | ----------------------- | ----------------------------------------------- |
| `config` | `<ix-volumes>/config` | `/root/.chia` | Chia config for main node |
| `plots` | `<ix-volumes>/plots` | `/plots` | Plots volume for main node & coin forks |
| `plotting` | `<ix-volumes>/plotting` | `/plotting` | Plotting temp volume for main node & coin forks |
| `<coinName>-config` | `<ix-volumes>/<coinName>-config` | `/root/.chia` | Chia config for each of the coin-fork containers|
Where `<ix-volumes>` is `/mnt/<pool_name>/ix-applications/releases/<application_name>/volumes/ix_volumes/` and `<coinName>` is one of the following: `[ cactus, chives, crypodoge, flax, flora, hddcoin, maize, nchain, staicoin, stor, btcgreen, shibgreen ]`.

View File

@@ -1,66 +0,0 @@
Machinaris
=====
[MACHINARIS](https://github.com/guydavis/machinaris) is an easy-to-use WebUI for Chia plotting and farming. This includes Chia, Plotman, MadMax, Chiadog under main node along with various coin-forks which can be enabled conditionally.
Coins include Cactus, Chives, CrypoDoge, Flax, Flora, HDDCoin, Maize, NChain, StaiCoin, Stor, BTCGreen and Shibgreen.
# Machinaris Defaults
This section contains information about the defaults of Machinaris application for visibility.
## 1. Environment Variables
Following are the default environment variables for Machinaris main node and the coin forks.
### Machinaris Node
Machinaris main node comes with following default environment variables:
| Variable | Default Value | Description |
| ---------------- | ----------------------------------------------------- | --------------------- |
| TZ | Same as to User selected Timezone | Timezone information |
| worker_address | Same as to LAN IP address | Worker Address |
| blockchains | chia | Block Chain |
| plots_dir | Same as to User selected plots volume | Plots Directory |
| mode | fullnode | Machinaris Mode |
These values can be overridden while configuring Machinaris application.
### Coin Forks
Coin forks also come with a set of default environment variables:
| Variable | Default Value | Description |
| ---------------- | ----------------------------------------------------- | --------------------- |
| TZ | Same as to User selected Timezone | Timezone information |
| worker_address | Same as to LAN IP address | Worker Address |
| blockchains | chia | BlockChain |
| plots_dir | Same as to User selected plots volume | Plots Directory |
| mode | fullnode | Machinaris Mode |
| controller_host| Same as to LAN IP address | Controller Host |
| worker_api_port| Coin's Workload REST API Port | Worker API Port |
These defaults can be overridden for each coin fork when you enable them through Machinaris application configuration.
## 2. Volumes
Before getting to defaults, please take the following note:
>
>If Custom Host Path is not enabled for a Volume Configuration then, application will use ix-volumes and create datasets inside for Host Path by default.
>
>The path for ix-volumes has the following composition:
>```
>/mnt/<pool_name>/ix-applications/releases/<application_name>/volumes/ix-volumes/
>```
>And with the dataset inside, would be like:
>```
>/mnt/<pool_name>/ix-applications/releases/<application_name>/volumes/ix-volumes/><dataset_name>
>```
>
Following are the Volume Configurations for Machinaris main node & the coin-forks by default:
| Volume | hostPath (default value) | mountPath in container | Description |
| ---------------------- | ----------------------------------------------------- | ----------------------- | ----------------------------------------------- |
| `config` | `<ix-volumes>/config` | `/root/.chia` | Chia config for main node |
| `plots` | `<ix-volumes>/plots` | `/plots` | Plots volume for main node & coin forks |
| `plotting` | `<ix-volumes>/plotting` | `/plotting` | Plotting temp volume for main node & coin forks |
| `<coinName>-config` | `<ix-volumes>/<coinName>-config` | `/root/.chia` | Chia config for each of the coin-fork containers|
Where `<ix-volumes>` is `/mnt/<pool_name>/ix-applications/releases/<application_name>/volumes/ix_volumes/` and `<coinName>` is one of the following: `[ cactus, chives, crypodoge, flax, flora, hddcoin, maize, nchain, staicoin, stor, btcgreen, shibgreen ]`.

View File

@@ -1,195 +0,0 @@
apiPort: 8927
btcgreen:
apiPort: 8938
farmerPort: 18655
ports:
- containerPort: 8938
name: api
protocol: TCP
- containerPort: 9282
name: blockchain
protocol: TCP
- containerPort: 18655
name: farming
protocol: TCP
cactus:
apiPort: 8936
farmerPort: 11447
ports:
- containerPort: 8936
hostPort: 8936
name: api
protocol: TCP
- containerPort: 11444
hostPort: 11444
name: blockchain
protocol: TCP
- containerPort: 11447
hostPort: 11447
name: farming
protocol: TCP
chives:
apiPort: 8931
farmerPort: 9647
ports:
- containerPort: 8931
name: api
protocol: TCP
- containerPort: 9699
name: blockchain
protocol: TCP
- containerPort: 9647
name: farming
protocol: TCP
coins:
- cactus
- chives
- cryptodoge
- flax
- flora
- hddcoin
- maize
- nchain
- staicoin
- stor
- btcgreen
- shibgreen
cryptodoge:
apiPort: 8937
farmerPort: 16895
ports:
- containerPort: 8937
name: api
protocol: TCP
- containerPort: 15994
name: blockchain
protocol: TCP
- containerPort: 16895
name: farming
protocol: TCP
farmerPort: 8447
flax:
apiPort: 8928
farmerPort: 6885
ports:
- containerPort: 8928
name: api
protocol: TCP
- containerPort: 6888
name: blockchain
protocol: TCP
- containerPort: 6885
name: farming
protocol: TCP
flora:
apiPort: 8932
farmerPort: 18647
ports:
- containerPort: 8932
name: api
protocol: TCP
- containerPort: 18644
name: blockchain
protocol: TCP
- containerPort: 18647
name: farming
protocol: TCP
hddcoin:
apiPort: 8930
farmerPort: 28447
ports:
- containerPort: 8930
name: api
protocol: TCP
- containerPort: 28444
name: blockchain
protocol: TCP
- containerPort: 28447
name: farming
protocol: TCP
image:
pullPolicy: IfNotPresent
repository: ghcr.io/guydavis/machinaris
tag: v0.8.5
maize:
apiPort: 8933
farmerPort: 8647
ports:
- containerPort: 8933
name: api
protocol: TCP
- containerPort: 8644
name: blockchain
protocol: TCP
- containerPort: 8647
name: farming
protocol: TCP
nchain:
apiPort: 8929
farmerPort: 38447
ports:
- containerPort: 8929
name: api
protocol: TCP
- containerPort: 58445
name: blockchain
protocol: TCP
- containerPort: 38447
name: farming
protocol: TCP
ports:
- containerPort: 8444
hostPort: 8444
name: chia-network
protocol: TCP
- containerPort: 8926
name: machinaris-ui
protocol: TCP
- containerPort: 8927
hostPort: 8927
name: machinaris-api
protocol: TCP
- containerPort: 8447
hostPort: 8447
name: farming
protocol: TCP
shibgreen:
apiPort: 8939
farmerPort: 18974
ports:
- containerPort: 8939
name: api
protocol: TCP
- containerPort: 7442
name: blockchain
protocol: TCP
- containerPort: 18974
name: farming
protocol: TCP
staicoin:
apiPort: 8934
farmerPort: 1692
ports:
- containerPort: 8934
name: api
protocol: TCP
- containerPort: 1999
name: blockchain
protocol: TCP
- containerPort: 1692
name: farming
protocol: TCP
stor:
apiPort: 8935
farmerPort: 8337
ports:
- containerPort: 8935
name: api
protocol: TCP
- containerPort: 8668
name: blockchain
protocol: TCP
- containerPort: 8337
name: farming
protocol: TCP
updateStrategy: Recreate

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +0,0 @@
dependencies:
- name: common
repository: file://../../../library/common/2207.0.0
version: 2207.0.0
digest: sha256:f17f3d458ca0210a52e39da0dce35034e900b36f2040d4b19bed46a7aae91506
generated: "2022-07-25T00:20:48.128962914+05:00"

View File

@@ -1,40 +0,0 @@
{{/*
Init container for coin deployments
*/}}
{{- define "initContainers" -}}
{{- $values := . -}}
{{- $machinarisApiUrl := (printf "http://%v:%v/" $values.nodeIP $values.apiPort) -}}
initContainers:
- name: init-{{ $values.coinName }}
image: curlimages/curl:7.80.0
command: ['sh', '-c', 'while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' {{ $machinarisApiUrl }})" != "200" ]]; do echo "Machinaris is offline. Retrying in 2 seconds.." && sleep 2; done']
{{- end -}}
{{/*
Evironment variables (support for overrides)
*/}}
{{- define "allEnvironmentVariables" -}}
{{- $finalEnvironmentVariables := .defaultEnv -}}
{{- range $env := .environmentVariables -}}
{{- $_ := set $finalEnvironmentVariables $env.name $env.value -}}
{{- end -}}
env:
{{- range $envVariableName := keys $finalEnvironmentVariables }}
- name: {{ $envVariableName | quote }}
value: {{ (get $finalEnvironmentVariables $envVariableName) | quote }}
{{- end -}}
{{- end -}}
{{/*
Resource limits
*/}}
{{- define "resourceLimits" -}}
{{- if .Values.enableResourceLimits -}}
resources:
limits:
cpu: {{ .Values.cpuLimit }}
memory: {{ .Values.memLimit }}
{{- end -}}
{{- end -}}

View File

@@ -1,46 +0,0 @@
{{- $ref := . }}
{{- range $coinName := $ref.Values.coins }}
{{- $coinEnabled := get $ref.Values (printf "%vEnabled" $coinName) }}
{{- if $coinEnabled }}
{{- $coin := get $ref.Values $coinName }}
{{- $_ := set $ref "common" (dict "nameSuffix" $coinName) }}
{{- $_ := set $coin.volumeMounts "plots" $ref.Values.appVolumeMounts.plots }}
{{- $_ := set $coin.volumeMounts "plotting" $ref.Values.appVolumeMounts.plotting }}
apiVersion: {{ template "common.capabilities.deployment.apiVersion" $ref }}
kind: Deployment
metadata:
name: {{ template "common.names.fullname" $ref }}
labels: {{ include "common.labels" $ref | nindent 4 }}
spec:
strategy:
type: {{ $ref.Values.updateStrategy }}
selector:
matchLabels: {{ include "common.labels.selectorLabels" $ref | nindent 6 }}
template:
metadata:
name: {{ template "common.names.fullname" $ref }}
labels: {{ include "common.labels.selectorLabels" $ref | nindent 8 }}
spec:
hostNetwork: true
{{- include "initContainers" (dict "nodeIP" $ref.Values.nodeIP "apiPort" $ref.Values.machinarisApiPort "coinName" $coinName ) | nindent 6 }}
containers:
- name: {{ $ref.Chart.Name }}
{{- include "resourceLimits" $ref | nindent 10 }}
tty: true
{{ include "common.containers.imageConfig" (dict "repository" $ref.Values.image.repository "tag" $ref.Values.image.tag "pullPolicy" $ref.Values.image.pullPolicy "postfix" $ref.common.nameSuffix) | nindent 10 }}
{{ include "common.containers.configurePorts" $coin | nindent 10 }}
volumeMounts: {{ include "common.storage.configureAppVolumeMountsInContainer" (dict "appVolumeMounts" $coin.volumeMounts "ixVolumes" $ref.Values.ixVolumes) | nindent 12 }}
{{ range $index, $hostPathConfiguration := $ref.Values.extraAppVolumeMounts }}
- name: extrappvolume-{{ $index }}
mountPath: {{ $hostPathConfiguration.mountPath }}
{{ end }}
{{ include "allEnvironmentVariables" (dict "defaultEnv" (dict "TZ" $ref.Values.timezone "worker_address" $ref.Values.nodeIP "worker_api_port" $coin.apiPort "controller_host" $ref.Values.nodeIP "controller_api_port" $ref.Values.apiPort "farmer_port" $coin.farmerPort "blockchains" $coinName "plots_dir" $ref.Values.appVolumeMounts.plots.mountPath "mode" "fullnode") "environmentVariables" $coin.environmentVariables) | nindent 10 }}
volumes: {{ include "common.storage.configureAppVolumes" (dict "appVolumeMounts" $coin.volumeMounts "ixVolumes" $ref.Values.ixVolumes) | nindent 8 }}
{{ range $index, $hostPathConfiguration := $ref.Values.extraAppVolumeMounts }}
- name: extrappvolume-{{ $coinName }}-{{ $index }}
hostPath:
path: {{ $hostPathConfiguration.hostPath }}
{{ end }}
---
{{- end }}
{{- end }}

View File

@@ -1,39 +0,0 @@
{{ include "common.storage.hostPathValidate" .Values }}
{{- if hasKey . "common" }}
{{- $_ := unset .common "nameSuffix" }}
{{- end }}
apiVersion: {{ template "common.capabilities.deployment.apiVersion" . }}
kind: Deployment
metadata:
name: {{ template "common.names.fullname" . }}
labels: {{ include "common.labels" . | nindent 4 }}
spec:
strategy:
type: {{ .Values.updateStrategy }}
selector:
matchLabels: {{ include "common.labels.selectorLabels" . | nindent 6 }}
template:
metadata:
name: {{ template "common.names.fullname" . }}
labels: {{ include "common.labels.selectorLabels" . | nindent 8 }}
spec:
# FIXME: Let's please remove hostnetwork when upstream hostport issue is sorted out with kube-router
hostNetwork: true
containers:
- name: {{ .Chart.Name }}
{{- include "resourceLimits" . | nindent 10 }}
tty: true
{{ include "common.containers.imageConfig" .Values.image | nindent 10 }}
volumeMounts: {{ include "common.storage.configureAppVolumeMountsInContainer" .Values | nindent 12 }}
{{ range $index, $hostPathConfiguration := .Values.extraAppVolumeMounts }}
- name: extrappvolume-{{ $index }}
mountPath: {{ $hostPathConfiguration.mountPath }}
{{ end }}
{{ include "common.containers.configurePorts" .Values | nindent 10 }}
{{ include "allEnvironmentVariables" (dict "defaultEnv" (dict "TZ" .Values.timezone "worker_address" .Values.nodeIP "worker_api_port" .Values.apiPort "controller_api_port" .Values.apiPort "farmer_port" .Values.farmerPort "blockchains" "chia" "plots_dir" .Values.appVolumeMounts.plots.mountPath "mode" "fullnode") "environmentVariables" .Values.environmentVariables) | nindent 10 }}
volumes: {{ include "common.storage.configureAppVolumes" .Values | nindent 8 }}
{{ range $index, $hostPathConfiguration := .Values.extraAppVolumeMounts }}
- name: extrappvolume-{{ $index }}
hostPath:
path: {{ $hostPathConfiguration.hostPath }}
{{ end }}

View File

@@ -1,6 +0,0 @@
{{ $svc := .Values }}
{{ $ports := list }}
{{ $ports = mustAppend $ports (dict "name" "pms" "port" $svc.machinaris_ui_port "nodePort" $svc.machinaris_ui_port "targetPort" "machinaris-ui") }}
{{ $params := . }}
{{ $_ := set $params "commonService" (dict "ports" $ports "type" "NodePort" ) }}
{{ include "common.classes.service" $params }}

View File

@@ -1,15 +0,0 @@
apiVersion: v1
kind: Pod
metadata:
name: "{{ .Release.Name }}-cactus-deployment-test"
annotations:
"helm.sh/hook": test
spec:
hostNetwork: true
restartPolicy: Never
containers:
- name: {{ .Release.Name }}-cactus-deployment-test
image: busybox
# Note: Adding sleep 15, as even when cactus pod status is ready, I've seen API
# taking a few seconds to be live and running.
command: ['sh', '-c', 'sleep 30 && nc -vz {{ .Values.nodeIP }} {{ .Values.cactus.apiPort }}']

View File

@@ -1,13 +0,0 @@
apiVersion: v1
kind: Pod
metadata:
name: "{{ .Release.Name }}-machinaris-deployment-test"
annotations:
"helm.sh/hook": test
spec:
hostNetwork: true
restartPolicy: Never
containers:
- name: {{ .Release.Name }}-machinaris-deployment-test
image: busybox
command: ['sh', '-c', 'nc -vz {{ .Values.nodeIP }} {{ .Values.machinarisApiPort }}']

View File

@@ -1,73 +0,0 @@
apiPort: 8927
appVolumeMounts:
config:
emptyDir: true
mountPath: /root/.chia
plots:
emptyDir: true
mountPath: /plots
plotting:
emptyDir: true
mountPath: /plotting
cactus:
apiPort: 8936
environmentVariables:
- name: mode
value: plotter
farmerPort: 11447
ports:
- containerPort: 8936
hostPort: 8936
name: api
protocol: TCP
- containerPort: 11444
hostPort: 11444
name: blockchain
protocol: TCP
- containerPort: 11447
hostPort: 11447
name: farming
protocol: TCP
volumeMounts:
cactus-config:
emptyDir: true
mountPath: /root/.chia
mnemonic:
emptyDir: true
mountPath: /root/.chia/mnemonic.txt
readOnly: true
subPath: mnemonic.txt
cactusEnabled: true
coins:
- cactus
cpuLimit: 0.5
enableResourceLimits: true
environmentVariables:
- name: mode
value: fullnode
farmerPort: 8447
image:
pullPolicy: IfNotPresent
repository: ghcr.io/guydavis/machinaris
tag: v0.8.1
machinarisApiPort: 8927
machinaris_ui_port: 31003
memLimit: 1G
nodeIP: 127.0.0.1
ports:
- containerPort: 8444
hostPort: 8444
name: chia-network
protocol: TCP
- containerPort: 8926
name: machinaris-ui
protocol: TCP
- containerPort: 8927
hostPort: 8927
name: machinaris-api
protocol: TCP
- containerPort: 8447
hostPort: 8447
protocol: TCP
timezone: America/Edmonton
updateStrategy: Recreate

View File

@@ -1,4 +0,0 @@
categories:
- storage
- crypto
icon_url: https://raw.githubusercontent.com/guydavis/machinaris/main/web/static/machinaris.png

View File

@@ -1 +0,0 @@
{"filename": "ix_values.yaml", "keys": ["image"], "test_filename": "test_values.yaml"}

View File

@@ -1,27 +0,0 @@
#!/usr/bin/python3
import json
import sys
from catalog_update.upgrade_strategy import semantic_versioning
def newer_mapping(image_tags):
key = list(image_tags.keys())[0]
tags = {t.strip('v').replace('_', '.'): t for t in image_tags[key]}
version = semantic_versioning(image_tags[key])
if not version:
return {}
return {
'tags': {key: tags[version]},
'app_version': tags[version],
}
if __name__ == '__main__':
try:
versions_json = json.loads(sys.stdin.read())
except ValueError:
raise ValueError('Invalid json specified')
print(json.dumps(newer_mapping(versions_json)))

View File

@@ -1,23 +0,0 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj
# OWNERS file for Kubernetes
OWNERS

View File

@@ -1,18 +0,0 @@
apiVersion: v1
appVersion: v1.7.0
dependencies:
- name: common
repository: file://../../../library/common/2207.0.0
version: 2207.0.0
description: Global, Versioned, peer-to-peer filesystem.
home: https://www.chia.net/
icon: https://www.chia.net/wp-content/uploads/2022/09/chia-logo.svg
keywords:
- storage
- crypto
- blockchain
name: chia
sources:
- https://github.com/Chia-Network/chia-blockchain
- https://github.com/orgs/chia-network/packages/container/package/chia
version: 1.3.39

View File

@@ -1,8 +0,0 @@
Chia Network
=====
[CHIA](https://www.chia.net/) is a new blockchain and smart transaction platform that is easier to use, more efficient, and secure.
Introduction
------------
This chart bootstraps CHIA deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.

View File

@@ -1,4 +0,0 @@
Chia Network
=====
[CHIA](https://www.chia.net/) is a new blockchain and smart transaction platform that is easier to use, more efficient, and secure.

View File

@@ -1,17 +0,0 @@
image:
repository: ghcr.io/chia-network/chia
tag: 1.1.4
pullPolicy: IfNotPresent
updateStrategy: Recreate
environmentVariables:
- name: "keys"
value: "/plots/keyfile"
appVolumeMounts:
staging:
emptyDir: true
mountPath: "/plots"
data:
emptyDir: true
mountPath: "/root/.chia"

View File

@@ -1,5 +0,0 @@
image:
pullPolicy: IfNotPresent
repository: ixsystems/chia-docker
tag: v1.7.0
updateStrategy: Recreate

View File

@@ -1,209 +0,0 @@
groups:
- name: "Storage"
description: "Configure Storage for Chia"
- name: "Farmr.net Configuration"
description: "Configure farmr.net support"
- name: "Chia Environment Variables"
description: "Set the environment that will be visible to the container"
- name: "Networking"
description: "Configure networking for Chia container"
- name: "Resource Limits"
description: "Set CPU/memory limits for Kubernetes Pod"
portals:
web_portal:
protocols:
- "https"
host:
- "www.truepool.io"
ports:
- "443"
path: "/kb/truepool-docker-image/"
questions:
- variable: farmr_env
label: "Enable 'farmr.net' support"
group: "Farmr.net Configuration"
description: "Configure 'farmr.net' support for chia"
schema:
type: string
default: "off"
enum:
- value: "off"
description: "OFF"
- value: "farmer"
description: "FARMER"
- value: "harvester"
description: "HARVESTER"
- variable: appVolumeMounts
label: "Chia Storage"
group: "Storage"
schema:
type: dict
attrs:
- variable: config
label: "Configuration Volume"
schema:
type: dict
attrs:
- variable: datasetName
label: "Configuration Volume Dataset Name"
schema:
type: string
hidden: true
$ref:
- "normalize/ixVolume"
show_if: [["hostPathEnabled", "=", false]]
default: "config"
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: true
default: "/data"
- variable: hostPathEnabled
label: "Enable Custom Host Path for Chia Configuration Volume"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: hostPath
label: "Host Path for Chia Configuration Volume"
schema:
type: hostpath
required: true
- variable: plots
label: "Plot Volume"
schema:
type: dict
attrs:
- variable: datasetName
label: "Plots Volume Name"
schema:
type: string
hidden: true
$ref:
- "normalize/ixVolume"
show_if: [["hostPathEnabled", "=", false]]
default: "plots"
editable: false
- variable: mountPath
label: "Plots Mount Path"
description: "Path where the volume will be mounted inside the pod"
schema:
type: path
hidden: true
editable: false
default: "/plots"
- variable: hostPathEnabled
label: "Enable Custom Host Path for Chia Plots Volume"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: hostPath
label: "Host Path for Chia Plots Volume"
schema:
type: hostpath
required: true
- variable: extraAppVolumeMounts
label: "Chia Extra Host Path Volumes"
group: "Storage"
schema:
type: list
items:
- variable: extraAppVolume
label: "Chia Host Path Volume"
description: "Add an extra host path volume for chia application"
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: environmentVariables
label: "Environment Variables for Chia"
group: "Chia Environment Variables"
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: "Networking Configuration"
label: "Networking Configuration"
group: "Networking"
schema:
type: dict
required: true
attrs:
- variable: nodePort
label: "Node Port to use for Chia"
schema:
type: int
min: 8000
max: 65535
default: 8444
required: true
- variable: farmerPort
label: "Farmer Port to use for Chia"
schema:
type: int
min: 8000
max: 65535
default: 8447
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"

View File

@@ -1,6 +0,0 @@
dependencies:
- name: common
repository: file://../../../library/common/2207.0.0
version: 2207.0.0
digest: sha256:f17f3d458ca0210a52e39da0dce35034e900b36f2040d4b19bed46a7aae91506
generated: "2022-07-25T00:20:43.583595794+05:00"

View File

@@ -1,48 +0,0 @@
{{ include "common.storage.hostPathValidate" .Values }}
apiVersion: {{ template "common.capabilities.deployment.apiVersion" . }}
kind: Deployment
metadata:
name: {{ template "common.names.fullname" . }}
labels: {{ include "common.labels" . | nindent 4 }}
annotations:
rollme: {{ randAlphaNum 5 | quote }}
spec:
strategy:
type: {{ .Values.updateStrategy }}
selector:
matchLabels: {{ include "common.labels.selectorLabels" . | nindent 6 }}
template:
metadata:
name: {{ template "common.names.fullname" . }}
labels: {{ include "common.labels.selectorLabels" . | nindent 8 }}
spec:
# FIXME: Let's please remove hostnetwork when upstream hostport issue is sorted out with kube-router
hostNetwork: {{ include "hostNetworkingEnabled" . }}
containers:
- name: {{ .Chart.Name }}
{{ include "common.containers.imageConfig" .Values.image | nindent 10 }}
{{ include "common.resources.limitation" . | nindent 10 }}
volumeMounts: {{ include "common.storage.configureAppVolumeMountsInContainer" .Values | nindent 12 }}
{{ range $index, $hostPathConfiguration := .Values.extraAppVolumeMounts }}
- name: extrappvolume-{{ $index }}
mountPath: {{ $hostPathConfiguration.mountPath }}
{{ end }}
ports:
- name: chia-network
protocol: TCP
containerPort: 8444
hostPort: null
- name: chia-farmer
protocol: TCP
containerPort: 8447
hostPort: null
{{ $envList := (default list .Values.environmentVariables) }}
{{ $envList = mustAppend $envList (dict "name" "keys" "value" "/plots/keyfile") }}
{{ $envList = mustAppend $envList (dict "name" "farmr" "value" $.Values.farmr_env) }}
{{ include "common.containers.allEnvironmentVariables" (dict "environmentVariables" $envList) | nindent 10 }}
volumes: {{ include "common.storage.configureAppVolumes" .Values | nindent 8 }}
{{ range $index, $hostPathConfiguration := .Values.extraAppVolumeMounts }}
- name: extrappvolume-{{ $index }}
hostPath:
path: {{ $hostPathConfiguration.hostPath }}
{{ end }}

View File

@@ -1,30 +0,0 @@
apiVersion: batch/v1
kind: Job
metadata:
name: "pre-install"
annotations:
"helm.sh/hook": pre-install
"helm.sh/hook-weight": "1"
"helm.sh/hook-delete-policy": hook-succeeded
spec:
template:
metadata:
name: "pre-upgrade-hook2"
spec:
restartPolicy: Never
containers:
- name: {{ .Chart.Name }}-generate-mnemonic
{{ include "common.containers.imageConfig" .Values.image | nindent 8 }}
volumeMounts:{{ include "common.storage.configureAppVolumeMountsInContainer" .Values | nindent 10 }}
- name: generate-mnemonic-configmap
mountPath: /generate_entrypoint.sh
readOnly: true
subPath: entrypoint.sh
command:
- "/generate_entrypoint.sh"
volumes: {{- include "common.storage.configureAppVolumes" .Values | nindent 8 -}}
- name: generate-mnemonic-configmap
configMap:
defaultMode: 0700
name: "generate-mnemonic-config-map"

View File

@@ -1,14 +0,0 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: "generate-mnemonic-config-map"
annotations:
"helm.sh/hook": pre-install
"helm.sh/hook-weight": "-1"
"helm.sh/hook-delete-policy": hook-succeeded
data:
entrypoint.sh: |-
#!/bin/sh
if [ ! -e /plots/keyfile ]; then
/chia-blockchain/venv/bin/python3 -c "from chia.util.keychain import generate_mnemonic;print(generate_mnemonic())" > /plots/keyfile;
fi

View File

@@ -1,21 +0,0 @@
{{/*
Enable host networking
*/}}
{{- define "hostNetworkingEnabled" -}}
{{- if or (lt (.Values.service.nodePort | int) 9000) (lt (.Values.service.farmerPort | int) 9000) -}}
{{- print "true" -}}
{{- else -}}
{{- print "false" -}}
{{- end -}}
{{- end -}}
{{/*
Enable Node Port Service
*/}}
{{- define "enableService" -}}
{{- if or (ge (.Values.service.nodePort | int) 9000) (ge (.Values.service.farmerPort | int) 9000) -}}
{{- print "true" -}}
{{- else -}}
{{- print "false" -}}
{{- end -}}
{{- end -}}

View File

@@ -1,13 +0,0 @@
{{ if eq (include "enableService" .) "true" }}
{{ $svc := .Values.service }}
{{ $ports := list }}
{{ if ge ($svc.nodePort | int) 9000 }}
{{ $ports = mustAppend $ports (dict "name" "chia-network" "port" $svc.nodePort "nodePort" $svc.nodePort "targetPort" 8444) }}
{{ end }}
{{ if ge ($svc.farmerPort | int) 9000 }}
{{ $ports = mustAppend $ports (dict "name" "chia-farmer" "port" $svc.farmerPort "nodePort" $svc.farmerPort "targetPort" 8447) }}
{{ end }}
{{ $params := . }}
{{ $_ := set $params "commonService" (dict "type" "NodePort" "ports" $ports ) }}
{{ include "common.classes.service" $params }}
{{ end }}

View File

@@ -1,16 +0,0 @@
appVolumeMounts:
data:
emptyDir: true
mountPath: /data
staging:
emptyDir: true
mountPath: /plots
farmr_env: 'off'
image:
pullPolicy: IfNotPresent
repository: ixsystems/chia-docker
tag: v1.7.0
service:
farmerPort: 31122
nodePort: 31121
updateStrategy: Recreate

View File

@@ -1,4 +0,0 @@
categories:
- storage
- crypto
icon_url: https://www.chia.net/wp-content/uploads/2022/09/chia-logo.svg

View File

@@ -1 +0,0 @@
{"filename": "ix_values.yaml", "keys": ["image"], "test_filename": "test_values.yaml"}

View File

@@ -1,27 +0,0 @@
#!/usr/bin/python3
import json
import sys
from catalog_update.upgrade_strategy import semantic_versioning
def newer_mapping(image_tags):
key = list(image_tags.keys())[0]
tags = {t.strip('v').replace('_', '.'): t for t in image_tags[key]}
version = semantic_versioning(tags)
if not version:
return {}
return {
'tags': {key: tags[version]},
'app_version': tags[version],
}
if __name__ == '__main__':
try:
versions_json = json.loads(sys.stdin.read())
except ValueError:
raise ValueError('Invalid json specified')
print(json.dumps(newer_mapping(versions_json)))

View File

@@ -1,23 +0,0 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj
# OWNERS file for Kubernetes
OWNERS

View File

@@ -1,19 +0,0 @@
apiVersion: v1
appVersion: 21.11.4.1.1
dependencies:
- name: common
repository: file://../../../library/common/2207.0.0
version: 2207.0.0
description: "Collabora Online Development Edition \u2013 an awesome, Online Office\
\ suite image suitable for home use."
home: https://github.com/CollaboraOnline/online
icon: https://avatars.githubusercontent.com/u/22418908?s=200&v=4
keywords:
- office
- documents
- productivity
name: collabora
sources:
- https://github.com/CollaboraOnline/online.git
- https://hub.docker.com/r/collabora/code
version: 1.2.6

View File

@@ -1,8 +0,0 @@
Collabora Online Development Edition
=====
Collabora Online Development Edition - An awesome, Online Office suite image suitable for home use!
Introduction
------------
This chart bootstraps Collabora deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.

View File

@@ -1,9 +0,0 @@
Collabora Online Development Edition
=====
An awesome, Online Office suite image suitable for home use.
With the Collabora Online Development Edition (CODE) Docker Image you can host
your own online Office Suite at home! This Docker image is aimed at home users
and contains the latest and greatest developments. Simply integrate it in your
preferred File Sync and Share (FSS), to easily get your own online Office
Suite up and running!

View File

@@ -1,10 +0,0 @@
image:
pullPolicy: IfNotPresent
repository: collabora/code
tag: 21.11.4.1.1
nginx:
image:
pullPolicy: IfNotPresent
repository: nginx
tag: 1.21.3
updateStrategy: Recreate

View File

@@ -1,158 +0,0 @@
groups:
- name: "Collabora Configuration"
description: "Configure Collabora"
- name: "Collabora Environment Variables"
description: "Set the environment that will be visible to the container"
- name: "Networking"
description: "Configure Networking for Collabora"
- name: "Storage"
description: "Configure Storage for Collabora"
- name: "Resource Limits"
description: "Set CPU/memory limits for Kubernetes Pod"
portals:
web_portal:
protocols:
- "https"
host:
- "$variable-config.server_name"
ports:
- "$variable-nodePort"
path: "/browser/dist/admin/admin.html"
questions:
- variable: config
label: "Container Configuration"
group: "Collabora Configuration"
schema:
type: dict
attrs:
- variable: timezone
label: "Timezone"
group: "Collabora Configuration"
schema:
type: string
$ref:
- "definitions/timezone"
- variable: username
label: "Username for WebUI"
schema:
type: string
default: "admin"
required: true
- variable: password
label: "Password for WebUI"
schema:
type: string
private: true
default: "changeme"
valid_chars: "[a-zA-Z0-9!@#$%^&*?]{8,}"
required: true
- variable: dictionaries
label: "Dictionaries to use, leave empty to use all"
schema:
type: string
default: "de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru"
- variable: extra_params
label: "Extra Parameters to add"
description: 'e.g. "--o:welcome.enable=false", See more on /etc/loolwsd/loowsd.xml. Separate params with space'
schema:
type: string
default: "--o:welcome.enable=false --o:user_interface.mode=notebookbar --o:ssl.termination=true --o:ssl.enable=false --o:net.proto=IPv4 --o:net.post_allow.host[0]=.+ --o:storage.wopi.host[0]=.+"
- variable: server_name
label: "Server Name"
description: "When this environment variable is set (is not “”), then its value will be used as server name in /etc/loolwsd/loolwsd.xml. Without this, CODE is not delivering a correct host for the websocket connection in case of a proxy in front of it."
schema:
type: string
$ref:
- "definitions/nodeIP"
- variable: certificate
description: "Collabora Certificate"
label: "Certificate"
group: "Collabora Configuration"
schema:
type: int
$ref:
- "definitions/certificate"
"null": false
- variable: extraAppVolumeMounts
label: "Collabora Extra Host Path Volumes"
group: "Storage"
schema:
type: list
items:
- variable: extraAppVolume
label: "Collabora Host Path Volume"
description: "Add an extra host path volume for Collabora application"
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: environmentVariables
label: "Environment Variables"
group: "Collabora Environment Variables"
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: nodePort
label: "Node Port to use for Collabora"
group: "Networking"
schema:
type: int
default: 9980
min: 9000
max: 65535
- 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"

View File

@@ -1,6 +0,0 @@
dependencies:
- name: common
repository: file://../../../library/common/2207.0.0
version: 2207.0.0
digest: sha256:f17f3d458ca0210a52e39da0dce35034e900b36f2040d4b19bed46a7aae91506
generated: "2022-07-25T00:20:48.244687333+05:00"

View File

@@ -1,40 +0,0 @@
{{/*
Retrieve secret name for secure credentials
*/}}
{{- define "secretName" -}}
{{- print "credentials" -}}
{{- end -}}
{{/*
Retrieve true/false if certificate is configured
*/}}
{{- define "certAvailable" -}}
{{- if .Values.certificate -}}
{{- $values := (. | mustDeepCopy) -}}
{{- $_ := set $values "commonCertOptions" (dict "certKeyName" $values.Values.certificate) -}}
{{- template "common.resources.cert_present" $values -}}
{{- else -}}
{{- false -}}
{{- end -}}
{{- end -}}
{{/*
Retrieve public key of certificate
*/}}
{{- define "cert.publicKey" -}}
{{- $values := (. | mustDeepCopy) -}}
{{- $_ := set $values "commonCertOptions" (dict "certKeyName" $values.Values.certificate "publicKey" true) -}}
{{ include "common.resources.cert" $values }}
{{- end -}}
{{/*
Retrieve private key of certificate
*/}}
{{- define "cert.privateKey" -}}
{{- $values := (. | mustDeepCopy) -}}
{{- $_ := set $values "commonCertOptions" (dict "certKeyName" $values.Values.certificate) -}}
{{ include "common.resources.cert" $values }}
{{- end -}}

View File

@@ -1,77 +0,0 @@
{{ include "common.storage.hostPathValidate" .Values }}
apiVersion: {{ template "common.capabilities.deployment.apiVersion" . }}
kind: Deployment
metadata:
name: {{ template "common.names.fullname" . }}
labels: {{ include "common.labels" . | nindent 4 }}
spec:
strategy:
type: {{ .Values.updateStrategy }}
selector:
matchLabels: {{ include "common.labels.selectorLabels" . | nindent 6 }}
template:
metadata:
name: {{ template "common.names.fullname" . }}
labels: {{ include "common.labels.selectorLabels" . | nindent 8 }}
spec:
containers:
- name: {{ .Chart.Name }}-nginx
image: {{ printf "%s:%s" .Values.nginx.image.repository .Values.nginx.image.tag }}
imagePullPolicy: {{ .Values.nginx.image.pullPolicy }}
volumeMounts:
- name: configuration
mountPath: /etc/nginx/nginx.conf
readOnly: true
subPath: config
- name: certs
mountPath: /etc/nginx/server.crt
subPath: certPublicKey
- name: certs
mountPath: /etc/nginx/server.key
subPath: certPrivateKey
ports:
- name: http
containerPort: 80
protocol: TCP
- name: https
containerPort: 443
protocol: TCP
- name: {{ .Chart.Name }}
{{ include "common.resources.limitation" . | nindent 10 }}
{{ include "common.containers.imageConfig" .Values.image | nindent 10 }}
{{ if .Values.extraAppVolumeMounts }}
volumeMounts:
{{ range $index, $hostPathConfiguration := .Values.extraAppVolumeMounts }}
- name: extrappvolume-{{ $index }}
mountPath: {{ $hostPathConfiguration.mountPath }}
{{ end }}
{{ end }}
ports:
- name: collabora
protocol: TCP
containerPort: 9980
{{ $envList := (default list .Values.environmentVariables) }}
{{ $secretName := (include "secretName" .) }}
{{ $envConfig := .Values.config }}
{{ $envList = mustAppend $envList (dict "name" "timezone" "value" $envConfig.timezone) }}
{{ $envList = mustAppend $envList (dict "name" "domain" "value" $envConfig.domain) }}
{{ $envList = mustAppend $envList (dict "name" "dictionaries" "value" $envConfig.dictionaries) }}
{{ $envList = mustAppend $envList (dict "name" "extra_params" "value" $envConfig.extra_params) }}
{{ $envList = mustAppend $envList (dict "name" "DONT_GEN_SSL_CERT" "value" "true") }}
{{ $envList = mustAppend $envList (dict "name" "server_name" "value" (printf "%v:%v" $envConfig.server_name .Values.nodePort)) }}
{{ $envList = mustAppend $envList (dict "name" "username" "valueFromSecret" true "secretName" $secretName "secretKey" "username") }}
{{ $envList = mustAppend $envList (dict "name" "password" "valueFromSecret" true "secretName" $secretName "secretKey" "password") }}
{{ include "common.containers.allEnvironmentVariables" (dict "environmentVariables" $envList) | nindent 10 }}
volumes:
- name: configuration
configMap:
defaultMode: 0700
name: "nginx-config"
- name: certs
secret:
secretName: {{ include "secretName" . }}
{{ range $index, $hostPathConfiguration := .Values.extraAppVolumeMounts }}
- name: extrappvolume-{{ $index }}
hostPath:
path: {{ $hostPathConfiguration.hostPath }}
{{ end }}

View File

@@ -1,122 +0,0 @@
{{- $serviceName := "localhost" -}}
apiVersion: v1
kind: ConfigMap
metadata:
name: "nginx-config"
annotations:
rollme: {{ randAlphaNum 5 | quote }}
data:
config: |-
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
# Types to enable gzip compression on
gzip_types
text/plain
text/css
text/js
text/xml
text/javascript
application/javascript
application/x-javascript
application/json
application/xml
application/rss+xml
image/svg+xml;
sendfile on;
client_max_body_size 1000m;
keepalive_timeout 65;
# Disable tokens for security (#23684)
server_tokens off;
gzip on;
client_body_temp_path /var/tmp/firmware;
server {
server_name nginx;
listen 0.0.0.0:443 default_server ssl http2;
listen [::]:443 default_server ssl http2;
ssl_certificate "/etc/nginx/server.crt";
ssl_certificate_key "/etc/nginx/server.key";
ssl_session_timeout 120m;
ssl_session_cache shared:ssl:16m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA:EDH+aRSA:EECDH:!RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!SHA1:!SHA256:!SHA384;
add_header Strict-Transport-Security max-age=31536000;
location = /robots.txt {
add_header Content-Type text/plain;
proxy_set_header Referer "http://nginx";
return 200 "User-agent: *\nDisallow: /loleaflet/*\n";
}
# static files
location ^~ /browser {
proxy_pass http://{{ $serviceName }}:9980;
proxy_set_header Host $host;
# proxy_set_header Referer "http://nginx";
}
# WOPI discovery URL
location ^~ /hosting/discovery {
set $upstream_collabora {{ $serviceName }};
proxy_pass http://$upstream_collabora:9980;
proxy_set_header Host $http_host;
# proxy_set_header Referer "http://nginx";
}
# Capabilities
location ^~ /hosting/capabilities {
proxy_pass http://{{ $serviceName }}:9980;
proxy_set_header Host $host;
# proxy_set_header Referer "http://nginx";
}
# main websocket
location ~ ^/cool/(.*)/ws$ {
proxy_pass http://{{ $serviceName }}:9980;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
# proxy_set_header Referer "http://nginx";
proxy_read_timeout 36000s;
}
# download, presentation and image upload
location ~ ^/(c|l)ool {
proxy_pass http://{{ $serviceName }}:9980;
proxy_set_header Host $host;
proxy_set_header Referer "http://nginx";
}
# Admin Console websocket
location ^~ /cool/adminws {
proxy_pass http://{{ $serviceName }}:9980;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
# proxy_set_header Referer "http://nginx";
proxy_read_timeout 36000s;
}
}
server {
listen 0.0.0.0:80;
listen [::]:80;
server_name nginx;
return 307 https://$host:{{ .Values.nodePort }}}$request_uri;
}
}

View File

@@ -1,6 +0,0 @@
{{ $port := .Values.nodePort }}
{{ $ports := list }}
{{ $ports = mustAppend $ports (dict "name" "https" "nodePort" $port "targetPort" 443 "port" 443) }}
{{ $params := (. | mustDeepCopy) }}
{{ $_ := set $params "commonService" (dict "ports" $ports "type" "NodePort" ) }}
{{ include "common.classes.service" $params }}

View File

@@ -1,15 +0,0 @@
apiVersion: v1
kind: Secret
metadata:
name: {{ template "secretName" . }}
labels: {{ include "common.labels" . | nindent 4 }}
type: Opaque
data:
username: {{ .Values.config.username | b64enc | quote }}
password: {{ .Values.config.password | b64enc | quote }}
{{ if eq (include "certAvailable" .) "true" }}
certPublicKey: {{ (include "cert.publicKey" .) | toString | b64enc | quote }}
certPrivateKey: {{ (include "cert.privateKey" .) | toString | b64enc | quote }}
{{ else }}
{{ fail "No certificate configured for Collabora" }}
{{ end }}

View File

@@ -1,21 +0,0 @@
{{- $serviceName := (include "common.names.fullname" .) -}}
apiVersion: v1
kind: Pod
metadata:
name: "{{ .Release.Name }}-collabora-test"
labels:
app: {{ .Release.Name }}
release: {{ .Release.Name }}
annotations:
"helm.sh/hook": test
spec:
containers:
- name: test-curl
image: alpine/curl
imagePullPolicy: "IfNotPresent"
command:
- /bin/sh
- -ec
- |
curl --connect-timeout 5 --max-time 10 --retry 5 --retry-delay 15 --retry-max-time 90 --retry-all-errors -ks https://{{ $serviceName }}/browser/dist/admin/admin.html
restartPolicy: Never

View File

@@ -1,364 +0,0 @@
certificate: 55
config:
DONT_GEN_SSL_CERT: 'true'
dictionaries: de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru
domain: nextcloud\.domain\.tld|othernextcloud\.domain\.tld
extra_params: --o:welcome.enable=false --o:user_interface.mode=notebookbar --o:ssl.termination=true
--o:ssl.enable=false --o:net.proto=IPv4 --o:net.post_allow.host[0]=.+ --o:storage.wopi.host[0]=.+
password: changeme
server_name: ssh.sonicaj.com:49980
timezone: Asia/Karachi
username: admin
environmentVariables: []
extraAppVolumeMounts: []
image:
pullPolicy: IfNotPresent
repository: collabora/code
tag: 21.11.4.1.1
ixCertificateAuthorities: {}
ixCertificates:
'55':
CA_type_existing: false
CA_type_intermediate: false
CA_type_internal: false
CSR: null
DN: /CN=ad/C=US/ST=asdf/L=asdf/O=adsf/OU=asdf/emailAddress=a@a.com/subjectAltName=IP
Address:192.168.0.3, IP Address:192.168.0.5, IP Address:192.168.0.182, IP Address:192.168.0.129,
IP Address:192.168.0.146
can_be_revoked: false
cert_type: CERTIFICATE
cert_type_CSR: false
cert_type_existing: true
cert_type_internal: false
certificate: '-----BEGIN CERTIFICATE-----
MIIEdjCCA16gAwIBAgIDYFMYMA0GCSqGSIb3DQEBCwUAMGwxDDAKBgNVBAMMA2Fz
ZDELMAkGA1UEBhMCVVMxDTALBgNVBAgMBGFzZGYxCzAJBgNVBAcMAmFmMQ0wCwYD
VQQKDARhc2RmMQwwCgYDVQQLDANhc2QxFjAUBgkqhkiG9w0BCQEWB2FAYS5jb20w
HhcNMjEwODMwMjMyMzU0WhcNMjMxMjAzMjMyMzU0WjBuMQswCQYDVQQDDAJhZDEL
MAkGA1UEBhMCVVMxDTALBgNVBAgMBGFzZGYxDTALBgNVBAcMBGFzZGYxDTALBgNV
BAoMBGFkc2YxDTALBgNVBAsMBGFzZGYxFjAUBgkqhkiG9w0BCQEWB2FAYS5jb20w
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7+1xOHRQyOnQTHFcrdasX
Zl0gzutVlA890a1wiQpdD5dOtCLo7+eqVYjqVKo9W8RUIArXWmBu/AbkH7oVFWC1
P973W1+ArF5sA70f7BZgqRKJTIisuIFIlRETgfnP2pfQmHRZtGaIJRZI4vQCdYgW
2g0KOvvNcZJCVq1OrhKiNiY1bWCp66DGg0ic6OEkZFHTm745zUNQaf2dNgsxKU0H
PGjVLJI//yrRFAOSBUqgD4c50krnMF7fU/Fqh+UyOu8t6Y/HsySh3urB+Zie331t
AzV6QV39KKxRflNx/yuWrtIEslGTm+xHKoCYJEk/nZ3mX8Y5hG6wWAb7A/FuDVg3
AgMBAAGjggEdMIIBGTAnBgNVHREEIDAehwTAqAADhwTAqAAFhwTAqAC2hwTAqACB
hwTAqACSMB0GA1UdDgQWBBQ4G2ff4tgZl4vmo4xCfqmJhdqShzAMBgNVHRMBAf8E
AjAAMIGYBgNVHSMEgZAwgY2AFLlYf9L99nxJDcpCM/LT3V5hQ/a3oXCkbjBsMQww
CgYDVQQDDANhc2QxCzAJBgNVBAYTAlVTMQ0wCwYDVQQIDARhc2RmMQswCQYDVQQH
DAJhZjENMAsGA1UECgwEYXNkZjEMMAoGA1UECwwDYXNkMRYwFAYJKoZIhvcNAQkB
FgdhQGEuY29tggNgUxcwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwEwDgYDVR0PAQH/
BAQDAgWgMA0GCSqGSIb3DQEBCwUAA4IBAQA6FpOInEHB5iVk3FP67GybJ29vHZTD
KQHbQgmg8s4L7qIsA1HQ+DMCbdylpA11x+t/eL/n48BvGw2FNXpN6uykhLHJjbKR
h8yITa2KeD3LjLYhScwIigXmTVYSP3km6s8jRL6UKT9zttnIHyXVpBDya6Q4WTMx
fmfC6O7t1PjQ5ZyVtzizIUP8ah9n4TKdXU4A3QIM6WsJXpHb+vqp1WDWJ7mKFtgj
x5TKv3wcPnktx0zMPfLb5BTSE9rc9djcBG0eIAsPT4FgiatCUChe7VhuMnqskxEz
MymJLoq8+mzucRwFkOkR2EIt1x+Irl2mJVMeBow63rVZfUQBD8h++LqB
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEhDCCA2ygAwIBAgIDYFMXMA0GCSqGSIb3DQEBCwUAMGwxDDAKBgNVBAMMA2Fz
ZDELMAkGA1UEBhMCVVMxDTALBgNVBAgMBGFzZGYxCzAJBgNVBAcMAmFmMQ0wCwYD
VQQKDARhc2RmMQwwCgYDVQQLDANhc2QxFjAUBgkqhkiG9w0BCQEWB2FAYS5jb20w
HhcNMjEwODMwMjMyMDQ1WhcNMzEwODI4MjMyMDQ1WjBsMQwwCgYDVQQDDANhc2Qx
CzAJBgNVBAYTAlVTMQ0wCwYDVQQIDARhc2RmMQswCQYDVQQHDAJhZjENMAsGA1UE
CgwEYXNkZjEMMAoGA1UECwwDYXNkMRYwFAYJKoZIhvcNAQkBFgdhQGEuY29tMIIB
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq//c0hEEr83CS1pMgsHX50jt
2MqIbcf63UUNJTiYpUUvUQSFJFc7m/dr+RTZvu97eDCnD5K2qkHHvTPaPZwY+Djf
iy7N641Sz6u/y3Yo3xxs1Aermsfedh48vusJpjbkT2XS44VjbkrpKcWDNVpp3Evd
M7oJotXeUsZ+imiyVCfr4YhoY5gbGh/r+KN9Wf9YKoUyfLLZGwdZkhtX2zIbidsL
Thqi9YTaUHttGinjiBBum234u/CfvKXsfG3yP2gvBGnlvZnM9ktv+lVffYNqlf7H
VmB1bKKk84HtzuW5X76SGAgOG8eHX4x5ZLI1WQUuoQOVRl1I0UCjBtbz8XhwvQID
AQABo4IBLTCCASkwLQYDVR0RBCYwJIcEwKgABYcEwKgAA4cEwKgAkocEwKgAtYcE
wKgAgYcEwKgAtjAdBgNVHQ4EFgQUuVh/0v32fEkNykIz8tPdXmFD9rcwDwYDVR0T
AQH/BAUwAwEB/zCBmAYDVR0jBIGQMIGNgBS5WH/S/fZ8SQ3KQjPy091eYUP2t6Fw
pG4wbDEMMAoGA1UEAwwDYXNkMQswCQYDVQQGEwJVUzENMAsGA1UECAwEYXNkZjEL
MAkGA1UEBwwCYWYxDTALBgNVBAoMBGFzZGYxDDAKBgNVBAsMA2FzZDEWMBQGCSqG
SIb3DQEJARYHYUBhLmNvbYIDYFMXMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF
BQcDAjAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggEBAKEocOmVuWlr
zegtKYMe8NhHIkFY9oVn5ym6RHNOJpPH4QF8XYC3Z5+iC5yGh4P/jVe/4I4SF6Ql
PtofU0jNq5vzapt/y+m008eXqPQFmoUOvu+JavoRVcRx2LIP5AgBA1mF56CSREsX
TkuJAA9IUQ8EjnmAoAeKINuPaKxGDuU8BGCMqr/qd564MKNf9XYL+Fb2rlkA0O2d
2No34DQLgqSmST/LAvPM7Cbp6knYgnKmGr1nETCXasg1cueHLnWWTvps2HiPp2D/
+Fq0uqcZLu4Mdo0CPs4e5sHRyldEnRSKh0DVLprq9zr/GMipmPLJUsT5Jed3sj0w
M7Y3vwxshpo=
-----END CERTIFICATE-----'
certificate_path: /etc/certificates/slog3.crt
chain: true
chain_list:
- '-----BEGIN CERTIFICATE-----
MIIEdjCCA16gAwIBAgIDYFMYMA0GCSqGSIb3DQEBCwUAMGwxDDAKBgNVBAMMA2Fz
ZDELMAkGA1UEBhMCVVMxDTALBgNVBAgMBGFzZGYxCzAJBgNVBAcMAmFmMQ0wCwYD
VQQKDARhc2RmMQwwCgYDVQQLDANhc2QxFjAUBgkqhkiG9w0BCQEWB2FAYS5jb20w
HhcNMjEwODMwMjMyMzU0WhcNMjMxMjAzMjMyMzU0WjBuMQswCQYDVQQDDAJhZDEL
MAkGA1UEBhMCVVMxDTALBgNVBAgMBGFzZGYxDTALBgNVBAcMBGFzZGYxDTALBgNV
BAoMBGFkc2YxDTALBgNVBAsMBGFzZGYxFjAUBgkqhkiG9w0BCQEWB2FAYS5jb20w
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7+1xOHRQyOnQTHFcrdasX
Zl0gzutVlA890a1wiQpdD5dOtCLo7+eqVYjqVKo9W8RUIArXWmBu/AbkH7oVFWC1
P973W1+ArF5sA70f7BZgqRKJTIisuIFIlRETgfnP2pfQmHRZtGaIJRZI4vQCdYgW
2g0KOvvNcZJCVq1OrhKiNiY1bWCp66DGg0ic6OEkZFHTm745zUNQaf2dNgsxKU0H
PGjVLJI//yrRFAOSBUqgD4c50krnMF7fU/Fqh+UyOu8t6Y/HsySh3urB+Zie331t
AzV6QV39KKxRflNx/yuWrtIEslGTm+xHKoCYJEk/nZ3mX8Y5hG6wWAb7A/FuDVg3
AgMBAAGjggEdMIIBGTAnBgNVHREEIDAehwTAqAADhwTAqAAFhwTAqAC2hwTAqACB
hwTAqACSMB0GA1UdDgQWBBQ4G2ff4tgZl4vmo4xCfqmJhdqShzAMBgNVHRMBAf8E
AjAAMIGYBgNVHSMEgZAwgY2AFLlYf9L99nxJDcpCM/LT3V5hQ/a3oXCkbjBsMQww
CgYDVQQDDANhc2QxCzAJBgNVBAYTAlVTMQ0wCwYDVQQIDARhc2RmMQswCQYDVQQH
DAJhZjENMAsGA1UECgwEYXNkZjEMMAoGA1UECwwDYXNkMRYwFAYJKoZIhvcNAQkB
FgdhQGEuY29tggNgUxcwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwEwDgYDVR0PAQH/
BAQDAgWgMA0GCSqGSIb3DQEBCwUAA4IBAQA6FpOInEHB5iVk3FP67GybJ29vHZTD
KQHbQgmg8s4L7qIsA1HQ+DMCbdylpA11x+t/eL/n48BvGw2FNXpN6uykhLHJjbKR
h8yITa2KeD3LjLYhScwIigXmTVYSP3km6s8jRL6UKT9zttnIHyXVpBDya6Q4WTMx
fmfC6O7t1PjQ5ZyVtzizIUP8ah9n4TKdXU4A3QIM6WsJXpHb+vqp1WDWJ7mKFtgj
x5TKv3wcPnktx0zMPfLb5BTSE9rc9djcBG0eIAsPT4FgiatCUChe7VhuMnqskxEz
MymJLoq8+mzucRwFkOkR2EIt1x+Irl2mJVMeBow63rVZfUQBD8h++LqB
-----END CERTIFICATE-----'
- '-----BEGIN CERTIFICATE-----
MIIEhDCCA2ygAwIBAgIDYFMXMA0GCSqGSIb3DQEBCwUAMGwxDDAKBgNVBAMMA2Fz
ZDELMAkGA1UEBhMCVVMxDTALBgNVBAgMBGFzZGYxCzAJBgNVBAcMAmFmMQ0wCwYD
VQQKDARhc2RmMQwwCgYDVQQLDANhc2QxFjAUBgkqhkiG9w0BCQEWB2FAYS5jb20w
HhcNMjEwODMwMjMyMDQ1WhcNMzEwODI4MjMyMDQ1WjBsMQwwCgYDVQQDDANhc2Qx
CzAJBgNVBAYTAlVTMQ0wCwYDVQQIDARhc2RmMQswCQYDVQQHDAJhZjENMAsGA1UE
CgwEYXNkZjEMMAoGA1UECwwDYXNkMRYwFAYJKoZIhvcNAQkBFgdhQGEuY29tMIIB
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq//c0hEEr83CS1pMgsHX50jt
2MqIbcf63UUNJTiYpUUvUQSFJFc7m/dr+RTZvu97eDCnD5K2qkHHvTPaPZwY+Djf
iy7N641Sz6u/y3Yo3xxs1Aermsfedh48vusJpjbkT2XS44VjbkrpKcWDNVpp3Evd
M7oJotXeUsZ+imiyVCfr4YhoY5gbGh/r+KN9Wf9YKoUyfLLZGwdZkhtX2zIbidsL
Thqi9YTaUHttGinjiBBum234u/CfvKXsfG3yP2gvBGnlvZnM9ktv+lVffYNqlf7H
VmB1bKKk84HtzuW5X76SGAgOG8eHX4x5ZLI1WQUuoQOVRl1I0UCjBtbz8XhwvQID
AQABo4IBLTCCASkwLQYDVR0RBCYwJIcEwKgABYcEwKgAA4cEwKgAkocEwKgAtYcE
wKgAgYcEwKgAtjAdBgNVHQ4EFgQUuVh/0v32fEkNykIz8tPdXmFD9rcwDwYDVR0T
AQH/BAUwAwEB/zCBmAYDVR0jBIGQMIGNgBS5WH/S/fZ8SQ3KQjPy091eYUP2t6Fw
pG4wbDEMMAoGA1UEAwwDYXNkMQswCQYDVQQGEwJVUzENMAsGA1UECAwEYXNkZjEL
MAkGA1UEBwwCYWYxDTALBgNVBAoMBGFzZGYxDDAKBgNVBAsMA2FzZDEWMBQGCSqG
SIb3DQEJARYHYUBhLmNvbYIDYFMXMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF
BQcDAjAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggEBAKEocOmVuWlr
zegtKYMe8NhHIkFY9oVn5ym6RHNOJpPH4QF8XYC3Z5+iC5yGh4P/jVe/4I4SF6Ql
PtofU0jNq5vzapt/y+m008eXqPQFmoUOvu+JavoRVcRx2LIP5AgBA1mF56CSREsX
TkuJAA9IUQ8EjnmAoAeKINuPaKxGDuU8BGCMqr/qd564MKNf9XYL+Fb2rlkA0O2d
2No34DQLgqSmST/LAvPM7Cbp6knYgnKmGr1nETCXasg1cueHLnWWTvps2HiPp2D/
+Fq0uqcZLu4Mdo0CPs4e5sHRyldEnRSKh0DVLprq9zr/GMipmPLJUsT5Jed3sj0w
M7Y3vwxshpo=
-----END CERTIFICATE-----'
city: asdf
common: ad
country: US
csr_path: /etc/certificates/slog3.csr
digest_algorithm: SHA256
email: a@a.com
extensions:
AuthorityKeyIdentifier: 'keyid:B9:58:7F:D2:FD:F6:7C:49:0D:CA:42:33:F2:D3:DD:5E:61:43:F6:B7
DirName:/CN=asd/C=US/ST=asdf/L=af/O=asdf/OU=asd/emailAddress=a@a.com
serial:60:53:17
'
BasicConstraints: CA:FALSE
ExtendedKeyUsage: TLS Web Server Authentication
KeyUsage: Digital Signature, Key Encipherment
SubjectAltName: IP Address:192.168.0.3, IP Address:192.168.0.5, IP Address:192.168.0.182,
IP Address:192.168.0.129, IP Address:192.168.0.146
SubjectKeyIdentifier: 38:1B:67:DF:E2:D8:19:97:8B:E6:A3:8C:42:7E:A9:89:85:DA:92:87
fingerprint: 59:7A:49:6D:04:CE:70:E5:AF:9A:FB:75:3C:26:58:7D:B7:8E:A6:9D
from: Tue Aug 31 04:23:54 2021
id: 55
internal: 'NO'
issuer: external
key_length: 2048
key_type: RSA
lifetime: 825
name: slog3
organization: adsf
organizational_unit: asdf
parsed: true
privatekey: '-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC7+1xOHRQyOnQT
HFcrdasXZl0gzutVlA890a1wiQpdD5dOtCLo7+eqVYjqVKo9W8RUIArXWmBu/Abk
H7oVFWC1P973W1+ArF5sA70f7BZgqRKJTIisuIFIlRETgfnP2pfQmHRZtGaIJRZI
4vQCdYgW2g0KOvvNcZJCVq1OrhKiNiY1bWCp66DGg0ic6OEkZFHTm745zUNQaf2d
NgsxKU0HPGjVLJI//yrRFAOSBUqgD4c50krnMF7fU/Fqh+UyOu8t6Y/HsySh3urB
+Zie331tAzV6QV39KKxRflNx/yuWrtIEslGTm+xHKoCYJEk/nZ3mX8Y5hG6wWAb7
A/FuDVg3AgMBAAECggEAapt30rj9DitGTtxAt13pJMEhyYxvvD3WkvmJwguF/Bbu
eW0Ba1c668fMeRCA54FWi1sMqusPS4HUqqUvk+tmyAOsAF4qgD/A4MMSC7uJSVI5
N/JWhJWyhCY94/FPakiO1nbPbVw41bcqtzU2qvparpME2CtxSCbDiqm7aaag3Kqe
EF0fGSUdZ+TYl9JM05+eIyiX+UY19Fg0OjTHMn8nGpxcNTfDBdQ68TKvdo/dtIKL
PLKzJUNNdM8odC4CvQtfGMqaslwZwXkiOl5VJcW21ncj/Y0ngEMKeD/i65ZoqGdR
0FKCQYEAGtM2FvJcZQ92Wsw7yj2bK2MSegVUyLK32QKBgQDe8syVCepPzRsfjfxA
6TZlWcGuTZLhwIx97Ktw3VcQ1f4rLoEYlv0xC2VWBORpzIsJo4I/OLmgp8a+Ga8z
FkVRnq90dV3t4NP9uJlHgcODHnOardC2UUka4olBSCG6zmK4Jxi34lOxhGRkshOo
L4IBeOIB5g+ZrEEXkzfYJHESRQKBgQDX2YhFhGIrT8BAnC5BbXbhm8h6Bhjz8DYL
d+qhVJjef7L/aJxViU0hX9Ba2O8CLK3FZeREFE3hJPiJ4TZSlN4evxs5p+bbNDcA
0mhRI/o3X4ac6IxdRebyYnCOB/Cu94/MzppcZcotlCekKNike7eorCcX4Qavm7Pu
MUuQ+ifmSwKBgEnchoqZzlbBzMqXb4rRuIO7SL9GU/MWp3TQg7vQmJerTZlgvsQ2
wYsOC3SECmhCq4117iCj2luvOdihCboTFsQDnn0mpQe6BIF6Ns3J38wAuqv0CcFd
DKsrge1uyD3rQilgSoAhKzkUc24o0PpXQurZ8YZPgbuXpbj5vPaOnCdBAoGACYc7
wb3XS4wos3FxhUfcwJbM4b4VKeeHqzfu7pI6cU/3ydiHVitKcVe2bdw3qMPqI9Wc
nvi6e17Tbdq4OCsEJx1OiVwFD9YdO3cOTc6lw/3+hjypvZBRYo+/4jUthbu96E+S
dtOzehGZMmDvN0uSzupSi3ZOgkAAUFpyuIKickMCgYAId0PCRjonO2thn/R0rZ7P
//L852uyzYhXKw5/fjFGhQ6LbaLgIRFaCZ0L2809u0HFnNvJjHv4AKP6j+vFQYYY
qQ+66XnfsA9G/bu4MDS9AX83iahD9IdLXQAy8I19prAbpVumKegPbMnNYNB/TYEc
3G15AKCXo7jjOUtHY01DCQ==
-----END PRIVATE KEY-----'
privatekey_path: /etc/certificates/slog3.key
revoked: false
revoked_date: null
root_path: /etc/certificates
san:
- IP Address:192.168.0.3
- IP Address:192.168.0.5
- IP Address:192.168.0.182
- IP Address:192.168.0.129
- IP Address:192.168.0.146
serial: 6312728
signedby: null
state: asdf
subject_name_hash: 1673640987
type: 8
until: Mon Dec 4 04:23:54 2023
ixChartContext:
isInstall: false
isUpdate: true
isUpgrade: false
operation: UPDATE
storageClassName: ix-storage-class-col
upgradeMetadata: {}
ixExternalInterfacesConfiguration: []
ixExternalInterfacesConfigurationNames: []
ixVolumes: []
nginx:
image:
pullPolicy: IfNotPresent
repository: nginx
tag: 1.21.3
nodePort: 31980

View File

@@ -1,5 +0,0 @@
categories:
- office
- documents
- productivity
icon_url: https://avatars.githubusercontent.com/u/22418908?s=200&v=4

View File

@@ -1 +0,0 @@
{"filename": "ix_values.yaml", "keys": ["image"], "test_filename": "test_values.yaml"}

View File

@@ -1,26 +0,0 @@
#!/usr/bin/python3
import json
import sys
from catalog_update.upgrade_strategy import semantic_versioning
def newer_mapping(image_tags):
key = list(image_tags.keys())[0]
version = semantic_versioning(sorted(image_tags[key], reverse=True))
if not version:
return {}
return {
'tags': {key: version},
'app_version': version,
}
if __name__ == '__main__':
try:
versions_json = json.loads(sys.stdin.read())
except ValueError:
raise ValueError('Invalid json specified')
print(json.dumps(newer_mapping(versions_json)))

View File

@@ -1,6 +0,0 @@
dependencies:
- name: common
repository: file://../../../library/common/2207.0.0
version: 2207.0.0
digest: sha256:f17f3d458ca0210a52e39da0dce35034e900b36f2040d4b19bed46a7aae91506
generated: "2022-07-25T00:20:48.080698555+05:00"

View File

@@ -1,17 +0,0 @@
apiVersion: v2
appVersion: "2.0.1"
icon: http://www.diskoverdata.com/wp-content/uploads/2019/09/diskover.png
description: Diskover is used to monitor size/volumes of distributed dataset.
name: diskoverdata
version: 1.0.4
dependencies:
- name: common
repository: file://../../../library/common/2207.0.0
version: 2207.0.0
home: https://github.com/diskoverdata/diskover-community/
keywords:
- storage
- monitoring
- management
sources:
- https://github.com/diskoverdata/diskover-community/

View File

@@ -1,14 +0,0 @@
# DiskOverData
DiskOver App for TrueNAS SCALE
[Diskover](https://www.diskoverdata.com/) is a sustainable file management solution for your distributed data.
# Introduction
This chart is based on [diskoverdata](https://hub.docker.com/r/linuxserver/diskover) and
deployed on kubernetes via helm chart
## Configuration
Please refer to questions.yaml for a detailed overview on supported configurable values.

View File

@@ -1 +0,0 @@
DiskOver App for TrueNAS SCALE

View File

@@ -1,18 +0,0 @@
image:
pullPolicy: IfNotPresent
repository: linuxserver/diskover
tag: "2.0.1"
elasticsearch:
image:
pullPolicy: IfNotPresent
repository: docker.elastic.co/elasticsearch/elasticsearch
tag: "7.5.2"
python:
image:
pullPolicy: IfNotPresent
repository: python
tag: "3.10"
es_user: elasticsearch

View File

@@ -1,322 +0,0 @@
groups:
- name: "Configuration"
description: "Diskover application configuration"
- name: "Storage"
description: "Configure storage for Diskover"
- name: "Networking"
description: "Networking Configuration for Diskover"
- 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-web_port"
path: "/"
questions:
- variable: web_port
label: "Web Port for Diskover"
group: Networking
schema:
type: int
min: 8000
max: 65535
default: 22510
required: true
- variable: timezone
label: "Configure timezone"
group: "Configuration"
description: "Configure timezone for Diskover"
schema:
type: string
$ref:
- "definitions/timezone"
- 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: ownerUID
label: "Config folder's user id"
description: "Linuxserver uses this user id to configure config's folders permissions"
group: Configuration
schema:
type: int
default: 568
min: 1
max: 65535
- variable: ownerGID
label: "Config folder's group id"
description: "Linuxserver uses this group id to configure config's folders permissions"
group: Configuration
schema:
type: int
default: 568
min: 1
max: 65535
- variable: diskoverCredentials
description: "Configure Diskover Initial Password"
label: "Configure Diskover Initial Username and password"
group: "Configuration"
schema:
type: dict
required: true
additional_attrs: true
attrs:
- variable: username
label: "Username"
description: "UserName for Diskover User"
schema:
type: string
default: "admin"
required: true
- variable: password
label: "Password"
description: "Initial Password for Diskover User"
schema:
type: string
private: true
default: "changeme"
required: true
- variable: environmentVariables
label: "Diskover Extra Environment"
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: cronjobSchedule
description: "Cronjobs Consist on 5 values in this specific format 'Minute Hour Day Month Week'"
label: "Define cronjob schedule for diskover"
group: "Configuration"
schema:
type: string
default: "0 3 * * *"
- variable: appVolumeMounts
label: "Diskover Storage"
group: "Storage"
schema:
type: dict
attrs:
- variable: config
label: "Storage Volume for Configuration"
schema:
type: dict
attrs:
- variable: datasetName
label: "Configuration Storage Volume Dataset Name"
schema:
type: string
hidden: true
$ref:
- "normalize/ixVolume"
show_if: [["hostPathEnabled", "=", false]]
default: "ix-config"
editable: false
- variable: mountPath
label: "Configuration Storage Mount Path"
description: "Path where the volume will be mounted inside the pod"
schema:
type: path
hidden: true
editable: true
default: "/config"
- variable: hostPathEnabled
label: "Enable Custom Host Path for Diskover Configuration Storage Volume"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: hostPath
label: "Host Path for Diskover Configuration Storage Volume"
schema:
type: hostpath
required: true
- variable: data
label: "Storage Volume for Data"
schema:
type: dict
attrs:
- variable: datasetName
label: "Configuration Storage Volume Dataset Name"
schema:
type: string
hidden: true
$ref:
- "normalize/ixVolume"
show_if: [["hostPathEnabled", "=", false]]
default: "ix-data"
editable: false
- variable: mountPath
label: "Configuration Storage Mount Path"
description: "Path where the volume will be mounted inside the pod"
schema:
type: path
hidden: true
editable: true
default: "/data"
- variable: hostPathEnabled
label: "Enable Custom Host Path for Diskover Data folder to monitor"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: hostPath
label: "Host Path for Diskover Data folder to monitor"
schema:
type: hostpath
required: true
- variable: extraDataVolumeMounts
label: "Add Extra Host Paths For Diskover To Monitor"
group: "Storage"
schema:
type: list
items:
- variable: dataAppVolume
label: "Host Path Volume"
description: "Add extra Data Volumes for diskover to monitor"
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: 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 Diskover application"
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: elasticSearchAppVolumeMounts
label: "elastic search Storage"
group: "Storage"
schema:
type: dict
hidden: true
attrs:
- variable: esdata
label: "Storage Volume for Configuration"
schema:
type: dict
attrs:
- variable: datasetName
label: "Configuration Storage Volume Dataset Name"
schema:
type: string
$ref:
- "normalize/ixVolume"
default: "ix-elasticsearch-data"
editable: false
- variable: mountPath
label: "Configuration Storage Mount Path"
description: "Path where the volume will be mounted inside the pod"
schema:
type: path
editable: false
default: "/usr/share/elasticsearch/data"
- 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"

View File

@@ -1,35 +0,0 @@
{{- define "add.user" -}}
{{- $user := .Values.es_user -}}
{{- printf "adduser %s -D;" $user -}}
{{- end -}}
{{- define "change.user.permissions" -}}
{{- $user := .Values.es_user -}}
{{- $mountPath := .Values.elasticSearchAppVolumeMounts.esdata.mountPath -}}
{{- printf "chown -R %s:%s %s;" $user $user $mountPath -}}
{{- end -}}
{{- define "elasticsearch.IP" -}}
{{ $envList := (default list) }}
{{ $envList = mustAppend $envList (dict "name" "ES_HOST" "value" (printf "%s" (include "common.names.fullname" .))) }}
{{ $envList = mustAppend $envList (dict "name" "ES_PORT" "value" "9200") }}
{{ include "common.containers.environmentVariables" (dict "environmentVariables" $envList) }}
{{- end -}}
{{- define "elasticsearch.credentials" -}}
{{ $envList := (default list) }}
{{ $envList = mustAppend $envList (dict "name" "ES_USER" "valueFromSecret" true "secretName" "elastic-search-credentials" "secretKey" "es-username") }}
{{ $envList = mustAppend $envList (dict "name" "ES_PASS" "valueFromSecret" true "secretName" "elastic-search-credentials" "secretKey" "es-password") }}
{{ include "common.containers.environmentVariables" (dict "environmentVariables" $envList) }}
{{- end -}}
{{- define "config.file.path" -}}
{{ $envList := (default list) }}
{{ $envList = mustAppend $envList (dict "name" "DEST" "value" .mountPath) }}
{{ $envList = mustAppend $envList (dict "name" "FILE" "value" .configFile) }}
{{ include "common.containers.environmentVariables" (dict "environmentVariables" $envList) }}
{{- end -}}

View File

@@ -1,133 +0,0 @@
{{ include "common.storage.hostPathValidate" .Values }}
{{ $elastic_search := (. | mustDeepCopy) }}
{{ $_ := set $elastic_search "common" (dict "nameSuffix" "elasticsearch") }}
apiVersion: {{ template "common.capabilities.deployment.apiVersion" . }}
kind: Deployment
metadata:
name: {{ template "common.names.fullname" . }}
labels:
app: {{ template "common.names.name" . }}
chart: {{ template "common.names.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
annotations:
rollme: {{ randAlphaNum 5 | quote }}
spec:
replicas: {{ (default 1 .Values.replicas) }}
strategy:
type: "Recreate"
selector:
matchLabels:
app: {{ template "common.names.name" . }}
release: {{ .Release.Name }}
template:
metadata:
name: {{ template "common.names.fullname" . }}
labels:
app: {{ template "common.names.name" . }}
release: {{ .Release.Name }}
{{- include "common.labels.selectorLabels" . | nindent 8 }}
annotations: {{ include "common.annotations" . | nindent 8 }}
spec:
initContainers:
- name: init-config
{{ include "common.containers.imageConfig" .Values.python.image | nindent 10 }}
command: ["python3", "/init_scripts/init_config.py"]
env:
{{ $envList := (default list .Values.environmentVariables) }}
{{ $envList = mustAppend $envList (dict "name" "TZ" "value" .Values.timezone) }}
{{ $envList = mustAppend $envList (dict "name" "DS_USER" "valueFromSecret" true "secretName" "diskover-credentials" "secretKey" "username") }}
{{ $envList = mustAppend $envList (dict "name" "DS_PASS" "valueFromSecret" true "secretName" "diskover-credentials" "secretKey" "password") }}
{{ include "common.containers.environmentVariables" (dict "environmentVariables" $envList) | nindent 12 }}
{{ include "elasticsearch.IP" $elastic_search | nindent 12 }}
{{ include "elasticsearch.credentials" . | nindent 12 }}
{{ $configPath := (dict "mountPath" (printf "%s/diskover-web.conf.d/" .Values.appVolumeMounts.config.mountPath) "configFile" "Constants.php") }}
{{ include "config.file.path" $configPath | nindent 12 }}
volumeMounts: {{ include "common.storage.configureAppVolumeMountsInContainer" .Values | nindent 12 }}
- name: diskover-initial-scripts
mountPath: /init_scripts/
- name: wait-es-search
{{ include "common.containers.imageConfig" .Values.image | nindent 10 }}
env:
{{ include "elasticsearch.IP" $elastic_search | nindent 12 }}
command: ["python3", "/init_scripts/wait_for_elastic_search.py"]
volumeMounts:
- name: diskover-initial-scripts
mountPath: /init_scripts/
- name: init-es-config
{{ include "common.containers.imageConfig" .Values.python.image | nindent 10 }}
command: ["python3", "/init_scripts/initial_es_config.py"]
env:
{{ $envListConfig := (default list .Values.environmentVariables) }}
{{ include "elasticsearch.IP" $elastic_search | nindent 12 }}
{{ include "elasticsearch.credentials" . | nindent 12 }}
{{ $configPathES := (dict "mountPath" (printf "%s/diskover.conf.d/diskover/" .Values.appVolumeMounts.config.mountPath) "configFile" "config.yaml") }}
{{ include "config.file.path" $configPathES | nindent 12 }}
{{ include "common.containers.environmentVariables" (dict "environmentVariables" $envListConfig) | nindent 12 }}
volumeMounts: {{ include "common.storage.configureAppVolumeMountsInContainer" .Values | nindent 12 }}
- name: diskover-initial-scripts
mountPath: /init_scripts/
containers:
- name: {{ .Chart.Name }}
{{ include "common.resources.limitation" . | nindent 10 }}
{{ include "common.containers.imageConfig" .Values.image | nindent 10 }}
volumeMounts: {{ include "common.storage.configureAppVolumeMountsInContainer" .Values | nindent 12 }}
- name: diskover-initial-scripts
mountPath: /init_scripts/
{{ range $index, $hostPathConfiguration := .Values.extraAppVolumeMounts }}
- name: extrappvolume-{{ $index }}
mountPath: {{ $hostPathConfiguration.mountPath }}
{{ end }}
{{ range $index, $hostPathConfiguration := .Values.extraDataVolumeMounts }}
- name: extradatavolume-{{ $index }}
mountPath: {{ $hostPathConfiguration.mountPath }}
{{ end }}
ports:
- name: web
containerPort: 80
{{ $cronjobSchedule := .Values.cronjobSchedule }}
lifecycle:
postStart:
exec:
command:
- /bin/sh
- -c
- |
./init_scripts/.default_crawler.sh /app/diskover/diskover.py /data;
{{ range $index, $hostPathConfiguration := .Values.extraDataVolumeMounts }}
./init_scripts/.default_crawler.sh /app/diskover/diskover.py {{ $hostPathConfiguration.mountPath }};
{{ end }}
{{ range $index, $hostPathConfiguration := .Values.extraDataVolumeMounts }}
echo "{{$cronjobSchedule}} python3 /app/diskover/diskover.py {{ $hostPathConfiguration.mountPath }}" >> /config/crontab;
{{ end }}
echo "{{.Values.cronjobSchedule}} python3 /app/diskover/diskover.py /data" >> /config/crontab;
crontab /config/crontab;
env:
{{ $envListDiskover := (default list .Values.environmentVariables) }}
{{ $envListDiskover = mustAppend $envListDiskover (dict "name" "PUID" "value" .Values.ownerUID) }}
{{ $envListDiskover = mustAppend $envListDiskover (dict "name" "PGID" "value" .Values.ownerGID) }}
{{ include "common.containers.environmentVariables" (dict "environmentVariables" $envListDiskover) | nindent 12 }}
{{ include "common.networking.dnsConfiguration" .Values | nindent 6 }}
volumes: {{ include "common.storage.configureAppVolumes" .Values | nindent 8 }}
{{ range $index, $hostPathConfiguration := .Values.extraAppVolumeMounts }}
- name: extrappvolume-{{ $index }}
hostPath:
path: {{ $hostPathConfiguration.hostPath }}
{{ end }}
{{ range $index, $hostPathConfiguration := .Values.extraDataVolumeMounts }}
- name: extradatavolume-{{ $index }}
hostPath:
path: {{ $hostPathConfiguration.hostPath }}
{{ end }}
- name: diskover-initial-scripts
configMap:
defaultMode: 0700
name: "diskover-initial-scripts"

Some files were not shown because too many files have changed in this diff Show More