Benutzerdefinierte Ressourcendefinition für die Replikation v1.4.0

Spezifikationsschema

ReplicationSpec definiert den gewünschten Status der Replikation.

dbcluster:
  name: string
downstream:
  control: string
  host: string
  password:
    name: string
    namespace: string
  port: integer
  replicationSlotName: string
  username: string
upstream:
  applicationName: string
  logicalReplication:
    databaseName: string
    pluginName: string
  password:
    name: string
    namespace: string
  replicationSlotName: string
  synchronous: string
  username: string

Feld

Typ
Erforderlich oder optional

 

Beschreibung
dbcluster
object
Optional
DBCluster ist der DBCluster, zu dem diese Replikation gehört.
dbcluster.name
string
Optional
Name des Referenten. Weitere Informationen finden Sie unter Namen.
downstream
object
Optional
„Downstream“ enthält Spezifikationen für die Replikation der Downstream-Datenbank.
downstream.control
string
Erforderlich
Mit diesem Steuerelement wird der Replikationsvorgang für diese Datenbank angegeben. Zulässige Werte sind „setup“, „promote“ und „rewind“.
downstream.host
string
Erforderlich
„Host“ ist der Verbindungsendpunkt der vorgelagerten Datenbank, auf den diese Datenbank zur Replikation zugreifen kann.
downstream.password
object
Erforderlich
„Password“ ist die Referenz auf das Secret, in dem das Passwort des Replikationsnutzers der Upstream-Datenbank gespeichert ist.
downstream.password.name
string
Optional
Der Name ist innerhalb eines Namespace eindeutig, um auf eine Secret-Ressource zu verweisen.
downstream.password.namespace
string
Optional
Der Namespace definiert den Bereich, in dem der Name des Secrets eindeutig sein muss.
downstream.port
integer
Optional
Port ist der Port der Upstream-Datenbank, auf den diese Datenbank für die Replikation zugreifen kann. Standardwert: 5432.
downstream.replicationslotname
string
Erforderlich
ReplicationSlotName ist der Name des Replikationsslots, der in der Upstream-Datenbank erstellt wurde. Er wird von dieser Datenbank für die Replikation verwendet.
downstream.username
string
Erforderlich
Der Nutzername ist der Name des Nutzers für die Replikation, der in der Upstream-Datenbank erstellt wurde. Er wird von dieser Datenbank verwendet, um eine Verbindung zum Upstream-System für die Replikation herzustellen.
upstream
object
Optional
Upstream enthält die Spezifikation für die Replikation der Upstream-Datenbank.
upstream.applicationName
string
Optional
„applicationName“ ist die Kennung der Verbindung für die synchrone Replikation. Dieser Wert ist erforderlich, wenn „synchron“ auf „wahr“ festgelegt ist.
upstream.logicalReplication
object
Optional
Mit „LogicalReplication“ wird die Konfiguration der logischen Replikation für den Replikationsslot angegeben. Ist das Feld leer, wird der Replikationsslot als physischer Replikationsslot konfiguriert.
upstream.logicalReplication.databaseName
string
Optional
DatabaseName ist die Datenbank, die mit diesem Steckplatz verknüpft ist. Nur Änderungen aus dieser Datenbank werden über den Slot gestreamt.
upstream.logicalReplication.pluginName
string
Optional
„PluginName“ ist das Dekodierungs-Plug-in, das mit diesem Slot verknüpft ist. Weitere Informationen finden Sie unter Logische Dekodierung.
upstream.password
object
Erforderlich
„Password“ ist die Referenz auf das Secret, in dem das Passwort des Nutzers für die Replikation gespeichert ist. Wenn „Passwort“ nicht angegeben ist, wird ein Passwort generiert und in einem geheimen String gespeichert, der im Status angezeigt wird.
upstream.password.name
string
Optional
Der Name ist innerhalb eines Namespace eindeutig, um auf eine Secret-Ressource zu verweisen.
upstream.password.namespace
string
Optional
Der Namespace definiert den Bereich, in dem der Name des Secrets eindeutig sein muss.
upstream.replicationslotname
string
Optional
ReplicationSlotName ist der Name des Replikationsslots, der für die Replikation verwendet werden soll. Wenn Sie keinen angeben, wird ein Name für den Replikationsslot generiert und im Status angezeigt.
upstream.synchronous
string
Optional
Mit „Synchron“ wird angegeben, ob der Replikationsslot für die synchrone Replikation konfiguriert werden muss. Wenn „true“ festgelegt ist, wird „applicationName“ der Liste der synchronen Standbys hinzugefügt. Die Standardeinstellung ist false.
Hinweis: Dies kann sich negativ auf die Leistung auswirken.
upstream.username
string
Optional
Der Nutzername ist der Name des Replikationsnutzers, der für die Replikation verwendet werden soll. Wenn dies nicht angegeben ist, wird ein Nutzername generiert und im Status angezeigt.

Statusschema

ReplicationStatus definiert den beobachteten Status der Replikation.

