Public Information

This commit is contained in:
2026-03-10 07:33:55 +01:00
commit 4c9519166e
499 changed files with 125937 additions and 0 deletions

View File

@@ -0,0 +1,2 @@
{{- include "nplus.init" $ -}}
{{- include "nplus.component" . -}}

View File

@@ -0,0 +1,18 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .component.fullName }}-defaultconfig
{{- if .this.utils.includeNamespace }}
namespace: {{ .Release.Namespace }}
{{- end }}
labels:
{{- include "nplus.instanceLabels" . | nindent 4 }}
annotations:
{{- include "nplus.argoWave" . | nindent 4 }}
{{- include "nplus.annotations" . | nindent 4 }}
{{- include "nplus.securityAnnotations" . | nindent 4 }}
data:
{{- range $path, $bytes := .Files.Glob "defaultconfig/*" }}
{{- base $path | nindent 2 }}: |
{{- tpl ($.Files.Get $path) $ | nindent 4 }}
{{- end }}

View File

@@ -0,0 +1,204 @@
{{- include "nplus.init" $ -}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .component.fullName }}
{{- if .this.utils.includeNamespace }}
namespace: {{ .Release.Namespace }}
{{- end }}
labels:
{{- include "nplus.instanceLabels" . | nindent 4 }}
annotations:
{{- include "nplus.argoWave" . | nindent 4 }}
{{- include "nplus.annotations" . | nindent 4 }}
{{- include "nplus.securityAnnotations" . | nindent 4 }}
spec:
selector:
matchLabels:
{{- include "nplus.selectorLabels" . | nindent 6 }}
{{- include "nplus.replicas" . | nindent 2 }}
strategy:
type: {{ .Values.updateStrategy | default "RollingUpdate" }}
template:
metadata:
labels:
{{- include "nplus.templateLabels" . | nindent 8 }}
annotations:
{{- include "nplus.templateAnnotations" . | nindent 8 }}
{{- include "nplus.securityAnnotations" . | nindent 8 }}
spec:
{{- include "nplus.priorityClassName" . | nindent 6 }}
{{- include "nplus.imagePullSecrets" . | nindent 6 }}
{{- include "nplus.podSecurityContext" . | nindent 6 }}
{{- include "nplus.securityIllumioReadinessGates" . | nindent 6 }}
{{- include "nplus.templateAffinity" . | nindent 6 }}
{{- include "nplus.terminationGracePeriodSeconds" . | nindent 6 }}
initContainers:
{{- include "nplus.waitFor" . | nindent 6 }}
{{- include "nplus.copyConfig" . | nindent 6 }}
# nscale Web does not enable tls / https by default.
# TODO: observe ITSMSD-8772
# So we need to perform the steps described in the manual to enable it.
# We will do this, if this is a new installation (and the keystore does not exist yet)
- name: enable-https
image: {{ include "nplus.image" (dict "global" .Values.global "image" .Values.image) }}
imagePullPolicy: {{ include "nplus.imagePullPolicy" .Values.image }}
{{- include "nplus.containerSecurityContext" . | nindent 8 }}
{{- include "nplus.initResources" . | nindent 8 }}
command: [ "/bin/sh", "-c" ]
args:
- |
set -e
KEYSTORE="/mnt/conf/keystore.jks"
KEYPASS="changeit"
if [ ! -f "$KEYSTORE" ]; then
echo "Creating input for keytool"
cat << EOM > /tmp/keyinput
$KEYPASS
$KEYPASS
{{ .this.ingress.domain }}
Development Department
42i GmbH
Bad Lippspringe
NRW
DE
yes
EOM
echo "Creating Keystore at $KEYSTORE using $KEYTOOL"
keytool -genkeypair -alias tomcat -keyalg RSA -keystore $KEYSTORE < /tmp/keyinput
else
echo "Keystore at $KEYSTORE already exists. Leaving as is."
fi
echo "Done."
volumeMounts:
- name: conf
subPath: {{ .component.storagePath | quote }}
mountPath: /mnt/conf
- name: temp
mountPath: /tmp
{{- include "nplus.initContainers" . | nindent 6 }}
containers:
- name: web-client
image: {{ include "nplus.image" (dict "global" .Values.global "image" .Values.image) }}
imagePullPolicy: {{ include "nplus.imagePullPolicy" .Values.image }}
{{- include "nplus.containerSecurityContext" . | nindent 8 }}
env:
{{- if ($.this.nappl).host }}
- name: NSCALE_HOST
value: {{ ($.this.nappl).host | quote }}
{{- end }}
{{- if ($.this.nappl).port }}
- name: NSCALE_PORT
value: {{ ($.this.nappl).port | quote }}
{{- end }}
{{- if ($.this.nappl).ssl }}
- name: NSCALE_SSL
value: {{ ($.this.nappl).ssl | quote }}
{{- end }}
{{- if ($.this.nappl).instance }}
- name: NSCALE_INSTANCE
value: {{ ($.this.nappl).instance | quote }}
{{- end }}
- name: LOG4JCONFIGLOCATION
value: "../conf/log4j/nscale_stdout_log_conf.xml"
{{- if .Values.metamodelMode }}
- name: REFRESH_METAMODEL_MODE
value: {{ .Values.metamodelMode | quote }}
{{- end }}
{{- if .Values.sameSite }}
- name: NSACLE_SAMESITE
value: {{ .Values.sameSite | quote }}
{{- end }}
{{- if .Values.disableUsernamePassword }}
- name: NSCALE_DISABLEUSERNAMEPASSWORD
value: {{ .Values.disableUsernamePassword | quote }}
{{- end }}
{{- if .Values.oauthDomains }}
- name: NSCALE_OAUTH_DOMAINS
value: {{ .Values.oauthDomains | quote }}
{{- end }}
{{- if .Values.samlDomains }}
- name: NSCALE_SAML_DOMAINS
value: {{ .Values.samlDomains | quote }}
{{- end }}
{{- if .Values.immediateFederatedLogin }}
- name: NSCALE_IMMEDIATE_FEDERATED_LOGIN
value: {{ .Values.immediateFederatedLogin | quote }}
{{- end }}
{{- if .Values.samlDomains }}
- name: NSCALE_ENABLE_SAML
value: {{ if .Values.samlDomains }}"true"{{ else }}{{/* if .Values.samlDomains */}}"false"{{ end }}
{{- end }}
{{- if .Values.oauthDomains }}
- name: NSCALE_ENABLE_OAUTH
value: {{ if .Values.oauthDomains }}"true"{{ else }}{{/* if .Values.oauthDomains */}}"false"{{ end }}
{{- end }}
{{- if .Values.authType }}
- name: NSCALE_AUTHTYPE
value: {{ .Values.authType | quote }}
{{- end }}
{{- if .Values.authType }}
- name: NSCALE_SMART_CROSSGRADE
value: {{ .Values.smartCrossgrade | quote }}
{{- end }}
{{- if .Values.customizingMode }}
- name: NSCALE_CUSTOMIZINGMODE
value: {{ if .Values.customizingMode }}"true"{{ else }}{{/* if .Values.customizingMode */}}"false"{{ end }}
{{- end }}
{{ include "nplus.appDynamicsEnv" . | nindent 10 }}
{{- include "nplus.environment" . | nindent 8 }}
{{- if .this.utils.maintenance }}
{{- include "nplus.idle" . | nindent 8 }}
{{- else }}{{/* if .this.utils.maintenance */}}
{{- if .Values.probes }}
# -- custom probes as defined in values
{{- toYaml .Values.probes | nindent 8 }}
{{- else }}{{/* if .Values.probes */}}
# -- default nplus probes, can be overridden by probes key in values
startupProbe:
httpGet:
path: /nscale_web/systemConfiguration.xml
port: {{ include "nplus.backendPort" . }}
scheme: {{ include "nplus.backendProtocol" . | upper }}
initialDelaySeconds: 10
failureThreshold: 30
periodSeconds: 10
timeoutSeconds: 5
livenessProbe:
httpGet:
path: /nscale_web/systemConfiguration.xml
port: {{ include "nplus.backendPort" . }}
scheme: {{ include "nplus.backendProtocol" . | upper }}
periodSeconds: 10
timeoutSeconds: 2
readinessProbe:
httpGet:
path: /nscale_web/systemConfiguration.xml
port: {{ include "nplus.backendPort" . }}
scheme: {{ include "nplus.backendProtocol" . | upper }}
periodSeconds: 10
timeoutSeconds: 2
{{- end }}{{/* .Values.probes else */}}
{{- end }}{{/* if .this.utils.maintenance else */}}
ports:
{{- include "nplus.defaultContainerPorts" . | nindent 8 }}
{{- include "nplus.resources" . | nindent 8 }}
volumeMounts:
{{- include "nplus.defaultMounts" . | nindent 8 }}
volumes:
{{- include "nplus.defaultVolumes" . | nindent 6 }}

