1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. gkehub
  5. FeatureMembership
Google Cloud Classic v6.58.0 published on Tuesday, Jun 6, 2023 by Pulumi

gcp.gkehub.FeatureMembership

Explore with Pulumi AI

gcp logo
Google Cloud Classic v6.58.0 published on Tuesday, Jun 6, 2023 by Pulumi

    Import

    FeatureMembership can be imported using any of these accepted formats

     $ pulumi import gcp:gkehub/featureMembership:FeatureMembership default projects/{{project}}/locations/{{location}}/features/{{feature}}/membershipId/{{membership}}
    
     $ pulumi import gcp:gkehub/featureMembership:FeatureMembership default {{project}}/{{location}}/{{feature}}/{{membership}}
    
     $ pulumi import gcp:gkehub/featureMembership:FeatureMembership default {{location}}/{{feature}}/{{membership}}
    

    Example Usage

    Config Management

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var cluster = new Gcp.Container.Cluster("cluster", new()
        {
            Location = "us-central1-a",
            InitialNodeCount = 1,
        }, new CustomResourceOptions
        {
            Provider = google_beta,
        });
    
        var membership = new Gcp.GkeHub.Membership("membership", new()
        {
            MembershipId = "my-membership",
            Endpoint = new Gcp.GkeHub.Inputs.MembershipEndpointArgs
            {
                GkeCluster = new Gcp.GkeHub.Inputs.MembershipEndpointGkeClusterArgs
                {
                    ResourceLink = cluster.Id.Apply(id => $"//container.googleapis.com/{id}"),
                },
            },
        }, new CustomResourceOptions
        {
            Provider = google_beta,
        });
    
        var feature = new Gcp.GkeHub.Feature("feature", new()
        {
            Location = "global",
            Labels = 
            {
                { "foo", "bar" },
            },
        }, new CustomResourceOptions
        {
            Provider = google_beta,
        });
    
        var featureMember = new Gcp.GkeHub.FeatureMembership("featureMember", new()
        {
            Location = "global",
            Feature = feature.Name,
            Membership = membership.MembershipId,
            Configmanagement = new Gcp.GkeHub.Inputs.FeatureMembershipConfigmanagementArgs
            {
                Version = "1.6.2",
                ConfigSync = new Gcp.GkeHub.Inputs.FeatureMembershipConfigmanagementConfigSyncArgs
                {
                    Git = new Gcp.GkeHub.Inputs.FeatureMembershipConfigmanagementConfigSyncGitArgs
                    {
                        SyncRepo = "https://github.com/hashicorp/terraform",
                    },
                },
            },
        }, new CustomResourceOptions
        {
            Provider = google_beta,
        });
    
    });
    
    package main
    
    import (
    	"fmt"
    
    	"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/container"
    	"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/gkehub"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		cluster, err := container.NewCluster(ctx, "cluster", &container.ClusterArgs{
    			Location:         pulumi.String("us-central1-a"),
    			InitialNodeCount: pulumi.Int(1),
    		}, pulumi.Provider(google_beta))
    		if err != nil {
    			return err
    		}
    		membership, err := gkehub.NewMembership(ctx, "membership", &gkehub.MembershipArgs{
    			MembershipId: pulumi.String("my-membership"),
    			Endpoint: &gkehub.MembershipEndpointArgs{
    				GkeCluster: &gkehub.MembershipEndpointGkeClusterArgs{
    					ResourceLink: cluster.ID().ApplyT(func(id string) (string, error) {
    						return fmt.Sprintf("//container.googleapis.com/%v", id), nil
    					}).(pulumi.StringOutput),
    				},
    			},
    		}, pulumi.Provider(google_beta))
    		if err != nil {
    			return err
    		}
    		feature, err := gkehub.NewFeature(ctx, "feature", &gkehub.FeatureArgs{
    			Location: pulumi.String("global"),
    			Labels: pulumi.StringMap{
    				"foo": pulumi.String("bar"),
    			},
    		}, pulumi.Provider(google_beta))
    		if err != nil {
    			return err
    		}
    		_, err = gkehub.NewFeatureMembership(ctx, "featureMember", &gkehub.FeatureMembershipArgs{
    			Location:   pulumi.String("global"),
    			Feature:    feature.Name,
    			Membership: membership.MembershipId,
    			Configmanagement: &gkehub.FeatureMembershipConfigmanagementArgs{
    				Version: pulumi.String("1.6.2"),
    				ConfigSync: &gkehub.FeatureMembershipConfigmanagementConfigSyncArgs{
    					Git: &gkehub.FeatureMembershipConfigmanagementConfigSyncGitArgs{
    						SyncRepo: pulumi.String("https://github.com/hashicorp/terraform"),
    					},
    				},
    			},
    		}, pulumi.Provider(google_beta))
    		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.container.Cluster;
    import com.pulumi.gcp.container.ClusterArgs;
    import com.pulumi.gcp.gkehub.Membership;
    import com.pulumi.gcp.gkehub.MembershipArgs;
    import com.pulumi.gcp.gkehub.inputs.MembershipEndpointArgs;
    import com.pulumi.gcp.gkehub.inputs.MembershipEndpointGkeClusterArgs;
    import com.pulumi.gcp.gkehub.Feature;
    import com.pulumi.gcp.gkehub.FeatureArgs;
    import com.pulumi.gcp.gkehub.FeatureMembership;
    import com.pulumi.gcp.gkehub.FeatureMembershipArgs;
    import com.pulumi.gcp.gkehub.inputs.FeatureMembershipConfigmanagementArgs;
    import com.pulumi.gcp.gkehub.inputs.FeatureMembershipConfigmanagementConfigSyncArgs;
    import com.pulumi.gcp.gkehub.inputs.FeatureMembershipConfigmanagementConfigSyncGitArgs;
    import com.pulumi.resources.CustomResourceOptions;
    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 cluster = new Cluster("cluster", ClusterArgs.builder()        
                .location("us-central1-a")
                .initialNodeCount(1)
                .build(), CustomResourceOptions.builder()
                    .provider(google_beta)
                    .build());
    
            var membership = new Membership("membership", MembershipArgs.builder()        
                .membershipId("my-membership")
                .endpoint(MembershipEndpointArgs.builder()
                    .gkeCluster(MembershipEndpointGkeClusterArgs.builder()
                        .resourceLink(cluster.id().applyValue(id -> String.format("//container.googleapis.com/%s", id)))
                        .build())
                    .build())
                .build(), CustomResourceOptions.builder()
                    .provider(google_beta)
                    .build());
    
            var feature = new Feature("feature", FeatureArgs.builder()        
                .location("global")
                .labels(Map.of("foo", "bar"))
                .build(), CustomResourceOptions.builder()
                    .provider(google_beta)
                    .build());
    
            var featureMember = new FeatureMembership("featureMember", FeatureMembershipArgs.builder()        
                .location("global")
                .feature(feature.name())
                .membership(membership.membershipId())
                .configmanagement(FeatureMembershipConfigmanagementArgs.builder()
                    .version("1.6.2")
                    .configSync(FeatureMembershipConfigmanagementConfigSyncArgs.builder()
                        .git(FeatureMembershipConfigmanagementConfigSyncGitArgs.builder()
                            .syncRepo("https://github.com/hashicorp/terraform")
                            .build())
                        .build())
                    .build())
                .build(), CustomResourceOptions.builder()
                    .provider(google_beta)
                    .build());
    
        }
    }
    
    import pulumi
    import pulumi_gcp as gcp
    
    cluster = gcp.container.Cluster("cluster",
        location="us-central1-a",
        initial_node_count=1,
        opts=pulumi.ResourceOptions(provider=google_beta))
    membership = gcp.gkehub.Membership("membership",
        membership_id="my-membership",
        endpoint=gcp.gkehub.MembershipEndpointArgs(
            gke_cluster=gcp.gkehub.MembershipEndpointGkeClusterArgs(
                resource_link=cluster.id.apply(lambda id: f"//container.googleapis.com/{id}"),
            ),
        ),
        opts=pulumi.ResourceOptions(provider=google_beta))
    feature = gcp.gkehub.Feature("feature",
        location="global",
        labels={
            "foo": "bar",
        },
        opts=pulumi.ResourceOptions(provider=google_beta))
    feature_member = gcp.gkehub.FeatureMembership("featureMember",
        location="global",
        feature=feature.name,
        membership=membership.membership_id,
        configmanagement=gcp.gkehub.FeatureMembershipConfigmanagementArgs(
            version="1.6.2",
            config_sync=gcp.gkehub.FeatureMembershipConfigmanagementConfigSyncArgs(
                git=gcp.gkehub.FeatureMembershipConfigmanagementConfigSyncGitArgs(
                    sync_repo="https://github.com/hashicorp/terraform",
                ),
            ),
        ),
        opts=pulumi.ResourceOptions(provider=google_beta))
    
    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const cluster = new gcp.container.Cluster("cluster", {
        location: "us-central1-a",
        initialNodeCount: 1,
    }, {
        provider: google_beta,
    });
    const membership = new gcp.gkehub.Membership("membership", {
        membershipId: "my-membership",
        endpoint: {
            gkeCluster: {
                resourceLink: pulumi.interpolate`//container.googleapis.com/${cluster.id}`,
            },
        },
    }, {
        provider: google_beta,
    });
    const feature = new gcp.gkehub.Feature("feature", {
        location: "global",
        labels: {
            foo: "bar",
        },
    }, {
        provider: google_beta,
    });
    const featureMember = new gcp.gkehub.FeatureMembership("featureMember", {
        location: "global",
        feature: feature.name,
        membership: membership.membershipId,
        configmanagement: {
            version: "1.6.2",
            configSync: {
                git: {
                    syncRepo: "https://github.com/hashicorp/terraform",
                },
            },
        },
    }, {
        provider: google_beta,
    });
    
    resources:
      cluster:
        type: gcp:container:Cluster
        properties:
          location: us-central1-a
          initialNodeCount: 1
        options:
          provider: ${["google-beta"]}
      membership:
        type: gcp:gkehub:Membership
        properties:
          membershipId: my-membership
          endpoint:
            gkeCluster:
              resourceLink: //container.googleapis.com/${cluster.id}
        options:
          provider: ${["google-beta"]}
      feature:
        type: gcp:gkehub:Feature
        properties:
          location: global
          labels:
            foo: bar
        options:
          provider: ${["google-beta"]}
      featureMember:
        type: gcp:gkehub:FeatureMembership
        properties:
          location: global
          feature: ${feature.name}
          membership: ${membership.membershipId}
          configmanagement:
            version: 1.6.2
            configSync:
              git:
                syncRepo: https://github.com/hashicorp/terraform
        options:
          provider: ${["google-beta"]}
    

    Config Management With OCI

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var cluster = new Gcp.Container.Cluster("cluster", new()
        {
            Location = "us-central1-a",
            InitialNodeCount = 1,
        }, new CustomResourceOptions
        {
            Provider = google_beta,
        });
    
        var membership = new Gcp.GkeHub.Membership("membership", new()
        {
            MembershipId = "my-membership",
            Endpoint = new Gcp.GkeHub.Inputs.MembershipEndpointArgs
            {
                GkeCluster = new Gcp.GkeHub.Inputs.MembershipEndpointGkeClusterArgs
                {
                    ResourceLink = cluster.Id.Apply(id => $"//container.googleapis.com/{id}"),
                },
            },
        }, new CustomResourceOptions
        {
            Provider = google_beta,
        });
    
        var feature = new Gcp.GkeHub.Feature("feature", new()
        {
            Location = "global",
            Labels = 
            {
                { "foo", "bar" },
            },
        }, new CustomResourceOptions
        {
            Provider = google_beta,
        });
    
        var featureMember = new Gcp.GkeHub.FeatureMembership("featureMember", new()
        {
            Location = "global",
            Feature = feature.Name,
            Membership = membership.MembershipId,
            Configmanagement = new Gcp.GkeHub.Inputs.FeatureMembershipConfigmanagementArgs
            {
                Version = "1.12.0",
                ConfigSync = new Gcp.GkeHub.Inputs.FeatureMembershipConfigmanagementConfigSyncArgs
                {
                    Oci = new Gcp.GkeHub.Inputs.FeatureMembershipConfigmanagementConfigSyncOciArgs
                    {
                        SyncRepo = "us-central1-docker.pkg.dev/sample-project/config-repo/config-sync-gke:latest",
                        PolicyDir = "config-connector",
                        SyncWaitSecs = "20",
                        SecretType = "gcpserviceaccount",
                        GcpServiceAccountEmail = "sa@project-id.iam.gserviceaccount.com",
                    },
                },
            },
        }, new CustomResourceOptions
        {
            Provider = google_beta,
        });
    
    });
    
    package main
    
    import (
    	"fmt"
    
    	"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/container"
    	"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/gkehub"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		cluster, err := container.NewCluster(ctx, "cluster", &container.ClusterArgs{
    			Location:         pulumi.String("us-central1-a"),
    			InitialNodeCount: pulumi.Int(1),
    		}, pulumi.Provider(google_beta))
    		if err != nil {
    			return err
    		}
    		membership, err := gkehub.NewMembership(ctx, "membership", &gkehub.MembershipArgs{
    			MembershipId: pulumi.String("my-membership"),
    			Endpoint: &gkehub.MembershipEndpointArgs{
    				GkeCluster: &gkehub.MembershipEndpointGkeClusterArgs{
    					ResourceLink: cluster.ID().ApplyT(func(id string) (string, error) {
    						return fmt.Sprintf("//container.googleapis.com/%v", id), nil
    					}).(pulumi.StringOutput),
    				},
    			},
    		}, pulumi.Provider(google_beta))
    		if err != nil {
    			return err
    		}
    		feature, err := gkehub.NewFeature(ctx, "feature", &gkehub.FeatureArgs{
    			Location: pulumi.String("global"),
    			Labels: pulumi.StringMap{
    				"foo": pulumi.String("bar"),
    			},
    		}, pulumi.Provider(google_beta))
    		if err != nil {
    			return err
    		}
    		_, err = gkehub.NewFeatureMembership(ctx, "featureMember", &gkehub.FeatureMembershipArgs{
    			Location:   pulumi.String("global"),
    			Feature:    feature.Name,
    			Membership: membership.MembershipId,
    			Configmanagement: &gkehub.FeatureMembershipConfigmanagementArgs{
    				Version: pulumi.String("1.12.0"),
    				ConfigSync: &gkehub.FeatureMembershipConfigmanagementConfigSyncArgs{
    					Oci: &gkehub.FeatureMembershipConfigmanagementConfigSyncOciArgs{
    						SyncRepo:               pulumi.String("us-central1-docker.pkg.dev/sample-project/config-repo/config-sync-gke:latest"),
    						PolicyDir:              pulumi.String("config-connector"),
    						SyncWaitSecs:           pulumi.String("20"),
    						SecretType:             pulumi.String("gcpserviceaccount"),
    						GcpServiceAccountEmail: pulumi.String("sa@project-id.iam.gserviceaccount.com"),
    					},
    				},
    			},
    		}, pulumi.Provider(google_beta))
    		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.container.Cluster;
    import com.pulumi.gcp.container.ClusterArgs;
    import com.pulumi.gcp.gkehub.Membership;
    import com.pulumi.gcp.gkehub.MembershipArgs;
    import com.pulumi.gcp.gkehub.inputs.MembershipEndpointArgs;
    import com.pulumi.gcp.gkehub.inputs.MembershipEndpointGkeClusterArgs;
    import com.pulumi.gcp.gkehub.Feature;
    import com.pulumi.gcp.gkehub.FeatureArgs;
    import com.pulumi.gcp.gkehub.FeatureMembership;
    import com.pulumi.gcp.gkehub.FeatureMembershipArgs;
    import com.pulumi.gcp.gkehub.inputs.FeatureMembershipConfigmanagementArgs;
    import com.pulumi.gcp.gkehub.inputs.FeatureMembershipConfigmanagementConfigSyncArgs;
    import com.pulumi.gcp.gkehub.inputs.FeatureMembershipConfigmanagementConfigSyncOciArgs;
    import com.pulumi.resources.CustomResourceOptions;
    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 cluster = new Cluster("cluster", ClusterArgs.builder()        
                .location("us-central1-a")
                .initialNodeCount(1)
                .build(), CustomResourceOptions.builder()
                    .provider(google_beta)
                    .build());
    
            var membership = new Membership("membership", MembershipArgs.builder()        
                .membershipId("my-membership")
                .endpoint(MembershipEndpointArgs.builder()
                    .gkeCluster(MembershipEndpointGkeClusterArgs.builder()
                        .resourceLink(cluster.id().applyValue(id -> String.format("//container.googleapis.com/%s", id)))
                        .build())
                    .build())
                .build(), CustomResourceOptions.builder()
                    .provider(google_beta)
                    .build());
    
            var feature = new Feature("feature", FeatureArgs.builder()        
                .location("global")
                .labels(Map.of("foo", "bar"))
                .build(), CustomResourceOptions.builder()
                    .provider(google_beta)
                    .build());
    
            var featureMember = new FeatureMembership("featureMember", FeatureMembershipArgs.builder()        
                .location("global")
                .feature(feature.name())
                .membership(membership.membershipId())
                .configmanagement(FeatureMembershipConfigmanagementArgs.builder()
                    .version("1.12.0")
                    .configSync(FeatureMembershipConfigmanagementConfigSyncArgs.builder()
                        .oci(FeatureMembershipConfigmanagementConfigSyncOciArgs.builder()
                            .syncRepo("us-central1-docker.pkg.dev/sample-project/config-repo/config-sync-gke:latest")
                            .policyDir("config-connector")
                            .syncWaitSecs("20")
                            .secretType("gcpserviceaccount")
                            .gcpServiceAccountEmail("sa@project-id.iam.gserviceaccount.com")
                            .build())
                        .build())
                    .build())
                .build(), CustomResourceOptions.builder()
                    .provider(google_beta)
                    .build());
    
        }
    }
    
    import pulumi
    import pulumi_gcp as gcp
    
    cluster = gcp.container.Cluster("cluster",
        location="us-central1-a",
        initial_node_count=1,
        opts=pulumi.ResourceOptions(provider=google_beta))
    membership = gcp.gkehub.Membership("membership",
        membership_id="my-membership",
        endpoint=gcp.gkehub.MembershipEndpointArgs(
            gke_cluster=gcp.gkehub.MembershipEndpointGkeClusterArgs(
                resource_link=cluster.id.apply(lambda id: f"//container.googleapis.com/{id}"),
            ),
        ),
        opts=pulumi.ResourceOptions(provider=google_beta))
    feature = gcp.gkehub.Feature("feature",
        location="global",
        labels={
            "foo": "bar",
        },
        opts=pulumi.ResourceOptions(provider=google_beta))
    feature_member = gcp.gkehub.FeatureMembership("featureMember",
        location="global",
        feature=feature.name,
        membership=membership.membership_id,
        configmanagement=gcp.gkehub.FeatureMembershipConfigmanagementArgs(
            version="1.12.0",
            config_sync=gcp.gkehub.FeatureMembershipConfigmanagementConfigSyncArgs(
                oci=gcp.gkehub.FeatureMembershipConfigmanagementConfigSyncOciArgs(
                    sync_repo="us-central1-docker.pkg.dev/sample-project/config-repo/config-sync-gke:latest",
                    policy_dir="config-connector",
                    sync_wait_secs="20",
                    secret_type="gcpserviceaccount",
                    gcp_service_account_email="sa@project-id.iam.gserviceaccount.com",
                ),
            ),
        ),
        opts=pulumi.ResourceOptions(provider=google_beta))
    
    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const cluster = new gcp.container.Cluster("cluster", {
        location: "us-central1-a",
        initialNodeCount: 1,
    }, {
        provider: google_beta,
    });
    const membership = new gcp.gkehub.Membership("membership", {
        membershipId: "my-membership",
        endpoint: {
            gkeCluster: {
                resourceLink: pulumi.interpolate`//container.googleapis.com/${cluster.id}`,
            },
        },
    }, {
        provider: google_beta,
    });
    const feature = new gcp.gkehub.Feature("feature", {
        location: "global",
        labels: {
            foo: "bar",
        },
    }, {
        provider: google_beta,
    });
    const featureMember = new gcp.gkehub.FeatureMembership("featureMember", {
        location: "global",
        feature: feature.name,
        membership: membership.membershipId,
        configmanagement: {
            version: "1.12.0",
            configSync: {
                oci: {
                    syncRepo: "us-central1-docker.pkg.dev/sample-project/config-repo/config-sync-gke:latest",
                    policyDir: "config-connector",
                    syncWaitSecs: "20",
                    secretType: "gcpserviceaccount",
                    gcpServiceAccountEmail: "sa@project-id.iam.gserviceaccount.com",
                },
            },
        },
    }, {
        provider: google_beta,
    });
    
    resources:
      cluster:
        type: gcp:container:Cluster
        properties:
          location: us-central1-a
          initialNodeCount: 1
        options:
          provider: ${["google-beta"]}
      membership:
        type: gcp:gkehub:Membership
        properties:
          membershipId: my-membership
          endpoint:
            gkeCluster:
              resourceLink: //container.googleapis.com/${cluster.id}
        options:
          provider: ${["google-beta"]}
      feature:
        type: gcp:gkehub:Feature
        properties:
          location: global
          labels:
            foo: bar
        options:
          provider: ${["google-beta"]}
      featureMember:
        type: gcp:gkehub:FeatureMembership
        properties:
          location: global
          feature: ${feature.name}
          membership: ${membership.membershipId}
          configmanagement:
            version: 1.12.0
            configSync:
              oci:
                syncRepo: us-central1-docker.pkg.dev/sample-project/config-repo/config-sync-gke:latest
                policyDir: config-connector
                syncWaitSecs: '20'
                secretType: gcpserviceaccount
                gcpServiceAccountEmail: sa@project-id.iam.gserviceaccount.com
        options:
          provider: ${["google-beta"]}
    

    Multi Cluster Service Discovery

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var feature = new Gcp.GkeHub.Feature("feature", new()
        {
            Location = "global",
            Labels = 
            {
                { "foo", "bar" },
            },
        }, new CustomResourceOptions
        {
            Provider = google_beta,
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/gkehub"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := gkehub.NewFeature(ctx, "feature", &gkehub.FeatureArgs{
    			Location: pulumi.String("global"),
    			Labels: pulumi.StringMap{
    				"foo": pulumi.String("bar"),
    			},
    		}, pulumi.Provider(google_beta))
    		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.gkehub.Feature;
    import com.pulumi.gcp.gkehub.FeatureArgs;
    import com.pulumi.resources.CustomResourceOptions;
    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 feature = new Feature("feature", FeatureArgs.builder()        
                .location("global")
                .labels(Map.of("foo", "bar"))
                .build(), CustomResourceOptions.builder()
                    .provider(google_beta)
                    .build());
    
        }
    }
    
    import pulumi
    import pulumi_gcp as gcp
    
    feature = gcp.gkehub.Feature("feature",
        location="global",
        labels={
            "foo": "bar",
        },
        opts=pulumi.ResourceOptions(provider=google_beta))
    
    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const feature = new gcp.gkehub.Feature("feature", {
        location: "global",
        labels: {
            foo: "bar",
        },
    }, {
        provider: google_beta,
    });
    
    resources:
      feature:
        type: gcp:gkehub:Feature
        properties:
          location: global
          labels:
            foo: bar
        options:
          provider: ${["google-beta"]}
    

    Service Mesh

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var cluster = new Gcp.Container.Cluster("cluster", new()
        {
            Location = "us-central1-a",
            InitialNodeCount = 1,
        }, new CustomResourceOptions
        {
            Provider = google_beta,
        });
    
        var membership = new Gcp.GkeHub.Membership("membership", new()
        {
            MembershipId = "my-membership",
            Endpoint = new Gcp.GkeHub.Inputs.MembershipEndpointArgs
            {
                GkeCluster = new Gcp.GkeHub.Inputs.MembershipEndpointGkeClusterArgs
                {
                    ResourceLink = cluster.Id.Apply(id => $"//container.googleapis.com/{id}"),
                },
            },
        }, new CustomResourceOptions
        {
            Provider = google_beta,
        });
    
        var feature = new Gcp.GkeHub.Feature("feature", new()
        {
            Location = "global",
        }, new CustomResourceOptions
        {
            Provider = google_beta,
        });
    
        var featureMember = new Gcp.GkeHub.FeatureMembership("featureMember", new()
        {
            Location = "global",
            Feature = feature.Name,
            Membership = membership.MembershipId,
            Mesh = new Gcp.GkeHub.Inputs.FeatureMembershipMeshArgs
            {
                Management = "MANAGEMENT_AUTOMATIC",
            },
        }, new CustomResourceOptions
        {
            Provider = google_beta,
        });
    
    });
    
    package main
    
    import (
    	"fmt"
    
    	"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/container"
    	"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/gkehub"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		cluster, err := container.NewCluster(ctx, "cluster", &container.ClusterArgs{
    			Location:         pulumi.String("us-central1-a"),
    			InitialNodeCount: pulumi.Int(1),
    		}, pulumi.Provider(google_beta))
    		if err != nil {
    			return err
    		}
    		membership, err := gkehub.NewMembership(ctx, "membership", &gkehub.MembershipArgs{
    			MembershipId: pulumi.String("my-membership"),
    			Endpoint: &gkehub.MembershipEndpointArgs{
    				GkeCluster: &gkehub.MembershipEndpointGkeClusterArgs{
    					ResourceLink: cluster.ID().ApplyT(func(id string) (string, error) {
    						return fmt.Sprintf("//container.googleapis.com/%v", id), nil
    					}).(pulumi.StringOutput),
    				},
    			},
    		}, pulumi.Provider(google_beta))
    		if err != nil {
    			return err
    		}
    		feature, err := gkehub.NewFeature(ctx, "feature", &gkehub.FeatureArgs{
    			Location: pulumi.String("global"),
    		}, pulumi.Provider(google_beta))
    		if err != nil {
    			return err
    		}
    		_, err = gkehub.NewFeatureMembership(ctx, "featureMember", &gkehub.FeatureMembershipArgs{
    			Location:   pulumi.String("global"),
    			Feature:    feature.Name,
    			Membership: membership.MembershipId,
    			Mesh: &gkehub.FeatureMembershipMeshArgs{
    				Management: pulumi.String("MANAGEMENT_AUTOMATIC"),
    			},
    		}, pulumi.Provider(google_beta))
    		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.container.Cluster;
    import com.pulumi.gcp.container.ClusterArgs;
    import com.pulumi.gcp.gkehub.Membership;
    import com.pulumi.gcp.gkehub.MembershipArgs;
    import com.pulumi.gcp.gkehub.inputs.MembershipEndpointArgs;
    import com.pulumi.gcp.gkehub.inputs.MembershipEndpointGkeClusterArgs;
    import com.pulumi.gcp.gkehub.Feature;
    import com.pulumi.gcp.gkehub.FeatureArgs;
    import com.pulumi.gcp.gkehub.FeatureMembership;
    import com.pulumi.gcp.gkehub.FeatureMembershipArgs;
    import com.pulumi.gcp.gkehub.inputs.FeatureMembershipMeshArgs;
    import com.pulumi.resources.CustomResourceOptions;
    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 cluster = new Cluster("cluster", ClusterArgs.builder()        
                .location("us-central1-a")
                .initialNodeCount(1)
                .build(), CustomResourceOptions.builder()
                    .provider(google_beta)
                    .build());
    
            var membership = new Membership("membership", MembershipArgs.builder()        
                .membershipId("my-membership")
                .endpoint(MembershipEndpointArgs.builder()
                    .gkeCluster(MembershipEndpointGkeClusterArgs.builder()
                        .resourceLink(cluster.id().applyValue(id -> String.format("//container.googleapis.com/%s", id)))
                        .build())
                    .build())
                .build(), CustomResourceOptions.builder()
                    .provider(google_beta)
                    .build());
    
            var feature = new Feature("feature", FeatureArgs.builder()        
                .location("global")
                .build(), CustomResourceOptions.builder()
                    .provider(google_beta)
                    .build());
    
            var featureMember = new FeatureMembership("featureMember", FeatureMembershipArgs.builder()        
                .location("global")
                .feature(feature.name())
                .membership(membership.membershipId())
                .mesh(FeatureMembershipMeshArgs.builder()
                    .management("MANAGEMENT_AUTOMATIC")
                    .build())
                .build(), CustomResourceOptions.builder()
                    .provider(google_beta)
                    .build());
    
        }
    }
    
    import pulumi
    import pulumi_gcp as gcp
    
    cluster = gcp.container.Cluster("cluster",
        location="us-central1-a",
        initial_node_count=1,
        opts=pulumi.ResourceOptions(provider=google_beta))
    membership = gcp.gkehub.Membership("membership",
        membership_id="my-membership",
        endpoint=gcp.gkehub.MembershipEndpointArgs(
            gke_cluster=gcp.gkehub.MembershipEndpointGkeClusterArgs(
                resource_link=cluster.id.apply(lambda id: f"//container.googleapis.com/{id}"),
            ),
        ),
        opts=pulumi.ResourceOptions(provider=google_beta))
    feature = gcp.gkehub.Feature("feature", location="global",
    opts=pulumi.ResourceOptions(provider=google_beta))
    feature_member = gcp.gkehub.FeatureMembership("featureMember",
        location="global",
        feature=feature.name,
        membership=membership.membership_id,
        mesh=gcp.gkehub.FeatureMembershipMeshArgs(
            management="MANAGEMENT_AUTOMATIC",
        ),
        opts=pulumi.ResourceOptions(provider=google_beta))
    
    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const cluster = new gcp.container.Cluster("cluster", {
        location: "us-central1-a",
        initialNodeCount: 1,
    }, {
        provider: google_beta,
    });
    const membership = new gcp.gkehub.Membership("membership", {
        membershipId: "my-membership",
        endpoint: {
            gkeCluster: {
                resourceLink: pulumi.interpolate`//container.googleapis.com/${cluster.id}`,
            },
        },
    }, {
        provider: google_beta,
    });
    const feature = new gcp.gkehub.Feature("feature", {location: "global"}, {
        provider: google_beta,
    });
    const featureMember = new gcp.gkehub.FeatureMembership("featureMember", {
        location: "global",
        feature: feature.name,
        membership: membership.membershipId,
        mesh: {
            management: "MANAGEMENT_AUTOMATIC",
        },
    }, {
        provider: google_beta,
    });
    
    resources:
      cluster:
        type: gcp:container:Cluster
        properties:
          location: us-central1-a
          initialNodeCount: 1
        options:
          provider: ${["google-beta"]}
      membership:
        type: gcp:gkehub:Membership
        properties:
          membershipId: my-membership
          endpoint:
            gkeCluster:
              resourceLink: //container.googleapis.com/${cluster.id}
        options:
          provider: ${["google-beta"]}
      feature:
        type: gcp:gkehub:Feature
        properties:
          location: global
        options:
          provider: ${["google-beta"]}
      featureMember:
        type: gcp:gkehub:FeatureMembership
        properties:
          location: global
          feature: ${feature.name}
          membership: ${membership.membershipId}
          mesh:
            management: MANAGEMENT_AUTOMATIC
        options:
          provider: ${["google-beta"]}
    

    Create FeatureMembership Resource

    new FeatureMembership(name: string, args: FeatureMembershipArgs, opts?: CustomResourceOptions);
    @overload
    def FeatureMembership(resource_name: str,
                          opts: Optional[ResourceOptions] = None,
                          configmanagement: Optional[FeatureMembershipConfigmanagementArgs] = None,
                          feature: Optional[str] = None,
                          location: Optional[str] = None,
                          membership: Optional[str] = None,
                          mesh: Optional[FeatureMembershipMeshArgs] = None,
                          project: Optional[str] = None)
    @overload
    def FeatureMembership(resource_name: str,
                          args: FeatureMembershipArgs,
                          opts: Optional[ResourceOptions] = None)
    func NewFeatureMembership(ctx *Context, name string, args FeatureMembershipArgs, opts ...ResourceOption) (*FeatureMembership, error)
    public FeatureMembership(string name, FeatureMembershipArgs args, CustomResourceOptions? opts = null)
    public FeatureMembership(String name, FeatureMembershipArgs args)
    public FeatureMembership(String name, FeatureMembershipArgs args, CustomResourceOptions options)
    
    type: gcp:gkehub:FeatureMembership
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    name string
    The unique name of the resource.
    args FeatureMembershipArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args FeatureMembershipArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args FeatureMembershipArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args FeatureMembershipArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args FeatureMembershipArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    FeatureMembership Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    The FeatureMembership resource accepts the following input properties:

    Feature string

    The name of the feature

    Location string

    The location of the feature

    Membership string

    The name of the membership

    Configmanagement FeatureMembershipConfigmanagementArgs

    Config Management-specific spec. Structure is documented below.

    Mesh FeatureMembershipMeshArgs

    Service mesh specific spec. Structure is documented below.

    Project string

    The project of the feature

    Feature string

    The name of the feature

    Location string

    The location of the feature

    Membership string

    The name of the membership

    Configmanagement FeatureMembershipConfigmanagementArgs

    Config Management-specific spec. Structure is documented below.

    Mesh FeatureMembershipMeshArgs

    Service mesh specific spec. Structure is documented below.

    Project string

    The project of the feature

    feature String

    The name of the feature

    location String

    The location of the feature

    membership String

    The name of the membership

    configmanagement FeatureMembershipConfigmanagementArgs

    Config Management-specific spec. Structure is documented below.

    mesh FeatureMembershipMeshArgs

    Service mesh specific spec. Structure is documented below.

    project String

    The project of the feature

    feature string

    The name of the feature

    location string

    The location of the feature

    membership string

    The name of the membership

    configmanagement FeatureMembershipConfigmanagementArgs

    Config Management-specific spec. Structure is documented below.

    mesh FeatureMembershipMeshArgs

    Service mesh specific spec. Structure is documented below.

    project string

    The project of the feature

    feature str

    The name of the feature

    location str

    The location of the feature

    membership str

    The name of the membership

    configmanagement FeatureMembershipConfigmanagementArgs

    Config Management-specific spec. Structure is documented below.

    mesh FeatureMembershipMeshArgs

    Service mesh specific spec. Structure is documented below.

    project str

    The project of the feature

    feature String

    The name of the feature

    location String

    The location of the feature

    membership String

    The name of the membership

    configmanagement Property Map

    Config Management-specific spec. Structure is documented below.

    mesh Property Map

    Service mesh specific spec. Structure is documented below.

    project String

    The project of the feature

    Outputs

    All input properties are implicitly available as output properties. Additionally, the FeatureMembership resource produces the following output properties:

    Id string

    The provider-assigned unique ID for this managed resource.

    Id string

    The provider-assigned unique ID for this managed resource.

    id String

    The provider-assigned unique ID for this managed resource.

    id string

    The provider-assigned unique ID for this managed resource.

    id str

    The provider-assigned unique ID for this managed resource.

    id String

    The provider-assigned unique ID for this managed resource.

    Look up Existing FeatureMembership Resource

    Get an existing FeatureMembership resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: FeatureMembershipState, opts?: CustomResourceOptions): FeatureMembership
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            configmanagement: Optional[FeatureMembershipConfigmanagementArgs] = None,
            feature: Optional[str] = None,
            location: Optional[str] = None,
            membership: Optional[str] = None,
            mesh: Optional[FeatureMembershipMeshArgs] = None,
            project: Optional[str] = None) -> FeatureMembership
    func GetFeatureMembership(ctx *Context, name string, id IDInput, state *FeatureMembershipState, opts ...ResourceOption) (*FeatureMembership, error)
    public static FeatureMembership Get(string name, Input<string> id, FeatureMembershipState? state, CustomResourceOptions? opts = null)
    public static FeatureMembership get(String name, Output<String> id, FeatureMembershipState state, CustomResourceOptions options)
    Resource lookup is not supported in YAML
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    Configmanagement FeatureMembershipConfigmanagementArgs

    Config Management-specific spec. Structure is documented below.

    Feature string

    The name of the feature

    Location string

    The location of the feature

    Membership string

    The name of the membership

    Mesh FeatureMembershipMeshArgs

    Service mesh specific spec. Structure is documented below.

    Project string

    The project of the feature

    Configmanagement FeatureMembershipConfigmanagementArgs

    Config Management-specific spec. Structure is documented below.

    Feature string

    The name of the feature

    Location string

    The location of the feature

    Membership string

    The name of the membership

    Mesh FeatureMembershipMeshArgs

    Service mesh specific spec. Structure is documented below.

    Project string

    The project of the feature

    configmanagement FeatureMembershipConfigmanagementArgs

    Config Management-specific spec. Structure is documented below.

    feature String

    The name of the feature

    location String

    The location of the feature

    membership String

    The name of the membership

    mesh FeatureMembershipMeshArgs

    Service mesh specific spec. Structure is documented below.

    project String

    The project of the feature

    configmanagement FeatureMembershipConfigmanagementArgs

    Config Management-specific spec. Structure is documented below.

    feature string

    The name of the feature

    location string

    The location of the feature

    membership string

    The name of the membership

    mesh FeatureMembershipMeshArgs

    Service mesh specific spec. Structure is documented below.

    project string

    The project of the feature

    configmanagement FeatureMembershipConfigmanagementArgs

    Config Management-specific spec. Structure is documented below.

    feature str

    The name of the feature

    location str

    The location of the feature

    membership str

    The name of the membership

    mesh FeatureMembershipMeshArgs

    Service mesh specific spec. Structure is documented below.

    project str

    The project of the feature

    configmanagement Property Map

    Config Management-specific spec. Structure is documented below.

    feature String

    The name of the feature

    location String

    The location of the feature

    membership String

    The name of the membership

    mesh Property Map

    Service mesh specific spec. Structure is documented below.

    project String

    The project of the feature

    Supporting Types

    FeatureMembershipConfigmanagement

    Binauthz FeatureMembershipConfigmanagementBinauthz

    Binauthz configuration for the cluster. Structure is documented below.

    ConfigSync FeatureMembershipConfigmanagementConfigSync

    Config Sync configuration for the cluster. Structure is documented below.

    HierarchyController FeatureMembershipConfigmanagementHierarchyController

    Hierarchy Controller configuration for the cluster. Structure is documented below.

    PolicyController FeatureMembershipConfigmanagementPolicyController

    Policy Controller configuration for the cluster. Structure is documented below.

    Version string

    Version of ACM installed.

    Binauthz FeatureMembershipConfigmanagementBinauthz

    Binauthz configuration for the cluster. Structure is documented below.

    ConfigSync FeatureMembershipConfigmanagementConfigSync

    Config Sync configuration for the cluster. Structure is documented below.

    HierarchyController FeatureMembershipConfigmanagementHierarchyController

    Hierarchy Controller configuration for the cluster. Structure is documented below.

    PolicyController FeatureMembershipConfigmanagementPolicyController

    Policy Controller configuration for the cluster. Structure is documented below.

    Version string

    Version of ACM installed.

    binauthz FeatureMembershipConfigmanagementBinauthz

    Binauthz configuration for the cluster. Structure is documented below.

    configSync FeatureMembershipConfigmanagementConfigSync

    Config Sync configuration for the cluster. Structure is documented below.

    hierarchyController FeatureMembershipConfigmanagementHierarchyController

    Hierarchy Controller configuration for the cluster. Structure is documented below.

    policyController FeatureMembershipConfigmanagementPolicyController

    Policy Controller configuration for the cluster. Structure is documented below.

    version String

    Version of ACM installed.

    binauthz FeatureMembershipConfigmanagementBinauthz

    Binauthz configuration for the cluster. Structure is documented below.

    configSync FeatureMembershipConfigmanagementConfigSync

    Config Sync configuration for the cluster. Structure is documented below.

    hierarchyController FeatureMembershipConfigmanagementHierarchyController

    Hierarchy Controller configuration for the cluster. Structure is documented below.

    policyController FeatureMembershipConfigmanagementPolicyController

    Policy Controller configuration for the cluster. Structure is documented below.

    version string

    Version of ACM installed.

    binauthz FeatureMembershipConfigmanagementBinauthz

    Binauthz configuration for the cluster. Structure is documented below.

    config_sync FeatureMembershipConfigmanagementConfigSync

    Config Sync configuration for the cluster. Structure is documented below.

    hierarchy_controller FeatureMembershipConfigmanagementHierarchyController

    Hierarchy Controller configuration for the cluster. Structure is documented below.

    policy_controller FeatureMembershipConfigmanagementPolicyController

    Policy Controller configuration for the cluster. Structure is documented below.

    version str

    Version of ACM installed.

    binauthz Property Map

    Binauthz configuration for the cluster. Structure is documented below.

    configSync Property Map

    Config Sync configuration for the cluster. Structure is documented below.

    hierarchyController Property Map

    Hierarchy Controller configuration for the cluster. Structure is documented below.

    policyController Property Map

    Policy Controller configuration for the cluster. Structure is documented below.

    version String

    Version of ACM installed.

    FeatureMembershipConfigmanagementBinauthz

    Enabled bool

    Whether binauthz is enabled in this cluster.

    Enabled bool

    Whether binauthz is enabled in this cluster.

    enabled Boolean

    Whether binauthz is enabled in this cluster.

    enabled boolean

    Whether binauthz is enabled in this cluster.

    enabled bool

    Whether binauthz is enabled in this cluster.

    enabled Boolean

    Whether binauthz is enabled in this cluster.

    FeatureMembershipConfigmanagementConfigSync

    Git FeatureMembershipConfigmanagementConfigSyncGit

    (Optional) Structure is documented below.

    Oci FeatureMembershipConfigmanagementConfigSyncOci

    (Optional) Supported from ACM versions 1.12.0 onwards. Structure is documented below.

    Use either git or oci config option.

    PreventDrift bool

    Supported from ACM versions 1.10.0 onwards. Set to true to enable the Config Sync admission webhook to prevent drifts. If set to "false", disables the Config Sync admission webhook and does not prevent drifts.

    SourceFormat string

    Specifies whether the Config Sync Repo is in "hierarchical" or "unstructured" mode.

    Git FeatureMembershipConfigmanagementConfigSyncGit

    (Optional) Structure is documented below.

    Oci FeatureMembershipConfigmanagementConfigSyncOci

    (Optional) Supported from ACM versions 1.12.0 onwards. Structure is documented below.

    Use either git or oci config option.

    PreventDrift bool

    Supported from ACM versions 1.10.0 onwards. Set to true to enable the Config Sync admission webhook to prevent drifts. If set to "false", disables the Config Sync admission webhook and does not prevent drifts.

    SourceFormat string

    Specifies whether the Config Sync Repo is in "hierarchical" or "unstructured" mode.

    git FeatureMembershipConfigmanagementConfigSyncGit

    (Optional) Structure is documented below.

    oci FeatureMembershipConfigmanagementConfigSyncOci

    (Optional) Supported from ACM versions 1.12.0 onwards. Structure is documented below.

    Use either git or oci config option.

    preventDrift Boolean

    Supported from ACM versions 1.10.0 onwards. Set to true to enable the Config Sync admission webhook to prevent drifts. If set to "false", disables the Config Sync admission webhook and does not prevent drifts.

    sourceFormat String

    Specifies whether the Config Sync Repo is in "hierarchical" or "unstructured" mode.

    git FeatureMembershipConfigmanagementConfigSyncGit

    (Optional) Structure is documented below.

    oci FeatureMembershipConfigmanagementConfigSyncOci

    (Optional) Supported from ACM versions 1.12.0 onwards. Structure is documented below.

    Use either git or oci config option.

    preventDrift boolean

    Supported from ACM versions 1.10.0 onwards. Set to true to enable the Config Sync admission webhook to prevent drifts. If set to "false", disables the Config Sync admission webhook and does not prevent drifts.

    sourceFormat string

    Specifies whether the Config Sync Repo is in "hierarchical" or "unstructured" mode.

    git FeatureMembershipConfigmanagementConfigSyncGit

    (Optional) Structure is documented below.

    oci FeatureMembershipConfigmanagementConfigSyncOci

    (Optional) Supported from ACM versions 1.12.0 onwards. Structure is documented below.

    Use either git or oci config option.

    prevent_drift bool

    Supported from ACM versions 1.10.0 onwards. Set to true to enable the Config Sync admission webhook to prevent drifts. If set to "false", disables the Config Sync admission webhook and does not prevent drifts.

    source_format str

    Specifies whether the Config Sync Repo is in "hierarchical" or "unstructured" mode.

    git Property Map

    (Optional) Structure is documented below.

    oci Property Map

    (Optional) Supported from ACM versions 1.12.0 onwards. Structure is documented below.

    Use either git or oci config option.

    preventDrift Boolean

    Supported from ACM versions 1.10.0 onwards. Set to true to enable the Config Sync admission webhook to prevent drifts. If set to "false", disables the Config Sync admission webhook and does not prevent drifts.

    sourceFormat String

    Specifies whether the Config Sync Repo is in "hierarchical" or "unstructured" mode.

    FeatureMembershipConfigmanagementConfigSyncGit

    GcpServiceAccountEmail string

    The GCP Service Account Email used for auth when secretType is gcpServiceAccount.

    HttpsProxy string

    URL for the HTTPS proxy to be used when communicating with the Git repo.

    PolicyDir string

    The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.

    SecretType string

    Type of secret configured for access to the Git repo.

    SyncBranch string

    The branch of the repository to sync from. Default: master.

    SyncRepo string

    The URL of the Git repository to use as the source of truth.

    SyncRev string

    Git revision (tag or hash) to check out. Default HEAD.

    SyncWaitSecs string

    Period in seconds between consecutive syncs. Default: 15.

    GcpServiceAccountEmail string

    The GCP Service Account Email used for auth when secretType is gcpServiceAccount.

    HttpsProxy string

    URL for the HTTPS proxy to be used when communicating with the Git repo.

    PolicyDir string

    The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.

    SecretType string

    Type of secret configured for access to the Git repo.

    SyncBranch string

    The branch of the repository to sync from. Default: master.

    SyncRepo string

    The URL of the Git repository to use as the source of truth.

    SyncRev string

    Git revision (tag or hash) to check out. Default HEAD.

    SyncWaitSecs string

    Period in seconds between consecutive syncs. Default: 15.

    gcpServiceAccountEmail String

    The GCP Service Account Email used for auth when secretType is gcpServiceAccount.

    httpsProxy String

    URL for the HTTPS proxy to be used when communicating with the Git repo.

    policyDir String

    The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.

    secretType String

    Type of secret configured for access to the Git repo.

    syncBranch String

    The branch of the repository to sync from. Default: master.

    syncRepo String

    The URL of the Git repository to use as the source of truth.

    syncRev String

    Git revision (tag or hash) to check out. Default HEAD.

    syncWaitSecs String

    Period in seconds between consecutive syncs. Default: 15.

    gcpServiceAccountEmail string

    The GCP Service Account Email used for auth when secretType is gcpServiceAccount.

    httpsProxy string

    URL for the HTTPS proxy to be used when communicating with the Git repo.

    policyDir string

    The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.

    secretType string

    Type of secret configured for access to the Git repo.

    syncBranch string

    The branch of the repository to sync from. Default: master.

    syncRepo string

    The URL of the Git repository to use as the source of truth.

    syncRev string

    Git revision (tag or hash) to check out. Default HEAD.

    syncWaitSecs string

    Period in seconds between consecutive syncs. Default: 15.

    gcp_service_account_email str

    The GCP Service Account Email used for auth when secretType is gcpServiceAccount.

    https_proxy str

    URL for the HTTPS proxy to be used when communicating with the Git repo.

    policy_dir str

    The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.

    secret_type str

    Type of secret configured for access to the Git repo.

    sync_branch str

    The branch of the repository to sync from. Default: master.

    sync_repo str

    The URL of the Git repository to use as the source of truth.

    sync_rev str

    Git revision (tag or hash) to check out. Default HEAD.

    sync_wait_secs str

    Period in seconds between consecutive syncs. Default: 15.

    gcpServiceAccountEmail String

    The GCP Service Account Email used for auth when secretType is gcpServiceAccount.

    httpsProxy String

    URL for the HTTPS proxy to be used when communicating with the Git repo.

    policyDir String

    The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.

    secretType String

    Type of secret configured for access to the Git repo.

    syncBranch String

    The branch of the repository to sync from. Default: master.

    syncRepo String

    The URL of the Git repository to use as the source of truth.

    syncRev String

    Git revision (tag or hash) to check out. Default HEAD.

    syncWaitSecs String

    Period in seconds between consecutive syncs. Default: 15.

    FeatureMembershipConfigmanagementConfigSyncOci

    GcpServiceAccountEmail string

    The GCP Service Account Email used for auth when secret_type is gcpserviceaccount.

    PolicyDir string

    The absolute path of the directory that contains the local resources. Default: the root directory of the image.

    SecretType string

    Type of secret configured for access to the OCI Image. Must be one of gcenode, gcpserviceaccount or none.

    SyncRepo string

    The OCI image repository URL for the package to sync from. e.g. LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME.

    SyncWaitSecs string

    Period in seconds(int64 format) between consecutive syncs. Default: 15.

    GcpServiceAccountEmail string

    The GCP Service Account Email used for auth when secret_type is gcpserviceaccount.

    PolicyDir string

    The absolute path of the directory that contains the local resources. Default: the root directory of the image.

    SecretType string

    Type of secret configured for access to the OCI Image. Must be one of gcenode, gcpserviceaccount or none.

    SyncRepo string

    The OCI image repository URL for the package to sync from. e.g. LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME.

    SyncWaitSecs string

    Period in seconds(int64 format) between consecutive syncs. Default: 15.

    gcpServiceAccountEmail String

    The GCP Service Account Email used for auth when secret_type is gcpserviceaccount.

    policyDir String

    The absolute path of the directory that contains the local resources. Default: the root directory of the image.

    secretType String

    Type of secret configured for access to the OCI Image. Must be one of gcenode, gcpserviceaccount or none.

    syncRepo String

    The OCI image repository URL for the package to sync from. e.g. LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME.

    syncWaitSecs String

    Period in seconds(int64 format) between consecutive syncs. Default: 15.

    gcpServiceAccountEmail string

    The GCP Service Account Email used for auth when secret_type is gcpserviceaccount.

    policyDir string

    The absolute path of the directory that contains the local resources. Default: the root directory of the image.

    secretType string

    Type of secret configured for access to the OCI Image. Must be one of gcenode, gcpserviceaccount or none.

    syncRepo string

    The OCI image repository URL for the package to sync from. e.g. LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME.

    syncWaitSecs string

    Period in seconds(int64 format) between consecutive syncs. Default: 15.

    gcp_service_account_email str

    The GCP Service Account Email used for auth when secret_type is gcpserviceaccount.

    policy_dir str

    The absolute path of the directory that contains the local resources. Default: the root directory of the image.

    secret_type str

    Type of secret configured for access to the OCI Image. Must be one of gcenode, gcpserviceaccount or none.

    sync_repo str

    The OCI image repository URL for the package to sync from. e.g. LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME.

    sync_wait_secs str

    Period in seconds(int64 format) between consecutive syncs. Default: 15.

    gcpServiceAccountEmail String

    The GCP Service Account Email used for auth when secret_type is gcpserviceaccount.

    policyDir String

    The absolute path of the directory that contains the local resources. Default: the root directory of the image.

    secretType String

    Type of secret configured for access to the OCI Image. Must be one of gcenode, gcpserviceaccount or none.

    syncRepo String

    The OCI image repository URL for the package to sync from. e.g. LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME.

    syncWaitSecs String

    Period in seconds(int64 format) between consecutive syncs. Default: 15.

    FeatureMembershipConfigmanagementHierarchyController

    EnableHierarchicalResourceQuota bool

    Whether hierarchical resource quota is enabled in this cluster.

    EnablePodTreeLabels bool

    Whether pod tree labels are enabled in this cluster.

    Enabled bool

    Whether Hierarchy Controller is enabled in this cluster.

    EnableHierarchicalResourceQuota bool

    Whether hierarchical resource quota is enabled in this cluster.

    EnablePodTreeLabels bool

    Whether pod tree labels are enabled in this cluster.

    Enabled bool

    Whether Hierarchy Controller is enabled in this cluster.

    enableHierarchicalResourceQuota Boolean

    Whether hierarchical resource quota is enabled in this cluster.

    enablePodTreeLabels Boolean

    Whether pod tree labels are enabled in this cluster.

    enabled Boolean

    Whether Hierarchy Controller is enabled in this cluster.

    enableHierarchicalResourceQuota boolean

    Whether hierarchical resource quota is enabled in this cluster.

    enablePodTreeLabels boolean

    Whether pod tree labels are enabled in this cluster.

    enabled boolean

    Whether Hierarchy Controller is enabled in this cluster.

    enable_hierarchical_resource_quota bool

    Whether hierarchical resource quota is enabled in this cluster.

    enable_pod_tree_labels bool

    Whether pod tree labels are enabled in this cluster.

    enabled bool

    Whether Hierarchy Controller is enabled in this cluster.

    enableHierarchicalResourceQuota Boolean

    Whether hierarchical resource quota is enabled in this cluster.

    enablePodTreeLabels Boolean

    Whether pod tree labels are enabled in this cluster.

    enabled Boolean

    Whether Hierarchy Controller is enabled in this cluster.

    FeatureMembershipConfigmanagementPolicyController

    AuditIntervalSeconds string

    Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.

    Enabled bool

    Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.

    ExemptableNamespaces List<string>

    The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.

    LogDeniesEnabled bool

    Logs all denies and dry run failures.

    Monitoring FeatureMembershipConfigmanagementPolicyControllerMonitoring

    Specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: ["cloudmonitoring", "prometheus"]. Default: ["cloudmonitoring", "prometheus"]

    MutationEnabled bool

    Enables mutation in policy controller. If true, mutation CRDs, webhook, and controller deployment will be deployed to the cluster.

    ReferentialRulesEnabled bool

    Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.

    TemplateLibraryInstalled bool

    Installs the default template library along with Policy Controller.

    AuditIntervalSeconds string

    Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.

    Enabled bool

    Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.

    ExemptableNamespaces []string

    The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.

    LogDeniesEnabled bool

    Logs all denies and dry run failures.

    Monitoring FeatureMembershipConfigmanagementPolicyControllerMonitoring

    Specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: ["cloudmonitoring", "prometheus"]. Default: ["cloudmonitoring", "prometheus"]

    MutationEnabled bool

    Enables mutation in policy controller. If true, mutation CRDs, webhook, and controller deployment will be deployed to the cluster.

    ReferentialRulesEnabled bool

    Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.

    TemplateLibraryInstalled bool

    Installs the default template library along with Policy Controller.

    auditIntervalSeconds String

    Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.

    enabled Boolean

    Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.

    exemptableNamespaces List<String>

    The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.

    logDeniesEnabled Boolean

    Logs all denies and dry run failures.

    monitoring FeatureMembershipConfigmanagementPolicyControllerMonitoring

    Specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: ["cloudmonitoring", "prometheus"]. Default: ["cloudmonitoring", "prometheus"]

    mutationEnabled Boolean

    Enables mutation in policy controller. If true, mutation CRDs, webhook, and controller deployment will be deployed to the cluster.

    referentialRulesEnabled Boolean

    Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.

    templateLibraryInstalled Boolean

    Installs the default template library along with Policy Controller.

    auditIntervalSeconds string

    Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.

    enabled boolean

    Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.

    exemptableNamespaces string[]

    The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.

    logDeniesEnabled boolean

    Logs all denies and dry run failures.

    monitoring FeatureMembershipConfigmanagementPolicyControllerMonitoring

    Specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: ["cloudmonitoring", "prometheus"]. Default: ["cloudmonitoring", "prometheus"]

    mutationEnabled boolean

    Enables mutation in policy controller. If true, mutation CRDs, webhook, and controller deployment will be deployed to the cluster.

    referentialRulesEnabled boolean

    Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.

    templateLibraryInstalled boolean

    Installs the default template library along with Policy Controller.

    audit_interval_seconds str

    Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.

    enabled bool

    Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.

    exemptable_namespaces Sequence[str]

    The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.

    log_denies_enabled bool

    Logs all denies and dry run failures.

    monitoring FeatureMembershipConfigmanagementPolicyControllerMonitoring

    Specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: ["cloudmonitoring", "prometheus"]. Default: ["cloudmonitoring", "prometheus"]

    mutation_enabled bool

    Enables mutation in policy controller. If true, mutation CRDs, webhook, and controller deployment will be deployed to the cluster.

    referential_rules_enabled bool

    Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.

    template_library_installed bool

    Installs the default template library along with Policy Controller.

    auditIntervalSeconds String

    Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.

    enabled Boolean

    Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.

    exemptableNamespaces List<String>

    The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.

    logDeniesEnabled Boolean

    Logs all denies and dry run failures.

    monitoring Property Map

    Specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: ["cloudmonitoring", "prometheus"]. Default: ["cloudmonitoring", "prometheus"]

    mutationEnabled Boolean

    Enables mutation in policy controller. If true, mutation CRDs, webhook, and controller deployment will be deployed to the cluster.

    referentialRulesEnabled Boolean

    Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.

    templateLibraryInstalled Boolean

    Installs the default template library along with Policy Controller.

    FeatureMembershipConfigmanagementPolicyControllerMonitoring

    Backends List<string>
    Backends []string
    backends List<String>
    backends string[]
    backends Sequence[str]
    backends List<String>

    FeatureMembershipMesh

    ControlPlane string

    Deprecated:

    Deprecated in favor of the management field

    Management string

    Whether to automatically manage Service Mesh. Can either be MANAGEMENT_AUTOMATIC or MANAGEMENT_MANUAL.

    ControlPlane string

    Deprecated:

    Deprecated in favor of the management field

    Management string

    Whether to automatically manage Service Mesh. Can either be MANAGEMENT_AUTOMATIC or MANAGEMENT_MANUAL.

    controlPlane String

    Deprecated:

    Deprecated in favor of the management field

    management String

    Whether to automatically manage Service Mesh. Can either be MANAGEMENT_AUTOMATIC or MANAGEMENT_MANUAL.

    controlPlane string

    Deprecated:

    Deprecated in favor of the management field

    management string

    Whether to automatically manage Service Mesh. Can either be MANAGEMENT_AUTOMATIC or MANAGEMENT_MANUAL.

    control_plane str

    Deprecated:

    Deprecated in favor of the management field

    management str

    Whether to automatically manage Service Mesh. Can either be MANAGEMENT_AUTOMATIC or MANAGEMENT_MANUAL.

    controlPlane String

    Deprecated:

    Deprecated in favor of the management field

    management String

    Whether to automatically manage Service Mesh. Can either be MANAGEMENT_AUTOMATIC or MANAGEMENT_MANUAL.

    Package Details

    Repository
    Google Cloud (GCP) Classic pulumi/pulumi-gcp
    License
    Apache-2.0
    Notes

    This Pulumi package is based on the google-beta Terraform Provider.

    gcp logo
    Google Cloud Classic v6.58.0 published on Tuesday, Jun 6, 2023 by Pulumi