#!/usr/bin/env bash
set -euo pipefail

KUBE_VERSION="1.33.7"

SCHEMA_DIR="${SCHEMA_DIR:-schemas}"

schema_args=(
  -schema-location "$SCHEMA_DIR/{{.Group}}/{{.ResourceKind}}_{{.ResourceAPIVersion}}.json"
  -schema-location "https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github_user/yannh/kubernetes-json-schema/master/{{.NormalizedKubernetesVersion}}-standalone{{.StrictSuffix}}/{{.ResourceKind}}{{.KindSuffix}}.json"
  -schema-location "https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github_user/datreeio/CRDs-catalog/main/{{.Group}}/{{.ResourceKind}}_{{.ResourceAPIVersion}}.json"
)

while IFS= read -r -d "" k; do
  dir="$(dirname "$k")"
  echo "==> kubeconform: $dir" >&2

  kustomize build --enable-helm "$dir" \
    | kubeconform \
        -kubernetes-version "$KUBE_VERSION" \
        -summary \
        -output pretty \
        -verbose \
        -skip CustomResourceDefinition \
        "${schema_args[@]}"
done < <(find clusters -name kustomization.yaml -print0)
