mirror of
https://github.com/kubernetes-sigs/external-dns.git
synced 2025-08-05 17:16:59 +02:00
* chore(fqdn): fqdn move to specific folder and update documentation * chore(fqdn): fqdn move to specific folder and update documentation Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com> * chore(fqdn): fqdn move to specific folder and update documentation Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com> * chore(fqdn): fqdn move to specific folder and update documentation Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com> * chore(fqdn): fqdn move to specific folder and update documentation Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com> --------- Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com> Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
148 lines
3.4 KiB
Bash
Executable File
148 lines
3.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
# JSON Schema https://json-schema.org/
|
|
# JSON Schema spec https://json-schema.org/draft/2020-12/json-schema-validation
|
|
# Helm Schema https://helm.sh/docs/topics/charts/#schema-files
|
|
|
|
# Execute
|
|
# scripts/helm-tools.sh
|
|
# scripts/helm-tools.sh -h
|
|
# scripts/helm-tools.sh --install
|
|
# scripts/helm-tools.sh --diff
|
|
# scripts/helm-tools.sh --schema
|
|
# scripts/helm-tools.sh --lint
|
|
# scripts/helm-tools.sh --docs
|
|
# scripts/helm-tools.sh --helm-template
|
|
# scripts/helm-tools.sh --helm-unittest
|
|
|
|
show_help() {
|
|
cat << EOF
|
|
'external-dns' helm linter helper commands
|
|
|
|
Usage: $(basename "$0") <options>
|
|
-d, --diff Schema diff validation
|
|
--docs Re-generate helm documentation
|
|
-h, --help Display help
|
|
-i, --install Install required tooling
|
|
-l, --lint Lint chart
|
|
-s, --schema Generate schema
|
|
--helm-unittest Run helm unittest(s)
|
|
--helm-template Run helm template
|
|
--show-docs Show available documentation
|
|
EOF
|
|
}
|
|
|
|
install() {
|
|
if [[ -x $(which helm) ]]; then
|
|
echo "installing https://github.com/losisin/helm-values-schema-json.git plugin"
|
|
helm plugin install https://github.com/losisin/helm-values-schema-json.git | true
|
|
helm plugin update schema
|
|
helm plugin list | grep "schema"
|
|
|
|
helm plugin install https://github.com/helm-unittest/helm-unittest.git | true
|
|
helm plugin update unittest
|
|
helm plugin list | grep "unittest"
|
|
|
|
echo "installing helm-docs"
|
|
go install github.com/norwoodj/helm-docs/cmd/helm-docs@latest | true
|
|
|
|
if [[ -x $(which brew) ]]; then
|
|
echo "installing chart-testing https://github.com/helm/chart-testing"
|
|
brew install chart-testing
|
|
fi
|
|
else
|
|
echo "helm is not installed"
|
|
echo "install helm https://helm.sh/docs/intro/install/ and try again"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
update_schema() {
|
|
cd charts/external-dns
|
|
# uses .schema.yamle
|
|
helm schema
|
|
}
|
|
|
|
diff_schema() {
|
|
cd charts/external-dns
|
|
helm schema \
|
|
-output diff-schema.schema.json
|
|
trap 'rm -rf -- "diff-schema.schema.json"' EXIT
|
|
CURRENT_SCHEMA=$(cat values.schema.json)
|
|
GENERATED_SCHEMA=$(cat diff-schema.schema.json)
|
|
if [ "$CURRENT_SCHEMA" != "$GENERATED_SCHEMA" ]; then
|
|
echo "Schema must be re-generated! Run 'scripts/helm-tools.sh --schema'" 1>&2
|
|
diff -Nau diff-schema.schema.json values.schema.json
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
lint_chart() {
|
|
cd charts/external-dns
|
|
helm lint . --debug --strict \
|
|
--values values.yaml \
|
|
--values ci/ci-values.yaml
|
|
# lint with chart testing tool
|
|
ct lint --target-branch=master --check-version-increment=false
|
|
}
|
|
|
|
helm_docs() {
|
|
cd charts/external-dns
|
|
helm-docs
|
|
}
|
|
|
|
helm_unittest() {
|
|
helm unittest -f 'tests/*_test.yaml' --color charts/external-dns
|
|
}
|
|
|
|
helm_template() {
|
|
helm template external-dns charts/external-dns \
|
|
--output-dir _scratch \
|
|
-n kube-system
|
|
}
|
|
|
|
show_docs() {
|
|
open "https://github.com/losisin/helm-values-schema-json?tab=readme-ov-file"
|
|
}
|
|
|
|
function main() {
|
|
case $1 in
|
|
--show-docs)
|
|
show_docs
|
|
;;
|
|
--helm-unittest)
|
|
helm_unittest
|
|
;;
|
|
--helm-template)
|
|
helm_template
|
|
;;
|
|
-d|--diff)
|
|
diff_schema
|
|
;;
|
|
--docs)
|
|
helm_docs
|
|
;;
|
|
-i|--install)
|
|
install
|
|
;;
|
|
-l|--lint)
|
|
lint_chart
|
|
;;
|
|
-s|--schema)
|
|
update_schema
|
|
;;
|
|
-h|--help)
|
|
show_help
|
|
;;
|
|
*)
|
|
echo "unknown sub-command" >&2
|
|
show_help
|
|
exit 1
|
|
;;
|
|
esac
|
|
}
|
|
|
|
main "$@"
|