Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion charts/visual-tom/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ description: >
type: application

# Chart version (follows SemVer). Increment on every chart change.
version: 0.1.0
version: 0.2.0

# Reference application version (VTOM). ITC, ITM and MFT versions are defined in values.yaml.
appVersion: "7.3.2c"
Expand Down
6 changes: 4 additions & 2 deletions charts/visual-tom/templates/itc/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,10 @@ spec:
automountServiceAccountToken: false
{{- include "vtom.imagePullSecrets" . | nindent 6 }}
securityContext:
runAsNonRoot: false # TODO: activer avec runAsUser quand UID confirmé par Absyss
fsGroup: 0
runAsNonRoot: true
runAsUser: 10001
runAsGroup: 10001
fsGroup: 10001
seccompProfile:
type: RuntimeDefault
initContainers:
Expand Down
28 changes: 4 additions & 24 deletions charts/visual-tom/templates/itm/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,37 +35,17 @@ spec:
automountServiceAccountToken: false
{{- include "vtom.imagePullSecrets" . | nindent 6 }}
securityContext:
runAsNonRoot: false # TODO: activer avec runAsUser quand UID confirmé par Absyss
fsGroup: 0
runAsNonRoot: true
runAsUser: 10001
runAsGroup: 10001
fsGroup: 10001
seccompProfile:
type: RuntimeDefault
initContainers:
{{- include "vtom.sidecar.dbProxy" . | nindent 8 }}
{{- if .Values.dbProxy.enabled }}
{{- include "vtom.initContainer.waitForDb" . | nindent 8 }}
{{- end }}
- name: prepare-itm-data
image: busybox:1.36
command:
- sh
- -c
- |
mkdir -p /var/lib/absyss/visual-it-messenger/log
mkdir -p /var/lib/absyss/visual-it-messenger/license
resources:
requests:
cpu: "10m"
memory: "16Mi"
limits:
cpu: "10m"
memory: "16Mi"
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop: ["ALL"]
volumeMounts:
- name: itm-data
mountPath: /var/lib/absyss/visual-it-messenger
containers:
- name: itm
image: {{ include "itm.image" . | quote }}
Expand Down
9 changes: 8 additions & 1 deletion charts/visual-tom/templates/vtom/deployment-apiserver.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -104,8 +104,15 @@ spec:
volumeMounts:
- name: customer-data
mountPath: /var/lib/absyss/visual-tom
# Mount the license secret inside the PVC (customer-data) so the entrypoint
# symlink /opt/absyss/visual-tom/license -> /var/lib/absyss/visual-tom/license
# works as intended. Mounting under /opt/.../license/ instead would turn that
# directory into a non-removable mountpoint, the rm -rf + ln -s would silently
# misfire, and license.data / license.diagnostic / license.events written by
# the Java code would land on the container rootfs (lost at each restart →
# a new License Server "Register instance" every reboot → quota burn).
- name: license
mountPath: /opt/absyss/visual-tom/license/{{ .Values.vtom.license.secretKey }}
mountPath: /var/lib/absyss/visual-tom/license/{{ .Values.vtom.license.secretKey }}
subPath: {{ .Values.vtom.license.secretKey }}
readOnly: true
volumes:
Expand Down
19 changes: 19 additions & 0 deletions charts/visual-tom/values-client-template.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,9 @@ mft:

# Restrict allowed IPs — RECOMMENDED in production.
# Leaving empty opens access from the entire VNet (internal LB) or internet (public LB).
# IMPORTANT: this only filters at the LoadBalancer level. To also allow the same
# external CIDRs through the K8s NetworkPolicy on the MFT pod, mirror them in
# networkPolicy.sftpExternalCidrs below. Both layers must allow the traffic.
loadBalancerSourceRanges: []
# - "10.0.0.0/8" # Internal network
# - "185.1.2.3/32" # Fixed IP of partner SFTP clients
Expand All @@ -193,6 +196,22 @@ mft:
# nodeSelector: {}
# affinity: {}

# -----------------------------------------------------------------------------
# NetworkPolicy
# Cluster-side firewall on the MFT pod (in addition to the cloud LoadBalancer
# firewall configured via mft.sftpService.loadBalancerSourceRanges).
# -----------------------------------------------------------------------------
networkPolicy:
# External CIDRs allowed to reach the MFT SFTP port (30022) at the pod level.
# MUST mirror mft.sftpService.loadBalancerSourceRanges for external SFTP clients
# to actually reach the pod — both filtering layers apply in series.
# With MFT externalTrafficPolicy: Local (default), the pod sees the real client IP,
# so list the actual partner CIDRs here.
# Leave empty to restrict SFTP to internal/agent traffic only (production default).
sftpExternalCidrs: []
# - "203.0.113.0/24" # Partner network A
# - "198.51.100.10/32" # Fixed IP of partner SFTP client

# -----------------------------------------------------------------------------
# Database — connection
# FQDN or IP of the PostgreSQL 17 server accessible from the cluster.
Expand Down
7 changes: 4 additions & 3 deletions charts/visual-tom/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -512,13 +512,14 @@ networkPolicy:
sftpExternalCidrs: []

# -----------------------------------------------------------------------------
# Pod security context
# Pod security context — applies to VTOM components only (server, apiserver, agent).
# runAsUser: numeric UID required on standard K8s when the image uses a symbolic
# user (e.g.: USER vtom) — K8s cannot verify runAsNonRoot without a numeric UID.
# Leave null on OpenShift: the nonroot SCC assigns the UID automatically from the
# namespace range, avoiding conflicts with a hardcoded UID.
# Recommended value for VTOM images (server, apiserver, agent): 1000
# ITC and ITM still run as root — not applicable for now.
# Recommended value for VTOM images (server, apiserver, agent): 1000 (set in values-<cloud>.yaml).
# ITC, ITM and MFT run under their own hardcoded uid 10001 (absyss) in their templates
# and ignore this value.
# -----------------------------------------------------------------------------
securityContext:
runAsUser: null
Expand Down