Using Kubernetes Kyverno.io With Projectcalico.org
This Pulumi program demonstrates how to deploy Kyverno and Project Calico on a Kubernetes cluster using Pulumi in TypeScript. The program first sets up the necessary Kubernetes provider, then deploys Kyverno using a Helm chart, and finally deploys Project Calico using another Helm chart. The program includes detailed comments to explain each step.
Full Code Example
import * as pulumi from "@pulumi/pulumi";
import * as k8s from "@pulumi/kubernetes";
// Create a Kubernetes provider (assumes kubeconfig is set in the environment)
const k8sProvider = new k8s.Provider("k8sProvider", {
kubeconfig: process.env.KUBECONFIG,
});
// Deploy Kyverno using a Helm chart
const kyverno = new k8s.helm.v3.Chart("kyverno", {
chart: "kyverno",
version: "2.1.0", // specify the version of Kyverno
fetchOpts: {
repo: "https://kyverno.github.io/kyverno/",
},
}, { provider: k8sProvider });
// Deploy Project Calico using a Helm chart
const calico = new k8s.helm.v3.Chart("calico", {
chart: "tigera-operator",
version: "3.21.4", // specify the version of Calico
fetchOpts: {
repo: "https://docs.projectcalico.org/charts",
},
}, { provider: k8sProvider });
// Export the names of the Helm releases
export const kyvernoReleaseName = kyverno.getResource("v1/Service", "kyverno/kyverno-svc").metadata.name;
export const calicoReleaseName = calico.getResource("v1/Service", "calico-system/calico-typha").metadata.name;
Deploy this code
Want to deploy this code? Sign up for a free Pulumi account to deploy in a few clicks.
Sign upNew to Pulumi?
Want to deploy this code? Sign up with Pulumi to deploy in a few clicks.
Sign upThank you for your feedback!
If you have a question about how to use Pulumi, reach out in Community Slack.
Open an issue on GitHub to report a problem or suggest an improvement.