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:
StevenMcElligott
2022-09-05 11:45:53 +03:00
committed by GitHub
co-authored by Stavros Kois Stavros kois
parent 518b478375
commit 00851a31fb
10 changed files with 393 additions and 0 deletions
+2
View File
@@ -28,6 +28,8 @@ excluded-charts:
- charts/stable/zigbee2mqtt
- charts/stable/alertmanager-bot
- charts/stable/storj-node
- charts/stable/orbital-sync
- charts/incubator/orbital-sync
- charts/incubator/amcrest2mqtt
- charts/library/common
- charts/stable/foundryvtt
+30
View File
@@ -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
+31
View File
@@ -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
+1
View File
@@ -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" . }}
+61
View File
@@ -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
+9
View File
@@ -1,11 +1,13 @@
version: "0.2"
words:
- ADLIST
- airsonic
- aliasgroup
- allowtransparency
- APITOKEN
- appname
- appnamehere
- AUDITLOG
- Authentik
- Authexample
- authkey
@@ -39,6 +41,7 @@ words:
- Entrypoints
- eptgmk
- Fireshare
- FLUSHTABLES
- fullname
- gibibyte
- gluster
@@ -46,6 +49,7 @@ words:
- healthcheck
- healthchecks
- hexo
- HONEYBADGER
- hostpath
- hyperconverged
- hyperthread
@@ -75,11 +79,14 @@ words:
- letsencrypt
- lidarr
- loadbalancer
- LOCALCNAMERECORDS
- LOCALDNSRECORDS
- logfile
- loolwsd
- mailenabled
- Mailgun
- mariadbcreds
- mattwebbio
- mediafiles
- meshroom
- metallb
@@ -132,6 +139,7 @@ words:
- RECORDTYPES
- Recyclarr
- rediscreds
- REGEXLIST
- registeringats
- reneg
- replacementurlhere
@@ -149,6 +157,7 @@ words:
- srcsets
- ssvnc
- statefulset
- STATICDHCPLEASES
- staticfiles
- steamcommunica
- steammasterser