Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

K8s Migration

taba includes a K8s manifest converter (taba-k8s) that reads existing Kubernetes YAML and generates taba unit declarations.

Quick start

# Convert a single deployment
taba-k8s convert deployment.yaml --output-dir ./units

# Apply the generated units
taba apply units/web-server.taba.toml

Supported resources

K8s Resourcetaba UnitMapping
DeploymentWorkloadUnit (service)Container image → artifact, replicas → scaling
StatefulSetWorkloadUnit (service)+ state recovery (require-quorum), PVC references
DaemonSetWorkloadUnit (service)+ one-per-node constraint, node selector
PodWorkloadUnit (service)Direct pod (no controller, no auto-scaling)
ServiceWorkloadUnit (provides)Network capability from ports
ConfigMapDataUnitInternal classification, text/plain schema
SecretDataUnitConfidential classification, encrypted_at_rest
NetworkPolicyPolicyUnitPod selector → conflict units, ingress/egress → resolution
RoleGovernanceUnit (RoleAssignment)Rules → unit_type_scope, namespace → trust_domain_scope
ClusterRoleGovernanceUnit (RoleAssignment)Cluster-wide scope
RoleBindingGovernanceUnit (RoleAssignment)Binds Role to subjects
ClusterRoleBindingGovernanceUnit (RoleAssignment)Binds ClusterRole to subjects, cluster-wide

Unmappable resources

The converter surfaces resources it cannot map, with a reason and suggestion:

ResourceReasonSuggestion
Ingresstaba has no ingress conceptMap the service backend directly
PersistentVolumeNo direct taba equivalentUse a data unit with storage_requirements
PersistentVolumeClaimNo direct taba equivalentUse a data unit with storage_requirements
CRDsUnbounded, no generic mappingWrite a custom taba unit declaration
JobBounded task (manual)Set kind = “bounded-task”, add [deadline]
CronJobBounded task (manual)Set kind = “bounded-task”, add [deadline]
HPAScaling triggers (manual)Add triggers to [scaling] section
NamespaceNo taba equivalent needed—
ServiceAccountNo taba equivalent needed—

Multi-document YAML

The converter supports --- separated multi-document YAML:

taba-k8s convert multi-resource.yaml --output-dir ./units

Each resource is converted independently. The conversion report shows what was generated, skipped, and unmappable.

Conversion report

taba-k8s convert deployment.yaml
=== K8s → taba Conversion Report ===

Generated: 1 units
  ✓ web-server

Unmappable: 1 resources
  ✗ Ingress/web-ingress: taba has no ingress concept.
    → Map the service backend directly.

Total processed: 2

Provenance placeholders

taba-k8s convert deployment.yaml --provenance

Adds SLSA provenance placeholders to generated units, for filling in build system details (builder, source repo, digest, SLSA level).