conditions:
- lastTransitionTime: string
  message: string
  observedGeneration: integer
  reason: string
  status: string
  type: string
criticalIncidents:
- code: string
  createTime: string
  message: string
  messageTemplateParams: object
  resource:
    component: string
    location:
      cluster: string
      group: string
      kind: string
      name: string
      namespace: string
      version: string
  stackTrace:
  - component: string
    message: string
  transientUntil: string
downstream:
  physicalDownstream:
    passwordResourceVersion: string
    setupStrategies:
      endedAt: string
      message: string
      retries: integer
      startedAt: string
      state: string
      strategy: string
    state: string
observedGeneration: integer
reconciled: boolean
upstream:
  host: string
  password:
    name: string
    namespace: string
  port: integer
  replicationSlotName: string
  username: string

Feld

Typ
Erforderlich oder optional

 

Beschreibung
conditions[]
object
Optional
„Zustände“ entspricht den neuesten verfügbaren Beobachtungen zum aktuellen Status der Entität.
conditions[].lastTransitionTime
string
Erforderlich
Mit „lastTransitionTime“ wird der Zeitpunkt angegeben, zu dem der Bedingung zuletzt von einem Status zu einem anderen Status geändert wurde. Das geschieht, wenn sich die zugrunde liegende Bedingung geändert hat. Wenn die Zeit, zu der sich die zugrunde liegende Bedingung geändert hat, nicht bekannt ist, verwenden Sie die Zeit, zu der sich das API-Feld geändert hat.
conditions[].message
string
Erforderlich
message ist eine für Menschen lesbare Nachricht mit Details zur Umstellung. Dies kann auch ein leerer String sein.
conditions[].observedGeneration
integer
Optional
„observedGeneration“ entspricht der .metadata.generation, anhand derer die Bedingung festgelegt wurde. Wenn beispielsweise .metadata.generation 12 ist, .status.conditions[x].observedGeneration aber 9, ist die Bedingung im Hinblick auf den aktuellen Status der Instanz nicht mehr aktuell.
conditions[].reason
string
Erforderlich
„reason“ enthält eine programmatische Kennung, die den Grund für die letzte Statusänderung der Bedingung angibt. Anbieter bestimmter Bedingungstypen können erwartete Werte und Bedeutungen für dieses Feld definieren und angeben, ob die Werte als garantierte API gelten. Der Wert muss ein CamelCase-String sein. Dieses Feld ist möglicherweise nicht leer.
conditions[].status
string
Erforderlich
Status der Bedingung, entweder „Wahr“, „Falsch“ oder „Unbekannt“.
conditions[].type
string
Erforderlich
Bedingungstyp in CamelCase oder in foo.beispiel.de/CamelCase. Viele Werte für „condition.type“ sind für alle Ressourcen gleich, z. B. „Verfügbar“. Da beliebige Bedingungen nützlich sein können (siehe .node.status.conditions), ist die Möglichkeit zur Konfliktbehebung wichtig. Der reguläre Ausdruck, mit dem abgeglichen wird, lautet (dns1123SubdomainFmt/)?(qualifiedNameFmt).
criticalIncidents[]
object
Erforderlich
„CriticalIncidents“ ist eine einfache Liste aller aktiven kritischen Vorfälle.
criticalIncidents[].code
string
Erforderlich
Code ist der Fehlercode dieses bestimmten Fehlers. Fehlercodes sind DBSE+numeric-Strings wie DBSE1012.
criticalIncidents[].createTime
string
Erforderlich
„CreateTime“ ist der Zeitstempel, zu dem dieser Vorfall an der Quelle erstellt wurde.
criticalIncidents[].message
string
Optional
Die Nachricht beschreibt den aufgetretenen Vorfall oder Fehler.
criticalIncidents[].messageTemplateParams
object
Optional
„MessageTemplateParams“ enthält Schlüssel/Wert-Paare, die zum Generieren einer nutzerfreundlichen, datengetriebenen Version der Mitteilung in der Benutzeroberfläche erforderlich sind.
criticalIncidents[].resource
object
Erforderlich
Die Ressource enthält Informationen zur Datenbankdienstkomponente, über die das Problem gemeldet wurde, sowie Informationen zur Kubernetes-Ressource.
criticalIncidents[].resource.component
string
Erforderlich
„Component“ ist eine interne Kennung des Datenbankdienst-Subsystems, über das das Problem gemeldet wurde.
criticalIncidents[].resource.location
object
Optional
Standort
criticalIncidents[].resource.location.cluster
string
Optional
Der Name des Clusters der betroffenen Kubernetes-Ressource.
criticalIncidents[].resource.location.group
string
Optional
Der Gruppenname der Kubernetes-Ressource.
criticalIncidents[].resource.location.kind
string
Optional
Die Art der Kubernetes-Ressource.
criticalIncidents[].resource.location.name
string
Optional
Der Name der betroffenen Kubernetes-Ressource.
criticalIncidents[].resource.location.namespace
string
Optional
Der Namespace der betroffenen Kubernetes-Ressource.
criticalIncidents[].resource.location.version
string
Optional
Die Version der Kubernetes-Ressource.
criticalIncidents[].stackTrace[]
object
Optional
Eine unstrukturierte Liste von Meldungen aus dem Stack-Trace.
criticalIncidents[].stackTrace[].component
string
Optional
Der Name einer Datenbankdienstkomponente, die die Meldung protokolliert hat.
criticalIncidents[].stackTrace.message
string
Optional
Geloggte Nachricht.
criticalIncidents[].transientUntil
string
Optional
Wenn „TransientUntil“ vorhanden ist, wird damit angegeben, dass das Problem bis zum angegebenen Zeitpunkt als vorübergehend betrachtet werden muss.
downstream
object
Optional
„Downstream“ enthält den beobachteten Status der nachgelagerten Datenbank der Replikation.
downstream.physicalDownstream
object
Optional
downstream.physicalDownstream.passwordResourceVersion
string
Optional
„PasswordResourceVersion“ ist die Ressourcenversion des geheimen Passworts. Diese Version gibt an, wann das Passwort zuletzt in der Datenbank aktualisiert wurde.
downstream.physicalDownstream.setupStrategies
object
Optional
SetupStrategies enthält Informationen zur Ausführung der einzelnen versuchten Einrichtungsstrategien. Sie werden in dieser Liste in der Reihenfolge aufgeführt, in der die Strategien in der Spezifikation definiert wurden.
downstream.physicalDownstream.setupStrategies.endedAt
string
Optional
„EndedAt“ ist der Zeitpunkt, zu dem der letzte Versuch dieser Strategie endete.
downstream.physicalDownstream.setupStrategies.message
string
Optional
„Message“ ist eine Beschreibung, warum der Einrichtungsversuch den aktuellen Status hat.
downstream.physicalDownstream.setupStrategies.retries
integer
Optional
„Neuversuche“ gibt an, wie oft diese Strategie wiederholt wurde.
downstream.physicalDownstream.setupStrategies.startedAt
string
Optional
„StartedAt“ ist die Zeit, zu der der letzte Versuch dieser Strategie gestartet wurde.
downstream.physicalDownstream.setupStrategies.state
string
Erforderlich
„Status“ ist der aktuelle Status dieser Einrichtungsstrategie. Folgende Werte sind zulässig:
InProgress: Die Strategie wird derzeit ausgeführt.
Success: Die Strategie wurde erfolgreich abgeschlossen und es werden keine weiteren Einrichtungsstrategien versucht.
Error: Die Strategie ist fehlgeschlagen, wird aber noch einmal versucht. Im Feld „Wiederholungen“ sehen Sie, wie oft diese Strategie wiederholt wurde.
Fallback: Die Strategie ist fehlgeschlagen und wird nicht noch einmal versucht. Stattdessen wird die nächste verfügbare Strategie verwendet, falls vorhanden.
Unknown
downstream.physicalDownstream.setupStrategies.strategy
string
Erforderlich
„Strategie“ ist der Name des Strategietyps, für den dieser Status gilt.
downstream.physicalDownstream.state
object
Optional
„State“ ist der Replikationsstatus, wie er in der Tabelle „pg_stat_wal_receiver“ des nachgeschalteten Datenbankservers zu sehen ist.
observedgeneration
integer
Optional
Intern: Die vom Controller beobachtete Generation.
reconciled
boolean
Optional
„Intern“: Gibt an, ob die Ressource vom Controller abgeglichen wurde.
upstream
object
Optional
„Upstream“ enthält den beobachteten Status der Upstream-Datenbank der Replikation.
upstream.host
string
Optional
„Host“ ist der Verbindungsendpunkt dieser Datenbank, auf den die Downstream-Datenbanken zur Replikation zugreifen können.
upstream.password
object
Optional
„Password“ ist die Referenz auf das Secret, in dem das Passwort des Nutzers für die Replikation dieser Datenbank gespeichert ist.
upstream.password.name
string
Optional
Der Name ist innerhalb eines Namespace eindeutig, um auf eine Secret-Ressource zu verweisen.
upstream.password.namespace
string
Optional
Der Namespace definiert den Bereich, in dem der Name des Secrets eindeutig sein muss.
upstream.port
integer
Optional
Port ist der Port dieser Datenbank, auf den Downstream-Datenbanken zur Replikation zugreifen können.
upstream.replicationslotname
string
Optional
ReplicationSlotName ist der Name des Replikationsslots, der in dieser Datenbank erstellt wurde. Nachgeschaltete Datenbanken können diesen Replikationsslot für die Replikation verwenden.
upstream.username
string
Optional
Der Nutzername ist der Name des Nutzers für die Replikation in dieser Datenbank. Abwärtsgerichtete Datenbanken können diesen Nutzer verwenden, um eine Verbindung zu dieser Datenbank für die Replikation herzustellen.