TrueChartsClone/charts/incubator/netbox/templates/_secret.tpl

377 lines
10 KiB
Smarty

{{/* Define the secret */}}
{{- define "netbox.secret" -}}
{{- $secretName := printf "%s-secret" (include "tc.common.names.fullname" .) }}
{{- $secret_key := "" }}
{{- with (lookup "v1" "Secret" .Release.Namespace $secretName) }}
{{- $secret_key = (index .data "secret_key") | b64dec }}
{{- else }}
{{- $secret_key = randAlphaNum 64 | b64enc }}
{{- end }}
---
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: {{ $secretName }}
labels:
{{- include "tc.common.labels" . | nindent 4 }}
data:
secret_key: {{ $secret_key | b64enc }}
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,
}
}
SECRET_KEY = '{{ $secret_key }}'
{{- 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 }}