netbox initial
This commit is contained in:
6
netbox/kustomization.yaml
Normal file
6
netbox/kustomization.yaml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
|
||||||
|
resources:
|
||||||
|
- main.yaml
|
||||||
991
netbox/main.yaml
Normal file
991
netbox/main.yaml
Normal file
@@ -0,0 +1,991 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
automountServiceAccountToken: false
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: netbox
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
app.kubernetes.io/name: netbox
|
||||||
|
app.kubernetes.io/version: v4.4.4
|
||||||
|
helm.sh/chart: netbox-7.1.11
|
||||||
|
name: netbox
|
||||||
|
namespace: netbox
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: Role
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: netbox
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
app.kubernetes.io/name: netbox
|
||||||
|
app.kubernetes.io/version: v4.4.4
|
||||||
|
helm.sh/chart: netbox-7.1.11
|
||||||
|
name: netbox
|
||||||
|
namespace: netbox
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- apps
|
||||||
|
resources:
|
||||||
|
- statefulsets
|
||||||
|
- deployments
|
||||||
|
- replicasets
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: RoleBinding
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: netbox
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
app.kubernetes.io/name: netbox
|
||||||
|
app.kubernetes.io/version: v4.4.4
|
||||||
|
helm.sh/chart: netbox-7.1.11
|
||||||
|
name: netbox
|
||||||
|
namespace: netbox
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: Role
|
||||||
|
name: netbox
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: netbox
|
||||||
|
namespace: netbox
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
configuration.py: |2-
|
||||||
|
|
||||||
|
"""
|
||||||
|
This file serves as a base configuration for Netbox
|
||||||
|
https://netboxlabs.com/docs/netbox/en/stable/configuration/
|
||||||
|
"""
|
||||||
|
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
import yaml
|
||||||
|
|
||||||
|
|
||||||
|
def _deep_merge(source, destination):
|
||||||
|
"""Inspired by https://stackoverflow.com/a/20666342"""
|
||||||
|
for key, value in source.items():
|
||||||
|
dst_value = destination.get(key)
|
||||||
|
|
||||||
|
if isinstance(value, dict) and isinstance(dst_value, dict):
|
||||||
|
_deep_merge(value, dst_value)
|
||||||
|
else:
|
||||||
|
destination[key] = value
|
||||||
|
|
||||||
|
return destination
|
||||||
|
|
||||||
|
|
||||||
|
def _load_yaml() -> None:
|
||||||
|
"""Load YAML from files"""
|
||||||
|
extra_config_base = Path("/run/config/extra")
|
||||||
|
config_files = [Path("/run/config/netbox/netbox.yaml")]
|
||||||
|
|
||||||
|
config_files.extend(sorted(extra_config_base.glob("*/*.yaml")))
|
||||||
|
|
||||||
|
for config_file in config_files:
|
||||||
|
with open(config_file, "r", encoding="utf-8") as f:
|
||||||
|
config = yaml.safe_load(f)
|
||||||
|
_deep_merge(config, globals())
|
||||||
|
|
||||||
|
|
||||||
|
def _read_secret(secret_name: str, secret_key: str, default: str | None = None) -> str | None:
|
||||||
|
"""Read secret from file"""
|
||||||
|
try:
|
||||||
|
secret = open(
|
||||||
|
f"/run/secrets/{secret_name}/{secret_key}",
|
||||||
|
"r",
|
||||||
|
encoding="utf-8",
|
||||||
|
)
|
||||||
|
except EnvironmentError:
|
||||||
|
return default
|
||||||
|
with secret:
|
||||||
|
return secret.readline().strip()
|
||||||
|
|
||||||
|
|
||||||
|
CORS_ORIGIN_REGEX_WHITELIST = []
|
||||||
|
DATABASES = {}
|
||||||
|
EMAIL = {}
|
||||||
|
REDIS = {}
|
||||||
|
|
||||||
|
_load_yaml()
|
||||||
|
|
||||||
|
provided_secret_name = os.getenv("SECRET_NAME", "netbox")
|
||||||
|
|
||||||
|
DATABASES["default"]["PASSWORD"] = _read_secret(provided_secret_name, "db_password")
|
||||||
|
EMAIL["PASSWORD"] = _read_secret(provided_secret_name, "email_password")
|
||||||
|
REDIS["tasks"]["PASSWORD"] = _read_secret(provided_secret_name, "tasks_password")
|
||||||
|
REDIS["caching"]["PASSWORD"] = _read_secret(provided_secret_name, "cache_password")
|
||||||
|
SECRET_KEY = _read_secret(provided_secret_name, "secret_key")
|
||||||
|
|
||||||
|
# Post-process certain values
|
||||||
|
CORS_ORIGIN_REGEX_WHITELIST = [re.compile(r) for r in CORS_ORIGIN_REGEX_WHITELIST]
|
||||||
|
if "SENTINELS" in REDIS["tasks"]:
|
||||||
|
REDIS["tasks"]["SENTINELS"] = [tuple(x.split(r":")) for x in REDIS["tasks"]["SENTINELS"]]
|
||||||
|
if "SENTINELS" in REDIS["caching"]:
|
||||||
|
REDIS["caching"]["SENTINELS"] = [tuple(x.split(r":")) for x in REDIS["caching"]["SENTINELS"]]
|
||||||
|
if ALLOWED_HOSTS_INCLUDES_POD_ID:
|
||||||
|
ALLOWED_HOSTS.append(os.getenv("POD_IP"))
|
||||||
|
netbox.yaml: |-
|
||||||
|
ALLOWED_HOSTS: ["*"]
|
||||||
|
ALLOWED_HOSTS_INCLUDES_POD_ID: true
|
||||||
|
|
||||||
|
DATABASES:
|
||||||
|
default:
|
||||||
|
HOST: "cnpg-netbox-cluster-rw"
|
||||||
|
USER: "netbox"
|
||||||
|
NAME: "netbox"
|
||||||
|
PORT: 5432
|
||||||
|
ENGINE: "django.db.backends.postgresql"
|
||||||
|
OPTIONS:
|
||||||
|
sslmode: prefer
|
||||||
|
target_session_attrs: read-write
|
||||||
|
CONN_MAX_AGE: 300
|
||||||
|
DISABLE_SERVER_SIDE_CURSORS: false
|
||||||
|
|
||||||
|
ADMINS: []
|
||||||
|
ALLOW_TOKEN_RETRIEVAL: false
|
||||||
|
AUTH_PASSWORD_VALIDATORS: []
|
||||||
|
ALLOWED_URL_SCHEMES: ["file","ftp","ftps","http","https","irc","mailto","sftp","ssh","tel","telnet","tftp","vnc","xmpp"]
|
||||||
|
BANNER_TOP: ""
|
||||||
|
BANNER_BOTTOM: ""
|
||||||
|
BANNER_LOGIN: ""
|
||||||
|
BASE_PATH: ""
|
||||||
|
CHANGELOG_RETENTION: 90
|
||||||
|
CUSTOM_VALIDATORS: {}
|
||||||
|
DEFAULT_USER_PREFERENCES: {}
|
||||||
|
CORS_ORIGIN_ALLOW_ALL: false
|
||||||
|
CORS_ORIGIN_WHITELIST: []
|
||||||
|
CORS_ORIGIN_REGEX_WHITELIST: []
|
||||||
|
CSRF_TRUSTED_ORIGINS: []
|
||||||
|
DATA_UPLOAD_MAX_MEMORY_SIZE: 2621440
|
||||||
|
DEBUG: false
|
||||||
|
DEFAULT_LANGUAGE: "en-us"
|
||||||
|
|
||||||
|
EMAIL:
|
||||||
|
SERVER: "localhost"
|
||||||
|
PORT: 25
|
||||||
|
USERNAME: ""
|
||||||
|
USE_SSL: false
|
||||||
|
USE_TLS: false
|
||||||
|
SSL_CERTFILE: ""
|
||||||
|
SSL_KEYFILE: ""
|
||||||
|
TIMEOUT: 10
|
||||||
|
FROM_EMAIL: ""
|
||||||
|
|
||||||
|
ENFORCE_GLOBAL_UNIQUE: true
|
||||||
|
EXEMPT_VIEW_PERMISSIONS: []
|
||||||
|
FIELD_CHOICES: {}
|
||||||
|
FILE_UPLOAD_MAX_MEMORY_SIZE: 2621440
|
||||||
|
GRAPHQL_ENABLED: true
|
||||||
|
HTTP_PROXIES: {}
|
||||||
|
INTERNAL_IPS: ["127.0.0.1","::1"]
|
||||||
|
JOB_RETENTION: 90
|
||||||
|
LOGGING: {}
|
||||||
|
LOGIN_PERSISTENCE: false
|
||||||
|
LOGIN_REQUIRED: false
|
||||||
|
LOGIN_TIMEOUT: 1209600
|
||||||
|
LOGOUT_REDIRECT_URL: "home"
|
||||||
|
MAINTENANCE_MODE: false
|
||||||
|
MAPS_URL: "https://maps.google.com/?q="
|
||||||
|
MAX_PAGE_SIZE: 1000
|
||||||
|
MEDIA_ROOT: /opt/netbox/netbox/media
|
||||||
|
STORAGES: {}
|
||||||
|
METRICS_ENABLED: false
|
||||||
|
PAGINATE_COUNT: 50
|
||||||
|
PLUGINS: []
|
||||||
|
PLUGINS_CONFIG: {}
|
||||||
|
POWERFEED_DEFAULT_AMPERAGE: 15
|
||||||
|
POWERFEED_DEFAULT_MAX_UTILIZATION: 80
|
||||||
|
POWERFEED_DEFAULT_VOLTAGE: 120
|
||||||
|
PREFER_IPV4: false
|
||||||
|
RACK_ELEVATION_DEFAULT_UNIT_HEIGHT: 22
|
||||||
|
RACK_ELEVATION_DEFAULT_UNIT_WIDTH: 220
|
||||||
|
REMOTE_AUTH_ENABLED: false
|
||||||
|
REMOTE_AUTH_BACKEND: ["netbox.authentication.RemoteUserBackend"]
|
||||||
|
REMOTE_AUTH_HEADER: "HTTP_REMOTE_USER"
|
||||||
|
REMOTE_AUTH_USER_FIRST_NAME: "HTTP_REMOTE_USER_FIRST_NAME"
|
||||||
|
REMOTE_AUTH_USER_LAST_NAME: "HTTP_REMOTE_USER_LAST_NAME"
|
||||||
|
REMOTE_AUTH_USER_EMAIL: "HTTP_REMOTE_USER_EMAIL"
|
||||||
|
REMOTE_AUTH_AUTO_CREATE_USER: false
|
||||||
|
REMOTE_AUTH_AUTO_CREATE_GROUPS: false
|
||||||
|
REMOTE_AUTH_DEFAULT_GROUPS: []
|
||||||
|
REMOTE_AUTH_DEFAULT_PERMISSIONS: {}
|
||||||
|
REMOTE_AUTH_GROUP_SYNC_ENABLED: false
|
||||||
|
REMOTE_AUTH_GROUP_HEADER: "HTTP_REMOTE_USER_GROUP"
|
||||||
|
REMOTE_AUTH_SUPERUSER_GROUPS: []
|
||||||
|
REMOTE_AUTH_SUPERUSERS: []
|
||||||
|
REMOTE_AUTH_STAFF_GROUPS: []
|
||||||
|
REMOTE_AUTH_STAFF_USERS: []
|
||||||
|
REMOTE_AUTH_GROUP_SEPARATOR: "|"
|
||||||
|
RELEASE_CHECK_URL: ""
|
||||||
|
|
||||||
|
REDIS:
|
||||||
|
tasks:
|
||||||
|
HOST: "valkey.valkey.svc.cluster.local"
|
||||||
|
PORT: 6379
|
||||||
|
USERNAME: ""
|
||||||
|
DATABASE: 3
|
||||||
|
SSL: false
|
||||||
|
INSECURE_SKIP_TLS_VERIFY: false
|
||||||
|
CA_CERT_PATH: ""
|
||||||
|
caching:
|
||||||
|
HOST: "valkey.valkey.svc.cluster.local"
|
||||||
|
PORT: 6379
|
||||||
|
USERNAME: ""
|
||||||
|
DATABASE: 4
|
||||||
|
SSL: false
|
||||||
|
INSECURE_SKIP_TLS_VERIFY: false
|
||||||
|
CA_CERT_PATH: ""
|
||||||
|
|
||||||
|
REPORTS_ROOT: /opt/netbox/netbox/reports
|
||||||
|
RQ_DEFAULT_TIMEOUT: 300
|
||||||
|
SCRIPTS_ROOT: /opt/netbox/netbox/scripts
|
||||||
|
CSRF_COOKIE_NAME: "csrftoken"
|
||||||
|
SESSION_COOKIE_NAME: sessionid
|
||||||
|
ENABLE_LOCALIZATION: false
|
||||||
|
TIME_ZONE: "UTC"
|
||||||
|
DATE_FORMAT: "N j, Y"
|
||||||
|
SHORT_DATE_FORMAT: "Y-m-d"
|
||||||
|
TIME_FORMAT: "g:i a"
|
||||||
|
SHORT_TIME_FORMAT: "H:i:s"
|
||||||
|
DATETIME_FORMAT: "N j, Y g:i a"
|
||||||
|
SHORT_DATETIME_FORMAT: "Y-m-d H:i"
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: netbox
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
app.kubernetes.io/name: netbox
|
||||||
|
app.kubernetes.io/version: v4.4.4
|
||||||
|
helm.sh/chart: netbox-7.1.11
|
||||||
|
name: netbox
|
||||||
|
namespace: netbox
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
email_password: ""
|
||||||
|
secret_key: Ym9JSkxAeXJYcW1YakxuMCIhK3JaclJqIScpM2RtS2kxTD4+VlIqXlg6OVtVMDQ9M2lrXHZLNWhbdDU3
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: netbox
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
app.kubernetes.io/name: netbox
|
||||||
|
app.kubernetes.io/version: v4.4.4
|
||||||
|
helm.sh/chart: netbox-7.1.11
|
||||||
|
name: netbox-config
|
||||||
|
namespace: netbox
|
||||||
|
type: Opaque
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
cache_password: ""
|
||||||
|
tasks_password: Ymx1YmJlcg==
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: netbox
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
app.kubernetes.io/name: netbox
|
||||||
|
app.kubernetes.io/version: v4.4.4
|
||||||
|
helm.sh/chart: netbox-7.1.11
|
||||||
|
name: netbox-kv
|
||||||
|
namespace: netbox
|
||||||
|
type: Opaque
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
api_token: YjcwNzI5MGMtYmE3MC00MmMzLTg2MWYtMzUyMzU5YzIyNzc5
|
||||||
|
email: YWRtaW5AZXhhbXBsZS5jb20=
|
||||||
|
password: a0FCT2JxUTFJUA==
|
||||||
|
username: YWRtaW4=
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: netbox
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
app.kubernetes.io/name: netbox
|
||||||
|
app.kubernetes.io/version: v4.4.4
|
||||||
|
helm.sh/chart: netbox-7.1.11
|
||||||
|
name: netbox-superuser
|
||||||
|
namespace: netbox
|
||||||
|
type: kubernetes.io/basic-auth
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: netbox
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
app.kubernetes.io/name: netbox
|
||||||
|
app.kubernetes.io/version: v4.4.4
|
||||||
|
helm.sh/chart: netbox-7.1.11
|
||||||
|
name: netbox
|
||||||
|
namespace: netbox
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
nodePort: null
|
||||||
|
port: 80
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: http
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/component: netbox
|
||||||
|
app.kubernetes.io/instance: netbox
|
||||||
|
app.kubernetes.io/name: netbox
|
||||||
|
sessionAffinity: None
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: netbox
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
app.kubernetes.io/name: netbox
|
||||||
|
app.kubernetes.io/version: v4.4.4
|
||||||
|
helm.sh/chart: netbox-7.1.11
|
||||||
|
name: netbox-media
|
||||||
|
namespace: netbox
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 1Gi
|
||||||
|
storageClassName: openebs-3-replicas
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/component: netbox
|
||||||
|
app.kubernetes.io/instance: netbox
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
app.kubernetes.io/name: netbox
|
||||||
|
app.kubernetes.io/version: v4.4.4
|
||||||
|
helm.sh/chart: netbox-7.1.11
|
||||||
|
name: netbox
|
||||||
|
namespace: netbox
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
revisionHistoryLimit: 10
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/component: netbox
|
||||||
|
app.kubernetes.io/instance: netbox
|
||||||
|
app.kubernetes.io/name: netbox
|
||||||
|
strategy:
|
||||||
|
type: RollingUpdate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
checksum/config: 700ca816c994c518b5ab4d10edb328a359017172480d4199d5860a4713b4c091
|
||||||
|
checksum/secret: ac76943039914a3d7a2e7234a2fed36ba39dd6f42d379734eb6a6bc5a448944a
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/component: netbox
|
||||||
|
app.kubernetes.io/instance: netbox
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
app.kubernetes.io/name: netbox
|
||||||
|
app.kubernetes.io/version: v4.4.4
|
||||||
|
helm.sh/chart: netbox-7.1.11
|
||||||
|
spec:
|
||||||
|
automountServiceAccountToken: false
|
||||||
|
containers:
|
||||||
|
- env:
|
||||||
|
- name: SUPERUSER_NAME
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
key: username
|
||||||
|
name: netbox-superuser
|
||||||
|
- name: SUPERUSER_EMAIL
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
key: email
|
||||||
|
name: netbox-superuser
|
||||||
|
- name: POD_IP
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
apiVersion: v1
|
||||||
|
fieldPath: status.podIP
|
||||||
|
image: ghcr.io/netbox-community/netbox:v4.4.4
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
livenessProbe:
|
||||||
|
failureThreshold: 3
|
||||||
|
httpGet:
|
||||||
|
path: /status/applications/netbox/processes/running
|
||||||
|
port: nginx-status
|
||||||
|
initialDelaySeconds: 0
|
||||||
|
periodSeconds: 10
|
||||||
|
successThreshold: 1
|
||||||
|
timeoutSeconds: 1
|
||||||
|
name: netbox
|
||||||
|
ports:
|
||||||
|
- containerPort: 8080
|
||||||
|
name: http
|
||||||
|
protocol: TCP
|
||||||
|
- containerPort: 8081
|
||||||
|
name: nginx-status
|
||||||
|
protocol: TCP
|
||||||
|
readinessProbe:
|
||||||
|
failureThreshold: 3
|
||||||
|
httpGet:
|
||||||
|
path: /login/
|
||||||
|
port: http
|
||||||
|
initialDelaySeconds: 0
|
||||||
|
periodSeconds: 10
|
||||||
|
successThreshold: 1
|
||||||
|
timeoutSeconds: 1
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 750m
|
||||||
|
ephemeral-storage: 2Gi
|
||||||
|
memory: 1536Mi
|
||||||
|
requests:
|
||||||
|
cpu: 500m
|
||||||
|
ephemeral-storage: 50Mi
|
||||||
|
memory: 1024Mi
|
||||||
|
securityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- ALL
|
||||||
|
privileged: false
|
||||||
|
readOnlyRootFilesystem: true
|
||||||
|
runAsGroup: 1000
|
||||||
|
runAsNonRoot: true
|
||||||
|
runAsUser: 1000
|
||||||
|
seLinuxOptions: {}
|
||||||
|
seccompProfile:
|
||||||
|
type: RuntimeDefault
|
||||||
|
startupProbe:
|
||||||
|
failureThreshold: 100
|
||||||
|
httpGet:
|
||||||
|
path: /login/
|
||||||
|
port: http
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
periodSeconds: 10
|
||||||
|
successThreshold: 1
|
||||||
|
timeoutSeconds: 1
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /etc/netbox/config/configuration.py
|
||||||
|
name: config
|
||||||
|
readOnly: true
|
||||||
|
subPath: configuration.py
|
||||||
|
- mountPath: /run/config/netbox
|
||||||
|
name: config
|
||||||
|
readOnly: true
|
||||||
|
- mountPath: /run/secrets/netbox
|
||||||
|
name: secrets
|
||||||
|
readOnly: true
|
||||||
|
- mountPath: /tmp
|
||||||
|
name: netbox-tmp
|
||||||
|
- mountPath: /opt/netbox/netbox/media
|
||||||
|
name: media
|
||||||
|
subPath: ""
|
||||||
|
- mountPath: /opt/unit
|
||||||
|
name: optunit
|
||||||
|
- mountPath: /run/secrets/superuser_password
|
||||||
|
name: secrets
|
||||||
|
readOnly: true
|
||||||
|
subPath: superuser_password
|
||||||
|
- mountPath: /run/secrets/superuser_api_token
|
||||||
|
name: secrets
|
||||||
|
readOnly: true
|
||||||
|
subPath: superuser_api_token
|
||||||
|
initContainers:
|
||||||
|
- command:
|
||||||
|
- /bin/sh
|
||||||
|
- -c
|
||||||
|
- mkdir -p /opt/unit/state /opt/unit/tmp
|
||||||
|
image: docker.io/busybox:1.37.0
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: init-dirs
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 150m
|
||||||
|
ephemeral-storage: 2Gi
|
||||||
|
memory: 192Mi
|
||||||
|
requests:
|
||||||
|
cpu: 100m
|
||||||
|
ephemeral-storage: 50Mi
|
||||||
|
memory: 128Mi
|
||||||
|
securityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- ALL
|
||||||
|
readOnlyRootFilesystem: true
|
||||||
|
runAsGroup: 1000
|
||||||
|
runAsNonRoot: true
|
||||||
|
runAsUser: 1000
|
||||||
|
seLinuxOptions: {}
|
||||||
|
seccompProfile:
|
||||||
|
type: RuntimeDefault
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /opt/unit
|
||||||
|
name: optunit
|
||||||
|
securityContext:
|
||||||
|
fsGroup: 1000
|
||||||
|
fsGroupChangePolicy: Always
|
||||||
|
supplementalGroups: []
|
||||||
|
sysctls: []
|
||||||
|
serviceAccountName: netbox
|
||||||
|
volumes:
|
||||||
|
- configMap:
|
||||||
|
name: netbox
|
||||||
|
name: config
|
||||||
|
- name: secrets
|
||||||
|
projected:
|
||||||
|
sources:
|
||||||
|
- secret:
|
||||||
|
items:
|
||||||
|
- key: secret_key
|
||||||
|
path: secret_key
|
||||||
|
name: netbox-config
|
||||||
|
- secret:
|
||||||
|
items:
|
||||||
|
- key: email_password
|
||||||
|
path: email_password
|
||||||
|
name: netbox-config
|
||||||
|
- secret:
|
||||||
|
items:
|
||||||
|
- key: password
|
||||||
|
path: superuser_password
|
||||||
|
- key: api_token
|
||||||
|
path: superuser_api_token
|
||||||
|
name: netbox-superuser
|
||||||
|
- secret:
|
||||||
|
items:
|
||||||
|
- key: password
|
||||||
|
path: db_password
|
||||||
|
name: cnpg-netbox-cluster-app
|
||||||
|
- secret:
|
||||||
|
items:
|
||||||
|
- key: tasks_password
|
||||||
|
path: tasks_password
|
||||||
|
name: netbox-kv
|
||||||
|
- secret:
|
||||||
|
items:
|
||||||
|
- key: cache_password
|
||||||
|
path: cache_password
|
||||||
|
name: netbox-kv
|
||||||
|
- emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
name: netbox-tmp
|
||||||
|
- emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
name: optunit
|
||||||
|
- name: media
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: netbox-media
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/component: worker
|
||||||
|
app.kubernetes.io/instance: netbox
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
app.kubernetes.io/name: netbox
|
||||||
|
app.kubernetes.io/version: v4.4.4
|
||||||
|
helm.sh/chart: netbox-7.1.11
|
||||||
|
name: netbox-worker
|
||||||
|
namespace: netbox
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
revisionHistoryLimit: 10
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/component: worker
|
||||||
|
app.kubernetes.io/instance: netbox
|
||||||
|
app.kubernetes.io/name: netbox
|
||||||
|
strategy:
|
||||||
|
type: RollingUpdate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
checksum/config: b6611b66943044288475e05c9f4bf368a95203cd197dda8a35d9ed7498ac56b9
|
||||||
|
checksum/secret: d20d6403cee6e39c20d0033c4fe21c5311f96719861582c79d7030e48bf17e41
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/component: worker
|
||||||
|
app.kubernetes.io/instance: netbox
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
app.kubernetes.io/name: netbox
|
||||||
|
app.kubernetes.io/version: v4.4.4
|
||||||
|
helm.sh/chart: netbox-7.1.11
|
||||||
|
spec:
|
||||||
|
automountServiceAccountToken: true
|
||||||
|
containers:
|
||||||
|
- command:
|
||||||
|
- /opt/netbox/venv/bin/python
|
||||||
|
- /opt/netbox/netbox/manage.py
|
||||||
|
- rqworker
|
||||||
|
image: ghcr.io/netbox-community/netbox:v4.4.4
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: netbox-worker
|
||||||
|
securityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- ALL
|
||||||
|
privileged: false
|
||||||
|
readOnlyRootFilesystem: true
|
||||||
|
runAsGroup: 1000
|
||||||
|
runAsNonRoot: true
|
||||||
|
runAsUser: 1000
|
||||||
|
seLinuxOptions: {}
|
||||||
|
seccompProfile:
|
||||||
|
type: RuntimeDefault
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /etc/netbox/config/configuration.py
|
||||||
|
name: config
|
||||||
|
readOnly: true
|
||||||
|
subPath: configuration.py
|
||||||
|
- mountPath: /run/config/netbox
|
||||||
|
name: config
|
||||||
|
readOnly: true
|
||||||
|
- mountPath: /run/secrets/netbox
|
||||||
|
name: secrets
|
||||||
|
readOnly: true
|
||||||
|
- mountPath: /tmp
|
||||||
|
name: netbox-tmp
|
||||||
|
- mountPath: /opt/netbox/netbox/media
|
||||||
|
name: media
|
||||||
|
readOnly: false
|
||||||
|
subPath: ""
|
||||||
|
initContainers:
|
||||||
|
- args:
|
||||||
|
- rollout
|
||||||
|
- status
|
||||||
|
- deployment
|
||||||
|
- $(DEPLOYMENT_NAME)
|
||||||
|
command:
|
||||||
|
- /bin/kubectl
|
||||||
|
env:
|
||||||
|
- name: DEPLOYMENT_NAME
|
||||||
|
value: netbox
|
||||||
|
image: docker.io/rancher/kubectl:v1.34.1
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: wait-for-backend
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 150m
|
||||||
|
ephemeral-storage: 2Gi
|
||||||
|
memory: 192Mi
|
||||||
|
requests:
|
||||||
|
cpu: 100m
|
||||||
|
ephemeral-storage: 50Mi
|
||||||
|
memory: 128Mi
|
||||||
|
securityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- ALL
|
||||||
|
privileged: false
|
||||||
|
readOnlyRootFilesystem: true
|
||||||
|
runAsGroup: 1001
|
||||||
|
runAsNonRoot: true
|
||||||
|
runAsUser: 1001
|
||||||
|
seLinuxOptions: {}
|
||||||
|
seccompProfile:
|
||||||
|
type: RuntimeDefault
|
||||||
|
securityContext:
|
||||||
|
fsGroup: 1000
|
||||||
|
fsGroupChangePolicy: Always
|
||||||
|
supplementalGroups: []
|
||||||
|
sysctls: []
|
||||||
|
serviceAccountName: netbox
|
||||||
|
volumes:
|
||||||
|
- configMap:
|
||||||
|
name: netbox
|
||||||
|
name: config
|
||||||
|
- name: secrets
|
||||||
|
projected:
|
||||||
|
sources:
|
||||||
|
- secret:
|
||||||
|
items:
|
||||||
|
- key: secret_key
|
||||||
|
path: secret_key
|
||||||
|
name: netbox-config
|
||||||
|
- secret:
|
||||||
|
items:
|
||||||
|
- key: email_password
|
||||||
|
path: email_password
|
||||||
|
name: netbox-config
|
||||||
|
- secret:
|
||||||
|
items:
|
||||||
|
- key: password
|
||||||
|
path: superuser_password
|
||||||
|
- key: api_token
|
||||||
|
path: superuser_api_token
|
||||||
|
name: netbox-superuser
|
||||||
|
- secret:
|
||||||
|
items:
|
||||||
|
- key: password
|
||||||
|
path: db_password
|
||||||
|
name: cnpg-netbox-cluster-app
|
||||||
|
- secret:
|
||||||
|
items:
|
||||||
|
- key: tasks_password
|
||||||
|
path: tasks_password
|
||||||
|
name: netbox-kv
|
||||||
|
- secret:
|
||||||
|
items:
|
||||||
|
- key: cache_password
|
||||||
|
path: cache_password
|
||||||
|
name: netbox-kv
|
||||||
|
- emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
name: netbox-tmp
|
||||||
|
- name: media
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: netbox-media
|
||||||
|
readOnly: false
|
||||||
|
---
|
||||||
|
apiVersion: batch/v1
|
||||||
|
kind: CronJob
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/component: housekeeping
|
||||||
|
app.kubernetes.io/instance: netbox
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
app.kubernetes.io/name: netbox
|
||||||
|
app.kubernetes.io/version: v4.4.4
|
||||||
|
helm.sh/chart: netbox-7.1.11
|
||||||
|
name: netbox-housekeeping
|
||||||
|
namespace: netbox
|
||||||
|
spec:
|
||||||
|
concurrencyPolicy: Forbid
|
||||||
|
failedJobsHistoryLimit: 5
|
||||||
|
jobTemplate:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: netbox
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
app.kubernetes.io/name: netbox
|
||||||
|
app.kubernetes.io/version: v4.4.4
|
||||||
|
helm.sh/chart: netbox-7.1.11
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/component: housekeeping
|
||||||
|
app.kubernetes.io/instance: netbox
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
app.kubernetes.io/name: netbox
|
||||||
|
app.kubernetes.io/version: v4.4.4
|
||||||
|
helm.sh/chart: netbox-7.1.11
|
||||||
|
spec:
|
||||||
|
automountServiceAccountToken: false
|
||||||
|
containers:
|
||||||
|
- command:
|
||||||
|
- /opt/netbox/venv/bin/python
|
||||||
|
- /opt/netbox/netbox/manage.py
|
||||||
|
- housekeeping
|
||||||
|
image: ghcr.io/netbox-community/netbox:v4.4.4
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: netbox-housekeeping
|
||||||
|
securityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- ALL
|
||||||
|
privileged: false
|
||||||
|
readOnlyRootFilesystem: true
|
||||||
|
runAsGroup: 1000
|
||||||
|
runAsNonRoot: true
|
||||||
|
runAsUser: 1000
|
||||||
|
seLinuxOptions: {}
|
||||||
|
seccompProfile:
|
||||||
|
type: RuntimeDefault
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /etc/netbox/config/configuration.py
|
||||||
|
name: config
|
||||||
|
readOnly: true
|
||||||
|
subPath: configuration.py
|
||||||
|
- mountPath: /run/config/netbox
|
||||||
|
name: config
|
||||||
|
readOnly: true
|
||||||
|
- mountPath: /run/secrets/netbox
|
||||||
|
name: secrets
|
||||||
|
readOnly: true
|
||||||
|
- mountPath: /tmp
|
||||||
|
name: netbox-tmp
|
||||||
|
- mountPath: /opt/netbox/netbox/media
|
||||||
|
name: media
|
||||||
|
readOnly: false
|
||||||
|
subPath: ""
|
||||||
|
restartPolicy: OnFailure
|
||||||
|
securityContext:
|
||||||
|
fsGroup: 1000
|
||||||
|
fsGroupChangePolicy: Always
|
||||||
|
supplementalGroups: []
|
||||||
|
sysctls: []
|
||||||
|
serviceAccountName: netbox
|
||||||
|
volumes:
|
||||||
|
- configMap:
|
||||||
|
name: netbox
|
||||||
|
name: config
|
||||||
|
- name: secrets
|
||||||
|
projected:
|
||||||
|
sources:
|
||||||
|
- secret:
|
||||||
|
items:
|
||||||
|
- key: secret_key
|
||||||
|
path: secret_key
|
||||||
|
name: netbox-config
|
||||||
|
- secret:
|
||||||
|
items:
|
||||||
|
- key: email_password
|
||||||
|
path: email_password
|
||||||
|
name: netbox-config
|
||||||
|
- secret:
|
||||||
|
items:
|
||||||
|
- key: password
|
||||||
|
path: db_password
|
||||||
|
name: cnpg-netbox-cluster-app
|
||||||
|
- secret:
|
||||||
|
items:
|
||||||
|
- key: tasks_password
|
||||||
|
path: tasks_password
|
||||||
|
name: netbox-kv
|
||||||
|
- secret:
|
||||||
|
items:
|
||||||
|
- key: cache_password
|
||||||
|
path: cache_password
|
||||||
|
name: netbox-kv
|
||||||
|
- emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
name: netbox-tmp
|
||||||
|
- name: media
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: netbox-media
|
||||||
|
readOnly: false
|
||||||
|
schedule: 0 0 * * *
|
||||||
|
successfulJobsHistoryLimit: 5
|
||||||
|
suspend: false
|
||||||
|
---
|
||||||
|
apiVersion: batch/v1
|
||||||
|
kind: Job
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
helm.sh/hook: test
|
||||||
|
helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/component: database-ping-test
|
||||||
|
name: cnpg-netbox-cluster-ping-test
|
||||||
|
namespace: netbox
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/component: database-ping-test
|
||||||
|
name: cnpg-netbox-cluster-ping-test
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- args:
|
||||||
|
- -c
|
||||||
|
- apk add postgresql-client && psql "postgresql://$PGUSER:$PGPASS@cnpg-netbox-cluster-rw.netbox.svc.cluster.local:5432/${PGDBNAME:-$PGUSER}"
|
||||||
|
-c 'SELECT 1'
|
||||||
|
command:
|
||||||
|
- sh
|
||||||
|
env:
|
||||||
|
- name: PGUSER
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
key: username
|
||||||
|
name: cnpg-netbox-cluster-app
|
||||||
|
- name: PGPASS
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
key: password
|
||||||
|
name: cnpg-netbox-cluster-app
|
||||||
|
- name: PGDBNAME
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
key: dbname
|
||||||
|
name: cnpg-netbox-cluster-app
|
||||||
|
optional: true
|
||||||
|
image: alpine:3.17
|
||||||
|
name: alpine
|
||||||
|
restartPolicy: Never
|
||||||
|
---
|
||||||
|
apiVersion: postgresql.cnpg.io/v1
|
||||||
|
kind: Cluster
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: cnpg-netbox
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
app.kubernetes.io/name: cluster
|
||||||
|
app.kubernetes.io/part-of: cloudnative-pg
|
||||||
|
helm.sh/chart: cluster-0.3.1
|
||||||
|
name: cnpg-netbox-cluster
|
||||||
|
namespace: netbox
|
||||||
|
spec:
|
||||||
|
affinity:
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
bootstrap:
|
||||||
|
initdb:
|
||||||
|
database: netbox
|
||||||
|
owner: netbox
|
||||||
|
enablePDB: true
|
||||||
|
enableSuperuserAccess: true
|
||||||
|
imageName: ghcr.io/cloudnative-pg/postgresql:17
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
instances: 3
|
||||||
|
logLevel: info
|
||||||
|
monitoring:
|
||||||
|
disableDefaultQueries: false
|
||||||
|
enablePodMonitor: false
|
||||||
|
postgresGID: 26
|
||||||
|
postgresUID: 26
|
||||||
|
postgresql: null
|
||||||
|
primaryUpdateMethod: switchover
|
||||||
|
primaryUpdateStrategy: unsupervised
|
||||||
|
storage:
|
||||||
|
size: 10Gi
|
||||||
|
storageClass: openebs-hostpath
|
||||||
|
walStorage:
|
||||||
|
size: 1Gi
|
||||||
|
storageClass: openebs-hostpath
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Pod
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
helm.sh/hook: test
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/instance: netbox
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
app.kubernetes.io/name: netbox
|
||||||
|
app.kubernetes.io/version: v4.4.4
|
||||||
|
helm.sh/chart: netbox-7.1.11
|
||||||
|
name: netbox-test-connection
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- args:
|
||||||
|
- netbox:80
|
||||||
|
command:
|
||||||
|
- wget
|
||||||
|
image: busybox:1.37.0
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: wget
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 150m
|
||||||
|
ephemeral-storage: 2Gi
|
||||||
|
memory: 192Mi
|
||||||
|
requests:
|
||||||
|
cpu: 100m
|
||||||
|
ephemeral-storage: 50Mi
|
||||||
|
memory: 128Mi
|
||||||
|
restartPolicy: Never
|
||||||
20
netbox/src/kustomization.yaml
Normal file
20
netbox/src/kustomization.yaml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
|
||||||
|
helmCharts:
|
||||||
|
- name: netbox
|
||||||
|
repo: https://charts.netbox.oss.netboxlabs.com/
|
||||||
|
version: 7.1.11
|
||||||
|
releaseName: netbox
|
||||||
|
includeCRDs: true
|
||||||
|
namespace: netbox
|
||||||
|
valuesFile: values.yaml
|
||||||
|
|
||||||
|
- name: cluster
|
||||||
|
repo: https://cloudnative-pg.github.io/charts
|
||||||
|
version: 0.3.1
|
||||||
|
releaseName: cnpg-netbox
|
||||||
|
includeCRDs: true
|
||||||
|
namespace: netbox
|
||||||
|
valuesFile: values-cnpg.yaml
|
||||||
503
netbox/src/values-cnpg.yaml
Normal file
503
netbox/src/values-cnpg.yaml
Normal file
@@ -0,0 +1,503 @@
|
|||||||
|
# -- Override the name of the chart
|
||||||
|
nameOverride: ""
|
||||||
|
# -- Override the full name of the chart
|
||||||
|
fullnameOverride: ""
|
||||||
|
# -- Override the namespace of the chart
|
||||||
|
namespaceOverride: ""
|
||||||
|
|
||||||
|
###
|
||||||
|
# -- Type of the CNPG database. Available types:
|
||||||
|
# * `postgresql`
|
||||||
|
# * `postgis`
|
||||||
|
# * `timescaledb`
|
||||||
|
type: postgresql
|
||||||
|
|
||||||
|
version:
|
||||||
|
# -- PostgreSQL major version to use
|
||||||
|
postgresql: "17"
|
||||||
|
# -- If using TimescaleDB, specify the version
|
||||||
|
timescaledb: "2.15"
|
||||||
|
# -- If using PostGIS, specify the version
|
||||||
|
postgis: "3.4"
|
||||||
|
|
||||||
|
###
|
||||||
|
# -- Cluster mode of operation. Available modes:
|
||||||
|
# * `standalone` - default mode. Creates new or updates an existing CNPG cluster.
|
||||||
|
# * `replica` - Creates a replica cluster from an existing CNPG cluster. # TODO
|
||||||
|
# * `recovery` - Same as standalone but creates a cluster from a backup, object store or via pg_basebackup.
|
||||||
|
mode: standalone
|
||||||
|
|
||||||
|
recovery:
|
||||||
|
##
|
||||||
|
# -- Available recovery methods:
|
||||||
|
# * `backup` - Recovers a CNPG cluster from a CNPG backup (PITR supported) Needs to be on the same cluster in the same namespace.
|
||||||
|
# * `object_store` - Recovers a CNPG cluster from a barman object store (PITR supported).
|
||||||
|
# * `pg_basebackup` - Recovers a CNPG cluster viaa streaming replication protocol. Useful if you want to
|
||||||
|
# migrate databases to CloudNativePG, even from outside Kubernetes.
|
||||||
|
# * `import` - Import one or more databases from an existing Postgres cluster.
|
||||||
|
method: backup
|
||||||
|
|
||||||
|
## -- Point in time recovery target. Specify one of the following:
|
||||||
|
pitrTarget:
|
||||||
|
# -- Time in RFC3339 format
|
||||||
|
time: ""
|
||||||
|
|
||||||
|
##
|
||||||
|
# -- Backup Recovery Method
|
||||||
|
backupName: "" # Name of the backup to recover from. Required if method is `backup`.
|
||||||
|
|
||||||
|
##
|
||||||
|
# -- The original cluster name when used in backups. Also known as serverName.
|
||||||
|
clusterName: ""
|
||||||
|
# -- Name of the database used by the application. Default: `app`.
|
||||||
|
database: app
|
||||||
|
# -- Name of the owner of the database in the instance to be used by applications. Defaults to the value of the `database` key.
|
||||||
|
owner: ""
|
||||||
|
# -- Overrides the provider specific default endpoint. Defaults to:
|
||||||
|
# S3: https://s3.<region>.amazonaws.com"
|
||||||
|
# Leave empty if using the default S3 endpoint
|
||||||
|
endpointURL: ""
|
||||||
|
# -- Specifies a CA bundle to validate a privately signed certificate.
|
||||||
|
endpointCA:
|
||||||
|
# -- Creates a secret with the given value if true, otherwise uses an existing secret.
|
||||||
|
create: false
|
||||||
|
name: ""
|
||||||
|
key: ""
|
||||||
|
value: ""
|
||||||
|
# -- Overrides the provider specific default path. Defaults to:
|
||||||
|
# S3: s3://<bucket><path>
|
||||||
|
# Azure: https://<storageAccount>.<serviceName>.core.windows.net/<containerName><path>
|
||||||
|
# Google: gs://<bucket><path>
|
||||||
|
destinationPath: ""
|
||||||
|
# -- One of `s3`, `azure` or `google`
|
||||||
|
provider: s3
|
||||||
|
s3:
|
||||||
|
region: ""
|
||||||
|
bucket: ""
|
||||||
|
path: "/"
|
||||||
|
accessKey: ""
|
||||||
|
secretKey: ""
|
||||||
|
# -- Use the role based authentication without providing explicitly the keys
|
||||||
|
inheritFromIAMRole: false
|
||||||
|
azure:
|
||||||
|
path: "/"
|
||||||
|
connectionString: ""
|
||||||
|
storageAccount: ""
|
||||||
|
storageKey: ""
|
||||||
|
storageSasToken: ""
|
||||||
|
containerName: ""
|
||||||
|
serviceName: blob
|
||||||
|
inheritFromAzureAD: false
|
||||||
|
google:
|
||||||
|
path: "/"
|
||||||
|
bucket: ""
|
||||||
|
gkeEnvironment: false
|
||||||
|
applicationCredentials: ""
|
||||||
|
secret:
|
||||||
|
# -- Whether to create a secret for the backup credentials
|
||||||
|
create: true
|
||||||
|
# -- Name of the backup credentials secret
|
||||||
|
name: ""
|
||||||
|
|
||||||
|
# See https://cloudnative-pg.io/documentation/1.22/bootstrap/#bootstrap-from-a-live-cluster-pg_basebackup
|
||||||
|
pgBaseBackup:
|
||||||
|
# -- Name of the database used by the application. Default: `app`.
|
||||||
|
database: app
|
||||||
|
# -- Name of the secret containing the initial credentials for the owner of the user database. If empty a new secret will be created from scratch
|
||||||
|
secret: ""
|
||||||
|
# -- Name of the owner of the database in the instance to be used by applications. Defaults to the value of the `database` key.
|
||||||
|
owner: ""
|
||||||
|
source:
|
||||||
|
host: ""
|
||||||
|
port: 5432
|
||||||
|
username: ""
|
||||||
|
database: "app"
|
||||||
|
sslMode: "verify-full"
|
||||||
|
passwordSecret:
|
||||||
|
# -- Whether to create a secret for the password
|
||||||
|
create: false
|
||||||
|
# -- Name of the secret containing the password
|
||||||
|
name: ""
|
||||||
|
# -- The key in the secret containing the password
|
||||||
|
key: "password"
|
||||||
|
# -- The password value to use when creating the secret
|
||||||
|
value: ""
|
||||||
|
sslKeySecret:
|
||||||
|
name: ""
|
||||||
|
key: ""
|
||||||
|
sslCertSecret:
|
||||||
|
name: ""
|
||||||
|
key: ""
|
||||||
|
sslRootCertSecret:
|
||||||
|
name: ""
|
||||||
|
key: ""
|
||||||
|
|
||||||
|
# See: https://cloudnative-pg.io/documentation/current/cloudnative-pg.v1/#postgresql-cnpg-io-v1-Import
|
||||||
|
import:
|
||||||
|
# -- One of `microservice` or `monolith.`
|
||||||
|
# See: https://cloudnative-pg.io/documentation/current/database_import/#how-it-works
|
||||||
|
type: "microservice"
|
||||||
|
# -- Databases to import
|
||||||
|
databases: []
|
||||||
|
# -- Roles to import
|
||||||
|
roles: []
|
||||||
|
# -- List of SQL queries to be executed as a superuser in the application database right after is imported.
|
||||||
|
# To be used with extreme care. Only available in microservice type.
|
||||||
|
postImportApplicationSQL: []
|
||||||
|
# -- When set to true, only the pre-data and post-data sections of pg_restore are invoked, avoiding data import.
|
||||||
|
schemaOnly: false
|
||||||
|
# -- List of custom options to pass to the `pg_dump` command. IMPORTANT: Use these options with caution and at your
|
||||||
|
# own risk, as the operator does not validate their content. Be aware that certain options may conflict with the
|
||||||
|
# operator's intended functionality or design.
|
||||||
|
pgDumpExtraOptions: []
|
||||||
|
# -- List of custom options to pass to the `pg_restore` command. IMPORTANT: Use these options with caution and at
|
||||||
|
# your own risk, as the operator does not validate their content. Be aware that certain options may conflict with the
|
||||||
|
# operator's intended functionality or design.
|
||||||
|
pgRestoreExtraOptions: []
|
||||||
|
source:
|
||||||
|
host: ""
|
||||||
|
port: 5432
|
||||||
|
username: ""
|
||||||
|
database: ""
|
||||||
|
sslMode: "verify-full"
|
||||||
|
passwordSecret:
|
||||||
|
# -- Whether to create a secret for the password
|
||||||
|
create: false
|
||||||
|
# -- Name of the secret containing the password
|
||||||
|
name: ""
|
||||||
|
# -- The key in the secret containing the password
|
||||||
|
key: "password"
|
||||||
|
# -- The password value to use when creating the secret
|
||||||
|
value: ""
|
||||||
|
sslKeySecret:
|
||||||
|
name: ""
|
||||||
|
key: ""
|
||||||
|
sslCertSecret:
|
||||||
|
name: ""
|
||||||
|
key: ""
|
||||||
|
sslRootCertSecret:
|
||||||
|
name: ""
|
||||||
|
key: ""
|
||||||
|
|
||||||
|
|
||||||
|
cluster:
|
||||||
|
# -- Number of instances
|
||||||
|
instances: 3
|
||||||
|
|
||||||
|
# -- Name of the container image, supporting both tags (<image>:<tag>) and digests for deterministic and repeatable deployments:
|
||||||
|
# <image>:<tag>@sha256:<digestValue>
|
||||||
|
imageName: "" # Default value depends on type (postgresql/postgis/timescaledb)
|
||||||
|
|
||||||
|
# -- Reference to `ImageCatalog` of `ClusterImageCatalog`, if specified takes precedence over `cluster.imageName`
|
||||||
|
imageCatalogRef: {}
|
||||||
|
# kind: ImageCatalog
|
||||||
|
# name: postgresql
|
||||||
|
|
||||||
|
# -- Image pull policy. One of Always, Never or IfNotPresent. If not defined, it defaults to IfNotPresent. Cannot be updated.
|
||||||
|
# More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
|
||||||
|
# -- The list of pull secrets to be used to pull the images.
|
||||||
|
# See: https://cloudnative-pg.io/documentation/current/cloudnative-pg.v1/#postgresql-cnpg-io-v1-LocalObjectReference
|
||||||
|
imagePullSecrets: []
|
||||||
|
|
||||||
|
storage:
|
||||||
|
size: 10Gi
|
||||||
|
storageClass: "openebs-hostpath"
|
||||||
|
|
||||||
|
walStorage:
|
||||||
|
enabled: true
|
||||||
|
size: 1Gi
|
||||||
|
storageClass: "openebs-hostpath"
|
||||||
|
|
||||||
|
# -- The UID of the postgres user inside the image, defaults to 26
|
||||||
|
postgresUID: -1
|
||||||
|
|
||||||
|
# -- The GID of the postgres user inside the image, defaults to 26
|
||||||
|
postgresGID: -1
|
||||||
|
|
||||||
|
# -- Customization of service definitions. Please refer to https://cloudnative-pg.io/documentation/1.24/service_management/
|
||||||
|
services: {}
|
||||||
|
|
||||||
|
# -- Resources requirements of every generated Pod.
|
||||||
|
# Please refer to https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ for more information.
|
||||||
|
# We strongly advise you use the same setting for limits and requests so that your cluster pods are given a Guaranteed QoS.
|
||||||
|
# See: https://kubernetes.io/docs/concepts/workloads/pods/pod-qos/
|
||||||
|
resources: {}
|
||||||
|
# limits:
|
||||||
|
# cpu: 2000m
|
||||||
|
# memory: 8Gi
|
||||||
|
# requests:
|
||||||
|
# cpu: 2000m
|
||||||
|
# memory: 8Gi
|
||||||
|
|
||||||
|
priorityClassName: ""
|
||||||
|
|
||||||
|
# -- Method to follow to upgrade the primary server during a rolling update procedure, after all replicas have been
|
||||||
|
# successfully updated. It can be switchover (default) or restart.
|
||||||
|
primaryUpdateMethod: switchover
|
||||||
|
|
||||||
|
# -- Strategy to follow to upgrade the primary server during a rolling update procedure, after all replicas have been
|
||||||
|
# successfully updated: it can be automated (unsupervised - default) or manual (supervised)
|
||||||
|
primaryUpdateStrategy: unsupervised
|
||||||
|
|
||||||
|
# -- The instances' log level, one of the following values: error, warning, info (default), debug, trace
|
||||||
|
logLevel: "info"
|
||||||
|
|
||||||
|
# -- Affinity/Anti-affinity rules for Pods.
|
||||||
|
# See: https://cloudnative-pg.io/documentation/current/cloudnative-pg.v1/#postgresql-cnpg-io-v1-AffinityConfiguration
|
||||||
|
affinity:
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
|
||||||
|
# -- The configuration for the CA and related certificates.
|
||||||
|
# See: https://cloudnative-pg.io/documentation/current/cloudnative-pg.v1/#postgresql-cnpg-io-v1-CertificatesConfiguration
|
||||||
|
certificates: {}
|
||||||
|
|
||||||
|
# -- When this option is enabled, the operator will use the SuperuserSecret to update the postgres user password.
|
||||||
|
# If the secret is not present, the operator will automatically create one.
|
||||||
|
# When this option is disabled, the operator will ignore the SuperuserSecret content, delete it when automatically created,
|
||||||
|
# and then blank the password of the postgres user by setting it to NULL.
|
||||||
|
enableSuperuserAccess: true
|
||||||
|
superuserSecret: ""
|
||||||
|
|
||||||
|
# -- Allow to disable PDB, mainly useful for upgrade of single-instance clusters or development purposes
|
||||||
|
# See: https://cloudnative-pg.io/documentation/current/kubernetes_upgrade/#pod-disruption-budgets
|
||||||
|
enablePDB: true
|
||||||
|
|
||||||
|
# -- This feature enables declarative management of existing roles, as well as the creation of new roles if they are not
|
||||||
|
# already present in the database.
|
||||||
|
# See: https://cloudnative-pg.io/documentation/current/declarative_role_management/
|
||||||
|
roles: []
|
||||||
|
# - name: dante
|
||||||
|
# ensure: present
|
||||||
|
# comment: Dante Alighieri
|
||||||
|
# login: true
|
||||||
|
# superuser: false
|
||||||
|
# inRoles:
|
||||||
|
# - pg_monitor
|
||||||
|
# - pg_signal_backend
|
||||||
|
|
||||||
|
monitoring:
|
||||||
|
# -- Whether to enable monitoring
|
||||||
|
enabled: false
|
||||||
|
podMonitor:
|
||||||
|
# -- Whether to enable the PodMonitor
|
||||||
|
enabled: true
|
||||||
|
# --The list of relabelings for the PodMonitor.
|
||||||
|
# Applied to samples before scraping.
|
||||||
|
relabelings: []
|
||||||
|
# -- The list of metric relabelings for the PodMonitor.
|
||||||
|
# Applied to samples before ingestion.
|
||||||
|
metricRelabelings: []
|
||||||
|
prometheusRule:
|
||||||
|
# -- Whether to enable the PrometheusRule automated alerts
|
||||||
|
enabled: true
|
||||||
|
# -- Exclude specified rules
|
||||||
|
excludeRules: []
|
||||||
|
# - CNPGClusterZoneSpreadWarning
|
||||||
|
# -- Whether the default queries should be injected.
|
||||||
|
# Set it to true if you don't want to inject default queries into the cluster.
|
||||||
|
disableDefaultQueries: false
|
||||||
|
# -- Custom Prometheus metrics
|
||||||
|
# Will be stored in the ConfigMap
|
||||||
|
customQueries: []
|
||||||
|
# - name: "pg_cache_hit_ratio"
|
||||||
|
# query: "SELECT current_database() as datname, sum(heap_blks_hit) / (sum(heap_blks_hit) + sum(heap_blks_read)) as ratio FROM pg_statio_user_tables;"
|
||||||
|
# metrics:
|
||||||
|
# - datname:
|
||||||
|
# usage: "LABEL"
|
||||||
|
# description: "Name of the database"
|
||||||
|
# - ratio:
|
||||||
|
# usage: GAUGE
|
||||||
|
# description: "Cache hit ratio"
|
||||||
|
# -- The list of secrets containing the custom queries
|
||||||
|
customQueriesSecret: []
|
||||||
|
# - name: custom-queries-secret
|
||||||
|
# key: custom-queries
|
||||||
|
|
||||||
|
postgresql:
|
||||||
|
# -- PostgreSQL configuration options (postgresql.conf)
|
||||||
|
parameters: {}
|
||||||
|
# max_connections: 300
|
||||||
|
# -- Quorum-based Synchronous Replication
|
||||||
|
synchronous: {}
|
||||||
|
# method: any
|
||||||
|
# number: 1
|
||||||
|
# -- PostgreSQL Host Based Authentication rules (lines to be appended to the pg_hba.conf file)
|
||||||
|
pg_hba: []
|
||||||
|
# - host all all 10.244.0.0/16 md5
|
||||||
|
# -- PostgreSQL User Name Maps rules (lines to be appended to the pg_ident.conf file)
|
||||||
|
pg_ident: []
|
||||||
|
# - mymap /^(.*)@mydomain\.com$ \1
|
||||||
|
# -- Lists of shared preload libraries to add to the default ones
|
||||||
|
shared_preload_libraries: []
|
||||||
|
# - pgaudit
|
||||||
|
# -- PostgreSQL LDAP configuration (see https://cloudnative-pg.io/documentation/current/postgresql_conf/#ldap-configuration)
|
||||||
|
ldap: {}
|
||||||
|
# https://cloudnative-pg.io/documentation/1.24/postgresql_conf/#ldap-configuration
|
||||||
|
# server: 'openldap.default.svc.cluster.local'
|
||||||
|
# bindSearchAuth:
|
||||||
|
# baseDN: 'ou=org,dc=example,dc=com'
|
||||||
|
# bindDN: 'cn=admin,dc=example,dc=com'
|
||||||
|
# bindPassword:
|
||||||
|
# name: 'ldapBindPassword'
|
||||||
|
# key: 'data'
|
||||||
|
# searchAttribute: 'uid'
|
||||||
|
|
||||||
|
|
||||||
|
# -- BootstrapInitDB is the configuration of the bootstrap process when initdb is used.
|
||||||
|
# See: https://cloudnative-pg.io/documentation/current/bootstrap/
|
||||||
|
# See: https://cloudnative-pg.io/documentation/current/cloudnative-pg.v1/#postgresql-cnpg-io-v1-bootstrapinitdb
|
||||||
|
initdb:
|
||||||
|
database: netbox
|
||||||
|
owner: netbox # Defaults to the database name
|
||||||
|
# secret:
|
||||||
|
# name: "" # Name of the secret containing the initial credentials for the owner of the user database. If empty a new secret will be created from scratch
|
||||||
|
# options: []
|
||||||
|
# encoding: UTF8
|
||||||
|
# postInitSQL:
|
||||||
|
# - CREATE EXTENSION IF NOT EXISTS vector;
|
||||||
|
# postInitApplicationSQL: []
|
||||||
|
# postInitTemplateSQL: []
|
||||||
|
|
||||||
|
# -- Configure the metadata of the generated service account
|
||||||
|
serviceAccountTemplate: {}
|
||||||
|
|
||||||
|
additionalLabels: {}
|
||||||
|
annotations: {}
|
||||||
|
|
||||||
|
|
||||||
|
backups:
|
||||||
|
# -- You need to configure backups manually, so backups are disabled by default.
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
# -- Overrides the provider specific default endpoint. Defaults to:
|
||||||
|
# S3: https://s3.<region>.amazonaws.com"
|
||||||
|
endpointURL: "" # Leave empty if using the default S3 endpoint
|
||||||
|
# -- Specifies a CA bundle to validate a privately signed certificate.
|
||||||
|
endpointCA:
|
||||||
|
# -- Creates a secret with the given value if true, otherwise uses an existing secret.
|
||||||
|
create: false
|
||||||
|
name: ""
|
||||||
|
key: ""
|
||||||
|
value: ""
|
||||||
|
|
||||||
|
# -- Overrides the provider specific default path. Defaults to:
|
||||||
|
# S3: s3://<bucket><path>
|
||||||
|
# Azure: https://<storageAccount>.<serviceName>.core.windows.net/<containerName><path>
|
||||||
|
# Google: gs://<bucket><path>
|
||||||
|
destinationPath: ""
|
||||||
|
# -- One of `s3`, `azure` or `google`
|
||||||
|
provider: s3
|
||||||
|
s3:
|
||||||
|
region: ""
|
||||||
|
bucket: ""
|
||||||
|
path: "/"
|
||||||
|
accessKey: ""
|
||||||
|
secretKey: ""
|
||||||
|
# -- Use the role based authentication without providing explicitly the keys
|
||||||
|
inheritFromIAMRole: false
|
||||||
|
azure:
|
||||||
|
path: "/"
|
||||||
|
connectionString: ""
|
||||||
|
storageAccount: ""
|
||||||
|
storageKey: ""
|
||||||
|
storageSasToken: ""
|
||||||
|
containerName: ""
|
||||||
|
serviceName: blob
|
||||||
|
inheritFromAzureAD: false
|
||||||
|
google:
|
||||||
|
path: "/"
|
||||||
|
bucket: ""
|
||||||
|
gkeEnvironment: false
|
||||||
|
applicationCredentials: ""
|
||||||
|
secret:
|
||||||
|
# -- Whether to create a secret for the backup credentials
|
||||||
|
create: true
|
||||||
|
# -- Name of the backup credentials secret
|
||||||
|
name: ""
|
||||||
|
|
||||||
|
wal:
|
||||||
|
# -- WAL compression method. One of `` (for no compression), `gzip`, `bzip2` or `snappy`.
|
||||||
|
compression: gzip
|
||||||
|
# -- Whether to instruct the storage provider to encrypt WAL files. One of `` (use the storage container default), `AES256` or `aws:kms`.
|
||||||
|
encryption: AES256
|
||||||
|
# -- Number of WAL files to be archived or restored in parallel.
|
||||||
|
maxParallel: 1
|
||||||
|
data:
|
||||||
|
# -- Data compression method. One of `` (for no compression), `gzip`, `bzip2` or `snappy`.
|
||||||
|
compression: gzip
|
||||||
|
# -- Whether to instruct the storage provider to encrypt data files. One of `` (use the storage container default), `AES256` or `aws:kms`.
|
||||||
|
encryption: AES256
|
||||||
|
# -- Number of data files to be archived or restored in parallel.
|
||||||
|
jobs: 2
|
||||||
|
|
||||||
|
scheduledBackups:
|
||||||
|
-
|
||||||
|
# -- Scheduled backup name
|
||||||
|
name: daily-backup
|
||||||
|
# -- Schedule in cron format
|
||||||
|
schedule: "0 0 0 * * *"
|
||||||
|
# -- Backup owner reference
|
||||||
|
backupOwnerReference: self
|
||||||
|
# -- Backup method, can be `barmanObjectStore` (default) or `volumeSnapshot`
|
||||||
|
method: barmanObjectStore
|
||||||
|
|
||||||
|
# -- Retention policy for backups
|
||||||
|
retentionPolicy: "30d"
|
||||||
|
|
||||||
|
imageCatalog:
|
||||||
|
# -- Whether to provision an image catalog. If imageCatalog.images is empty this option will be ignored.
|
||||||
|
create: true
|
||||||
|
# -- List of images to be provisioned in an image catalog.
|
||||||
|
images: []
|
||||||
|
# - image: ghcr.io/your_repo/your_image:your_tag
|
||||||
|
# major: 16
|
||||||
|
|
||||||
|
# -- List of PgBouncer poolers
|
||||||
|
poolers: []
|
||||||
|
# -
|
||||||
|
# # -- Pooler name
|
||||||
|
# name: rw
|
||||||
|
# # -- PgBouncer type of service to forward traffic to.
|
||||||
|
# type: rw
|
||||||
|
# # -- PgBouncer pooling mode
|
||||||
|
# poolMode: transaction
|
||||||
|
# # -- Number of PgBouncer instances
|
||||||
|
# instances: 3
|
||||||
|
# # -- PgBouncer configuration parameters
|
||||||
|
# parameters:
|
||||||
|
# max_client_conn: "1000"
|
||||||
|
# default_pool_size: "25"
|
||||||
|
# monitoring:
|
||||||
|
# # -- Whether to enable monitoring
|
||||||
|
# enabled: false
|
||||||
|
# podMonitor:
|
||||||
|
# # -- Whether to enable the PodMonitor
|
||||||
|
# enabled: true
|
||||||
|
# # -- Custom PgBouncer deployment template.
|
||||||
|
# # Use to override image, specify resources, etc.
|
||||||
|
# template: {}
|
||||||
|
# -
|
||||||
|
# # -- Pooler name
|
||||||
|
# name: ro
|
||||||
|
# # -- PgBouncer type of service to forward traffic to.
|
||||||
|
# type: ro
|
||||||
|
# # -- PgBouncer pooling mode
|
||||||
|
# poolMode: transaction
|
||||||
|
# # -- Number of PgBouncer instances
|
||||||
|
# instances: 3
|
||||||
|
# # -- PgBouncer configuration parameters
|
||||||
|
# parameters:
|
||||||
|
# max_client_conn: "1000"
|
||||||
|
# default_pool_size: "25"
|
||||||
|
# monitoring:
|
||||||
|
# # -- Whether to enable monitoring
|
||||||
|
# enabled: false
|
||||||
|
# podMonitor:
|
||||||
|
# # -- Whether to enable the PodMonitor
|
||||||
|
# enabled: true
|
||||||
|
# # -- Custom PgBouncer deployment template.
|
||||||
|
# # Use to override image, specify resources, etc.
|
||||||
|
# template: {}
|
||||||
|
|
||||||
@@ -18,7 +18,7 @@ global:
|
|||||||
## - myRegistryKeySecretName
|
## - myRegistryKeySecretName
|
||||||
##
|
##
|
||||||
imagePullSecrets: []
|
imagePullSecrets: []
|
||||||
storageClass: ""
|
storageClass: openebs-3-replicas
|
||||||
|
|
||||||
## @section Common parameters
|
## @section Common parameters
|
||||||
|
|
||||||
@@ -211,18 +211,18 @@ dbWaitDebug: false
|
|||||||
|
|
||||||
# Email settings
|
# Email settings
|
||||||
email:
|
email:
|
||||||
server: localhost
|
server: mxe965.netcup.net
|
||||||
port: 25
|
port: 587
|
||||||
username: ""
|
username: philip.haupt@borninpain.de
|
||||||
password: ""
|
password: ""
|
||||||
useSSL: false
|
useSSL: true
|
||||||
useTLS: false
|
useTLS: false
|
||||||
sslCertFile: ""
|
sslCertFile: ""
|
||||||
sslKeyFile: ""
|
sslKeyFile: ""
|
||||||
# Timeout in seconds
|
# Timeout in seconds
|
||||||
timeout: 10
|
timeout: 10
|
||||||
from: ""
|
from: noreply@borninpain.de
|
||||||
existingSecretName: ""
|
existingSecretName: netbox
|
||||||
existingSecretKey: email-password
|
existingSecretKey: email-password
|
||||||
|
|
||||||
# Enforcement of unique IP space can be toggled on a per-VRF basis. To enforce
|
# Enforcement of unique IP space can be toggled on a per-VRF basis. To enforce
|
||||||
@@ -440,7 +440,7 @@ sessionCookieName: sessionid
|
|||||||
enableLocalization: false
|
enableLocalization: false
|
||||||
|
|
||||||
# Time zone (default: UTC)
|
# Time zone (default: UTC)
|
||||||
timeZone: UTC
|
timeZone: CET
|
||||||
|
|
||||||
# Date/time formatting. See the following link for supported formats:
|
# Date/time formatting. See the following link for supported formats:
|
||||||
# https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
# https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||||
@@ -1047,7 +1047,7 @@ postgresql:
|
|||||||
## @param postgresql.enabled Whether to deploy a PostgreSQL server to satisfy the applications database requirements
|
## @param postgresql.enabled Whether to deploy a PostgreSQL server to satisfy the applications database requirements
|
||||||
## To use an external database set this to false and configure the externalDatabase parameters
|
## To use an external database set this to false and configure the externalDatabase parameters
|
||||||
##
|
##
|
||||||
enabled: true
|
enabled: false
|
||||||
auth:
|
auth:
|
||||||
username: netbox
|
username: netbox
|
||||||
database: netbox
|
database: netbox
|
||||||
@@ -1062,13 +1062,13 @@ postgresql:
|
|||||||
## @param externalDatabase.existingSecretKey Key of a secret containing the database credentials
|
## @param externalDatabase.existingSecretKey Key of a secret containing the database credentials
|
||||||
##
|
##
|
||||||
externalDatabase:
|
externalDatabase:
|
||||||
host: localhost
|
host: cnpg-netbox-cluster-rw
|
||||||
port: 5432
|
port: 5432
|
||||||
database: netbox
|
database: netbox
|
||||||
username: netbox
|
username: netbox
|
||||||
password: ""
|
password: ""
|
||||||
existingSecretName: ""
|
existingSecretName: cnpg-netbox-cluster-app
|
||||||
existingSecretKey: postgresql-password
|
existingSecretKey: password
|
||||||
|
|
||||||
# The following settings also apply when using the bundled PostgreSQL chart:
|
# The following settings also apply when using the bundled PostgreSQL chart:
|
||||||
engine: django.db.backends.postgresql
|
engine: django.db.backends.postgresql
|
||||||
@@ -1109,7 +1109,7 @@ additionalDatabases: {}
|
|||||||
## @param valkey.enabled Whether to deploy a Valkey server to satisfy the applications database requirements
|
## @param valkey.enabled Whether to deploy a Valkey server to satisfy the applications database requirements
|
||||||
##
|
##
|
||||||
valkey:
|
valkey:
|
||||||
enabled: true
|
enabled: false
|
||||||
sentinel:
|
sentinel:
|
||||||
enabled: false
|
enabled: false
|
||||||
primarySet: netbox-kv
|
primarySet: netbox-kv
|
||||||
@@ -1118,7 +1118,7 @@ valkey:
|
|||||||
sentinel: false
|
sentinel: false
|
||||||
|
|
||||||
tasksDatabase:
|
tasksDatabase:
|
||||||
database: 0
|
database: 3
|
||||||
ssl: false
|
ssl: false
|
||||||
insecureSkipTlsVerify: false
|
insecureSkipTlsVerify: false
|
||||||
# When defining caCertPath, make sure you mount the secret containing the CA certificate on all the necessary containers
|
# When defining caCertPath, make sure you mount the secret containing the CA certificate on all the necessary containers
|
||||||
@@ -1126,7 +1126,7 @@ tasksDatabase:
|
|||||||
|
|
||||||
# Used only when valkey.enabled is false. host and port are not used if
|
# Used only when valkey.enabled is false. host and port are not used if
|
||||||
# sentinels are given.
|
# sentinels are given.
|
||||||
host: netbox-kv
|
host: valkey.valkey.svc.cluster.local
|
||||||
port: 6379
|
port: 6379
|
||||||
sentinels: []
|
sentinels: []
|
||||||
# - mysentinel:26379
|
# - mysentinel:26379
|
||||||
@@ -1134,11 +1134,11 @@ tasksDatabase:
|
|||||||
sentinelTimeout: 300
|
sentinelTimeout: 300
|
||||||
username: ""
|
username: ""
|
||||||
password: ""
|
password: ""
|
||||||
existingSecretName: ""
|
existingSecretName: "netbox"
|
||||||
existingSecretKey: tasks-password
|
existingSecretKey: kv-password
|
||||||
|
|
||||||
cachingDatabase:
|
cachingDatabase:
|
||||||
database: 1
|
database: 4
|
||||||
ssl: false
|
ssl: false
|
||||||
insecureSkipTlsVerify: false
|
insecureSkipTlsVerify: false
|
||||||
# When defining caCertPath, make sure you mount the secret containing the CA certificate on all the necessary containers
|
# When defining caCertPath, make sure you mount the secret containing the CA certificate on all the necessary containers
|
||||||
@@ -1146,7 +1146,7 @@ cachingDatabase:
|
|||||||
|
|
||||||
# Used only when valkey.enabled is false. host and port are not used if
|
# Used only when valkey.enabled is false. host and port are not used if
|
||||||
# sentinels are given.
|
# sentinels are given.
|
||||||
host: netbox-kv
|
host: valkey.valkey.svc.cluster.local
|
||||||
port: 6379
|
port: 6379
|
||||||
sentinels: []
|
sentinels: []
|
||||||
# - mysentinel:26379
|
# - mysentinel:26379
|
||||||
@@ -1154,8 +1154,8 @@ cachingDatabase:
|
|||||||
sentinelTimeout: 300
|
sentinelTimeout: 300
|
||||||
username: ""
|
username: ""
|
||||||
password: ""
|
password: ""
|
||||||
existingSecretName: ""
|
existingSecretName: "netbox"
|
||||||
existingSecretKey: cache-password
|
existingSecretKey: kv-password
|
||||||
|
|
||||||
## @section Autoscaling parameters
|
## @section Autoscaling parameters
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user