{"id":47928321,"url":"https://github.com/open-component-model/service-provider-ocm","last_synced_at":"2026-04-04T07:02:58.457Z","repository":{"id":337788177,"uuid":"1155146693","full_name":"open-component-model/service-provider-ocm","owner":"open-component-model","description":null,"archived":false,"fork":false,"pushed_at":"2026-03-30T15:37:01.000Z","size":152,"stargazers_count":0,"open_issues_count":2,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-03-30T16:08:05.477Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/open-component-model.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-11T07:10:22.000Z","updated_at":"2026-03-30T15:37:06.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/open-component-model/service-provider-ocm","commit_stats":null,"previous_names":["open-component-model/service-provider-ocm"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/open-component-model/service-provider-ocm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-component-model%2Fservice-provider-ocm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-component-model%2Fservice-provider-ocm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-component-model%2Fservice-provider-ocm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-component-model%2Fservice-provider-ocm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/open-component-model","download_url":"https://codeload.github.com/open-component-model/service-provider-ocm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-component-model%2Fservice-provider-ocm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31390695,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T04:26:24.776Z","status":"ssl_error","status_checked_at":"2026-04-04T04:23:34.147Z","response_time":60,"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":[],"created_at":"2026-04-04T07:02:57.254Z","updated_at":"2026-04-04T07:02:58.440Z","avatar_url":"https://github.com/open-component-model.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# service-provider-ocm\n\nAn [openMCP](https://github.com/openmcp-project) Service Provider that installs and manages\n[OCM K8s Toolkit](https://github.com/open-component-model/open-component-model/tree/main/kubernetes/controller) on\nworkload clusters via Flux HelmReleases.\n\n[![REUSE status](https://api.reuse.software/badge/github.com/open-component-model/service-provider-ocm)](https://api.reuse.software/info/github.com/open-component-model/service-provider-ocm)\n\n\n## How It Works\n\nWhen an `OCM` 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 `OCM` spec\n3. Creates a Flux `HelmRelease` that deploys the chart into `ocm-k8s-toolkit-system` on the workload cluster via a kubeconfig reference\n\n## API Reference\n\n### OCM\n\nThe domain service API. Created on the onboarding cluster, one per tenant.\n\n```yaml\napiVersion: ocm.services.openmcp.cloud/v1alpha1\nkind: OCM\nmetadata:\n  name: mcp-01 # must match your MCP cluster so it will track the right cluster\nspec:\n  # renovate: datasource=docker depName=ghcr.io/open-component-model/kubernetes/controller/chart\n  version: 0.3.0\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\nis to ensure that no multiple installations can exist for the same 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: ocm.services.openmcp.cloud/v1alpha1\nkind: ProviderConfig\nmetadata:\n  name: ocm # This name here is important!\nspec:\n  pollInterval: 5m\n  chartURL: ghcr.io/open-component-model/kubernetes/controller/chart\n  imagePullSecret:\n    name: my-registry-secret\n  values:\n    manager:\n      concurrency:\n        resource: 10\n```\n\n#### `spec`\n\n| Field | Type | Required | Default                                                    | Description |\n|-------|------|----------|------------------------------------------------------------|-------------|\n| `chartURL` | `string` | no | `ghcr.io/open-component-model/kubernetes/controller/chart` | 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## How the OCM K8s toolkit works\n\nCheck out the [controller concept](https://ocm.software/docs/concepts/ocm-controllers/) and our guides, e.g.\n[Deploy Helm Charts](https://ocm.software/docs/getting-started/deploy-helm-charts/).\n\n## Running E2E Tests\n\n```shell\ntask test-e2e\n```\n\n## Contributing\n\nCode contributions, feature requests, bug reports, and help requests are very welcome. Please refer to the\n[Contributing Guide in the Community repository](https://github.com/open-component-model/.github/blob/main/CONTRIBUTING.md)\nfor more information on how to contribute to OCM.\n\nOCM follows the [NeoNephos Code of Conduct](https://github.com/neonephos/.github/blob/main/CODE_OF_CONDUCT.md).\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/open-component-model/service-provider-ocm).\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","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-component-model%2Fservice-provider-ocm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopen-component-model%2Fservice-provider-ocm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-component-model%2Fservice-provider-ocm/lists"}