Skip to main content

Domain

API Group: networks.blanketops.dev

Version: v1alpha1

Scope: Namespaced


Description

Domain governs the TLS certificate and DNS mapping chain for a host exposed by a Route.

It is owned by a Route via ownerReference and is cascade-deleted when that Route is deleted. Route owns workload binding (runtime, path, enabled); Domain owns the certificate and DNS mapping chain, and optional mTLS identity, for the host.

  • Domain does not deploy workloads.
  • Domain does not define path or runtime binding.
  • Domain governs certificate issuance and DNS/host mapping only.

Spec

spec


FieldTypeRequiredDescription
contractobjectYesDomain TLS/mapping contract

spec.contract

FieldTypeRequiredDescription
hoststringYesFully qualified domain name this Domain covers
routeRefobjectYesReference to the owning Route
tlsStrategystringYesCertificate provisioning path: platform or custom
mtlsobjectNoInter-service mTLS configuration
renewBeforestringNoCert renewal window, e.g. 720h (custom strategy only)

spec.contract.routeRef

FieldTypeRequiredDescription
namestringYesName of the owning Route CR (same namespace)

spec.contract.mtls

FieldTypeRequiredDescription
enforcedbooleanNoWhether blanketops-proxy sidecars and blanketK identities are wired for this host

Status

FieldTypeDescription
phasestringCurrent lifecycle phase
messagestringHuman-readable status detail
certIssuedbooleanWhether a valid TLS certificate has been issued
tlsStatusstringTLS provisioning state
domainReadybooleanWhether cert and mapping are both reconciled and active
certificateRefobjectReference to the emitted Certificate (custom strategy only)
domainMappingRefobjectReference to the emitted DomainMapping
conditions[]ConditionStandard Kubernetes condition array

status.phase Values

ValueMeaning
PendingDomain accepted but cert/mapping work has not started
ProvisioningCert or DomainMapping is being provisioned
ReadyCert is issued, DomainMapping is active, host is reachable
FailedCert issuance failed, or an ACME HTTP01 challenge could not be satisfied

status.tlsStatus Values

ValueMeaning
DisabledTLS is not configured for this domain
ProvisioningCert issuance or DomainMapping creation is in progress
ActiveCert is valid and DomainMapping is serving TLS traffic
FailedCert issuance failed or the cert has expired

Example

apiVersion: networks.blanketops.dev/v1alpha1
kind: Domain
metadata:
name: for-kaniko-app-domain
namespace: dev
spec:
contract:
host: api.dev.example.com
routeRef:
name: route-sample
tlsStrategy: platform
mtls:
enforced: false

Custom-zone example:

apiVersion: networks.blanketops.dev/v1alpha1
kind: Domain
metadata:
name: client-a-domain
namespace: dev
spec:
contract:
host: app.client-a.co.za
routeRef:
name: route-client-a
tlsStrategy: custom
renewBefore: 720h
mtls:
enforced: true

Invariants

  • Domain must reference a Route in the same namespace via routeRef.
  • Domain is cascade-deleted when the owning Route is deleted.
  • platform strategy requires host to match the platform wildcard pattern; custom strategy accepts any client-owned FQDN.
  • renewBefore applies only to custom strategy — platform wildcard certs renew on the platform schedule.
  • certificateRef is set only for custom strategy.
  • Domain is currently v1alpha1 — the contract may change without backward-compatibility guarantees.