Daten von der Migration ausschließen
Es können mehrere Arten von Daten von der Migration ausgeschloßen werden: ganze Dogus, Dateien innerhalb von Dogus und Konfigurationen.
Um eine oder mehrere dieser Möglichkeiten zu nutzen müssen Konfigurationen auf der Ziel-Instanz vorgenommen werden. Dazu muss die "Component-CR" des CES-Importers editiert werden. Dabei ist folgendermaßen vorzugehen:
-
Editieren Sie die "Component-CR" des CES-Importers:
kubectl edit component ces-importer -n ecosystem - Tragen Sie die gewünschten Optionen (siehe einzelne Sektionen in diesem Dokument) in dem Feld
valuesYamlOverwriteein. -
Beispiel:
apiVersion: k8s.cloudogu.com/v1 kind: Component metadata: name: ces-importer namespace: ecosystem spec: name: ces-importer namespace: k8s version: 1.0.0 valuesYamlOverwrite: | config: job: excludedGlobalConfiguration: - "default_dogu" excludedDoguConfigurations: - dogu: "postfix" keys: - "relayhost" exclude: - dogu: "official/jenkins" pattern: - "subdir/*.groovy" - "*.tmp" - dogu: "official/nexus" pattern: - "/tmp/" - Speichern Sie die Änderungen an der Component-CR
-
Starten Sie den CES-Importer neu:
kubectl rollout restart deployment/ces-importer -n ecosystem
Dogus
Um ganze Dogus von der Migration auszuschließen werden die Namen der Dogus als Liste unter dem Schlüssel config/job/excludedDogus
angegeben werden. Es reicht, die Namen der Dogus ohne den Namespace anzugeben, also kann zum Beispiel jenkins
statt official/jenkins angegeben werden.
Beispiel
Um die Daten der beiden Dogus Jenkins und Redmine nicht zu importieren sieht die Konfiguration folgendermaßen aus:
...
valuesYamlOverwrite: |
config:
job:
excludedDogus:
- "jenkins"
- "redmine"
...Dateien
In bestimmten Konstellationen kann es sinnvoll sein, manuell angelegte Dateien von der Migration auszuschließen, da sie für CES-MN-Instanzen unnötig sind. Dies können z.B. selbst erstellte Skripte, oder andere Daten in den Volumes der Dogus sein, die nicht migriert werden sollen.
Für jedes Dogu können Dateien als Muster (Pattern) angegeben werden, die nicht migriert werden sollen.
Hinweis: Für jedes Dogu können mehrere Exclude-Pattern angegeben werden. Als Dogu-Name muss der erweiterte Name mit dem Namespace verwendet werden. Zum Beispiel
official/jenkins, oderofficial/nexus.
Exclude-Pattern
Das Muster zum Ausschließen von Dateien ("Exclude-Pattern") kann Platzhalter (Wildcards) enthalten, um möglichst flexibel angewendet zu werden. Die folgenden Beispiele zeigen die verschiedenen Möglichkeiten auf:
Ein einzelnes Verzeichnis ausschließen
/tmp/Schließt das Verzeichnis /tmp/ aus. Alle Dateien und Unterverzeichnisse in /tmp/ werden nicht migriert.
Alle Dateien mit einer bestimmten Dateiendung ausschließen
*.logSchließt alle Dateien mit der Endung .log aus, unabhängig davon, in welchem Verzeichnis sie liegen.
Eine bestimmte Datei in einem Verzeichnnis ausschließen
/logs/error.logSchließt nur die Datei error.log im Verzeichnis logs aus, nicht jedoch gleichnamige Dateien in anderen Verzeichnissen.
Ausschluss basierend auf einem Teilpfad
**/node_modules/Schließt jedes node_modules-Verzeichnis aus – rekursiv und unabhängig davon, wie tief es im Pfad liegt.
Beispiel
Um für das Dogu Jenkins alle Dateien mit der Endung .tmp und alle Dateien in subdir/ mit der Endung groovy, sowie
für das Dogu Nexus das Verzeichnis /tmp nicht zu importieren, sieht die Konfiguration folgendermaßen aus:
...
valuesYamlOverwrite: |
config:
job:
exclude:
- dogu: "official/jenkins"
pattern:
- "subdir/*.groovy"
- "*.tmp"
- dogu: "official/nexus"
pattern:
- "/tmp/"
...Konfigurationen
Konfigurationswerte können ebenfalls vom Import ausgeschloßen werden. Dies kann sinnvoll sein zum Beispiel für den
relayhost des postfix-Dogus. Das Ausschließen von Konfigurationen kann zu instabilen oder nicht gewollten Zuständen
des Zielsystems führen und erfolgt somit auf eigene Gefahr.
Es ist möglich, sowohl globale als auch doguspezifische Konfigurationen auszuschließen. Standardmäßig nicht importiert
werden die Werte für fqdn, alternativeFQDNs, maintenance, und alle die mit proxy/, k8s/ oder certificate/
beginnen. Selber konfigurierte Werte werden zu dieser Liste hinzugefügt.
Beispiel
Um die globale Konfiguration default_dogu und die für das Postfix-Dogu spezifische Konfiguration relayhost nicht
beim Import mit Werten von der exportierenden Instanz zu überschreiben sieht die Konfiguration folgendermaßen aus:
...
valuesYamlOverwrite: |
config:
job:
excludedGlobalConfigurationKeys:
- "default_dogu"
excludedDoguConfigurations:
- dogu: "postfix"
keys:
- "relayhost"
...