View File

@@ -0,0 +1,30 @@
{{- include "nplus.init" $ -}}
{{- if ( include "nplus.ingressEnabled" . ) }}
{{- $provider := (.this.ingress).provider -}}
{{- if eq $provider "ingress" }}
{{- include "nplus.ingress" (list . .component.fullName) | nindent 0 }}
- path: {{ .this.ingress.contextPath }}
pathType: Prefix
backend:
service:
name: {{ .component.fullName }}
port:
name: {{ include "nplus.backendProtocol" . }}
{{- else if eq $provider "gateway" }}
{{- include "nplus.gatewayRoute" (list . .component.fullName) | nindent 0 }}
- matches:
- path:
type: PathPrefix
value: {{ .this.ingress.contextPath }}
backendRefs:
- name: {{ .component.fullName }}
port: {{ include "nplus.backendPort" . }}
{{- else }}{{/* if provider */}}
{{- fail (printf "unsupported ingress provider: %s" $provider) -}}
{{- end }}{{/* if provider */}}
{{- else }}{{/* if ( include "nplus.ingressEnabled" . ) */}}
# kind: ingress
# Not Generating any Ingress for {{ .component.fullName }} as
# Ingress = {{ .this.ingress }}
# Service = {{ .this.service }}
{{- end }}{{/* if ( include "nplus.ingressEnabled" . ) else */}}

