Version 4 · Migration
Konfiguration, Secrets und Bindings
JNDI, web.xml, serverseitige DataSources und Admin-Console-Einstellungen werden in versionierbare und sichere OpenShift-Konfiguration überführt.
Problem alter Konfiguration
Legacy-Anwendungen sind oft nur zusammen mit der Application-Server-Konfiguration vollständig. Ohne JNDI-Namen, Connection Pools, Work Manager, JAAS-Rollen, Keystores und Custom Properties ist der Code nicht ausführbar.
Vorher: web.xml / Deployment Descriptor
Vorher: Servernahe Konfiguration
<resource-ref>
<res-ref-name>jdbc/LegacyDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<env-entry>
<env-entry-name>billing.cutoff.hour</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>22</env-entry-value>
</env-entry>
Nachher: ConfigMap und Secret
Nachher: Umgebungskonfiguration und geheime Werte
apiVersion: v1
kind: ConfigMap
metadata:
name: billing-config
data:
BILLING_CUTOFF_HOUR: "22"
HOST_POLICY_ENDPOINT: "https://legacy-gateway/policy"
---
apiVersion: v1
kind: Secret
metadata:
name: billing-secrets
type: Opaque
stringData:
DB_USERNAME: "billing_app"
DB_PASSWORD: "change-me-in-secret-store"
Regeln für saubere Migration
| Regel | Begründung |
|---|---|
| Keine Passwörter im Git | Secrets nur über Secret-Management oder OpenShift Secret, nicht in Klartext-Repos. |
| Konfiguration typisieren | Technische Endpunkte, fachliche Schwellwerte und Betriebsparameter getrennt halten. |
| JNDI entkoppeln | JNDI-Namen nicht durch die Domäne ziehen, sondern in Adapter legen. |
| Profile klein halten | Nicht für jede Umgebung Codepfade bauen, sondern Konfiguration injizieren. |