diff --git a/README.md b/README.md index a664c55..1c0374e 100644 --- a/README.md +++ b/README.md @@ -375,16 +375,14 @@ Adds specified trusted certificate authorities into the container * USE_certificates: Enable this feature * DEBUG_certificates: Debug this feature * Add a volume mount to the `volumes:` section of docker compose like this: - (...) - volumes: - - ":/certificates" - + (...) + volumes: + - ":/certificates" * Volume-target /certificates: Target directory for certificates. If something different than /certificates is used, environment -CERTIFICATES_PATH needs to be set to this path - + CERTIFICATES_PATH needs to be set to this path * Environment CERTIFICATES_PATH: The container path to the volume mount that holds trusted certificate authorities as .pem files -(optional). Defaults to `/certificates`. If something different than the default is used, the volume-target needs to be adapted to -the same directory + (optional). Defaults to `/certificates`. If something different than the default is used, the volume-target needs to be adapted to + the same directory ### Direnv @@ -403,7 +401,7 @@ Installs [Helm](https://helm.sh) * USE_helm: Enable this feature * DEBUG_helm: Debug this feature -* Environment HELM_VERSION*: Valid Helm version to install (e.g. 1.5.4) +* Environment HELM_VERSION (required): Valid Helm version to install (e.g. 1.5.4) ### JQ @@ -442,50 +440,43 @@ Installs and configures [kubernetes](https://kubernetes.io/docs/reference/kubect * USE_kubernetes: Enable this feature * DEBUG_kubernetes: Debug this feature * (azure flavour) Environment AZ_K8S_CLUSTERS: A comma separated list of AKS clusters to manage -inside *CloudControl* (only for azure flavour). -Each cluster is a pair of resource group and cluster name, separated by a colon. Optionally, you can specify -the target subscription. -For example: myresourcegroup:myk8s,myotherresourcegroup@othersubscription:mysecondk8s will install myk8s from -the myresourcegroup resource group and mysecondk8s from the resource group myotherresourcegroup in the -subscription othersubscription. -Prefix a cluster name with an ! to load the admin-credentials for that cluster instead of the user credentials. -This generates the script `k8s-relogin` which allows you to recreate the Kubernetes credentials. - + inside *CloudControl* (only for azure flavour). + Each cluster is a pair of resource group and cluster name, separated by a colon. Optionally, you can specify + the target subscription. + For example: myresourcegroup:myk8s,myotherresourcegroup@othersubscription:mysecondk8s will install myk8s from + the myresourcegroup resource group and mysecondk8s from the resource group myotherresourcegroup in the + subscription othersubscription. + Prefix a cluster name with an ! to load the admin-credentials for that cluster instead of the user credentials. + This generates the script `k8s-relogin` which allows you to recreate the Kubernetes credentials. * (azure flavour) Environment AZ_K8S_INSTALL_OPTIONS: Additional options for the az aks install-cli programm. -(Defaults to empty) - + (Defaults to empty) * (aws flavour) Environment AWS_K8S_CLUSTERS: A comma separated list of EKS clusters to manage -inside *CloudControl* (only for aws flavour). -For each cluster give the cluster name. If you need to assume an ARN role, add that to the clustername -with an additional | added. -For example: myekscluster|arn:aws:iam::32487234892:sample/sample - -If you additionally need to assume a role before fetching the EKS credentials, add the role, prefixed with -an @: -myekscluster|arn:aws:iam::4327849324:sample/sample@arn:aws:iam::specialrole - + inside *CloudControl* (only for aws flavour). + For each cluster give the cluster name. If you need to assume an ARN role, add that to the clustername + with an additional | added. + For example: myekscluster|arn:aws:iam::32487234892:sample/sample + + If you additionally need to assume a role before fetching the EKS credentials, add the role, prefixed with + an @: + myekscluster|arn:aws:iam::4327849324:sample/sample@arn:aws:iam::specialrole * (aws flavour) Environment AWS_SKIP_GPG: If set, skips the gpg checks for the yum repo of kubectl, -as [this](https://github.com/kubernetes/kubernetes/issues/37922) -[sometimes](https://github.com/kubernetes/kubernetes/issues/60134) -seems to fail. - + as [this](https://github.com/kubernetes/kubernetes/issues/37922) + [sometimes](https://github.com/kubernetes/kubernetes/issues/60134) + seems to fail. * (simple and aws flavour) Environment KUBECTL_VERSION: The version of kubectl to install - * (tanzu flavour) -* Environment TANZU_HOST: The tanzu host to download the kubectl vsphere plugin from and authenticate against -* Environment TANZU_USERNAME: The username to authenticate with -* Environment KUBECTL_VSPHERE_PASSWORD: The password to authenticate with -* Environment TANZU_CLUSTERS: A comma separated list of namespace:cluster name pairs -* Environment TANZU_ADD_CONTROL_CLUSTER: Whether to also authenticate against the control cluster [false] -* Environment TANZU_SKIP_TLS_VERIFY: Skip TLS verification [false] -* Environment TANZU_VSPHERE_PLUGIN_PATH: The path where to find the kubectl vsphere plugin [/wcp/plugin/linux-amd64/vsphere-plugin.zip] - -This generates the script `k8s-relogin` which allows you to recreate the Kubernetes credentials. - + * Environment TANZU_HOST: The tanzu host to download the kubectl vsphere plugin from and authenticate against + * Environment TANZU_USERNAME: The username to authenticate with + * Environment KUBECTL_VSPHERE_PASSWORD: The password to authenticate with + * Environment TANZU_CLUSTERS: A comma separated list of namespace:cluster name pairs + * Environment TANZU_ADD_CONTROL_CLUSTER: Whether to also authenticate against the control cluster [false] + * Environment TANZU_SKIP_TLS_VERIFY: Skip TLS verification [false] + * Environment TANZU_VSPHERE_PLUGIN_PATH: The path where to find the kubectl vsphere plugin [/wcp/plugin/linux-amd64/vsphere-plugin.zip] + + This generates the script `k8s-relogin` which allows you to recreate the Kubernetes credentials. * (gcloud flavor) -* Environment GCLOUD_K8S_CLUSTERS: A comma separated list of zone:cluster-name -* Environment K8S_USE_GCLOUD_AUTH: Whether to use the new GKE_GCLOUD_AUTH plugin [true] - + * Environment GCLOUD_K8S_CLUSTERS: A comma separated list of zone:cluster-name + * Environment K8S_USE_GCLOUD_AUTH: Whether to use the new GKE_GCLOUD_AUTH plugin [true] ### Packages @@ -497,7 +488,6 @@ Installs additional packages into the container * DEBUG_packages: Debug this feature * Environment PACKAGES: A whitespace separated list of packages to install. The packages will be installed with the flavour's default package manager. - ### Packer Installs [Packer](https://packer.io) @@ -506,7 +496,7 @@ Installs [Packer](https://packer.io) * USE_packer: Enable this feature * DEBUG_packer: Debug this feature -* Environment PACKER_VERSION*: Valid Packer version to install (e.g. 1.5.4) +* Environment PACKER_VERSION (required): Valid Packer version to install (e.g. 1.5.4) ### Run @@ -527,7 +517,7 @@ Installs [stern](https://github.com/stern/stern), a multi pod and container log * USE_stern: Enable this feature * DEBUG_stern: Debug this feature -* Environment STERN_VERSION*: Valid Stern version (e.g. 1.21.0) +* Environment STERN_VERSION (required): Valid Stern version (e.g. 1.21.0) ### Terraform @@ -538,24 +528,19 @@ Installs and configures [Terraform](https://terraform.io) * USE_terraform: Enable this feature * DEBUG_terraform: Debug this feature * Add a volume mount to the `volumes:` section of docker compose like this: - (...) - volumes: - - ":/terraform" - + (...) + volumes: + - ":/terraform" * Volume-target /terraform: Terraform base target directory. If something different than /terraform is used, environment -TERRAFORM_PATH needs to be set to this path - + TERRAFORM_PATH needs to be set to this path * Volume-target /credentials.terraform: A Terraform variable file holding sensitive information when working with terraform (e.g. -Terraform app secrets, etc.). If something different than /credentials.terraform is used, environment TERRAFORM_CREDENTIALS_PATH -needs to be set to this path - -* Environment TERRAFORM_VERSION*: A valid terraform version to install (e.g. 0.12.17) + Terraform app secrets, etc.). If something different than /credentials.terraform is used, environment TERRAFORM_CREDENTIALS_PATH + needs to be set to this path +* Environment TERRAFORM_VERSION (required): A valid terraform version to install (e.g. 0.12.17) * Environment TERRAFORM_PATH: Volume target for terraform base directory (optional). Defaults to `/terraform`. If something different -than the default is used, the volume-target needs to be adapted to the same directory - + than the default is used, the volume-target needs to be adapted to the same directory * Environment TERRAFORM_CREDENTIALS_PATH: Volume target for terraform credentials (optional). Defaults to `/terraform`. If something -different than the default is used, the volume-target needs to be adapted to the same directory - + different than the default is used, the volume-target needs to be adapted to the same directory ### Terragrunt @@ -565,7 +550,7 @@ Installs [Terragrunt](https://github.com/gruntwork-io/terragrunt) * USE_terragrunt: Enable this feature * DEBUG_terragrunt: Debug this feature -* Environment TERRAGRUNT_VERSION*: Valid version of terragrunt to install +* Environment TERRAGRUNT_VERSION (required): Valid version of terragrunt to install ### Timezone configuration @@ -585,7 +570,7 @@ Installs the [Velero](https://velero.io) kubernetes backup CLI * USE_velero: Enable this feature * DEBUG_velero: Debug this feature -* Environment VELERO_VERSION*: Valid velero version to install (e.g. 1.4.2) +* Environment VELERO_VERSION (required): Valid velero version to install (e.g. 1.4.2) ### Vim @@ -604,7 +589,7 @@ Installs the [YAML parser and processor yq](https://github.com/mikefarah/yq) * USE_yq: Enable this feature * DEBUG_yq: Debug this feature -* Environment YQ_VERSION*: Valid YQ version to install (e.g. 4.5.0) +* Environment YQ_VERSION (required): Valid YQ version to install (e.g. 4.5.0) ## Development @@ -632,8 +617,9 @@ use environment variables prefixed with "MYFEATURE_" to circumvent the problem o variables with another feature or a flavour. Additionally, please add enough information to the configuration array of your feature so the user knows what values -to set for the specific environment variable. If a configuration option is required, please add an asterisk (*) after -its name and check if the variable is set in your installation script and break accordingly if not. +to set for the specific environment variable. If a configuration option is required, please state this in the +environment declaration using `(required)` after its name and check if the variable is set in your installation script +and break accordingly if not. If your feature needs a version specification, the recommended way is to use the environment variable `[FEATURE NAME]_VERSION`. This variable is also filled if the *CloudControl* user uses the FEATURES-variable approach diff --git a/README.md.gotmpl b/README.md.gotmpl index 4ba96c6..bc9e542 100644 --- a/README.md.gotmpl +++ b/README.md.gotmpl @@ -296,8 +296,9 @@ use environment variables prefixed with "MYFEATURE_" to circumvent the problem o variables with another feature or a flavour. Additionally, please add enough information to the configuration array of your feature so the user knows what values -to set for the specific environment variable. If a configuration option is required, please add an asterisk (*) after -its name and check if the variable is set in your installation script and break accordingly if not. +to set for the specific environment variable. If a configuration option is required, please state this in the +environment declaration using `(required)` after its name and check if the variable is set in your installation script +and break accordingly if not. If your feature needs a version specification, the recommended way is to use the environment variable `[FEATURE NAME]_VERSION`. This variable is also filled if the *CloudControl* user uses the FEATURES-variable approach diff --git a/feature/helm/feature.yaml b/feature/helm/feature.yaml index ea92cb8..b78729c 100644 --- a/feature/helm/feature.yaml +++ b/feature/helm/feature.yaml @@ -2,4 +2,4 @@ icon: "⛵️" title: "Helm" description: "Installs [Helm](https://helm.sh)" configuration: - - "Environment HELM_VERSION*: Valid Helm version to install (e.g. 1.5.4)" + - "Environment HELM_VERSION (required): Valid Helm version to install (e.g. 1.5.4)" diff --git a/feature/packer/feature.yaml b/feature/packer/feature.yaml index a689088..465c2fc 100644 --- a/feature/packer/feature.yaml +++ b/feature/packer/feature.yaml @@ -2,4 +2,4 @@ icon: "📦" title: "Packer" description: "Installs [Packer](https://packer.io)" configuration: - - "Environment PACKER_VERSION*: Valid Packer version to install (e.g. 1.5.4)" + - "Environment PACKER_VERSION (required): Valid Packer version to install (e.g. 1.5.4)" diff --git a/feature/stern/feature.yaml b/feature/stern/feature.yaml index d36c5aa..2868221 100644 --- a/feature/stern/feature.yaml +++ b/feature/stern/feature.yaml @@ -3,4 +3,4 @@ title: "Stern" description: | Installs [stern](https://github.com/stern/stern), a multi pod and container log tailing for Kubernetes configuration: - - "Environment STERN_VERSION*: Valid Stern version (e.g. 1.21.0)" + - "Environment STERN_VERSION (required): Valid Stern version (e.g. 1.21.0)" diff --git a/feature/terraform/feature.yaml b/feature/terraform/feature.yaml index 60bf70f..d5942cf 100644 --- a/feature/terraform/feature.yaml +++ b/feature/terraform/feature.yaml @@ -14,7 +14,7 @@ configuration: Volume-target /credentials.terraform: A Terraform variable file holding sensitive information when working with terraform (e.g. Terraform app secrets, etc.). If something different than /credentials.terraform is used, environment TERRAFORM_CREDENTIALS_PATH needs to be set to this path - - "Environment TERRAFORM_VERSION*: A valid terraform version to install (e.g. 0.12.17)" + - "Environment TERRAFORM_VERSION (required): A valid terraform version to install (e.g. 0.12.17)" - | Environment TERRAFORM_PATH: Volume target for terraform base directory (optional). Defaults to `/terraform`. If something different than the default is used, the volume-target needs to be adapted to the same directory diff --git a/feature/terragrunt/feature.yaml b/feature/terragrunt/feature.yaml index 5c58b7d..6464978 100644 --- a/feature/terragrunt/feature.yaml +++ b/feature/terragrunt/feature.yaml @@ -2,4 +2,4 @@ icon: "🐗" title: "Terragrunt" description: "Installs [Terragrunt](https://github.com/gruntwork-io/terragrunt)" configuration: - - "Environment TERRAGRUNT_VERSION*: Valid version of terragrunt to install" + - "Environment TERRAGRUNT_VERSION (required): Valid version of terragrunt to install" diff --git a/feature/velero/feature.yaml b/feature/velero/feature.yaml index 19ab6c4..c5b111f 100644 --- a/feature/velero/feature.yaml +++ b/feature/velero/feature.yaml @@ -2,4 +2,4 @@ icon: "🌊" title: "Velero" description: "Installs the [Velero](https://velero.io) kubernetes backup CLI" configuration: - - "Environment VELERO_VERSION*: Valid velero version to install (e.g. 1.4.2)" + - "Environment VELERO_VERSION (required): Valid velero version to install (e.g. 1.4.2)" diff --git a/feature/yq/feature.yaml b/feature/yq/feature.yaml index 59f9a36..ff54888 100644 --- a/feature/yq/feature.yaml +++ b/feature/yq/feature.yaml @@ -2,4 +2,4 @@ icon: "🛠" title: "YQ" description: "Installs the [YAML parser and processor yq](https://github.com/mikefarah/yq)" configuration: - - "Environment YQ_VERSION*: Valid YQ version to install (e.g. 4.5.0)" + - "Environment YQ_VERSION (required): Valid YQ version to install (e.g. 4.5.0)"