{"id":28523157,"url":"https://github.com/upbound/configuration-caas-byoc","last_synced_at":"2025-07-06T05:32:27.481Z","repository":{"id":292110098,"uuid":"697495996","full_name":"upbound/configuration-caas-byoc","owner":"upbound","description":"This repository offers a configuration for Bring Your Own Controller (BYOC) that is built on top of the Cluster-as-a-Service configuration.","archived":false,"fork":false,"pushed_at":"2023-09-27T21:11:11.000Z","size":1738,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":18,"default_branch":"main","last_synced_at":"2025-06-09T10:07:49.900Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/upbound.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2023-09-27T21:09:28.000Z","updated_at":"2023-09-28T13:26:31.000Z","dependencies_parsed_at":"2025-05-08T07:41:02.545Z","dependency_job_id":"6a5a7ff0-6caf-4347-9f27-d4379ea60a88","html_url":"https://github.com/upbound/configuration-caas-byoc","commit_stats":null,"previous_names":["upbound/configuration-caas-byoc"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/upbound/configuration-caas-byoc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upbound%2Fconfiguration-caas-byoc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upbound%2Fconfiguration-caas-byoc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upbound%2Fconfiguration-caas-byoc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upbound%2Fconfiguration-caas-byoc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/upbound","download_url":"https://codeload.github.com/upbound/configuration-caas-byoc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upbound%2Fconfiguration-caas-byoc/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263853369,"owners_count":23520129,"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":"2025-06-09T10:07:27.182Z","updated_at":"2025-07-06T05:32:27.467Z","avatar_url":"https://github.com/upbound.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bring Your Own Controller (BYOC) base configuration\n\nThis repository offers a configuration for Bring Your Own Controller (BYOC) that is built on top of the Cluster-as-a-Service configuration.\nhttps://docs.upbound.io/concepts/mcp/bring-your-own-controller/\n\nIn Upbound, `ControllerConfigs` can only be deployed through a Composition.\n\nWe're using here an example with [provider-argocd](https://github.com/crossplane-contrib/provider-argocd) to illustrate the Bring Your Own Controller (BYOC) concept.\n\n![byoc-argocd](byoc_argocd.png)\n\n## Install CRDs in mcp control plane\n\nPlease employ this configuration repository in your MCP control plane.\n\nCreate a provider-argocd with the following claim. \nIn the mcp control plane, this will result in the provider being set up with a `ControllerConfig` where the `replica` is set to `0`.\nHowever, we have all CRDs installed - But it's important to remember that we want to run the provider within your local cluster and local network.\n\n```bash\nkubectl apply -f .up/examples/provider-argocd.yaml\n```\n\n## Install Internal Provider\n\nThe CRDs are now prepared thanks to the provider installation in the previous step. The final step is to install the provider in a local cluster that will reconcile resources in the mcp control plane and make network calls within your internal network.\n\nFirst, obtain a kubeconfig for your mcp control plane and mount it to your local provider file system. To do this, navigate to the \"My Account\" section and then the \"API Tokens\" page in the [console](https://console.upbound.io) to generate a new API token. Use this API token for authentication with your mcp control plane.\n\nOnce you have your token ready, execute the following command to generate a kubeconfig in your local file system.\n\n```bash\n# Replace CONTROL_PLANE_NAME, ORGANIZATION_NAME and TOKEN with appropriate values.\nup ctp kubeconfig get CONTROL_PLANE_NAME --account ORGANIZATION_NAME --token='TOKEN' --file /tmp/kube.yaml\n```\n\nSave this kubeconfig as a Secret within your local cluster, which operates in your internal network.\n```bash\nkubectl create secret generic mcp-kubeconfig -n NAMESPACE --from-file=kubeconfig=/tmp/kube.yaml \n```\n\nInstall the local provider that utilizes this Secret in your local cluster.\n```bash\nkubectl apply  -n NAMESPACE -f .up/examples/local/provider-argocd.yaml\n```\n\nYou are now set to begin creating your first resources in the mcp control plane.\n\n## Usage\nAs usual, you need to configure your provider with credentials before creation of any resources.\nAlways interact with mcp control plane for all operations since that’s what your local provider is watching even if it’s in your cluster and your local network.\n\n```bash\n# https://github.com/crossplane-contrib/provider-argocd#create-an-api-token\nkubectl create secret generic argocd-credentials -n default --from-literal=authToken=\"$ARGOCD_TOKEN\"\n```\n\n```bash\nkubectl apply -f .up/examples/providerconfig.yaml\n```\n\nCreate first resources:\n\n```bash\nkubectl apply -f .up/examples/cluster.yaml\nkubectl apply -f .up/examples/application.yaml\n```\n\nAnd this is how you can manage resources in your internal network from your mcp control plane.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fupbound%2Fconfiguration-caas-byoc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fupbound%2Fconfiguration-caas-byoc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fupbound%2Fconfiguration-caas-byoc/lists"}