SovereigntyPolicy
SovereigntyPolicy (maqpna.com/v1alpha1): every field, type, default and validation rule, generated from the CRD schema.
SovereigntyPolicy is a cluster-scoped data-sovereignty policy. The operator enforces the one named "default".
At a glance#
| Property | Value |
|---|---|
| API version | maqpna.com/v1alpha1 |
| Kind | SovereigntyPolicy |
| Scope | Cluster |
| Plural | sovereigntypolicies |
| Short names | sovpol, sp |
| Categories | maqpna |
| Status subresource | yes |
kubectl get sovereigntypolicies
kubectl get sovpol <name> -o yaml
kubectl explain sovereigntypolicies.spec
Columns in kubectl get#
| Column | Type | From |
|---|---|---|
| Jurisdiction | string | .spec.jurisdiction |
| Enforcement | string | .spec.enforcement |
| Violations | integer | .status.violations |
| Age | date | .metadata.creationTimestamp |
Example#
From config/samples/sovereigntypolicy-eu.yaml:
apiVersion: maqpna.com/v1alpha1
kind: SovereigntyPolicy
metadata:
# The operator enforces the policy named "default".
name: default
spec:
jurisdiction: EU
allowedJurisdictions: ["EU"] # admits EU, EU-DE, EU-FR, ...
allowedRegistries:
- registry.acme.eu/
allowedEgressHosts:
- "*.svc"
- "*.svc.cluster.local"
- "*.acme.eu"
allowedEgressCIDRs:
- 10.0.0.0/8
requireAttestationFor: ["confidential"]
keyCustody: kms
telemetry: "off"
auditRetentionDays: 365
enforcement: enforce
Spec fields#
SovereigntyPolicySpec defines cluster-wide data-sovereignty constraints.
| Field | Type | Required | Description |
|---|---|---|---|
allowedEgressCIDRs |
[]string | allowedEgressCIDRs permit literal-IP endpoints inside these CIDRs. | |
allowedEgressHosts |
[]string | allowedEgressHosts are host globs (e.g. ".svc", ".acme.eu") that Agent.spec.model.endpoint and tools[].upstreamURL hosts must match. | |
allowedJurisdictions |
[]string | allowedJurisdictions that TrustTier.spec.jurisdiction must be in. | |
allowedRegistries |
[]string | allowedRegistries are image reference prefixes (e.g. "registry.acme.eu/"). | |
auditRetentionDays |
integer (int32) | Minimum: 0. |
|
enforcement |
string | EnforcementMode selects whether violations block (enforce) or are only reported (audit). One of: enforce, audit. Default: "enforce". |
|
jurisdiction |
string | jurisdiction of this installation (e.g. "EU"). | |
keyCustody |
string | KeyCustody is where signing / encryption keys are held. One of: file, pkcs11, kms. |
|
requireAttestationFor |
[]string | requireAttestationFor lists isolation classes (gvisor|microvm|confidential) whose sessions require attestation-gated token release. | |
telemetry |
string | TelemetryMode controls outbound vendor telemetry. Only "off" is permitted. One of: off. Default: "off". |
Status fields#
SovereigntyPolicyStatus is the observed state of a SovereigntyPolicy.
The operator writes status; do not set it yourself.
| Field | Type | Required | Description |
|---|---|---|---|
conditions |
[]object | ||
conditions[].lastTransitionTime |
string (date-time) | yes | lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. |
conditions[].message |
string | yes | message is a human readable message indicating details about the transition. This may be an empty string. Max length: 32768. |
conditions[].observedGeneration |
integer (int64) | observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. Minimum: 0. |
|
conditions[].reason |
string | yes | reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. Min length: 1. Max length: 1024. Pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$. |
conditions[].status |
string | yes | status of the condition, one of True, False, Unknown. One of: True, False, Unknown. |
conditions[].type |
string | yes | type of condition in CamelCase or in foo.example.com/CamelCase. Max length: 316. Pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$. |
lastEvaluated |
string (date-time) | ||
violations |
integer (int32) | violations is the number of Agents currently violating the policy. |