Skip to content

A pure CDK for Terraform construct to authenticate against Google Kubernetes Engine (GKE) without the need of any Terraform module

License

Notifications You must be signed in to change notification settings

01walid/cdktf-gke-auth

Repository files navigation

Apache 2.0 License Gitpod ready-to-code npm version PyPI version Build badge Release badge

cdktf-gke-auth

Easily authenticate against a Google Kubernetes Engine (GKE) within your CDK for Terraform stack. Without the need to resort to Google's terraform GKE auth module. You can avoid running cdktf get as pre-synth step.

This project uses projen and jsii to compile the construct to Typescript, Python, Go and .Net (Java upon request).

Example usage (Typescript)

Install the construct with: yarn install cdktf-gke-auth.

import { GoogleProvider } from "@cdktf/provider-google/lib/provider";
import { TerraformOutput, TerraformStack } from "cdktf";
import { Construct } from "constructs";
import { GKEAuth } from 'cdktf-gke-auth';

export class MyKubeStack extends TerraformStack {
  constructor(scope: Construct, name: string) {
    super(scope, name);

    new GoogleProvider(this, "google-provider", {});

    const auth = new GKEAuth(this, "gke-auth", {
      clusterName: "my-cluster",
      location: "europe-west1",
      projectId: "my-project",
    });

    // init the Kubernetes provider like so:
    new KubernetesProvider(this, "kubernetes", {
      ...auth.authCredentials
    });

    // Or a helm provider like so:
     new HelmProvider(this, "helm", {
      kubernetes: auth.authCredentials,
    });
  }
}

The GKEAuth instance expose host, clusterCaCertificate, clusterCaCertificatePEM, and token you can use to authenticate using any of the kubernetes popular cdktf providers.

For other languages examples, checkout this construct on ConstructHub.