# K8s Deploy Defaults
#
# Concrete default values for Kubernetes deployment schemas.

{
  K8sPort = {
    name = "",
    typ = "TCP",
  },

  K8sKeyVal = {
    key = "",
    value = "",
  },

  K8sKeyPath = {
    key = "",
    path = "",
  },

  K8sVolumeMount = {
    name = "",
    readOnly = false,
    mountPath = "",
  },

  K8sVolumeClaim = {
    name = "",
    storageClassName = 'manual,
    modes = ['ReadWriteOnce],
    abbrev_mode = ['RWO],
    reclaimPolicy = 'Retain,
    typ = 'empty,
  },

  K8sConfigMap = {
    name = "",
  },

  K8sSecret = {
    name = "",
    items = [],
  },

  K8sVolume = {
    name = "",
    typ = 'volumeClaim,
  },

  K8sService = {
    name = "",
    typ = 'ClusterIP,
    proto = "TCP",
    ports = [],
  },

  K8sResources = {
    memory = "64Mi",
    cpu = "250m",
  },

  K8sContainers = {
    name = "main",
    image = "",
    imagePull = 'IfNotPresent,
  },

  K8sBackup = {
    name = "",
    typ = "",
    mount_path = "",
  },

  K8sAffinityMatch = {
    key = "",
    operator = 'In,
    values = [],
  },

  K8sAffinityLabelSelector = {
    typ = 'requiredDuringSchedulingIgnoredDuringExecution,
    labelSelector = [],
  },

  K8sAntyAffinityLabelSelector = {
    typ = 'requiredDuringSchedulingIgnoredDuringExecution,
    labelSelector = [],
    weight = 100,
  },

  K8sAffinity = {},

  K8sDeploySpec = {
    replicas = 1,
    hostUsers = true,
    containers = [],
  },

  K8sPrxyTLS = {
    httpsRedirect = false,
    mode = 'SIMPLE,
  },

  K8sPrxyPort = {
    name = "",
    proto = 'HTTPS,
  },

  K8sPrxyGatewayServer = {
    port = {},
  },

  K8sPrxyVirtualServiceRoute = {
    port_number = 0,
    host = "",
  },

  K8sPrxyVirtualServiceMatchURL = {},

  K8sPrxyVirtualServiceMatch = {
    typ = 'tcp,
  },

  K8sPrxyVirtualService = {
    hosts = [],
    gateways = [],
  },

  K8sDefs = {
    name = "",
    ns = "",
    domain = "",
    full_domain = "",
    primary_dom = "",
    cluster_domain = "",
  },

  K8sServiceMeshConfig = {
    mtls_enabled = true,
    tracing_enabled = true,
  },

  K8sIngressConfig = {
    tls_enabled = true,
  },

  K8sDeploy = {
    name = "",
    name_in_files = "",
    namespace = "default",
    create_ns = false,
    labels = [],
    sel_labels = [],
    tpl_labels = [],
    spec = {},
    prxy_ns = "istio-system",
    tls_path = "ssl",
    bin_apply = true,
  },
}
