STATIC ERROR: example.jsonnet:55:1: Unknown variable: k
This seems to make sense, because we haven't defined k anywhere. The comment seems to suggest we should be using k8s-libsonnet, but it doesn't appear we're using that anywhere else in the repo
Did you expect to see some different?
I expected it to build the manifests
How to reproduce it (as minimally and precisely as possible):
local kp =
(import 'kube-prometheus/main.libsonnet') +
// Uncomment the following imports to enable its patches
// (import 'kube-prometheus/addons/anti-affinity.libsonnet') +
// (import 'kube-prometheus/addons/managed-cluster.libsonnet') +
// (import 'kube-prometheus/addons/node-ports.libsonnet') +
// (import 'kube-prometheus/addons/static-etcd.libsonnet') +
// (import 'kube-prometheus/addons/custom-metrics.libsonnet') +
// (import 'kube-prometheus/addons/external-metrics.libsonnet') +
// (import 'kube-prometheus/addons/pyrra.libsonnet') +
{
values+:: {
common+: {
namespace: 'monitoring',
},
},
prometheus+:: {
prometheus+: {
spec+: {
externalUrl: 'https://prometheus.example.com',
},
},
},
ingress+:: {
'basic-auth-middleware': {
apiVersion: 'traefik.containo.us/v1alpha1',
kind: 'Middleware',
metadata: {
name: 'basic-auth',
namespace: $.prometheus.prometheus.metadata.namespace,
},
spec: {
basicAuth: {
removeHeader: 'true',
secret: 'basic-auth-secret',
},
},
},
'prometheus-k8s': {
apiVersion: 'networking.k8s.io/v1',
kind: 'Ingress',
metadata: {
name: $.prometheus.prometheus.metadata.name,
namespace: $.prometheus.prometheus.metadata.namespace,
annotations: {
'traefik.ingress.kubernetes.io/router.entrypoints': 'websecure',
'traefik.ingress.kubernetes.io/router.middlewares': 'monitoring-basic-auth@kubernetescrd'
},
},
spec: {
rules: [{
host: 'prometheus.example.com',
http: {
paths: [{
backend: {
service: {
name: $.prometheus.service.metadata.name,
port: 'web',
},
},
}],
},
}],
},
},
},
};
k.core.v1.list.new([
kp.ingress['prometheus-k8s'],
kp.ingress['basic-auth-secret'],
])
{ 'setup/0namespace-namespace': kp.kubePrometheus.namespace } +
{
['setup/prometheus-operator-' + name]: kp.prometheusOperator[name]
for name in std.filter((function(name) name != 'serviceMonitor' && name != 'prometheusRule'), std.objectFields(kp.prometheusOperator))
} +
// { 'setup/pyrra-slo-CustomResourceDefinition': kp.pyrra.crd } +
// serviceMonitor and prometheusRule are separated so that they can be created after the CRDs are ready
{ 'prometheus-operator-serviceMonitor': kp.prometheusOperator.serviceMonitor } +
{ 'prometheus-operator-prometheusRule': kp.prometheusOperator.prometheusRule } +
{ 'kube-prometheus-prometheusRule': kp.kubePrometheus.prometheusRule } +
{ ['alertmanager-' + name]: kp.alertmanager[name] for name in std.objectFields(kp.alertmanager) } +
{ ['blackbox-exporter-' + name]: kp.blackboxExporter[name] for name in std.objectFields(kp.blackboxExporter) } +
{ ['grafana-' + name]: kp.grafana[name] for name in std.objectFields(kp.grafana) } +
// { ['pyrra-' + name]: kp.pyrra[name] for name in std.objectFields(kp.pyrra) if name != 'crd' } +
{ ['kube-state-metrics-' + name]: kp.kubeStateMetrics[name] for name in std.objectFields(kp.kubeStateMetrics) } +
{ ['kubernetes-' + name]: kp.kubernetesControlPlane[name] for name in std.objectFields(kp.kubernetesControlPlane) }
{ ['node-exporter-' + name]: kp.nodeExporter[name] for name in std.objectFields(kp.nodeExporter) } +
{ ['prometheus-' + name]: kp.prometheus[name] for name in std.objectFields(kp.prometheus) } +
{ ['prometheus-adapter-' + name]: kp.prometheusAdapter[name] for name in std.objectFields(kp.prometheusAdapter) } +
{ ['ingress-' + name]: kp.ingress[name] for name in std.objectFields(kp.ingress) }
WARNING: This version information is deprecated and will be replaced with the output from kubectl version --short. Use --output=yaml|json to get the full version.
Client Version: version.Info{Major:"1", Minor:"27", GitVersion:"v1.27.4", GitCommit:"fa3d7990104d7c1f16943a67f11b154b71f6a132", GitTreeState:"clean", BuildDate:"2023-07-19T12:14:48Z", GoVersion:"go1.20.6", Compiler:"gc", Platform:"darwin/arm64"}
Kustomize Version: v5.0.1
Server Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.3+k3s1", GitCommit:"5fb370e53e0014dc96183b8ecb2c25a61e891e76", GitTreeState:"clean", BuildDate:"2022-01-27T02:14:38Z", GoVersion:"go1.17.5", Compiler:"gc", Platform:"linux/arm64"}
WARNING: version difference between client (1.27) and server (1.23) exceeds the supported minor version skew of +/-1
<!-- Replace the command with its output above -->
What happened?
When using the example from the Setting Up Ingress in the Exposing via Ingress document, when running
build.sh example.jsonnet
, I getThis seems to make sense, because we haven't defined
k
anywhere. The comment seems to suggest we should be usingk8s-libsonnet
, but it doesn't appear we're using that anywhere else in the repoDid you expect to see some different?
I expected it to build the manifests
How to reproduce it (as minimally and precisely as possible):
Environment
Mac Sonoma 14.2.1
Prometheus Operator version:
quay.io/prometheus-operator/prometheus-operator:v0.57.0
Kubernetes version information:
k3s-ansible
Anything else we need to know?: