{"id":19785717,"url":"https://github.com/cartyc/gdg-montreal-kcc","last_synced_at":"2026-03-19T11:42:58.391Z","repository":{"id":74692849,"uuid":"475466951","full_name":"cartyc/gdg-montreal-kcc","owner":"cartyc","description":null,"archived":false,"fork":false,"pushed_at":"2022-04-09T15:35:44.000Z","size":14,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-11T03:22:02.397Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cartyc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-29T13:56:28.000Z","updated_at":"2022-03-30T16:43:02.000Z","dependencies_parsed_at":"2023-02-25T21:45:35.058Z","dependency_job_id":null,"html_url":"https://github.com/cartyc/gdg-montreal-kcc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cartyc%2Fgdg-montreal-kcc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cartyc%2Fgdg-montreal-kcc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cartyc%2Fgdg-montreal-kcc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cartyc%2Fgdg-montreal-kcc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cartyc","download_url":"https://codeload.github.com/cartyc/gdg-montreal-kcc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241119022,"owners_count":19912826,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T06:15:34.270Z","updated_at":"2026-02-03T06:38:33.425Z","avatar_url":"https://github.com/cartyc.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# GDG Montreal \"Rise Of Config Connector\" Demo\n\nIn this demonstration repo we will deploy a GKE Standard cluster and a GKE Autopilot cluster to a GCP project using [Kubernetes Config Connector](https://cloud.google.com/config-connector/docs/overview) and [Config Controller](https://cloud.google.com/anthos-config-management/docs/concepts/config-controller-overview).\n\nThis guide assumes you have access to a Google Cloud and can create new projects with an attached billing id and you will be running the commands from Cloud Shell. If you're running things locally you'll need the following tools\n- [kpt](https://kpt.dev/installation/)\n- [kubectl](https://kubernetes.io/docs/tasks/tools/)\n- [gcloud cli](https://cloud.google.com/sdk/docs/install)\n\n## Create a Config Controller Instance.\n\nFirst off we will need to create the config controller instance in the project of your choice.\n\n### Create the Network.\n\nIf the `compute.googleapis.com` api has not been enabled previously you will be prompted to enable it. Type `y` and press enter when prompted to do so. You can also follow the [official guide](https://cloud.google.com/anthos-config-management/docs/how-to/config-controller-setup) for this step.\n```\ngcloud compute networks create default --subnet-mode=auto\n```\n\n### Enable APIs\n```\ngcloud services enable krmapihosting.googleapis.com \\\n    container.googleapis.com \\\n    cloudresourcemanager.googleapis.com\n```\n\n### Create Config Controller\n```\ngcloud anthos config controller create gdg-demo \\\n    --location=us-east1\n```\n\n### Authenticate with the Instance\n\n```\ngcloud anthos config controller get-credentials gdg-demo \\\n    --location northamerica-northeast1\n```\n\n### Grant Permissions\n\nThis will grant owner permissions for the project for east of use but in production you will most likely want to grant a limited set of permissions. \n\n```\nexport SA_EMAIL=\"$(kubectl get ConfigConnectorContext -n config-control \\\n    -o jsonpath='{.items[0].spec.googleServiceAccount}' 2\u003e /dev/null)\"\ngcloud projects add-iam-policy-binding \"${PROJECT_ID}\" \\\n    --member \"serviceAccount:${SA_EMAIL}\" \\\n    --role \"roles/owner\" \\\n    --project \"${PROJECT_ID}\"\n```\n\n## Create the GKE Standard Cluster\n\nPull the package using `kpt`\n\n```\nkpt pkg get git@github.com:cartyc/gdg-montreal-kcc.git/gke-standard@main gke-standard\n```\n\n1. Move into the newly created directory\n```\ncd gke-standard\n```\n\n2. Initialize the `kpt` inventory\n```\nkpt live init --namespace config-control\n```\n\n3. Edit the setters.yaml file with the appropriate values.\n\n\n4. Render the changes\n```\nkpt fn render\n```\n\n5. Apply the configurations to the Config Controller Instance.\n```\nkpt live apply\n```\n\n6. Move back up a directory to start the autopilot cluster install.\n\n```\ncd ..\n```\n\n## Create the GKE Autopilot Cluster\n\n1. Pull the package using `kpt`\n\n```\nkpt pkg get git@github.com:cartyc/gdg-montreal-kcc.git/gke-autopilot@main gke-autopilot\n```\n\n2. Move into the newly created directory\n```\ncd gke-autopilot\n```\n\n3. Initialize the `kpt` inventory\n```\nkpt live init --namespace config-control\n```\n\n4. Edit the setters.yaml file with the appropriate values.\n\n5. Render the changes\n\n```\nkpt fn render\n```\n\n6. Apply the configurations to the Config Controller Instance.\n```\nkpt live apply\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcartyc%2Fgdg-montreal-kcc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcartyc%2Fgdg-montreal-kcc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcartyc%2Fgdg-montreal-kcc/lists"}