getEngineVersions function

Future<GetEngineVersionsResult> getEngineVersions(
  1. GetEngineVersionsArgs args, {
  2. InvokeOptions? options,
})

Provides access to available Google Kubernetes Engine versions in a zone or region for a given project.

To get more information about GKE versions, see:

> If you are using the gcp.container.getEngineVersions datasource with a regional cluster, ensure that you have provided a region as the location to the datasource. A region can have a different set of supported versions than its component zones, and not all zones in a region are guaranteed to support the same version.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const central1b = gcp.container.getEngineVersions({
    location: "us-central1-b",
    versionPrefix: "1.12.",
});
const foo = new gcp.container.Cluster("foo", {
    name: "test-cluster",
    location: "us-central1-b",
    nodeVersion: central1b.then(central1b => central1b.latestNodeVersion),
    initialNodeCount: 1,
});
export const stableChannelDefaultVersion = central1b.then(central1b => central1b.releaseChannelDefaultVersion?.STABLE);
export const stableChannelLatestVersion = central1b.then(central1b => central1b.releaseChannelLatestVersion?.STABLE);
import pulumi
import pulumi_gcp as gcp

central1b = gcp.container.get_engine_versions(location="us-central1-b",
    version_prefix="1.12.")
foo = gcp.container.Cluster("foo",
    name="test-cluster",
    location="us-central1-b",
    node_version=central1b.latest_node_version,
    initial_node_count=1)
pulumi.export("stableChannelDefaultVersion", central1b.release_channel_default_version["STABLE"])
pulumi.export("stableChannelLatestVersion", central1b.release_channel_latest_version["STABLE"])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() =>
{
    var central1b = Gcp.Container.GetEngineVersions.Invoke(new()
    {
        Location = "us-central1-b",
        VersionPrefix = "1.12.",
    });

    var foo = new Gcp.Container.Cluster("foo", new()
    {
        Name = "test-cluster",
        Location = "us-central1-b",
        NodeVersion = central1b.Apply(getEngineVersionsResult => getEngineVersionsResult.LatestNodeVersion),
        InitialNodeCount = 1,
    });

    return new Dictionary<string, object?>
    {
        ["stableChannelDefaultVersion"] = central1b.Apply(getEngineVersionsResult => getEngineVersionsResult.ReleaseChannelDefaultVersion?.STABLE),
        ["stableChannelLatestVersion"] = central1b.Apply(getEngineVersionsResult => getEngineVersionsResult.ReleaseChannelLatestVersion?.STABLE),
    };
});
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/container"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		central1b, err := container.GetEngineVersions(ctx, &container.GetEngineVersionsArgs{
			Location:      pulumi.StringRef("us-central1-b"),
			VersionPrefix: pulumi.StringRef("1.12."),
		}, nil)
		if err != nil {
			return err
		}
		_, err = container.NewCluster(ctx, "foo", &container.ClusterArgs{
			Name:             pulumi.String("test-cluster"),
			Location:         pulumi.String("us-central1-b"),
			NodeVersion:      pulumi.String(central1b.LatestNodeVersion),
			InitialNodeCount: pulumi.Int(1),
		})
		if err != nil {
			return err
		}
		ctx.Export("stableChannelDefaultVersion", central1b.ReleaseChannelDefaultVersion.STABLE)
		ctx.Export("stableChannelLatestVersion", central1b.ReleaseChannelLatestVersion.STABLE)
		return nil
	})
}
pulumi {
  required_providers {
    gcp = {
      source = "pulumi/gcp"
    }
  }
}

data "gcp_container_getengineversions" "central1b" {
  location       = "us-central1-b"
  version_prefix = "1.12."
}

resource "gcp_container_cluster" "foo" {
  name               = "test-cluster"
  location           = "us-central1-b"
  node_version       = data.gcp_container_getengineversions.central1b.latest_node_version
  initial_node_count = 1
}
output "stableChannelDefaultVersion" {
  value = data.gcp_container_getengineversions.central1b.release_channel_default_version["STABLE"]
}
output "stableChannelLatestVersion" {
  value = data.gcp_container_getengineversions.central1b.release_channel_latest_version["STABLE"]
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.container.ContainerFunctions;
import com.pulumi.gcp.container.inputs.GetEngineVersionsArgs;
import com.pulumi.gcp.container.Cluster;
import com.pulumi.gcp.container.ClusterArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        final var central1b = ContainerFunctions.getEngineVersions(GetEngineVersionsArgs.builder()
            .location("us-central1-b")
            .versionPrefix("1.12.")
            .build());

        var foo = new Cluster("foo", ClusterArgs.builder()
            .name("test-cluster")
            .location("us-central1-b")
            .nodeVersion(central1b.latestNodeVersion())
            .initialNodeCount(1)
            .build());

        ctx.export("stableChannelDefaultVersion", central1b.releaseChannelDefaultVersion().STABLE());
        ctx.export("stableChannelLatestVersion", central1b.releaseChannelLatestVersion().STABLE());
    }
}
resources:
  foo:
    type: gcp:container:Cluster
    properties:
      name: test-cluster
      location: us-central1-b
      nodeVersion: ${central1b.latestNodeVersion}
      initialNodeCount: 1
variables:
  central1b:
    fn::invoke:
      function: gcp:container:getEngineVersions
      arguments:
        location: us-central1-b
        versionPrefix: 1.12.
outputs:
  stableChannelDefaultVersion: ${central1b.releaseChannelDefaultVersion.STABLE}
  stableChannelLatestVersion: ${central1b.releaseChannelLatestVersion.STABLE}

args Arguments passed to this invoke. Arguments for getEngineVersions. options Invoke options controlling this call.

Implementation

Future<GetEngineVersionsResult> getEngineVersions(
  GetEngineVersionsArgs args, {
  pulumi.InvokeOptions? options,
}) async {
  final deployment = pulumi.Deployment.instance;
  final result = await deployment.invoke<Map<String, dynamic>>(
    'gcp:container/getEngineVersions:getEngineVersions',
    args.toMap(),
    options: pulumi.toDeploymentInvokeOptions(options),
  );
  return GetEngineVersionsResult.fromMap(result);
}