feat(Orbital-Sync): Add Orbital Sync chart (#3702)
* feat(Orbital-Sync): Add Orbital-Sync * commit * fix values lint * More typos * typos! * Create README.md * some fixs * add options * add unlimited secondary hosts * add some defult values * quote * indentation... every time * shut up you lilttle princess * skip CI for this app.. Co-authored-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Co-authored-by: Stavros kois <s.kois@outlook.com>
This commit is contained in:
co-authored by
Stavros Kois
Stavros kois
parent
518b478375
commit
00851a31fb
@@ -28,6 +28,8 @@ excluded-charts:
|
|||||||
- charts/stable/zigbee2mqtt
|
- charts/stable/zigbee2mqtt
|
||||||
- charts/stable/alertmanager-bot
|
- charts/stable/alertmanager-bot
|
||||||
- charts/stable/storj-node
|
- charts/stable/storj-node
|
||||||
|
- charts/stable/orbital-sync
|
||||||
|
- charts/incubator/orbital-sync
|
||||||
- charts/incubator/amcrest2mqtt
|
- charts/incubator/amcrest2mqtt
|
||||||
- charts/library/common
|
- charts/library/common
|
||||||
- charts/stable/foundryvtt
|
- charts/stable/foundryvtt
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
# 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
|
||||||
|
.vscode/
|
||||||
|
# OWNERS file for Kubernetes
|
||||||
|
OWNERS
|
||||||
|
# helm-docs templates
|
||||||
|
*.gotmpl
|
||||||
|
# docs folder
|
||||||
|
/docs
|
||||||
|
# icon
|
||||||
|
icon.png
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
apiVersion: v2
|
||||||
|
appVersion: "v1.1.0"
|
||||||
|
dependencies:
|
||||||
|
- name: common
|
||||||
|
repository: https://library-charts.truecharts.org
|
||||||
|
version: 10.5.6
|
||||||
|
deprecated: false
|
||||||
|
description: Orbital Sync synchronizes multiple Pi-hole instances for high availability.
|
||||||
|
home: https://truecharts.org/docs/charts/stable/orbital-sync
|
||||||
|
icon: https://truecharts.org/img/hotlink-ok/chart-icons/orbital-sync.png
|
||||||
|
keywords:
|
||||||
|
- Orbital Sync
|
||||||
|
- Pi-Hole
|
||||||
|
- DNS
|
||||||
|
kubeVersion: ">=1.16.0-0"
|
||||||
|
maintainers:
|
||||||
|
- email: info@truecharts.org
|
||||||
|
name: TrueCharts
|
||||||
|
url: https://truecharts.org
|
||||||
|
name: orbital-sync
|
||||||
|
sources:
|
||||||
|
- https://github.com/truecharts/charts/tree/master/charts/incubator/orbital-sync
|
||||||
|
- https://github.com/mattwebbio/orbital-sync/pkgs/container/orbital-sync
|
||||||
|
type: application
|
||||||
|
version: 0.0.1
|
||||||
|
annotations:
|
||||||
|
truecharts.org/catagories: |
|
||||||
|
- network
|
||||||
|
- DNS
|
||||||
|
truecharts.org/SCALE-support: "true"
|
||||||
|
truecharts.org/grade: U
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
Bla bla for CI
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 63 KiB |
@@ -0,0 +1,224 @@
|
|||||||
|
# Include{groups}
|
||||||
|
portals: {}
|
||||||
|
questions:
|
||||||
|
# Include{global}
|
||||||
|
# Include{controller}
|
||||||
|
# Include{controllerDeployment}
|
||||||
|
# Include{replicas}
|
||||||
|
# Include{replica1}
|
||||||
|
# Include{strategy}
|
||||||
|
# Include{recreate}
|
||||||
|
# Include{controllerExpert}
|
||||||
|
# Include{controllerExpertExtraArgs}
|
||||||
|
- variable: orbital
|
||||||
|
group: Container Configuration
|
||||||
|
label: Orbital Configuration
|
||||||
|
schema:
|
||||||
|
additional_attrs: true
|
||||||
|
type: dict
|
||||||
|
attrs:
|
||||||
|
- variable: primary_host_base_url
|
||||||
|
label: Primary Host Base URL
|
||||||
|
description: The base URL of your Pi-hole, including the scheme (HTTP or HTTPS) and port but not including a following slash.
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
required: true
|
||||||
|
default: ""
|
||||||
|
- variable: primary_host_password
|
||||||
|
label: Primary Host Password
|
||||||
|
description: The password used to log in to the admin interface.
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
private: true
|
||||||
|
required: true
|
||||||
|
default: ""
|
||||||
|
- variable: honeybadger_api_key
|
||||||
|
label: Honeybadger API Key
|
||||||
|
description: Get notifications to honeybadger.io when the process crashes for any reason by creating a new project and putting your API key here.
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
private: true
|
||||||
|
default: ""
|
||||||
|
- variable: secondary_hosts
|
||||||
|
label: Secondary Hosts
|
||||||
|
description: You can add as many secondary hosts as you want
|
||||||
|
schema:
|
||||||
|
type: list
|
||||||
|
default: []
|
||||||
|
items:
|
||||||
|
- variable: host
|
||||||
|
label: Secondary Host Base URL
|
||||||
|
description: The base URL of your Pi-hole, including the scheme (HTTP or HTTPS) and port but not including a following slash.
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
required: true
|
||||||
|
default: ""
|
||||||
|
- variable: password
|
||||||
|
label: Secondary Host Password
|
||||||
|
description: The password used to log in to the admin interface.
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
required: true
|
||||||
|
private: true
|
||||||
|
default: ""
|
||||||
|
- variable: env
|
||||||
|
group: Container Configuration
|
||||||
|
label: Image Environment
|
||||||
|
schema:
|
||||||
|
additional_attrs: true
|
||||||
|
type: dict
|
||||||
|
attrs:
|
||||||
|
- variable: INTERVAL_MINUTES
|
||||||
|
label: Interval Minutes
|
||||||
|
description: How long to wait between synchronizations. Defaults to five minutes. Remember that the DNS server on your secondary servers restarts every time a sync is performed.
|
||||||
|
schema:
|
||||||
|
type: int
|
||||||
|
default: 30
|
||||||
|
- variable: SYNC_WHITELIST
|
||||||
|
label: Sync Whitelist
|
||||||
|
description: Copies the whitelist
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
- variable: SYNC_REGEX_WHITELIST
|
||||||
|
label: Sync Regex Whitelist
|
||||||
|
description: Copies the regex whitelist
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
- variable: SYNC_BLACKLIST
|
||||||
|
label: Sync Blacklist
|
||||||
|
description: Copies the blacklist
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
- variable: SYNC_REGEXLIST
|
||||||
|
label: Sync Regex List
|
||||||
|
description: Copies the regex blacklist
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
- variable: SYNC_ADLIST
|
||||||
|
label: Sync Ad List
|
||||||
|
description: Copies the adlist
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
- variable: SYNC_CLIENT
|
||||||
|
label: Sync Client
|
||||||
|
description: Copies clients
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
- variable: SYNC_GROUP
|
||||||
|
label: Sync Group
|
||||||
|
description: Copies groups
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
- variable: SYNC_AUDITLOG
|
||||||
|
label: Sync Auditlog
|
||||||
|
description: Copies the audit log
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
- variable: SYNC_STATICDHCPLEASES
|
||||||
|
label: Sync Static DHCP Leases
|
||||||
|
description: Copies static dhcp leases
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
- variable: SYNC_LOCALDNSRECORDS
|
||||||
|
label: Sync Local DNS Records
|
||||||
|
description: Copies local DNS records
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
- variable: SYNC_LOCALCNAMERECORDS
|
||||||
|
label: Sync Local CNAME Records
|
||||||
|
description: Copies local CNAME records
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
- variable: SYNC_FLUSHTABLES
|
||||||
|
label: Sync Flush Tables
|
||||||
|
description: Clears existing data on the secondary (copy target) Pi-hole
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
- variable: RUN_ONCE
|
||||||
|
label: Run Once
|
||||||
|
description: By default, orbital-sync runs indefinitely until stopped. Setting RUN_ONCE to true forces it to exit immediately after the first sync.
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
- variable: VERBOSE
|
||||||
|
label: Verbose
|
||||||
|
description: Whether to output extra log output. Used for debugging.
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
# Include{containerConfig}
|
||||||
|
# Include{serviceExpertRoot}
|
||||||
|
default: false
|
||||||
|
# Include{serviceExpert}
|
||||||
|
# Include{serviceList}
|
||||||
|
# Include{persistenceRoot}
|
||||||
|
- variable: config
|
||||||
|
label: App Config Storage
|
||||||
|
description: Stores the Application Configuration.
|
||||||
|
schema:
|
||||||
|
additional_attrs: true
|
||||||
|
type: dict
|
||||||
|
attrs:
|
||||||
|
# Include{persistenceBasic}
|
||||||
|
# Include{persistenceAdvanced}
|
||||||
|
# Include{persistenceList}
|
||||||
|
# Include{ingressList}
|
||||||
|
# Include{security}
|
||||||
|
# Include{securityContextAdvancedRoot}
|
||||||
|
- variable: privileged
|
||||||
|
label: Privileged mode
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
- variable: readOnlyRootFilesystem
|
||||||
|
label: ReadOnly Root Filesystem
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
- variable: allowPrivilegeEscalation
|
||||||
|
label: Allow Privilege Escalation
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
- variable: runAsNonRoot
|
||||||
|
label: runAsNonRoot
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
# Include{securityContextAdvanced}
|
||||||
|
# Include{podSecurityContextRoot}
|
||||||
|
- variable: runAsUser
|
||||||
|
label: runAsUser
|
||||||
|
description: The UserID of the user running the application
|
||||||
|
schema:
|
||||||
|
type: int
|
||||||
|
default: 0
|
||||||
|
- variable: runAsGroup
|
||||||
|
label: runAsGroup
|
||||||
|
description: The groupID this App of the user running the application
|
||||||
|
schema:
|
||||||
|
type: int
|
||||||
|
default: 0
|
||||||
|
- variable: fsGroup
|
||||||
|
label: fsGroup
|
||||||
|
description: The group that should own ALL storage.
|
||||||
|
schema:
|
||||||
|
type: int
|
||||||
|
default: 568
|
||||||
|
# Include{podSecurityContextAdvanced}
|
||||||
|
# Include{resources}
|
||||||
|
# Include{advanced}
|
||||||
|
# Include{addons}
|
||||||
|
# Include{documentation}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
{{- define "orbital.hosts" -}}
|
||||||
|
|
||||||
|
{{- $secretName := printf "%s-config" (include "tc.common.names.fullname" .) }}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
type: Opaque
|
||||||
|
metadata:
|
||||||
|
name: {{ $secretName }}
|
||||||
|
labels:
|
||||||
|
{{- include "tc.common.labels" . | nindent 4 }}
|
||||||
|
data:
|
||||||
|
PRIMARY_HOST_BASE_URL: {{ .Values.orbital.primary_host_base_url | b64enc }}
|
||||||
|
PRIMARY_HOST_PASSWORD: {{ .Values.orbital.primary_host_password | b64enc }}
|
||||||
|
{{- with .Values.orbital.honeybadger_api_key }}
|
||||||
|
HONEYBADGER_API_KEY: {{ . | b64enc }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{ $idx := 1 }}
|
||||||
|
{{- range .Values.orbital.secondary_hosts }}
|
||||||
|
SECONDARY_HOST_{{$idx}}_BASE_URL: {{ .host | b64enc }}
|
||||||
|
SECONDARY_HOST_{{$idx}}_PASSWORD: {{ .password | b64enc }}
|
||||||
|
{{ $idx = add1 $idx }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
{{/* Make sure all variables are set properly */}}
|
||||||
|
{{- include "tc.common.loader.init" . }}
|
||||||
|
|
||||||
|
{{/* Render config */}}
|
||||||
|
{{- include "orbital.hosts" . }}
|
||||||
|
|
||||||
|
{{/* Render the templates */}}
|
||||||
|
{{ include "tc.common.loader.apply" . }}
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
image:
|
||||||
|
repository: ghcr.io/mattwebbio/orbital-sync
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
tag: v1.1.0@sha256:01e8abdcb4863c047fc081c7aae33c0fa1d28da3cfbb27f5b6692c3f311d88f4
|
||||||
|
|
||||||
|
securityContext:
|
||||||
|
readOnlyRootFilesystem: false
|
||||||
|
|
||||||
|
probes:
|
||||||
|
liveness:
|
||||||
|
enabled: false
|
||||||
|
readiness:
|
||||||
|
enabled: false
|
||||||
|
startup:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
service:
|
||||||
|
main:
|
||||||
|
enabled: false
|
||||||
|
ports:
|
||||||
|
main:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
envFrom:
|
||||||
|
- secretRef:
|
||||||
|
name: '{{ include "tc.common.names.fullname" . }}-config'
|
||||||
|
|
||||||
|
env:
|
||||||
|
INTERVAL_MINUTES: 30
|
||||||
|
SYNC_WHITELIST: true
|
||||||
|
SYNC_REGEX_WHITELIST: true
|
||||||
|
SYNC_BLACKLIST: true
|
||||||
|
SYNC_REGEXLIST: true
|
||||||
|
SYNC_ADLIST: true
|
||||||
|
SYNC_CLIENT: true
|
||||||
|
SYNC_GROUP: true
|
||||||
|
SYNC_AUDITLOG: false
|
||||||
|
SYNC_STATICDHCPLEASES: false
|
||||||
|
SYNC_LOCALDNSRECORDS: true
|
||||||
|
SYNC_LOCALCNAMERECORDS: true
|
||||||
|
SYNC_FLUSHTABLES: true
|
||||||
|
RUN_ONCE: false
|
||||||
|
VERBOSE: false
|
||||||
|
|
||||||
|
orbital:
|
||||||
|
honeybadger_api_key: ""
|
||||||
|
primary_host_base_url: http://pihole.local
|
||||||
|
primary_host_password: password
|
||||||
|
secondary_hosts:
|
||||||
|
- host: http://pihole2.local
|
||||||
|
password: password
|
||||||
|
# - host: http://10.10.10.1:1234
|
||||||
|
# password: "supersecretpass"
|
||||||
|
|
||||||
|
persistence:
|
||||||
|
config:
|
||||||
|
enabled: true
|
||||||
|
mountPath: "/app"
|
||||||
|
|
||||||
|
portal:
|
||||||
|
enabled: false
|
||||||
@@ -1,11 +1,13 @@
|
|||||||
version: "0.2"
|
version: "0.2"
|
||||||
words:
|
words:
|
||||||
|
- ADLIST
|
||||||
- airsonic
|
- airsonic
|
||||||
- aliasgroup
|
- aliasgroup
|
||||||
- allowtransparency
|
- allowtransparency
|
||||||
- APITOKEN
|
- APITOKEN
|
||||||
- appname
|
- appname
|
||||||
- appnamehere
|
- appnamehere
|
||||||
|
- AUDITLOG
|
||||||
- Authentik
|
- Authentik
|
||||||
- Authexample
|
- Authexample
|
||||||
- authkey
|
- authkey
|
||||||
@@ -39,6 +41,7 @@ words:
|
|||||||
- Entrypoints
|
- Entrypoints
|
||||||
- eptgmk
|
- eptgmk
|
||||||
- Fireshare
|
- Fireshare
|
||||||
|
- FLUSHTABLES
|
||||||
- fullname
|
- fullname
|
||||||
- gibibyte
|
- gibibyte
|
||||||
- gluster
|
- gluster
|
||||||
@@ -46,6 +49,7 @@ words:
|
|||||||
- healthcheck
|
- healthcheck
|
||||||
- healthchecks
|
- healthchecks
|
||||||
- hexo
|
- hexo
|
||||||
|
- HONEYBADGER
|
||||||
- hostpath
|
- hostpath
|
||||||
- hyperconverged
|
- hyperconverged
|
||||||
- hyperthread
|
- hyperthread
|
||||||
@@ -75,11 +79,14 @@ words:
|
|||||||
- letsencrypt
|
- letsencrypt
|
||||||
- lidarr
|
- lidarr
|
||||||
- loadbalancer
|
- loadbalancer
|
||||||
|
- LOCALCNAMERECORDS
|
||||||
|
- LOCALDNSRECORDS
|
||||||
- logfile
|
- logfile
|
||||||
- loolwsd
|
- loolwsd
|
||||||
- mailenabled
|
- mailenabled
|
||||||
- Mailgun
|
- Mailgun
|
||||||
- mariadbcreds
|
- mariadbcreds
|
||||||
|
- mattwebbio
|
||||||
- mediafiles
|
- mediafiles
|
||||||
- meshroom
|
- meshroom
|
||||||
- metallb
|
- metallb
|
||||||
@@ -132,6 +139,7 @@ words:
|
|||||||
- RECORDTYPES
|
- RECORDTYPES
|
||||||
- Recyclarr
|
- Recyclarr
|
||||||
- rediscreds
|
- rediscreds
|
||||||
|
- REGEXLIST
|
||||||
- registeringats
|
- registeringats
|
||||||
- reneg
|
- reneg
|
||||||
- replacementurlhere
|
- replacementurlhere
|
||||||
@@ -149,6 +157,7 @@ words:
|
|||||||
- srcsets
|
- srcsets
|
||||||
- ssvnc
|
- ssvnc
|
||||||
- statefulset
|
- statefulset
|
||||||
|
- STATICDHCPLEASES
|
||||||
- staticfiles
|
- staticfiles
|
||||||
- steamcommunica
|
- steamcommunica
|
||||||
- steammasterser
|
- steammasterser
|
||||||
|
|||||||
Reference in New Issue
Block a user