Skip to content

Well known requirements

Igor Lysak edited this page Sep 28, 2022 · 3 revisions

There is a number of well-known requirement recognized by Hub CLI. Requirement must by requested via requires: in hub.yaml or hub-component.yaml. There usually no need to repeat requirements on hub.yaml level as elaborate will propagate unsatisfied requirements from hub-component.yaml-s to the top level.

Tools

  • kubectl
  • helm
  • terraform
  • gsutil
  • etcd (etcdctl)
  • vault

Hub CLI checks for presence of the tool and min version. A warning is emitted if version is lower than built into Hub CLI.

Clouds

  • aws checks for aws s3 ls
  • azure checks for az storage account list
  • gcp checks for gcloud version

A cloud-native component that creates cloud resources yet can do it on more than one type of cloud may specify multiple clouds in requires:

requires:
- aws
- azure
- gcp

At runtime, Hub CLI will check the environment to guess what clouds are available. If cloud credentials cannot be found, then cloud is not enabled and requirement is skipped. Also see hub deploy --clouds.

Kubernetes

kubernetes requirement is a special case. When it is encountered Hub CLI will check if ${dns.domain} Kubeconfig context exists by calling kubectl. If it doesn't exists, then Hub CLI will create one by using dns.domain, kubernetes.api.* stack parameters or component outputs.

Clone this wiki locally