# Kubernetes Deployment Public API
#
# Main interface for K8s deployments
# Migrated from provisioning/kcl/k8s_deploy.k

let contracts = import "contracts.ncl" in
let defaults = import "defaults.ncl" in

{
  # Re-export contracts
  K8sDeploy = contracts.K8sDeploy,
  K8sDeploySpec = contracts.K8sDeploySpec,
  K8sContainers = contracts.K8sContainers,
  K8sService = contracts.K8sService,
  K8sPort = contracts.K8sPort,
  K8sKeyVal = contracts.K8sKeyVal,
  K8sKeyPath = contracts.K8sKeyPath,
  K8sVolumeMount = contracts.K8sVolumeMount,
  K8sVolumeClaim = contracts.K8sVolumeClaim,
  K8sConfigMap = contracts.K8sConfigMap,
  K8sSecret = contracts.K8sSecret,
  K8sVolume = contracts.K8sVolume,
  K8sBackup = contracts.K8sBackup,
  K8sResources = contracts.K8sResources,
  K8sAffinity = contracts.K8sAffinity,
  K8sAffinityLabelSelector = contracts.K8sAffinityLabelSelector,
  K8sAffinityMatch = contracts.K8sAffinityMatch,
  K8sPrxyTLS = contracts.K8sPrxyTLS,
  K8sPrxyPort = contracts.K8sPrxyPort,
  K8sPrxyGatewayServer = contracts.K8sPrxyGatewayServer,
  K8sPrxyVirtualService = contracts.K8sPrxyVirtualService,
  K8sPrxyVirtualServiceMatch = contracts.K8sPrxyVirtualServiceMatch,
  K8sPrxyVirtualServiceRoute = contracts.K8sPrxyVirtualServiceRoute,
  K8sDefs = contracts.K8sDefs,
  K8sServiceMeshConfig = contracts.K8sServiceMeshConfig,
  K8sIngressConfig = contracts.K8sIngressConfig,

  # Re-export defaults
  default_port = defaults.default_port,
  default_container = defaults.default_container,
  default_service = defaults.default_service,
  default_volume = defaults.default_volume,
  default_deploy_spec = defaults.default_deploy_spec,
  default_service_mesh_config = defaults.default_service_mesh_config,
  default_ingress_config = defaults.default_ingress_config,
}
