1. Answers
  2. Building a Kubernetes PrometheusRule with Pulumi

How do I build a Kubernetes monitoring.coreos.com prometheusrule with Pulumi?

This guide will show you how to create a Kubernetes PrometheusRule resource using Pulumi in TypeScript. The PrometheusRule custom resource is part of the Prometheus Operator, which allows you to define alerting and recording rules for Prometheus.

Key Points:

  • We will create a Kubernetes namespace.
  • We will define a PrometheusRule resource with alerting rules.
  • The PrometheusRule will be created within the specified namespace.

Below is the complete Pulumi program to achieve this:

import * as pulumi from "@pulumi/pulumi";
import * as k8s from "@pulumi/kubernetes";

// Create a Kubernetes namespace
const namespace = new k8s.core.v1.Namespace("monitoring", {
    metadata: {
        name: "monitoring",
    },
});

// Define a PrometheusRule resource
const prometheusRule = new k8s.apiextensions.CustomResource("prometheusRule", {
    apiVersion: "monitoring.coreos.com/v1",
    kind: "PrometheusRule",
    metadata: {
        name: "example-prometheusrule",
        namespace: namespace.metadata.name,
    },
    spec: {
        groups: [
            {
                name: "example.rules",
                rules: [
                    {
                        alert: "ExampleAlert",
                        expr: "vector(1)", // This is a simple example rule
                        for: "5m",
                        labels: {
                            severity: "page",
                        },
                        annotations: {
                            summary: "This is an example alert",
                        },
                    },
                ],
            },
        ],
    },
});

Summary

In this guide, we created a Kubernetes namespace and a PrometheusRule resource using Pulumi in TypeScript. The PrometheusRule includes a simple alerting rule that triggers an alert if the condition specified in the expr field is met. This setup is useful for monitoring and alerting in Kubernetes environments using Prometheus.

Deploy this code

Want to deploy this code? Sign up for a free Pulumi account to deploy in a few clicks.

Sign up

New to Pulumi?

Want to deploy this code? Sign up with Pulumi to deploy in a few clicks.

Sign up