feature: added Grafana and Prometheus
Deploy Proxmox Infra / Pulumi Preview (pull_request) Successful in 1m4s
Deploy Proxmox Infra / Pulumi Deploy (pull_request) Has been skipped
Deploy k8s Infra / Pulumi Preview (pull_request) Successful in 45s
Deploy k8s Infra / Pulumi Deploy (pull_request) Has been skipped
Deploy k8s Apps / Pulumi Preview (pull_request) Successful in 44s
Deploy k8s Apps / Pulumi Deploy (pull_request) Has been skipped
Deploy Monitoring / Pulumi Deploy (pull_request) Has been skipped
Deploy Monitoring / Pulumi Preview (pull_request) Successful in 45s
Deploy Proxmox Infra / Pulumi Preview (pull_request) Successful in 1m4s
Deploy Proxmox Infra / Pulumi Deploy (pull_request) Has been skipped
Deploy k8s Infra / Pulumi Preview (pull_request) Successful in 45s
Deploy k8s Infra / Pulumi Deploy (pull_request) Has been skipped
Deploy k8s Apps / Pulumi Preview (pull_request) Successful in 44s
Deploy k8s Apps / Pulumi Deploy (pull_request) Has been skipped
Deploy Monitoring / Pulumi Deploy (pull_request) Has been skipped
Deploy Monitoring / Pulumi Preview (pull_request) Successful in 45s
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
import * as pulumi from "@pulumi/pulumi";
|
||||
import * as k8s from "@pulumi/kubernetes";
|
||||
|
||||
const config = new pulumi.Config();
|
||||
|
||||
const bootstrapRef = new pulumi.StackReference(
|
||||
`${pulumi.getOrganization()}/k8s-bootstrap/dev`,
|
||||
);
|
||||
const appsRef = new pulumi.StackReference(
|
||||
`${pulumi.getOrganization()}/k8s-apps/dev`,
|
||||
);
|
||||
|
||||
const kubeconfig = bootstrapRef.requireOutput("kubeconfig");
|
||||
const domain = appsRef.requireOutput("domain");
|
||||
const grafanaAdminPassword = config.requireSecret("grafanaAdminPassword");
|
||||
|
||||
const k8sProvider = new k8s.Provider("k3s", { kubeconfig });
|
||||
const opts = (extras?: pulumi.ResourceOptions): pulumi.ResourceOptions => ({
|
||||
provider: k8sProvider,
|
||||
...extras,
|
||||
});
|
||||
|
||||
const ns = new k8s.core.v1.Namespace(
|
||||
"monitoring",
|
||||
{ metadata: { name: "monitoring" } },
|
||||
opts(),
|
||||
);
|
||||
|
||||
const grafanaHost = pulumi.interpolate`grafana.${domain}`;
|
||||
|
||||
new k8s.helm.v3.Release(
|
||||
"kube-prometheus-stack",
|
||||
{
|
||||
name: "kube-prometheus-stack",
|
||||
chart: "kube-prometheus-stack",
|
||||
version: "86.2.0",
|
||||
namespace: ns.metadata.name,
|
||||
repositoryOpts: {
|
||||
repo: "https://prometheus-community.github.io/helm-charts",
|
||||
},
|
||||
timeout: 600,
|
||||
values: {
|
||||
grafana: {
|
||||
adminPassword: grafanaAdminPassword,
|
||||
ingress: {
|
||||
enabled: true,
|
||||
ingressClassName: "traefik",
|
||||
annotations: { "cert-manager.io/cluster-issuer": "letsencrypt-prod" },
|
||||
hosts: [grafanaHost],
|
||||
tls: [{ secretName: "grafana-tls", hosts: [grafanaHost] }],
|
||||
},
|
||||
persistence: {
|
||||
enabled: true,
|
||||
storageClassName: "longhorn",
|
||||
size: "2Gi",
|
||||
},
|
||||
},
|
||||
prometheus: {
|
||||
prometheusSpec: {
|
||||
storageSpec: {
|
||||
volumeClaimTemplate: {
|
||||
spec: {
|
||||
storageClassName: "longhorn",
|
||||
resources: { requests: { storage: "20Gi" } },
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
alertmanager: { enabled: false },
|
||||
},
|
||||
},
|
||||
opts(),
|
||||
);
|
||||
Reference in New Issue
Block a user