ProjectMetadataArgs

data class ProjectMetadataArgs(val metadata: Output<Map<String, String>>? = null, val project: Output<String>? = null) : ConvertibleToJava<ProjectMetadataArgs>

/* Authoritatively manages metadata common to all instances for a project in GCE. For more information see the official documentation and API.

Note: This resource manages all project-level metadata including project-level ssh keys. Keys unset in config but set on the server will be removed. If you want to manage only single key/value pairs within the project metadata rather than the entire set, then use google_compute_project_metadata_item.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const _default = new gcp.compute.ProjectMetadata("default", {metadata: {
foo: "bar",
fizz: "buzz",
"13": "42",
}});
import pulumi
import pulumi_gcp as gcp
default = gcp.compute.ProjectMetadata("default", metadata={
"foo": "bar",
"fizz": "buzz",
"13": "42",
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var @default = new Gcp.Compute.ProjectMetadata("default", new()
{
Metadata =
{
{ "foo", "bar" },
{ "fizz", "buzz" },
{ "13", "42" },
},
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := compute.NewProjectMetadata(ctx, "default", &compute.ProjectMetadataArgs{
Metadata: pulumi.StringMap{
"foo": pulumi.String("bar"),
"fizz": pulumi.String("buzz"),
"13": pulumi.String("42"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.ProjectMetadata;
import com.pulumi.gcp.compute.ProjectMetadataArgs;
import java.util.List;
import java.util.ArrayList;
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) {
var default_ = new ProjectMetadata("default", ProjectMetadataArgs.builder()
.metadata(Map.ofEntries(
Map.entry("foo", "bar"),
Map.entry("fizz", "buzz"),
Map.entry("13", "42")
))
.build());
}
}
resources:
default:
type: gcp:compute:ProjectMetadata
properties:
metadata:
foo: bar
fizz: buzz
'13': '42'

Adding An SSH Key

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
//A key set in project metadata is propagated to every instance in the project.
//This resource configuration is prone to causing frequent diffs as Google adds SSH Keys when the SSH Button is pressed in the console.
//It is better to use OS Login instead.
const mySshKey = new gcp.compute.ProjectMetadata("my_ssh_key", {metadata: {
"ssh-keys": ` dev:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILg6UtHDNyMNAh0GjaytsJdrUxjtLy3APXqZfNZhvCeT dev
foo:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILg6UtHDNyMNAh0GjaytsJdrUxjtLy3APXqZfNZhvCeT bar
`,
}});
import pulumi
import pulumi_gcp as gcp
#A key set in project metadata is propagated to every instance in the project.
#This resource configuration is prone to causing frequent diffs as Google adds SSH Keys when the SSH Button is pressed in the console.
#It is better to use OS Login instead.
my_ssh_key = gcp.compute.ProjectMetadata("my_ssh_key", metadata={
"ssh-keys": """ dev:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILg6UtHDNyMNAh0GjaytsJdrUxjtLy3APXqZfNZhvCeT dev
foo:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILg6UtHDNyMNAh0GjaytsJdrUxjtLy3APXqZfNZhvCeT bar
""",
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
//A key set in project metadata is propagated to every instance in the project.
//This resource configuration is prone to causing frequent diffs as Google adds SSH Keys when the SSH Button is pressed in the console.
//It is better to use OS Login instead.
var mySshKey = new Gcp.Compute.ProjectMetadata("my_ssh_key", new()
{
Metadata =
{
{ "ssh-keys", @" dev:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILg6UtHDNyMNAh0GjaytsJdrUxjtLy3APXqZfNZhvCeT dev
foo:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILg6UtHDNyMNAh0GjaytsJdrUxjtLy3APXqZfNZhvCeT bar
" },
},
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// A key set in project metadata is propagated to every instance in the project.
// This resource configuration is prone to causing frequent diffs as Google adds SSH Keys when the SSH Button is pressed in the console.
// It is better to use OS Login instead.
_, err := compute.NewProjectMetadata(ctx, "my_ssh_key", &compute.ProjectMetadataArgs{
Metadata: pulumi.StringMap{
"ssh-keys": pulumi.String(" dev:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILg6UtHDNyMNAh0GjaytsJdrUxjtLy3APXqZfNZhvCeT dev\n foo:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILg6UtHDNyMNAh0GjaytsJdrUxjtLy3APXqZfNZhvCeT bar\n"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.ProjectMetadata;
import com.pulumi.gcp.compute.ProjectMetadataArgs;
import java.util.List;
import java.util.ArrayList;
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) {
//A key set in project metadata is propagated to every instance in the project.
//This resource configuration is prone to causing frequent diffs as Google adds SSH Keys when the SSH Button is pressed in the console.
//It is better to use OS Login instead.
var mySshKey = new ProjectMetadata("mySshKey", ProjectMetadataArgs.builder()
.metadata(Map.of("ssh-keys", """
dev:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILg6UtHDNyMNAh0GjaytsJdrUxjtLy3APXqZfNZhvCeT dev
foo:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILg6UtHDNyMNAh0GjaytsJdrUxjtLy3APXqZfNZhvCeT bar
"""))
.build());
}
}
resources:
# /*
# A key set in project metadata is propagated to every instance in the project.
# This resource configuration is prone to causing frequent diffs as Google adds SSH Keys when the SSH Button is pressed in the console.
# It is better to use OS Login instead.
# */
mySshKey:
type: gcp:compute:ProjectMetadata
name: my_ssh_key
properties:
metadata:
ssh-keys: |2
dev:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILg6UtHDNyMNAh0GjaytsJdrUxjtLy3APXqZfNZhvCeT dev
foo:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILg6UtHDNyMNAh0GjaytsJdrUxjtLy3APXqZfNZhvCeT bar

Import

Project metadata can be imported using the project ID:

  • {{project_id}} When using the pulumi import command, project metadata can be imported using one of the formats above. For example:

$ pulumi import gcp:compute/projectMetadata:ProjectMetadata default {{project_id}}

Constructors

Link copied to clipboard
constructor(metadata: Output<Map<String, String>>? = null, project: Output<String>? = null)

Properties

Link copied to clipboard
val metadata: Output<Map<String, String>>? = null

A series of key value pairs.

Link copied to clipboard
val project: Output<String>? = null

The ID of the project in which the resource belongs. If it is not provided, the provider project is used. */

Functions

Link copied to clipboard
open override fun toJava(): ProjectMetadataArgs