View File

@@ -0,0 +1,35 @@
{{- include "nplus.init" $ -}}
{{- if ((.this.security).cni).createNetworkPolicy }}
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: {{ .component.fullName }}
{{- if .this.utils.includeNamespace }}
namespace: {{ .Release.Namespace }}
{{- end }}
labels:
{{- include "nplus.instanceLabels" . | nindent 4 }}
annotations:
{{- include "nplus.argoWave" . | nindent 4 }}
{{- include "nplus.annotations" . | nindent 4 }}
{{- include "nplus.securityAnnotations" . | nindent 4 }}
spec:
podSelector:
matchLabels:
{{- include "nplus.selectorLabels" . | nindent 6 }}
policyTypes:
- Ingress
- Egress
ingress:
{{- if ( include "nplus.ingressEnabled" . ) }}
{{- include "nplus.networkpolicy.allowFromIngress" . | nindent 2 }}
{{- end }}
{{- include "nplus.networkpolicy.allowFromAdmin" . | nindent 2 }}
{{- include "nplus.networkpolicy.allowFromMon" . | nindent 2 }}
egress:
{{- include "nplus.networkpolicy.allowToNappl" . | nindent 2 }}
{{- end }}{{/* if ((.this.security).cni).createNetworkPolicy */}}

View File

@@ -0,0 +1,2 @@
{{- include "nplus.init" $ -}}
{{- include "nplus.podDisruptionBudget" . -}}

View File

@@ -0,0 +1,2 @@
{{- include "nplus.init" $ -}}
{{- include "nplus.priorityClass" . }}

View File

@@ -0,0 +1,2 @@
{{- include "nplus.init" $ -}}
{{- include "nplus.pvc" . }}

View File

@@ -0,0 +1,33 @@
{{- include "nplus.init" $ -}}
apiVersion: v1
kind: Service
metadata:
{{- if .this.utils.includeNamespace }}
namespace: {{ .Release.Namespace }}
{{- end }}
name: {{ .component.fullName }}
labels:
{{- include "nplus.instanceLabels" . | nindent 4 }}
annotations:
{{- include "nplus.argoWave" . | nindent 4 }}
{{- include "nplus.annotations" . | nindent 4 }}
{{- include "nplus.securityAnnotations" . | nindent 4 }}
{{- include "nplus.serviceAnnotations" . | nindent 4 }}
spec:
# this is a "headless service", no cluster IP is defined
# as none of the internal components need to access this service,
# access is purely through an ingress if desired.
type: ClusterIP
clusterIP: None
ports:
{{- include "nplus.defaultServicePorts" . | nindent 4 }}
selector:
{{- if eq .this.service.selector "component" }}
{{- include "nplus.selectorLabels" . | nindent 4 }}
{{- else if eq .this.service.selector "type" }}{{/* if eq .this.service.selector "component" else if eq .this.service.selector "type" */}}
{{- include "nplus.selectorLabelsNc" . | nindent 4 }}
{{- else }}{{/* if eq .this.service.selector "component" */}}
{{- fail (printf "Unknown Service Selector Type: %s - must be component or type" .this.service.selector) }}
{{- end }}{{/* if eq .this.service.selector "component" else */}}