#!/bin/bash
set -o errexit

source "$(dirname "$0")/lib.sh"

set -o xtrace

reference_node='homeserver'

manifest_dir_drv="$(colmena_eval_string --instantiate -E "{ nodes, ... }: nodes.$reference_node.config.custom.kubernetes.lib.manifest.allManifestDir")"
manifest_dir="$(nix build --quiet --print-out-paths "${manifest_dir_drv}^*")"

# version in format <major>.<minor>
kubernetes_version="$(colmena_eval_string -E "{ nodes, lib, ... }: lib.versions.pad 2 nodes.$reference_node.config.services.kubernetes.package.version")"

# See https://github.com/stackrox/kube-linter
nix run 'nixpkgs#kube-linter' -- \
    lint \
    --config "$git_root/kube-linter.yaml" \
    --fail-if-no-objects-found \
    $(find -L "$manifest_dir" -name '*.yaml') \
    $@ \
    || true # prevent triggering errexit
    #--add-all-built-in \

# See https://github.com/zegl/kube-score
# nix run 'nixpkgs#kube-score' -- \
#     score \
#     --output-format human \
#     --kubernetes-version "v$kubernetes_version" \
#     --min-replicas-deployment 2 \
#     --min-replicas-hpa 2 \
#     "$@" \
#     "$(find "$manifest_dir" -name '*.yaml')" \
#     || true
# ignore tests using metadata.annotations."kube-score/ignore" = "<test id>,<test id>,..."