2022-11-10 15:04:19 +00:00
|
|
|
{{/* Define the secret */}}
|
|
|
|
{{- define "netbox.secret" -}}
|
|
|
|
|
|
|
|
{{- $secretName := printf "%s-secret" (include "tc.common.names.fullname" .) }}
|
|
|
|
|
|
|
|
{{- $secret_key := "" }}
|
|
|
|
{{- with (lookup "v1" "Secret" .Release.Namespace $secretName) }}
|
2022-12-11 01:23:29 +00:00
|
|
|
{{- $secret_key = (index .data "secret_key") | b64dec }}
|
2022-11-10 15:04:19 +00:00
|
|
|
{{- else }}
|
2022-12-11 00:07:54 +00:00
|
|
|
{{- $secret_key = randAlphaNum 64 | b64enc }}
|
2022-11-10 15:04:19 +00:00
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
apiVersion: v1
|
|
|
|
kind: Secret
|
|
|
|
type: Opaque
|
|
|
|
metadata:
|
|
|
|
name: {{ $secretName }}
|
|
|
|
labels:
|
|
|
|
{{- include "tc.common.labels" . | nindent 4 }}
|
|
|
|
data:
|
2022-12-11 01:23:29 +00:00
|
|
|
secret_key: {{ $secret_key | b64enc }}
|
2022-11-10 15:04:19 +00:00
|
|
|
stringData:
|
|
|
|
config.py: |
|
|
|
|
ALLOWED_HOSTS = [
|
|
|
|
'127.0.0.1',
|
|
|
|
'::1',
|
|
|
|
{{- range .Values.netbox.allowed_hosts }}
|
|
|
|
{{ . | squote }},
|
|
|
|
{{- end }}
|
|
|
|
]
|
|
|
|
|
|
|
|
DATABASE = {
|
|
|
|
'NAME': '{{ .Values.postgresql.postgresqlDatabase }}',
|
|
|
|
'USER': '{{ .Values.postgresql.postgresqlUsername }}',
|
|
|
|
'PASSWORD': '{{ .Values.postgresql.postgresqlPassword | trimAll "\"" }}',
|
|
|
|
'HOST': '{{ printf "%v-%v" .Release.Name "postgresql" }}',
|
|
|
|
'PORT': '5432',
|
|
|
|
'CONN_MAX_AGE': 300,
|
|
|
|
}
|
|
|
|
|
|
|
|
REDIS = {
|
|
|
|
'tasks': {
|
|
|
|
'HOST': '{{ printf "%v-%v" .Release.Name "redis" }}',
|
|
|
|
'PORT': 6379,
|
|
|
|
'PASSWORD': '{{ .Values.redis.redisPassword | trimAll "\"" }}',
|
|
|
|
'DATABASE': 0,
|
|
|
|
'SSL': False,
|
|
|
|
},
|
|
|
|
'caching': {
|
|
|
|
'HOST': '{{ printf "%v-%v" .Release.Name "redis" }}',
|
|
|
|
'PORT': 6379,
|
|
|
|
'PASSWORD': '{{ .Values.redis.redisPassword | trimAll "\"" }}',
|
|
|
|
'DATABASE': 1,
|
|
|
|
'SSL': False,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-12-11 01:23:29 +00:00
|
|
|
SECRET_KEY = '{{ $secret_key }}'
|
2022-11-10 15:04:19 +00:00
|
|
|
|
|
|
|
{{- with .Values.netbox.admins }}
|
|
|
|
ADMINS = [
|
|
|
|
{{- range . }}
|
|
|
|
({{ .name | squote }},{{ .email | squote }}),
|
|
|
|
{{- end }}
|
|
|
|
]
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{- with .Values.netbox.allowed_urls_schemes}}
|
|
|
|
ALLOWED_URL_SCHEMES = [
|
|
|
|
{{- range . }}
|
|
|
|
{{ . | squote }},
|
|
|
|
{{- end }}
|
|
|
|
]
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{- with .Values.netbox.auth_password_validators }}
|
|
|
|
AUTH_PASSWORD_VALIDATORS = [
|
|
|
|
{{- range . }}
|
|
|
|
{
|
|
|
|
'NAME': {{ .name | squote }},
|
|
|
|
'OPTIONS': {
|
|
|
|
{{- range .options }}
|
|
|
|
{{ .key | squote }}: {{ .value }},
|
|
|
|
{{- end }}
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
{{- end }}
|
|
|
|
]
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{- with .Values.netbox.banner.top }}
|
|
|
|
BANNER_TOP = {{ . | squote }}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{- with .Values.netbox.banner.bottom }}
|
|
|
|
BANNER_BOTTOM = {{ . | squote }}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{- with .Values.netbox.banner.login }}
|
|
|
|
BANNER_LOGIN = {{ . | squote }}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{- if or .Values.netbox.retention.changelog (eq (int .Values.netbox.retention.changelog) 0) }}
|
|
|
|
CHANGELOG_RETENTION = {{ .Values.netbox.retention.changelog }}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{- if or .Values.netbox.retention.job_result (eq (int .Values.netbox.retention.job_result) 0) }}
|
|
|
|
JOBRESULT_RETENTION = {{ .Values.netbox.retention.job_result }}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
PREFER_IPV4 = {{ ternary "True" "False" .Values.netbox.prefer_ipv4 }}
|
|
|
|
|
|
|
|
ENFORCE_GLOBAL_UNIQUE = {{ ternary "True" "False" .Values.netbox.enforce_global_unique }}
|
|
|
|
|
|
|
|
GRAPHQL_ENABLED = {{ ternary "True" "False" .Values.netbox.graphql_enabled }}
|
|
|
|
|
|
|
|
{{- with .Values.netbox.maps_url }}
|
|
|
|
MAPS_URL = {{ . | squote }}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{- if or .Values.netbox.max_page_size (eq (int .Values.netbox.max_page_size) 0) }}
|
|
|
|
MAX_PAGE_SIZE = {{ .Values.netbox.max_page_size }}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{- if or .Values.netbox.paginate_count (eq (int .Values.netbox.paginate_count) 0) }}
|
|
|
|
PAGINATE_COUNT = {{ .Values.netbox.paginate_count }}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{- with .Values.netbox.powerfeed.default_amperage }}
|
|
|
|
POWERFEED_DEFAULT_AMPERAGE = {{ . }}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{- with .Values.netbox.powerfeed.default_max_utilization }}
|
|
|
|
POWERFEED_DEFAULT_MAX_UTILIZATION = {{ . }}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{- with .Values.netbox.powerfeed.default_voltage }}
|
|
|
|
POWERFEED_DEFAULT_VOLTAGE = {{ . }}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{- with .Values.netbox.rack.elevation_default_unit_height }}
|
|
|
|
RACK_ELEVATION_DEFAULT_UNIT_HEIGHT = {{ . }}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{- with .Values.netbox.rack.elevation_default_unit_width }}
|
|
|
|
RACK_ELEVATION_DEFAULT_UNIT_WIDTH = {{ . }}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{- with .Values.netbox.napalm.username }}
|
|
|
|
NAPALM_USERNAME = {{ . | squote }}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{- with .Values.netbox.napalm.password }}
|
|
|
|
NAPALM_PASSWORD = {{ . | squote }}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{- with .Values.netbox.napalm.timeout }}
|
|
|
|
NAPALM_TIMEOUT = {{ . }}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{- with .Values.netbox.napalm.args }}
|
|
|
|
NAPALM_ARGS = {
|
|
|
|
{{- range . }}
|
|
|
|
{{ .arg | squote }}: {{ .value | squote }},
|
|
|
|
{{- end }}
|
|
|
|
}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{- with .Values.netbox.csrf_trusted_origin }}
|
|
|
|
CSRF_TRUSTED_ORIGINS = [
|
|
|
|
{{ . | squote }},
|
|
|
|
]
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{- with .Values.netbox.csrf_cookie_name }}
|
|
|
|
CSRF_COOKIE_NAME = {{ . | squote }}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
CORS_ORIGIN_ALLOW_ALL = {{ ternary "True" "False" .Values.netbox.cors_origin_allow_all }}
|
|
|
|
|
|
|
|
{{- with .Values.netbox.cors_origin_whitelist }}
|
|
|
|
CORS_ORIGIN_WHITELIST = [
|
|
|
|
{{- range . }}
|
|
|
|
{{ . | squote }},
|
|
|
|
{{- end }}
|
|
|
|
]
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{- with .Values.netbox.cors_origin_regex_whitelist }}
|
|
|
|
CORS_ORIGIN_REGEX_WHITELIST = [
|
|
|
|
{{- range . }}
|
|
|
|
{{ . }},
|
|
|
|
{{- end }}
|
|
|
|
]
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
DEBUG = {{ ternary "True" "False" .Values.netbox.debug }}
|
|
|
|
|
|
|
|
{{- if .Values.netbox.email }}
|
|
|
|
{{- if .Values.netbox.email.server }}
|
|
|
|
EMAIL = {
|
|
|
|
{{- with .Values.netbox.email.server }}
|
|
|
|
'SERVER': {{ . | squote }},
|
|
|
|
{{- end }}
|
|
|
|
{{- with .Values.netbox.email.port }}
|
|
|
|
'PORT': {{ . }},
|
|
|
|
{{- end }}
|
|
|
|
{{- with .Values.netbox.email.username }}
|
|
|
|
'USERNAME': {{ . | squote }},
|
|
|
|
{{- end }}
|
|
|
|
{{- with .Values.netbox.email.password }}
|
|
|
|
'PASSWORD': {{ . | squote }},
|
|
|
|
{{- end }}
|
|
|
|
'USE_SSL': {{ ternary "True" "False" .Values.netbox.email.use_ssl }},
|
|
|
|
'USE_TLS': {{ ternary "True" "False" .Values.netbox.email.use_tls }},
|
|
|
|
{{- with .Values.netbox.email.timeout }}
|
|
|
|
'TIMEOUT': {{ . }},
|
|
|
|
{{- end }}
|
|
|
|
{{- with .Values.netbox.email.from_email }}
|
|
|
|
'FROM_EMAIL': {{ . | squote }},
|
|
|
|
{{- end }}
|
|
|
|
}
|
|
|
|
{{- end }}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{- with .Values.netbox.exempt_view_permissions }}
|
|
|
|
EXEMPT_VIEW_PERMISSIONS = [
|
|
|
|
{{- range . }}
|
|
|
|
{{ . | squote }},
|
|
|
|
{{- end }}
|
|
|
|
]
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{- with .Values.netbox.http_proxies }}
|
|
|
|
HTTP_PROXIES = {
|
|
|
|
{{- range . }}
|
|
|
|
{{ .key | squote }}: {{ .url | squote }},
|
|
|
|
{{- end }}
|
|
|
|
}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{- with .Values.netbox.internal_ips }}
|
|
|
|
INTERNAL_IPS = (
|
|
|
|
'127.0.0.1',
|
|
|
|
'::1',
|
|
|
|
{{- range . }}
|
|
|
|
{{ . | squote }},
|
|
|
|
{{- end }}
|
|
|
|
)
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
LOGIN_PERSISTENCE = {{ ternary "True" "False" .Values.netbox.login_persistence }}
|
|
|
|
|
|
|
|
LOGIN_REQUIRED = {{ ternary "True" "False" .Values.netbox.login_required }}
|
|
|
|
|
|
|
|
{{- with .Values.netbox.login_timeout }}
|
|
|
|
LOGIN_TIMEOUT = {{ . }}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
METRICS_ENABLED = {{ ternary "True" "False" .Values.metrics.enabled }}
|
|
|
|
|
|
|
|
TIME_ZONE = {{ .Values.TZ | squote }}
|
|
|
|
|
|
|
|
MEDIA_ROOT = '/opt/netbox/netbox/media'
|
|
|
|
REPORTS_ROOT = '/opt/netbox/netbox/reports'
|
|
|
|
SCRIPTS_ROOT = '/opt/netbox/netbox/scripts'
|
|
|
|
|
|
|
|
{{- with .Values.netbox.storage_backend }}
|
|
|
|
STORAGE_BACKEND = {{ . | squote }}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{- with .Values.netbox.storage_config }}
|
|
|
|
STORAGE_CONFIG = {
|
|
|
|
{{- range . }}
|
|
|
|
{{ .key | squote }}: {{ .value | squote }},
|
|
|
|
{{- end }}
|
|
|
|
}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{- $enabled_plugins := list -}}
|
|
|
|
{{- with .Values.netbox.plugin_config -}}
|
|
|
|
{{- range . -}}
|
|
|
|
{{- if .enabled -}}
|
|
|
|
{{- $enabled_plugins = append $enabled_plugins .plugin_name -}}
|
|
|
|
{{- end -}}
|
|
|
|
{{- end -}}
|
|
|
|
{{- end -}}
|
|
|
|
|
|
|
|
{{- with $enabled_plugins }}
|
|
|
|
PLUGINS = [
|
|
|
|
{{- range . }}
|
|
|
|
{{ . | squote }},
|
|
|
|
{{- end }}
|
|
|
|
]
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{/*
|
|
|
|
TODO: Consider template plugins here, so it's easier to config on UI
|
|
|
|
https://github.com/netbox-community/netbox/wiki/Plugins
|
|
|
|
*/}}
|
|
|
|
{{- with .Values.netbox.plugin_config }}
|
|
|
|
PLUGINS_CONFIG = {
|
|
|
|
{{- range . }}
|
|
|
|
{{- if .enabled }}
|
|
|
|
{{ .plugin_name | squote }}: {
|
|
|
|
{{- range .config }}
|
|
|
|
{{ .key | squote }}: {{ .value | squote }},
|
|
|
|
{{- end }}
|
|
|
|
}
|
|
|
|
{{- end }}
|
|
|
|
{{- end }}
|
|
|
|
}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{- with .Values.netbox.rq_default_timeout }}
|
|
|
|
RQ_DEFAULT_TIMEOUT = {{ . }}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
{{- with .Values.netbox.session_cookie_name }}
|
|
|
|
SESSION_COOKIE_NAME = {{ . | squote }}
|
|
|
|
{{- end }}
|
|
|
|
|
|
|
|
RELEASE_CHECK_URL = 'https://api.github.com/repos/netbox-community/netbox/releases'
|
|
|
|
|
|
|
|
{{- with .Values.netbox.remote_auth }}
|
|
|
|
{{- if .enabled }}
|
|
|
|
REMOTE_AUTH_ENABLED = True
|
|
|
|
{{- with .backend }}
|
|
|
|
REMOTE_AUTH_BACKEND = {{ . | squote }}
|
|
|
|
{{- end }}
|
|
|
|
{{- with .header }}
|
|
|
|
REMOTE_AUTH_HEADER = {{ . | squote }}
|
|
|
|
{{- end }}
|
|
|
|
REMOTE_AUTH_AUTO_CREATE_USER = {{ ternary "True" "False" .auto_create_user }}
|
|
|
|
{{- with .default_groups }}
|
|
|
|
REMOTE_AUTH_DEFAULT_GROUPS = [
|
|
|
|
{{- range . }}
|
|
|
|
{{ . | squote }},
|
|
|
|
{{- end }}
|
|
|
|
]
|
|
|
|
{{- end }}
|
|
|
|
{{- with .default_permissions }}
|
|
|
|
REMOTE_AUTH_DEFAULT_PERMISSIONS = {
|
|
|
|
{{- range . }}
|
|
|
|
{{ .key | squote }}: {{ if eq .value "None" }}{{ .value }}{{ else }}{{ .value | squote }}{{ end }},
|
|
|
|
{{- end }}
|
|
|
|
}
|
|
|
|
{{- end }}
|
|
|
|
{{- end }}
|
|
|
|
{{- end }}
|
|
|
|
SESSION_FILE_PATH = None
|
|
|
|
|
|
|
|
{{- with .Values.netbox.date_time }}
|
|
|
|
{{- with .date_format }}
|
|
|
|
DATE_FORMAT = {{ . | squote }}
|
|
|
|
{{- end }}
|
|
|
|
{{- with .short_date_format }}
|
|
|
|
SHORT_DATE_FORMAT = {{ . | squote }}
|
|
|
|
{{- end }}
|
|
|
|
{{- with .time_format }}
|
|
|
|
TIME_FORMAT = {{ . | squote }}
|
|
|
|
{{- end }}
|
|
|
|
{{- with .shot_time_format }}
|
|
|
|
SHORT_TIME_FORMAT = {{ . | squote }}
|
|
|
|
{{- end }}
|
|
|
|
{{- with .date_time_format }}
|
|
|
|
DATETIME_FORMAT = {{ . | squote }}
|
|
|
|
{{- end }}
|
|
|
|
{{- with .short_date_time_format }}
|
|
|
|
SHORT_DATETIME_FORMAT = {{ . | squote }}
|
|
|
|
{{- end }}
|
|
|
|
{{- end }}
|
|
|
|
{{- end }}
|