Stay organized with collections
Save and categorize content based on your preferences.
In this tutorial, you create a Google Kubernetes Engine cluster and
use Config Sync to sync to configs in the
multi-repo samples repository.
Imagine that your compliance team is responsible for making sure that everyone
in your organization is following internal rules. To enforce these rules, the
compliance team has created configs, which they have added to the samples
repository. Each cluster in your organization is required to sync to the
repository and you are responsible for creating and syncing clusters.
Before you begin
Sign in to your Google Cloud account. If you're new to
Google Cloud,
create an account to evaluate how our products perform in
real-world scenarios. New customers also get $300 in free credits to
run, test, and deploy workloads.
In the Google Cloud console, on the project selector page,
select or create a Google Cloud project.
In the Principal column, find all rows that identify you or a group that
you're included in. To learn which groups you're included in, contact your
administrator.
For all rows that specify or include you, check the Role column to see whether
the list of roles includes the required roles.
In the New principals field, enter your user identifier.
This is typically the email address for a Google Account.
In the Select a role list, select a role.
To grant additional roles, click addAdd
another role and add each additional role.
Click Save.
Create a cluster
In this section, you create a cluster that you can use in this tutorial.
Although in a real-world scenario you would likely manage multiple
clusters, to simplify this tutorial you only create and manage one cluster.
To create a cluster, complete the following steps:
In the Cluster basics section, enter cs-cluster in the Name
field. Leave all other fields with their recommended defaults.
Click Create. You are taken to the Kubernetes clusters page. It
takes several minutes for your cluster to be created. When you see a green
check mark in the Status column next to your cluster, it's ready.
Configure your cluster
Now that you've created a cluster, you can configure Config Sync to sync
to the configs in the config-sync-quickstart directory
of the samples repository.
To configure Config Sync on the Google Cloud console, complete the
following steps:
In the Google Cloud console, go to the Config page under the Features section.
Select the Config Sync version that you want to use.
Under Installation options, select
Install Config Sync on individual clusters.
In the
Available clusters table, select cs-cluster and click Install Config Sync.
In the Settings tab, you should see the status for the cs-cluster
as Enabled after a few minutes.
On the Config Sync dashboard, click Deploy cluster package.
In the Select clusters for package deployment table, select cs-cluster
and then click Continue.
Leave Package hosted on Git selected and then click Continue.
In the Package name field, enter sample-repository.
In the Repository URL field, enter https://github.com/GoogleCloudPlatform/anthos-config-management-samples.
In the Path field, enter config-sync-quickstart/multirepo/root.
Leave all other fields with their default values.
Click Deploy Package.
After a few minutes, you should see Synced in the Sync status
column for cs-cluster.
Now that Config Sync is synced to a repository, it continuously reconciles
the state of your clusters with the configs in the repository.
View package details
To view all the objects that are managed by Config Sync, from the Packages tab, click cs-cluster
and view the package details page. From this page, you get an overview of all
resources synced per package and details like the resource type and which namespace
the resources is synced to.
You can navigate to the
/config-sync-quickstart/multirepo/
folder of the repository in GitHub to explore the configs
that caused these namespaces to be created. The config-sync-quickstart directory includes ClusterRole,
CustomResourceDefinition, Rolebinding, Namespace, and RepoSync configs. It
also includes configurations for the Prometheus Operator for monitoring.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[],[],null,["In this tutorial, you create a Google Kubernetes Engine cluster and\nuse Config Sync to sync to configs in the\n[multi-repo samples repository](https://github.com/GoogleCloudPlatform/anthos-config-management-samples/tree/main/config-sync-quickstart/multirepo).\n\nImagine that your compliance team is responsible for making sure that everyone\nin your organization is following internal rules. To enforce these rules, the\ncompliance team has created configs, which they have added to the samples\nrepository. Each cluster in your organization is required to sync to the\nrepository and you are responsible for creating and syncing clusters.\n\nBefore you begin\n\n- Sign in to your Google Cloud account. If you're new to Google Cloud, [create an account](https://console.cloud.google.com/freetrial) to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.\n- In the Google Cloud console, on the project selector page,\n select or create a Google Cloud project.\n\n | **Note**: If you don't plan to keep the resources that you create in this procedure, create a project instead of selecting an existing project. After you finish these steps, you can delete the project, removing all resources associated with the project.\n\n [Go to project selector](https://console.cloud.google.com/projectselector2/home/dashboard)\n-\n [Verify that billing is enabled for your Google Cloud project](/billing/docs/how-to/verify-billing-enabled#confirm_billing_is_enabled_on_a_project).\n\n- In the Google Cloud console, on the project selector page,\n select or create a Google Cloud project.\n\n | **Note**: If you don't plan to keep the resources that you create in this procedure, create a project instead of selecting an existing project. After you finish these steps, you can delete the project, removing all resources associated with the project.\n\n [Go to project selector](https://console.cloud.google.com/projectselector2/home/dashboard)\n-\n [Verify that billing is enabled for your Google Cloud project](/billing/docs/how-to/verify-billing-enabled#confirm_billing_is_enabled_on_a_project).\n\n1.\n\n Make sure that you have the following role or roles on the project:\n\n Kubernetes Engine Admin\n\n Check for the roles\n 1.\n In the Google Cloud console, go to the **IAM** page.\n\n [Go to IAM](https://console.cloud.google.com/projectselector/iam-admin/iam?supportedpurview=project)\n 2. Select the project.\n 3.\n In the **Principal** column, find all rows that identify you or a group that\n you're included in. To learn which groups you're included in, contact your\n administrator.\n\n 4. For all rows that specify or include you, check the **Role** column to see whether the list of roles includes the required roles.\n\n Grant the roles\n 1.\n In the Google Cloud console, go to the **IAM** page.\n\n [Go to IAM](https://console.cloud.google.com/projectselector/iam-admin/iam?supportedpurview=project)\n 2. Select the project.\n 3. Click person_add **Grant access**.\n 4.\n In the **New principals** field, enter your user identifier.\n\n This is typically the email address for a Google Account.\n\n 5. In the **Select a role** list, select a role.\n 6. To grant additional roles, click add **Add\n another role** and add each additional role.\n 7. Click **Save**.\n\nCreate a cluster\n\nIn this section, you create a cluster that you can use in this tutorial.\nAlthough in a real-world scenario you would likely manage multiple\nclusters, to simplify this tutorial you only create and manage one cluster.\n\nTo create a cluster, complete the following steps:\n\n1. Enable the Google Kubernetes Engine API.\n\n [Go to GKE](https://console.cloud.google.com/apis/library/container.googleapis.com)\n2. In the Google Cloud console, go to the **Kubernetes Engine** page.\n\n [Go to Google Kubernetes Engine](https://console.cloud.google.com/kubernetes/list)\n3. Click *add_box* **Create**.\n\n4. In the **Autopilot** section, select **Configure**.\n\n5. In the **Cluster basics** section, enter `cs-cluster` in the **Name**\n field. Leave all other fields with their recommended defaults.\n\n6. Click **Create** . You are taken to the **Kubernetes clusters** page. It\n takes several minutes for your cluster to be created. When you see a green\n check mark in the **Status** column next to your cluster, it's ready.\n\nConfigure your cluster\n\nNow that you've created a cluster, you can configure Config Sync to sync\nto the configs in the [`config-sync-quickstart` directory](https://github.com/GoogleCloudPlatform/anthos-config-management-samples/tree/main/config-sync-quickstart)\nof the samples repository.\n\nTo configure Config Sync on the Google Cloud console, complete the\nfollowing steps:\n\n1. In the Google Cloud console, go to the **Config** page under the **Features** section.\n\n \u003cbr /\u003e\n\n [Go to Config](https://console.cloud.google.com/kubernetes/config_management)\n2. Click *add* **Install Config Sync**.\n3. Select the Config Sync version that you want to use.\n4. Under **Installation options** , select **Install Config Sync on individual clusters**.\n5. In the **Available clusters** table, select `cs-cluster` and click **Install Config Sync** . In the **Settings** tab, you should see the status for the `cs-cluster` as **Enabled** after a few minutes.\n6. On the **Config Sync dashboard** , click **Deploy cluster package**.\n7. In the **Select clusters for package deployment** table, select `cs-cluster` and then click **Continue**.\n8. Leave **Package hosted on Git** selected and then click **Continue**.\n9. In the **Package name** field, enter `sample-repository`.\n10. In the **Repository URL** field, enter `https://github.com/GoogleCloudPlatform/anthos-config-management-samples`.\n11. In the **Path** field, enter `config-sync-quickstart/multirepo/root`.\n12. Leave all other fields with their default values.\n13. Click **Deploy Package**.\n\n After a few minutes, you should see **Synced** in the **Sync status**\n column for `cs-cluster`.\n\nNow that Config Sync is synced to a repository, it continuously reconciles\nthe state of your clusters with the configs in the repository.\n\nView package details\n\nTo view all the objects that are managed by Config Sync, from the **Packages** tab, click `cs-cluster`\nand view the package details page. From this page, you get an overview of all\nresources synced per package and details like the resource type and which namespace\nthe resources is synced to.\n\nYou can navigate to the\n[/config-sync-quickstart/multirepo/](https://github.com/GoogleCloudPlatform/anthos-config-management-samples/tree/main/config-sync-quickstart/multirepo)\nfolder of the repository in GitHub to explore the configs\nthat caused these namespaces to be created. The `config-sync-quickstart` directory includes ClusterRole,\nCustomResourceDefinition, Rolebinding, Namespace, and RepoSync configs. It\nalso includes configurations for the Prometheus Operator for monitoring.\n\nClean up\n\n1. Go to the GKE menu in Google Cloud console.\n\n [Go to GKE](https://console.cloud.google.com/kubernetes/list)\n2. Next to the `cs-cluster`, click *more_vert* **Actions** , then click *delete* **Delete**.\n\n3. When prompted to confirm, click **Delete** again.\n\nWhat's next\n\n- Learn about [validating configs](/kubernetes-engine/enterprise/config-sync/docs/how-to/validating-configs)."]]