//Cloudogu EcoSystem Docs

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 valuesYamlOverwrite ein.
  • 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, oder official/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
*.log

Schließ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.log

Schließ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"
...