Was gebaut ist
Eine Umgebung ist ein Ort, an dem eine Version läuft. Dieser geplante Vertrag legt fest, was eine Umgebung über sich meldet: ihre Eigenschaften und Zulassungen, den Kanal, dem sie folgt, und den Stand, auf dem sie ist. Gegen diese Angaben prüft HERMES die Auflagen einer Version, bevor es ein Soll schreibt.
Ein geplanter Vertrag, kein erreichbarer Endpunkt
Begriff · Umgebung
Ein Ort, an dem eine Version läuft, mit Eigenschaften, einem Kanal und einem Stand, mit oder ohne Verbindung nach außen.
Die Felder beschreiben die vorgesehene Form der Meldung einer Umgebung. Ein Inventar von Umgebungen, ein Kanal und eine ausgelieferte Version bestehen noch nicht, und diese Seite belegt keinen laufenden Abgleich.
Gemeldet, nicht angenommen
Begriff · Nachweis
Der signierte Datensatz einer Prüfung: Handlung, Zustand, Regeln, Ergebnis und Voraussetzungen, mit Prüfwert, Signatur und Zeitstempel. Er lässt sich ohne Zugang zum System nachrechnen.
Die Eigenschaften stehen nicht in einer Handreichung, sondern kommen als Datensatz vom Ort. Die Umgebung signiert die Meldung mit ihrem Schlüssel, und HERMES verlässt sich nicht auf eine Annahme darüber, was dort stehen müsste. Jede Zulassung trägt ihren Nachweis und ein Ablaufdatum.
Soll und Ist
Das Soll ist der Digest, auf den der Kanal der Umgebung zeigt. Das Ist sind die Digests, die tatsächlich laufen, mit dem Zeitpunkt der Meldung. Weichen beide ab, ist das ein Befund und kein Zustand, den man übersieht: Der Abgleich führt das Ist zum Soll, oder die Abweichung steht im Bericht, mit Grund und Frist.
Ohne Verbindung
Begriff · Rückweg
Ein vorab geprüfter Weg auf einen bekannten Zustand. Änderungen an Daten brauchen einen eigenen Rückweg.
Eine Umgebung ohne Verbindung nach außen meldet über den vorgesehenen Rückweg, etwa einen geprüften Datenträger. Die Meldung trägt ihren Zeitpunkt, und der Abgleich nennt, wie alt der Stand ist, mit dem er rechnet. Ein veraltetes Inventar ist ein Befund und kein Freibrief.
Festsetzung und Ausnahme
Eine Umgebung kann auf einen Digest festgesetzt werden, wenn sie vorübergehend nicht dem Kanal folgen soll, oder eine Ausnahme von einer Auflage erhalten. Beides gilt für eine Version, eine Umgebung und eine Auflage, ist begründet, freigegeben und befristet und steht im Verlauf.
Schema
{
"id": "<umgebung-kennung>",
"kind": "operation",
"channel": "<kanal>",
"target": { "digest": "sha256:<wert>" },
"actual": [{ "digest": "sha256:<wert>", "reportedAt": "<zeitpunkt>" }],
"platform": { "architecture": "<architektur>", "os": "<system>", "runtimeVersion": "<version>" },
"certifications": [{ "name": "<zulassung>", "evidence": "<nachweis>", "expiresAt": "<zeitpunkt>" }],
"classifications": ["internal"],
"connectivity": "none",
"signature": { "alg": "Ed25519", "keyId": "<schluessel>", "value": "<base64url>" }
}Felder
| Feld | Typ | Pflicht | Bedeutung |
|---|---|---|---|
id | string | ja | Stabile Kennung der Umgebung, unabhängig von ihrem Namen. |
kind | string | ja | operation, trial oder isolated: Betrieb, Erprobung oder abgeschottetes Netz. |
channel | string | ja | Kanal, dem die Umgebung folgt. Genau einer. |
target | object | ja | Soll: der Digest, auf den der Kanal zeigt, oder ein festgesetzter Digest mit Begründung und Ablauf. |
actual | object[] | ja | Ist: die Digests, die laufen, je mit dem Zeitpunkt der Meldung. |
platform | object | ja | Architektur, Betriebssystem und Version der Laufzeit, gegen die Auflagen einer Version geprüft. |
resources | object | ja | Verfügbare Ressourcen, gegen die Mindestanforderungen einer Version geprüft. |
certifications | object[] | ja | Zulassungen mit Name, Nachweis und Ablaufdatum. Ohne Nachweis gilt eine Zulassung nicht. |
classifications | string[] | ja | Markierungen der Daten, die diese Umgebung verarbeiten darf. |
connectivity | string | ja | online, scheduled oder none. Bestimmt den Weg von Lieferung und Meldung. |
reportedAt | string (date-time) | ja | Zeitpunkt der letzten Meldung. Das Alter wird mit dem Ergebnis des Abgleichs genannt. |
signature | object | ja | Signatur der Meldung mit dem Schlüssel der Umgebung. |
exceptions | object[] | nein | Ausnahmen je Version und Auflage, begründet, freigegeben und befristet. |
Fehlerfälle
| Kennung | Bedeutung |
|---|---|
ENVIRONMENT_REPORT_STALE | Die Meldung ist älter als zulässig; der Abgleich rechnet mit ihr und nennt ihr Alter. |
ENVIRONMENT_SIGNATURE_INVALID | Die Signatur passt nicht zur Meldung und zum Schlüssel der Umgebung. |
ENVIRONMENT_REQUIREMENT_UNMET | Eine Auflage der Version wird nicht erfüllt; der Bericht nennt die Auflage. |
ENVIRONMENT_CHANNEL_UNKNOWN | Der genannte Kanal besteht nicht oder ist abgelaufen. |
ENVIRONMENT_PIN_EXPIRED | Die Festsetzung auf einen Digest ist abgelaufen; die Umgebung erscheint im Abweichungsbericht. |
Grenze
- Grenze
- Dieser Schnittstellenvertrag ist geplant. Er belegt weder ein Inventar von Umgebungen noch eine ausgelieferte Version, und eine Zulassung im Datensatz ist eine Angabe der Umgebung, bis ihr Nachweis geprüft ist.
Quellen
- OCI Image Format SpecificationOpen Container Initiative. Plattformangaben von Architektur und Betriebssystem im Image Index.
- OpenGitOps PrinciplesSoll und Ist: deklarativ, versioniert, selbst geholt, fortlaufend abgeglichen.
Verwandte Seiten
- Vorher lesenBetriebsumgebungen voneinander trennenDokumentation
- Im VerfahrenAuflagenPlattform
- Im VerfahrenKanälePlattform
- WeiterSchnittstellen: geplante VerträgeReferenz
- Verweist hierherEine Version ist ein Digest mit Stückliste und Signatur.Referenz
- Verweist hierherEine Umgebung ist der Ort, an dem eine Version läuft.Glossar