docs/layouts/shortcodes/compatibility-matrix-kubernetes.html
{{- /* Load all compatibility test results from project/compatibility section and subdirectories */ -}} {{- $k8s_tests := slice -}} {{- range site.AllPages -}} {{- if and (strings.Contains .Path "project/compatibility") (ne .Kind "section") -}} {{- $k8s_tests = $k8s_tests | append . -}} {{- end -}} {{- end -}} {{- /* Group by k8s-version and sort */ -}} {{- $grouped := dict -}} {{- range $k8s_tests -}} {{- $version := .Params.k8sVersion | default (index .Params "k8s-version") | default "" -}} {{- if $version -}} {{- $items := index $grouped $version | default slice -}} {{- $grouped = merge $grouped (dict $version ($items | append .)) -}} {{- end -}} {{- end -}} {{- /* Collect and sort versions */ -}} {{- $versions := slice -}} {{- range $version, $items := $grouped -}} {{- $versions = $versions | append $version -}} {{- end -}} {{- $versions = $versions | sort -}} {{- /* Reverse the versions for descending order */ -}} {{- $reversed := slice -}} {{- $len := len $versions -}} {{- range $i := (seq $len) -}} {{- $reversed = $reversed | append (index $versions (sub $len $i)) -}} {{- end -}} {{- $versions = $reversed -}}
| Kubernetes Version | meshery-istio | meshery-linkerd | meshery-kuma | meshery-nighthawk | meshery-nginx-sm | meshery-traefik-mesh | meshery-cilium | meshery-consul |
|---|---|---|---|---|---|---|---|---|
| {{- range $versions -}} {{- $items := index $grouped . -}} {{- /* Group items by adapter component for this K8s version */ -}} {{- $adapters := dict -}} {{- range $items -}} {{- $comp := index .Params "meshery-component" -}} {{- $adapter_items := index $adapters $comp | default slice -}} {{- $adapters = merge $adapters (dict $comp ($adapter_items | append .)) -}} {{- end -}} | {{ . }} | {{- /* Istio */ -}} {{- if index $adapters "meshery-istio" -}} {{- $latest := index (sort (index $adapters "meshery-istio") "Params.meshery-component-version" "desc") 0 -}} {{- $status := index $latest.Params "overall-status" -}} {{- if eq $status "passing" -}}✓{{- else if eq $status "failing" -}}✗{{- else -}}—{{- end -}} {{- else -}}N/A{{- end -}} | {{- /* Linkerd */ -}} {{- if index $adapters "meshery-linkerd" -}} {{- $latest := index (sort (index $adapters "meshery-linkerd") "Params.meshery-component-version" "desc") 0 -}} {{- $status := index $latest.Params "overall-status" -}} {{- if eq $status "passing" -}}✓{{- else if eq $status "failing" -}}✗{{- else -}}—{{- end -}} {{- else -}}N/A{{- end -}} | {{- /* Kuma */ -}} {{- if index $adapters "meshery-kuma" -}} {{- $latest := index (sort (index $adapters "meshery-kuma") "Params.meshery-component-version" "desc") 0 -}} {{- $status := index $latest.Params "overall-status" -}} {{- if eq $status "passing" -}}✓{{- else if eq $status "failing" -}}✗{{- else -}}—{{- end -}} {{- else -}}N/A{{- end -}} | {{- /* Nighthawk */ -}} {{- if index $adapters "meshery-nighthawk" -}} {{- $latest := index (sort (index $adapters "meshery-nighthawk") "Params.meshery-component-version" "desc") 0 -}} {{- $status := index $latest.Params "overall-status" -}} {{- if eq $status "passing" -}}✓{{- else if eq $status "failing" -}}✗{{- else -}}—{{- end -}} {{- else -}}N/A{{- end -}} | {{- /* NGINX SM */ -}} {{- if index $adapters "meshery-nginx-sm" -}} {{- $latest := index (sort (index $adapters "meshery-nginx-sm") "Params.meshery-component-version" "desc") 0 -}} {{- $status := index $latest.Params "overall-status" -}} {{- if eq $status "passing" -}}✓{{- else if eq $status "failing" -}}✗{{- else -}}—{{- end -}} {{- else -}}N/A{{- end -}} |
| {{- end -}} |