import * as pulumi from "@pulumi/pulumi"; /** * 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: * * [The API reference](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations/getServerConfig) * * > 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 * * ```typescript * 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); * ``` */ export declare function getEngineVersions(args?: GetEngineVersionsArgs, opts?: pulumi.InvokeOptions): Promise; /** * A collection of arguments for invoking getEngineVersions. */ export interface GetEngineVersionsArgs { /** * The location (region or zone) to list versions for. * Must exactly match the location the cluster will be deployed in, or listed * versions may not be available. If `location`, `region`, and `zone` are not * specified, the provider-level zone must be set and is used instead. */ location?: string; /** * ID of the project to list available cluster versions for. Should match the project the cluster will be deployed to. * Defaults to the project that the provider is authenticated with. */ project?: string; /** * If provided, the provider will only return versions * that match the string prefix. For example, `1.11.` will match all `1.11` series * releases. Since this is just a string match, it's recommended that you append a * `.` after minor versions to ensure that prefixes such as `1.1` don't match * versions like `1.12.5-gke.10` accidentally. See [the docs on versioning schema](https://cloud.google.com/kubernetes-engine/versioning-and-upgrades#versioning_scheme) * for full details on how version strings are formatted. */ versionPrefix?: string; } /** * A collection of values returned by getEngineVersions. */ export interface GetEngineVersionsResult { /** * Version of Kubernetes the service deploys by default. */ readonly defaultClusterVersion: string; /** * The provider-assigned unique ID for this managed resource. */ readonly id: string; /** * The latest version available in the given zone for use with master instances. */ readonly latestMasterVersion: string; /** * The latest version available in the given zone for use with node instances. */ readonly latestNodeVersion: string; readonly location?: string; readonly project?: string; /** * A map from a release channel name to the channel's default version. See the docs on [available release channel names](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters#Cluster.Channel_1) for more details. */ readonly releaseChannelDefaultVersion: { [key: string]: string; }; /** * A map from a release channel name to the channel's latest version. See the docs on [available release channel names](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters#Cluster.Channel_1) for more details. */ readonly releaseChannelLatestVersion: { [key: string]: string; }; /** * A map from a release channel name to the channel's auto upgrade target version. See the docs on [available release channel names](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters#Cluster.Channel_1) for more details. */ readonly releaseChannelUpgradeTargetVersion: { [key: string]: string; }; /** * A list of versions available in the given zone for use with master instances. */ readonly validMasterVersions: string[]; /** * A list of versions available in the given zone for use with node instances. */ readonly validNodeVersions: string[]; readonly versionPrefix?: string; } /** * 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: * * [The API reference](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations/getServerConfig) * * > 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 * * ```typescript * 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); * ``` */ export declare function getEngineVersionsOutput(args?: GetEngineVersionsOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output; /** * A collection of arguments for invoking getEngineVersions. */ export interface GetEngineVersionsOutputArgs { /** * The location (region or zone) to list versions for. * Must exactly match the location the cluster will be deployed in, or listed * versions may not be available. If `location`, `region`, and `zone` are not * specified, the provider-level zone must be set and is used instead. */ location?: pulumi.Input; /** * ID of the project to list available cluster versions for. Should match the project the cluster will be deployed to. * Defaults to the project that the provider is authenticated with. */ project?: pulumi.Input; /** * If provided, the provider will only return versions * that match the string prefix. For example, `1.11.` will match all `1.11` series * releases. Since this is just a string match, it's recommended that you append a * `.` after minor versions to ensure that prefixes such as `1.1` don't match * versions like `1.12.5-gke.10` accidentally. See [the docs on versioning schema](https://cloud.google.com/kubernetes-engine/versioning-and-upgrades#versioning_scheme) * for full details on how version strings are formatted. */ versionPrefix?: pulumi.Input; }