大家好,目前我在 AWS 上面搭建 prometheus-operator,
使用上還算順利,但我想要在使用 ingress 讓別人訪問 grafana,
於是參考下面這篇文章
https://prometheus-operator.dev/docs/kube/exposing-prometheus-alertmanager-grafana-ingress/
其中中間有一段 jsonnet 的東西,看不懂這是要怎麼使用。
local kp =
(import 'kube-prometheus/main.libsonnet') +
{
values+:: {
common+: {
namespace: 'monitoring',
},
},
prometheus+:: {
prometheus+: {
spec+: {
externalUrl: 'http://prometheus.example.com',
},
},
},
ingress+:: {
'prometheus-k8s': {
apiVersion: 'networking.k8s.io/v1',
kind: 'Ingress',
metadata: {
name: $.prometheus.prometheus.metadata.name,
namespace: $.prometheus.prometheus.metadata.namespace,
annotations: {
'nginx.ingress.kubernetes.io/auth-type': 'basic',
'nginx.ingress.kubernetes.io/auth-secret': 'basic-auth',
'nginx.ingress.kubernetes.io/auth-realm': 'Authentication Required',
},
},
spec: {
rules: [{
host: 'prometheus.example.com',
http: {
paths: [{
backend: {
service: {
name: $.prometheus.service.metadata.name,
port: 'web',
},
},
}],
},
}],
},
},
} + {
ingress+:: {
'basic-auth-secret': {
apiVersion: 'v1',
kind: 'Secret',
metadata: {
name: 'basic-auth',
namespace: $._config.namespace,
},
data: { auth: std.base64(importstr 'auth') },
type: 'Opaque',
},
},
};
// Output a kubernetes List object with both ingresses (k8s-libsonnet)
k.core.v1.list.new([
kp.ingress['prometheus-k8s'],
kp.ingress['basic-auth-secret'],
])
問了 chatgpt 他請我執行jsonnet config.jsonnet > config.yaml
,
然後kubectl apply -f config.yaml
即可。
於是我就把上面那一段 jsonnet 放入一個新的空白檔案 config.jsonnet
當我執行時候,卻發生了錯了。
jsonnet config.jsonnet > config.yaml
STATIC ERROR: aaa.jsonnet:58:4: expected a comma before next field.
你把第 58 行那個 ; 號
};
改成 , 號看看?
},
STATIC ERROR: aaa.jsonnet:61:2: expected token OPERATOR but got "."
60 // Output a kubernetes List object with both ingresses 61 (k8s-libsonnet)
62 k.core.v1.list.new([
63 kp.ingress['prometheus-k8s'],
64 kp.ingress['basic-auth-secret'],
65 ])
61行,. 錯誤..?
那你把原本 58 行那個 , 去掉只留下 }:
}
然後從 59 行以後的東西通通刪掉不要, 這樣試試看?
嗨嗨~雷神,
我早上有測試了一下,發現不行,後來我找到解法了,還沒有完全成功。
但至少知道他會什麼會出現 jsonnet 的原因了。
具體教學是放在這個位置
https://github.com/prometheus-operator/kube-prometheus/blob/main/docs/customizing.md
照做一遍後,還在模索,但是至少 jsonnet 怎麼更新 prometheus-operator 有點感覺了。
謝謝。