mirror of
https://github.com/truenas/charts.git
synced 2026-04-05 11:48:55 +08:00
Update catalog information
This commit is contained in:
38
catalog.json
38
catalog.json
@@ -376,7 +376,7 @@
|
||||
"latest_version": "1.0.22",
|
||||
"latest_app_version": "230603",
|
||||
"latest_human_version": "230603_1.0.22",
|
||||
"last_update": "2023-05-23 17:11:03",
|
||||
"last_update": "2023-06-05 10:20:26",
|
||||
"name": "photoprism",
|
||||
"recommended": false,
|
||||
"title": "PhotoPrism",
|
||||
@@ -637,6 +637,42 @@
|
||||
],
|
||||
"icon_url": "https://github.com/AdguardTeam/AdGuardHome/raw/master/doc/adguard_home_darkmode.svg"
|
||||
},
|
||||
"rsyncd": {
|
||||
"app_readme": "<h1>Rsyncd</h1>\n<p><a href=\"https://rsync.samba.org/\">Rsyncd</a> is an open source utility that provides fast incremental file transfer.</p>",
|
||||
"categories": [
|
||||
"storage"
|
||||
],
|
||||
"description": "Rsync is an open source utility that provides fast incremental file transfer.",
|
||||
"healthy": true,
|
||||
"healthy_error": null,
|
||||
"home": "https://github.com/truenas/containers/tree/main/apps/rsyncd",
|
||||
"location": "/__w/charts/charts/community/rsyncd",
|
||||
"latest_version": "1.0.0",
|
||||
"latest_app_version": "1.0.0",
|
||||
"latest_human_version": "1.0.0_1.0.0",
|
||||
"last_update": null,
|
||||
"name": "rsyncd",
|
||||
"recommended": false,
|
||||
"title": "Rsync Daemon",
|
||||
"maintainers": [
|
||||
{
|
||||
"name": "truenas",
|
||||
"url": "https://www.truenas.com/",
|
||||
"email": "dev@ixsystems.com"
|
||||
}
|
||||
],
|
||||
"tags": [
|
||||
"sync",
|
||||
"file transfer"
|
||||
],
|
||||
"screenshots": [],
|
||||
"sources": [
|
||||
"https://github.com/truenas/containers/tree/main/apps/rsyncd",
|
||||
"https://github.com/truenas/charts/tree/master/community/rsyncd",
|
||||
"https://hub.docker.com/r/ixsystems/rsyncd"
|
||||
],
|
||||
"icon_url": "https://rsync.samba.org/newrsynclogo.jpg"
|
||||
},
|
||||
"jellyfin": {
|
||||
"app_readme": "<h1>Jellyfin</h1>\n<p><a href=\"https://jellyfin.org/\">Jellyfin</a> is a Free Software Media System that puts you in control of managing and streaming your media.</p>\n<blockquote>\n<p>When application is installed, a container will be launched with <strong>root</strong> privileges.\nThis is required in order to apply the correct permissions to the <code>Jellyfin</code> directories.\nAfterward, the <code>Jellyfin</code> container will run as a <strong>non</strong>-root user (Default: <code>568</code>).\nAll mounted storage(s) will be <code>chown</code>ed only if the parent directory does not match the configured user.</p>\n</blockquote>",
|
||||
"categories": [
|
||||
|
||||
6
community/rsyncd/1.0.0/Chart.lock
Normal file
6
community/rsyncd/1.0.0/Chart.lock
Normal file
@@ -0,0 +1,6 @@
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: file://../../../common
|
||||
version: 1.0.8
|
||||
digest: sha256:254efaa1285f634b7a80b7baadeadbd20a680f7fee49d1d9d3c4618aa0d657ad
|
||||
generated: "2023-05-30T19:34:09.862999313+03:00"
|
||||
26
community/rsyncd/1.0.0/Chart.yaml
Normal file
26
community/rsyncd/1.0.0/Chart.yaml
Normal file
@@ -0,0 +1,26 @@
|
||||
name: rsyncd
|
||||
description: Rsync is an open source utility that provides fast incremental file transfer.
|
||||
annotations:
|
||||
title: Rsync Daemon
|
||||
type: application
|
||||
version: 1.0.0
|
||||
apiVersion: v2
|
||||
appVersion: 1.0.0
|
||||
kubeVersion: '>=1.16.0-0'
|
||||
maintainers:
|
||||
- name: truenas
|
||||
url: https://www.truenas.com/
|
||||
email: dev@ixsystems.com
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: file://../../../common
|
||||
version: 1.0.8
|
||||
home: https://github.com/truenas/containers/tree/main/apps/rsyncd
|
||||
icon: https://rsync.samba.org/newrsynclogo.jpg
|
||||
sources:
|
||||
- https://github.com/truenas/containers/tree/main/apps/rsyncd
|
||||
- https://github.com/truenas/charts/tree/master/community/rsyncd
|
||||
- https://hub.docker.com/r/ixsystems/rsyncd
|
||||
keywords:
|
||||
- rsync
|
||||
- sync
|
||||
3
community/rsyncd/1.0.0/README.md
Normal file
3
community/rsyncd/1.0.0/README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# Rsyncd
|
||||
|
||||
[Rsyncd](https://rsync.samba.org/) is an open source utility that provides fast incremental file transfer.
|
||||
3
community/rsyncd/1.0.0/app-readme.md
Normal file
3
community/rsyncd/1.0.0/app-readme.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# Rsyncd
|
||||
|
||||
[Rsyncd](https://rsync.samba.org/) is an open source utility that provides fast incremental file transfer.
|
||||
BIN
community/rsyncd/1.0.0/charts/common-1.0.8.tgz
Normal file
BIN
community/rsyncd/1.0.0/charts/common-1.0.8.tgz
Normal file
Binary file not shown.
59
community/rsyncd/1.0.0/ci/hostnet-multiple-values.yaml
Normal file
59
community/rsyncd/1.0.0/ci/hostnet-multiple-values.yaml
Normal file
@@ -0,0 +1,59 @@
|
||||
rsyncNetwork:
|
||||
hostNetwork: true
|
||||
|
||||
rsyncConfig:
|
||||
auxParams:
|
||||
- param: test-param
|
||||
value: test-value
|
||||
- param: test-param2
|
||||
value: test-value2
|
||||
rsyncModules:
|
||||
- enabled: true
|
||||
name: module_name1
|
||||
comment: "Comment for module"
|
||||
hostPath: /mnt/{{ .Release.Name }}/module1
|
||||
accessMode: RW
|
||||
maxConnections: 0
|
||||
uid: 0
|
||||
gid: 0
|
||||
hostsAllow:
|
||||
- 10.10.10.1
|
||||
- 10.10.10.2
|
||||
hostsDeny:
|
||||
- 11.10.10.1
|
||||
- 11.10.10.2
|
||||
auxParams:
|
||||
- param: mod-param1
|
||||
value: mod-value1
|
||||
- param: mod-param2
|
||||
value: mod-value2
|
||||
- enabled: true
|
||||
name: module_name2
|
||||
comment: "Comment for module2"
|
||||
hostPath: /mnt/{{ .Release.Name }}/module2
|
||||
accessMode: WO
|
||||
maxConnections: 100
|
||||
uid: 568
|
||||
gid: 568
|
||||
hostsAllow:
|
||||
- 10.10.10.1
|
||||
- 10.10.10.2
|
||||
hostsDeny:
|
||||
- 11.10.10.1
|
||||
- 11.10.10.2
|
||||
auxParams:
|
||||
- param: mod-param1
|
||||
value: mod-value1
|
||||
- param: mod-param2
|
||||
value: mod-value2
|
||||
- enabled: true
|
||||
name: module_name3
|
||||
comment: "Comment for module3"
|
||||
hostPath: /mnt/{{ .Release.Name }}/module3
|
||||
accessMode: RW
|
||||
maxConnections: 0
|
||||
uid: 1000
|
||||
gid: 1000
|
||||
hostsAllow: []
|
||||
hostsDeny: []
|
||||
auxParams: []
|
||||
56
community/rsyncd/1.0.0/ci/multiple-values.yaml
Normal file
56
community/rsyncd/1.0.0/ci/multiple-values.yaml
Normal file
@@ -0,0 +1,56 @@
|
||||
rsyncConfig:
|
||||
auxParams:
|
||||
- param: test-param
|
||||
value: test-value
|
||||
- param: test-param2
|
||||
value: test-value2
|
||||
rsyncModules:
|
||||
- enabled: true
|
||||
name: module_name1
|
||||
comment: "Comment for module"
|
||||
hostPath: /mnt/{{ .Release.Name }}/module1
|
||||
accessMode: RW
|
||||
maxConnections: 0
|
||||
uid: 0
|
||||
gid: 0
|
||||
hostsAllow:
|
||||
- 10.10.10.1
|
||||
- 10.10.10.2
|
||||
hostsDeny:
|
||||
- 11.10.10.1
|
||||
- 11.10.10.2
|
||||
auxParams:
|
||||
- param: mod-param1
|
||||
value: mod-value1
|
||||
- param: mod-param2
|
||||
value: mod-value2
|
||||
- enabled: true
|
||||
name: module_name2
|
||||
comment: "Comment for module2"
|
||||
hostPath: /mnt/{{ .Release.Name }}/module2
|
||||
accessMode: WO
|
||||
maxConnections: 100
|
||||
uid: 568
|
||||
gid: 568
|
||||
hostsAllow:
|
||||
- 10.10.10.1
|
||||
- 10.10.10.2
|
||||
hostsDeny:
|
||||
- 11.10.10.1
|
||||
- 11.10.10.2
|
||||
auxParams:
|
||||
- param: mod-param1
|
||||
value: mod-value1
|
||||
- param: mod-param2
|
||||
value: mod-value2
|
||||
- enabled: true
|
||||
name: module_name3
|
||||
comment: "Comment for module3"
|
||||
hostPath: /mnt/{{ .Release.Name }}/module3
|
||||
accessMode: RW
|
||||
maxConnections: 0
|
||||
uid: 1000
|
||||
gid: 1000
|
||||
hostsAllow: []
|
||||
hostsDeny: []
|
||||
auxParams: []
|
||||
17
community/rsyncd/1.0.0/ix_values.yaml
Normal file
17
community/rsyncd/1.0.0/ix_values.yaml
Normal file
@@ -0,0 +1,17 @@
|
||||
image:
|
||||
repository: ixsystems/rsyncd
|
||||
pullPolicy: IfNotPresent
|
||||
tag: '1.0.0'
|
||||
|
||||
resources:
|
||||
limits:
|
||||
cpu: 4000m
|
||||
memory: 8Gi
|
||||
|
||||
rsyncConfig:
|
||||
maxConnections: 4
|
||||
auxParams: []
|
||||
rsyncNetwork:
|
||||
hostNetwork: false
|
||||
rsyncPort: 30000
|
||||
rsyncModules: []
|
||||
20
community/rsyncd/1.0.0/metadata.yaml
Normal file
20
community/rsyncd/1.0.0/metadata.yaml
Normal file
@@ -0,0 +1,20 @@
|
||||
runAsContext:
|
||||
- userName: root
|
||||
groupName: root
|
||||
gid: 0
|
||||
uid: 0
|
||||
description: Rsync requires root privileges to start it's processes.
|
||||
capabilities:
|
||||
- name: CHOWN
|
||||
description: Rsync requires this ability to change ownership of files.
|
||||
- name: DAC_OVERRIDE
|
||||
description: Rsync requires this ability to override file permissions.
|
||||
- name: FOWNER
|
||||
description: Rsync requires this ability to override file ownership.
|
||||
- name: SETUID
|
||||
description: Rsync requires this ability to switch user for sub-processes.
|
||||
- name: SETGID
|
||||
description: Rsync requires this ability to switch group for sub-processes.
|
||||
- name: SYS_CHROOT
|
||||
description: Rsync requires this ability to use chroot for it's sub-processes.
|
||||
hostMounts: []
|
||||
230
community/rsyncd/1.0.0/questions.yaml
Normal file
230
community/rsyncd/1.0.0/questions.yaml
Normal file
@@ -0,0 +1,230 @@
|
||||
groups:
|
||||
- name: Rsync Configuration
|
||||
description: Configure Rsync
|
||||
- name: Network Configuration
|
||||
description: Configure Network for Rsync
|
||||
- name: Module Configuration
|
||||
description: Configure Modules for Rsync
|
||||
- name: Resources Configuration
|
||||
description: Configure Resources for Rsync
|
||||
|
||||
questions:
|
||||
- variable: rsyncConfig
|
||||
label: ""
|
||||
group: Rsync Configuration
|
||||
schema:
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: auxParams
|
||||
label: Auxillary Parameters
|
||||
description: Configure auxillary parameters for Rsync.
|
||||
schema:
|
||||
type: list
|
||||
default: []
|
||||
items:
|
||||
- variable: auxEntry
|
||||
label: Auxillary Parameter Entry
|
||||
schema:
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: param
|
||||
label: Parameter
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
- variable: value
|
||||
label: Value
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
|
||||
- variable: rsyncNetwork
|
||||
label: ""
|
||||
group: Network Configuration
|
||||
schema:
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: hostNetwork
|
||||
label: Host Network
|
||||
description: |
|
||||
Bind to the host network. It's recommended to keep this disabled.</br>
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: rsyncPort
|
||||
label: Rsync Port
|
||||
description: The port for Rsync.
|
||||
schema:
|
||||
type: int
|
||||
default: 30000
|
||||
min: 9000
|
||||
max: 65535
|
||||
required: true
|
||||
|
||||
- variable: rsyncModules
|
||||
label: ""
|
||||
group: Module Configuration
|
||||
schema:
|
||||
type: list
|
||||
default: []
|
||||
empty: false
|
||||
required: true
|
||||
items:
|
||||
- variable: module
|
||||
label: Rsync Module
|
||||
schema:
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: name
|
||||
label: Module Name
|
||||
description: |
|
||||
Module name that matches the name requested by the rsync client.
|
||||
schema:
|
||||
type: string
|
||||
valid_chars: '^[a-zA-Z0-9]+([_-]*[a-zA-Z0-9]+)+$'
|
||||
valid_chars_error: |
|
||||
Module Name, can include [Letters (a-z, A-Z), Numbers (0,9), Underscore (_), Dash (-)],</br>
|
||||
but cannot start or end with [Underscore (_), Dash (-), Dot (.)]
|
||||
required: true
|
||||
- variable: enabled
|
||||
label: Enable Module
|
||||
schema:
|
||||
type: boolean
|
||||
default: true
|
||||
show_subquestions_if: true
|
||||
subquestions:
|
||||
- variable: comment
|
||||
label: Comment
|
||||
description: Describe the module.
|
||||
schema:
|
||||
type: string
|
||||
- variable: hostPath
|
||||
label: Host Path
|
||||
description: |
|
||||
The path on the host to be shared with the client.</br>
|
||||
This path must exist on the host.
|
||||
schema:
|
||||
type: hostpath
|
||||
required: true
|
||||
- variable: accessMode
|
||||
label: Access Mode
|
||||
description: |
|
||||
Choose permissions for this rsync module.
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
default: RO
|
||||
enum:
|
||||
- value: RO
|
||||
description: Read Only
|
||||
- value: RW
|
||||
description: Read Write
|
||||
- value: WO
|
||||
description: Write Only
|
||||
- variable: maxConnections
|
||||
label: Max Connections
|
||||
description: |
|
||||
Maximum number of simultaneous connections to this module.</br>
|
||||
0 means unlimited.
|
||||
schema:
|
||||
type: int
|
||||
min: 0
|
||||
max: 1000
|
||||
default: 0
|
||||
required: true
|
||||
- variable: uid
|
||||
label: UID
|
||||
description: |
|
||||
The UID to use for this module.</br>
|
||||
schema:
|
||||
type: int
|
||||
min: 0
|
||||
max: 65535
|
||||
default: 568
|
||||
required: true
|
||||
- variable: gid
|
||||
label: GID
|
||||
description: |
|
||||
The GID to use for this module.</br>
|
||||
schema:
|
||||
type: int
|
||||
min: 0
|
||||
max: 65535
|
||||
default: 568
|
||||
required: true
|
||||
- variable: hostsAllow
|
||||
label: Hosts Allow
|
||||
description: |
|
||||
List of hosts allowed to connect to this module.</br>
|
||||
Leave empty to allow all hosts.
|
||||
schema:
|
||||
type: list
|
||||
default: []
|
||||
items:
|
||||
- variable: host
|
||||
label: Host to allow
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
- variable: hostsDeny
|
||||
label: Hosts Deny
|
||||
description: |
|
||||
List of hosts denied to connect to this module.</br>
|
||||
Leave empty to deny no hosts.
|
||||
schema:
|
||||
type: list
|
||||
default: []
|
||||
items:
|
||||
- variable: host
|
||||
label: Host to deny
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
- variable: auxParams
|
||||
label: Auxillary Parameters
|
||||
description: Configure auxillary parameters for this module.
|
||||
schema:
|
||||
type: list
|
||||
default: []
|
||||
items:
|
||||
- variable: auxEntry
|
||||
label: Auxillary Parameter Entry
|
||||
schema:
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: param
|
||||
label: Parameter
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
- variable: value
|
||||
label: Value
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
|
||||
- variable: resources
|
||||
group: Resources Configuration
|
||||
label: ""
|
||||
schema:
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: limits
|
||||
label: Limits
|
||||
schema:
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: cpu
|
||||
label: CPU
|
||||
description: CPU limit for Rsync.
|
||||
schema:
|
||||
type: string
|
||||
default: "4000m"
|
||||
required: true
|
||||
- variable: memory
|
||||
label: Memory
|
||||
description: Memory limit for Rsync.
|
||||
schema:
|
||||
type: string
|
||||
default: "8Gi"
|
||||
required: true
|
||||
1
community/rsyncd/1.0.0/templates/NOTES.txt
Normal file
1
community/rsyncd/1.0.0/templates/NOTES.txt
Normal file
@@ -0,0 +1 @@
|
||||
{{ include "ix.v1.common.lib.chart.notes" $ }}
|
||||
62
community/rsyncd/1.0.0/templates/_configuration.tpl
Normal file
62
community/rsyncd/1.0.0/templates/_configuration.tpl
Normal file
@@ -0,0 +1,62 @@
|
||||
{{- define "rsync.configuration" -}}
|
||||
{{- include "rsync.validation" $ }}
|
||||
configmap:
|
||||
config:
|
||||
enabled: true
|
||||
data:
|
||||
rsyncd.conf: |
|
||||
port = {{ .Values.rsyncNetwork.rsyncPort }}
|
||||
use chroot = yes
|
||||
pid file = /tmp/rsyncd.pid
|
||||
|
||||
max connections = {{ .Values.rsyncConfig.maxConnections }}
|
||||
log file = /dev/stdout
|
||||
|
||||
{{- range $aux := .Values.rsyncConfig.auxParams }}
|
||||
{{ printf "%v = %v" $aux.param $aux.value }}
|
||||
{{- end }}
|
||||
|
||||
{{- $mods := list -}}
|
||||
{{- range $mod := .Values.rsyncModules }}
|
||||
{{- if $mod.enabled -}}
|
||||
{{- include "rsync.module.validation" (dict "mod" $mod) }}
|
||||
|
||||
{{ printf "[%v]" $mod.name }}
|
||||
path = {{ printf "/data/%v" $mod.name }}
|
||||
max connections = {{ $mod.maxConnections }}
|
||||
uid = {{ $mod.uid }}
|
||||
gid = {{ $mod.gid }}
|
||||
{{- if $mod.comment }}
|
||||
comment = {{ $mod.comment }}
|
||||
{{- end }}
|
||||
|
||||
{{- if eq $mod.accessMode "RO" }}
|
||||
write only = false
|
||||
read only = true
|
||||
{{- else if eq $mod.accessMode "WO" }}
|
||||
write only = true
|
||||
read only = false
|
||||
{{- else if eq $mod.accessMode "RW" }}
|
||||
read only = false
|
||||
write only = false
|
||||
{{- end }}
|
||||
|
||||
{{- if $mod.hostsAllow }}
|
||||
hosts allow = {{ join " " $mod.hostsAllow }}
|
||||
{{- end }}
|
||||
|
||||
{{- if $mod.hostsDeny }}
|
||||
hosts deny = {{ join " " $mod.hostsDeny }}
|
||||
{{- end }}
|
||||
{{- range $aux := $mod.auxParams }}
|
||||
{{- include "rsync.aux.validation" (dict "aux" $aux) }}
|
||||
{{ printf "%v = %v" $aux.param $aux.value }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- $mods = mustAppend $mods $mod.name }}
|
||||
{{- end }}
|
||||
|
||||
{{- if not (deepEqual $mods (uniq $mods)) -}}
|
||||
{{- fail "Rsync - Module Names must be unique" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
97
community/rsyncd/1.0.0/templates/_rsync.tpl
Normal file
97
community/rsyncd/1.0.0/templates/_rsync.tpl
Normal file
@@ -0,0 +1,97 @@
|
||||
{{- define "rsync.workload" -}}
|
||||
workload:
|
||||
rsync:
|
||||
enabled: true
|
||||
primary: true
|
||||
type: Deployment
|
||||
podSpec:
|
||||
hostNetwork: {{ .Values.rsyncNetwork.hostNetwork }}
|
||||
containers:
|
||||
rsync:
|
||||
enabled: true
|
||||
primary: true
|
||||
imageSelector: image
|
||||
securityContext:
|
||||
runAsUser: 0
|
||||
runAsGroup: 0
|
||||
runAsNonRoot: false
|
||||
readOnlyRootFilesystem: false
|
||||
capabilities:
|
||||
add:
|
||||
- CHOWN
|
||||
- DAC_OVERRIDE
|
||||
- FOWNER
|
||||
- SETGID
|
||||
- SETUID
|
||||
- SYS_CHROOT
|
||||
probes:
|
||||
liveness:
|
||||
enabled: true
|
||||
type: exec
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- |
|
||||
pgrep rsync
|
||||
readiness:
|
||||
enabled: true
|
||||
type: exec
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- |
|
||||
pgrep rsync
|
||||
startup:
|
||||
enabled: true
|
||||
type: exec
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- |
|
||||
pgrep rsync
|
||||
|
||||
{{/* Service */}}
|
||||
service:
|
||||
rsync:
|
||||
enabled: true
|
||||
primary: true
|
||||
type: NodePort
|
||||
targetSelector: rsync
|
||||
ports:
|
||||
rsync:
|
||||
enabled: true
|
||||
primary: true
|
||||
port: {{ .Values.rsyncNetwork.rsyncPort }}
|
||||
nodePort: {{ .Values.rsyncNetwork.rsyncPort }}
|
||||
targetSelector: rsync
|
||||
|
||||
{{/* Persistence */}}
|
||||
persistence:
|
||||
temp:
|
||||
enabled: true
|
||||
type: emptyDir
|
||||
targetSelector:
|
||||
rsync:
|
||||
rsync:
|
||||
mountPath: /tmp
|
||||
rsync-conf:
|
||||
enabled: true
|
||||
type: configmap
|
||||
objectName: config
|
||||
targetSelector:
|
||||
rsync:
|
||||
rsync:
|
||||
mountPath: /etc/rsyncd.conf
|
||||
subPath: rsyncd.conf
|
||||
readOnly: true
|
||||
{{- range $idx, $mod := .Values.rsyncModules }}
|
||||
{{ printf "rsyncd-%v" (int $idx) }}:
|
||||
enabled: {{ $mod.enabled }}
|
||||
type: hostPath
|
||||
hostPath: {{ $mod.hostPath | default "" }}
|
||||
targetSelector:
|
||||
rsync:
|
||||
rsync:
|
||||
mountPath: {{ printf "/data/%v" $mod.name }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
79
community/rsyncd/1.0.0/templates/_validation.tpl
Normal file
79
community/rsyncd/1.0.0/templates/_validation.tpl
Normal file
@@ -0,0 +1,79 @@
|
||||
{{- define "rsync.validation" -}}
|
||||
{{- $reservedParams := (list
|
||||
"port" "use chroot" "pid file"
|
||||
"max connections" "log file"
|
||||
) -}}
|
||||
|
||||
{{- range .Values.rsyncConfig.auxParams -}}
|
||||
{{- include "rsync.aux.validation" (dict "aux" .) -}}
|
||||
|
||||
{{- if mustHas .param $reservedParams -}}
|
||||
{{- fail (printf "Rsync - Overriding parameter [%v] is not allowed." .param) -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- if not .Values.rsyncModules -}}
|
||||
{{- fail "Rsync - At least one module must be configured." -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "rsync.module.validation" -}}
|
||||
{{- $mod := .mod -}}
|
||||
{{- if not $mod.name -}}
|
||||
{{- fail "Rsync - [Module Name] is required." -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- if not (mustRegexMatch "^[a-zA-Z0-9]+([_-]*[a-zA-Z0-9]+)+$" $mod.name) -}}
|
||||
{{- $allow := "Can include [Letters (a-z, A-Z), Numbers (0,9), Underscore (_), Dash (-)]" -}}
|
||||
{{- $disallow := "But cannot start or end with [Underscore (_), Dash (-), Dot (.)]" -}}
|
||||
{{- fail (printf "Rsync - Module Name [%v] has invalid naming format. %v %v" $mod.name $allow $disallow) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- if not $mod.hostPath -}}
|
||||
{{- fail (printf "Rsync - [Host Path] on module [%v] is required." $mod.name) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- $modes := (list "RO" "RW" "WO") -}}
|
||||
{{- if not (mustHas $mod.accessMode $modes) -}}
|
||||
{{- fail (printf "Rsync - [Access Mode] must be one of [%v] on module [%v], but got [%v]." (join ", " $modes) $mod.name $mod.accessMode) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- if kindIs "invalid" $mod.maxConnections -}}
|
||||
{{- fail (printf "Rsync - [Max Connections] on module [%v] is required." $mod.name) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- if kindIs "invalid" $mod.uid -}}
|
||||
{{- fail (printf "Rsync - [User] on module [%v] is required." $mod.name) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- if kindIs "invalid" $mod.gid -}}
|
||||
{{- fail (printf "Rsync - [Group] on module [%v] is required." $mod.name) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- range $entry := $mod.hostsAllow -}}
|
||||
{{- if not $entry -}}
|
||||
{{- fail (printf "Rsync - Entry [%v] in [Hosts Allow] on module [%v] cannot be empty." $entry $mod.name) -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- range $entry := $mod.hostsDeny -}}
|
||||
{{- if not $entry -}}
|
||||
{{- fail (printf "Rsync - Entry [%v] in [Hosts Deny] on module [%v] cannot be empty." $entry $mod.name) -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- range $mod.auxParams -}}
|
||||
{{- include "rsync.aux.validation" (dict "aux" .) -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "rsync.aux.validation" -}}
|
||||
{{- $aux := .aux -}}
|
||||
{{- if not $aux.param -}}
|
||||
{{- fail "Rsync - Parameter name is required." -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- if not $aux.value -}}
|
||||
{{- fail (printf "Rsync - Value on parameter [%v] is required." $aux.param) -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
7
community/rsyncd/1.0.0/templates/common.yaml
Normal file
7
community/rsyncd/1.0.0/templates/common.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
{{- include "ix.v1.common.loader.init" . -}}
|
||||
|
||||
{{/* Merge the templates with Values */}}
|
||||
{{- $_ := mustMergeOverwrite .Values (include "rsync.configuration" $ | fromYaml) -}}
|
||||
{{- $_ := mustMergeOverwrite .Values (include "rsync.workload" $ | fromYaml) -}}
|
||||
|
||||
{{- include "ix.v1.common.loader.apply" . -}}
|
||||
7
community/rsyncd/item.yaml
Normal file
7
community/rsyncd/item.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
icon_url: https://rsync.samba.org/newrsynclogo.jpg
|
||||
screenshots: []
|
||||
categories:
|
||||
- storage
|
||||
tags:
|
||||
- sync
|
||||
- file transfer
|
||||
Reference in New Issue
Block a user