{"id":50194544,"url":"https://github.com/openmcp-project/service-provider-kro","last_synced_at":"2026-05-25T16:31:04.125Z","repository":{"id":352909528,"uuid":"1210221484","full_name":"openmcp-project/service-provider-kro","owner":"openmcp-project","description":"Service provider kro manages the lifecycle of kro instances","archived":false,"fork":false,"pushed_at":"2026-05-22T15:06:43.000Z","size":153,"stargazers_count":2,"open_issues_count":9,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-05-22T16:55:25.213Z","etag":null,"topics":["kro","opencontrolplane","service-provider"],"latest_commit_sha":null,"homepage":"","language":"Go","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/openmcp-project.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":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-14T07:47:21.000Z","updated_at":"2026-05-20T08:04:06.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/openmcp-project/service-provider-kro","commit_stats":null,"previous_names":["openmcp-project/service-provider-kro"],"tags_count":6,"template":false,"template_full_name":"openmcp-project/service-provider-template","purl":"pkg:github/openmcp-project/service-provider-kro","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmcp-project%2Fservice-provider-kro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmcp-project%2Fservice-provider-kro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmcp-project%2Fservice-provider-kro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmcp-project%2Fservice-provider-kro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openmcp-project","download_url":"https://codeload.github.com/openmcp-project/service-provider-kro/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmcp-project%2Fservice-provider-kro/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33483742,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-25T14:31:05.219Z","status":"ssl_error","status_checked_at":"2026-05-25T14:31:02.878Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["kro","opencontrolplane","service-provider"],"created_at":"2026-05-25T16:30:56.418Z","updated_at":"2026-05-25T16:31:04.109Z","avatar_url":"https://github.com/openmcp-project.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# service-provider-kro\n\nAn [openMCP](https://github.com/openmcp-project) Service Provider that installs and manages\n[Kro](https://kro.run) on workload clusters via Flux HelmReleases.\n\n[![REUSE status](https://api.reuse.software/badge/github.com/openmcp-project/service-provider-kro)](https://api.reuse.software/info/github.com/openmcp-project/service-provider-kro)\n\n## How It Works\n\nWhen a `Kro` resource is created on the onboarding cluster, the controller:\n\n1. Replicates the configured image pull secret into the tenant namespace and wires it into the `OCIRepository`\n2. Creates a Flux `OCIRepository` pointing at the chart URL from the `ProviderConfig` and the version from the `Kro` spec\n3. Creates a Flux `HelmRelease` that deploys the chart into `kro-system` on the workload cluster via a kubeconfig reference\n\n## API Reference\n\n### Kro\n\nThe domain service API. Created on the onboarding cluster, one per tenant.\n\n```yaml\napiVersion: kro.services.openmcp.cloud/v1alpha1\nkind: Kro\nmetadata:\n  name: mcp-01 # must match your MCP cluster so it will track the right cluster\nspec:\n  # renovate: datasource=docker depName=registry.k8s.io/kro/charts/kro\n  version: 0.9.2\n```\n\n| Field | Type | Required | Description |\n|-------|------|----------|-------------|\n| `spec.version` | `string` | yes | Chart version tag |\n\n_Note_: The name of the object _**MUST**_ match the name of your MCP cluster offering. This\nensures that only one installation can exist for a given cluster.\n\n### ProviderConfig\n\nCluster-scoped operational configuration. Controls the chart location, image pull\nsecret replication, and Helm values passed to managed HelmReleases.\n\n```yaml\napiVersion: kro.services.openmcp.cloud/v1alpha1\nkind: ProviderConfig\nmetadata:\n  name: kro\nspec:\n  pollInterval: 5m\n  chartURL: oci://registry.k8s.io/kro/charts/kro\n  imagePullSecret:\n    name: my-registry-secret\n  values:\n    # See https://github.com/kubernetes-sigs/kro/blob/main/helm/values.yaml\n    # for all available configuration options including:\n    # - rbac.mode: \"unrestricted\" (default) or \"aggregation\", see https://kro.run/docs/advanced/access-control\n    # - deployment.resources: CPU/memory limits and requests\n    # - config.resourceGraphDefinitionConcurrentReconciles: parallel RGD reconcilers\n    # - config.dynamicControllerConcurrentReconciles: parallel dynamic controller reconcilers\n    # - config.logLevel: \"info\", \"debug\", etc.\n```\n\n#### `spec`\n\n| Field | Type | Required | Default | Description |\n|-------|------|----------|---------|-------------|\n| `chartURL` | `string` | no | `oci://registry.k8s.io/kro/charts/kro` | OCI URL of the Helm chart (`oci://` prefix is added automatically if missing) |\n| `pollInterval` | `duration` | no | `1m` | How often the controller polls for changes |\n| `imagePullSecret` | `LocalObjectReference` | no | — | Secret to replicate from the controller's namespace into tenant namespaces and set as `secretRef` on the `OCIRepository` |\n| `values` | `object` | no | — | Arbitrary Helm values passed directly to the HelmRelease |\n\n## What is Kro\n\nKro (Kube Resource Orchestrator) lets you create custom Kubernetes APIs by composing existing resources into\nhigher-level abstractions. Check out the [Kro documentation](https://kro.run/docs/overview) for more details.\n\n## Running E2E Tests\n\n```shell\ntask test-e2e\n```\n\n## Support, Feedback, Contributing\n\nThis project is open to feature requests/suggestions, bug reports etc. via [GitHub issues](https://github.com/openmcp-project/service-provider-kro/issues). Contribution and feedback are encouraged and always welcome. For more information about how to contribute, the project structure, as well as additional contribution information, see our [Contribution Guidelines](CONTRIBUTING.md).\n\n## Security / Disclosure\n\nIf you find any bug that may be a security problem, please follow our instructions in [our security policy](https://github.com/openmcp-project/service-provider-kro/security/policy) on how to report it. Please do not create GitHub issues for security-related doubts or problems.\n\n## Code of Conduct\n\nWe as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone. By participating in this project, you agree to abide by its [Code of Conduct](https://github.com/SAP/.github/blob/main/CODE_OF_CONDUCT.md) at all times.\n\n## Licensing\n\nPlease see our [LICENSE](LICENSE) for copyright and license information.\nDetailed information including third-party components and their licensing/copyright information is available\n[via the REUSE tool](https://api.reuse.software/info/github.com/openmcp-project/service-provider-kro).\n\n---\n\n\u003cp align=\"center\"\u003e\u003cimg alt=\"Bundesministerium für Wirtschaft und Energie (BMWE)-EU funding logo\" src=\"https://apeirora.eu/assets/img/BMWK-EU.png\" width=\"400\"/\u003e\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenmcp-project%2Fservice-provider-kro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenmcp-project%2Fservice-provider-kro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenmcp-project%2Fservice-provider-kro/lists"}