---
landscape: (( &temporary ))

component:
  imports:
    - gardener: gardener/runtime
    - kube_apiserver: "kube-apiserver"
    - namespace

  stubs: []

  plugins:
    - <<: (( sum[.extensions|[]|s,n,v|-> s [{ "-echo" = "--------------------------------------------------" }, { "-echo" = "checking out charts for extension '" n "'" }, { "git" = "extensions." n }]] ))


# input for git plugin
extensions: (( sum[.deployment.extensions|{}|s,n|-> s { n = *spec_template }] ))

spec_template:
  <<: (( &temporary &template ))
  version: (( &temporary( .landscape.versions.gardener.extensions[n] ) ))
  repo: (( version.repo ))
  tag: (( version.tag || ~~ ))
  branch: (( version.branch || ~~ ))
  commit: (( version.commit || ~~ ))
  files:
    - (( version.chart_path ))

deployment:
  # which extensions should be deployed
  # all need a matching node in landscape.versions.gardener.extensions in the acre.yaml file
  # and a manifest template in extension_manifests in this component's deployment.yaml
  extensions:
    # - os-coreos
    - os-ubuntu
    # - os-ubuntu-tikv
    # - os-suse-jeos
    # - os-gardenlinux
    - dns-external
    - networking-calico
    - os-centos
    - os-centos-tidb
    - os-centos-v20210420
    - os-centos-tidb-v20210420
    - <<: (( sum[.infrastructures|[]|s,e|-> s [ "provider-" e ]] ))
    - (( ( .landscape.dashboard.terminals.active || false ) ? "shoot-cert-service" :~~ ))

infrastructures: (( &temporary ( uniq( sum[.landscape.iaas|[]|s,e|-> s e.type ( e.seeds.[*].type || ~ ) ] ) ) ))
