Skip to content

🍹📈Pulumi module to instantiate Kubernetes Metrics Servers

License

Notifications You must be signed in to change notification settings

timmyers/pulumi-k8s-metrics-server

Repository files navigation

🍹📈 pulumi-k8s-metrics-server

Actions Status npm codecov semantic-release Dependabot Status

A pulumi module for instantiating Kubernetes Metrics Servers.

Aims to be a full-featured pulumi native alternative to the helm chart. Currently only javascript/typescript are supported. Other languages may follow.

Usage

yarn add @timmyers/pulumi-k8s-metrics-server

import K8sMetricsServer, { MetricsServerArgs } from '@timmyers/pulumi-k8s-metrics-server';

const args: MetricsServerArgs = {};
const metricsServer = new K8sMetricsServer('metrics-server', args);

The module exposes an interface MetricsServerArgs, which exposes many options that can be set, similar to the helm chart.

Examples

Instantiate an EKS cluster in multiple AWS regions, and create a metrics-server in each.

import * as aws from '@pulumi/aws';
import K8sMetricsServer from '@timmyers/pulumi-k8s-metrics-server';

const regions: aws.Region[] = [
  'us-west-2', // Oregon
  'eu-central-1', // Frankfurt
];

regions.forEach((region): void => {
  const provider = new aws.Provider(`provider-${region}`, { region });
  const defaultOpts: pulumi.ComponentResourceOptions = { provider };
  const cluster = new eks.Cluster(`cluster-${region}`, {}, defaultOpts);

  const k8sDefaultOpts = { providers: { kubernetes: cluster.provider } };
  const metricsServer = new K8sMetricsServer(name, {}, k8sDefaultOpts);
});

Development

Installation

Clone the repo, then: yarn

Running tests

yarn test