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
@@ -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
|
||||
Reference in New Issue
Block a user