{"url":"https://api.github.com/repos/cncf/sandbox/issues/313","repository_url":"https://api.github.com/repos/cncf/sandbox","labels_url":"https://api.github.com/repos/cncf/sandbox/issues/313/labels{/name}","comments_url":"https://api.github.com/repos/cncf/sandbox/issues/313/comments","events_url":"https://api.github.com/repos/cncf/sandbox/issues/313/events","html_url":"https://github.com/cncf/sandbox/issues/313","id":2662771924,"node_id":"I_kwDOIH6f2M6etqzU","number":313,"title":"[Sandbox] KitOps","user":{"login":"gorkem","id":82738,"node_id":"MDQ6VXNlcjgyNzM4","avatar_url":"https://avatars.githubusercontent.com/u/82738?v=4","gravatar_id":"","url":"https://api.github.com/users/gorkem","html_url":"https://github.com/gorkem","followers_url":"https://api.github.com/users/gorkem/followers","following_url":"https://api.github.com/users/gorkem/following{/other_user}","gists_url":"https://api.github.com/users/gorkem/gists{/gist_id}","starred_url":"https://api.github.com/users/gorkem/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gorkem/subscriptions","organizations_url":"https://api.github.com/users/gorkem/orgs","repos_url":"https://api.github.com/users/gorkem/repos","events_url":"https://api.github.com/users/gorkem/events{/privacy}","received_events_url":"https://api.github.com/users/gorkem/received_events","type":"User","user_view_type":"public","site_admin":false},"labels":[{"id":4620313844,"node_id":"LA_kwDOIH6f2M8AAAABE2Rk9A","url":"https://api.github.com/repos/cncf/sandbox/labels/New","name":"New","color":"5E3FAD","default":false,"description":"New Application","archived_at":null,"archived_by":null},{"id":5250801491,"node_id":"LA_kwDOIH6f2M8AAAABOPjfUw","url":"https://api.github.com/repos/cncf/sandbox/labels/Runtime","name":"Runtime","color":"5EE1E3","default":false,"description":"","archived_at":null,"archived_by":null},{"id":6982879572,"node_id":"LA_kwDOIH6f2M8AAAABoDZJVA","url":"https://api.github.com/repos/cncf/sandbox/labels/gitvote","name":"gitvote","color":"ededed","default":false,"description":null,"archived_at":null,"archived_by":null},{"id":8770911279,"node_id":"LA_kwDOIH6f2M8AAAACCsl8Lw","url":"https://api.github.com/repos/cncf/sandbox/labels/gitvote/closed","name":"gitvote/closed","color":"ededed","default":false,"description":null,"archived_at":null,"archived_by":null},{"id":8770911289,"node_id":"LA_kwDOIH6f2M8AAAACCsl8OQ","url":"https://api.github.com/repos/cncf/sandbox/labels/gitvote/passed","name":"gitvote/passed","color":"ededed","default":false,"description":null,"archived_at":null,"archived_by":null}],"state":"closed","locked":false,"assignees":[{"login":"rochaporto","id":52753,"node_id":"MDQ6VXNlcjUyNzUz","avatar_url":"https://avatars.githubusercontent.com/u/52753?v=4","gravatar_id":"","url":"https://api.github.com/users/rochaporto","html_url":"https://github.com/rochaporto","followers_url":"https://api.github.com/users/rochaporto/followers","following_url":"https://api.github.com/users/rochaporto/following{/other_user}","gists_url":"https://api.github.com/users/rochaporto/gists{/gist_id}","starred_url":"https://api.github.com/users/rochaporto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rochaporto/subscriptions","organizations_url":"https://api.github.com/users/rochaporto/orgs","repos_url":"https://api.github.com/users/rochaporto/repos","events_url":"https://api.github.com/users/rochaporto/events{/privacy}","received_events_url":"https://api.github.com/users/rochaporto/received_events","type":"User","user_view_type":"public","site_admin":false},{"login":"mauilion","id":1534296,"node_id":"MDQ6VXNlcjE1MzQyOTY=","avatar_url":"https://avatars.githubusercontent.com/u/1534296?v=4","gravatar_id":"","url":"https://api.github.com/users/mauilion","html_url":"https://github.com/mauilion","followers_url":"https://api.github.com/users/mauilion/followers","following_url":"https://api.github.com/users/mauilion/following{/other_user}","gists_url":"https://api.github.com/users/mauilion/gists{/gist_id}","starred_url":"https://api.github.com/users/mauilion/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mauilion/subscriptions","organizations_url":"https://api.github.com/users/mauilion/orgs","repos_url":"https://api.github.com/users/mauilion/repos","events_url":"https://api.github.com/users/mauilion/events{/privacy}","received_events_url":"https://api.github.com/users/mauilion/received_events","type":"User","user_view_type":"public","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/cncf/sandbox/milestones/3","html_url":"https://github.com/cncf/sandbox/milestone/3","labels_url":"https://api.github.com/repos/cncf/sandbox/milestones/3/labels","id":12197510,"node_id":"MI_kwDOIH6f2M4Auh6G","number":3,"title":"2025 February Review","description":"","creator":{"login":"mrbobbytables","id":6500863,"node_id":"MDQ6VXNlcjY1MDA4NjM=","avatar_url":"https://avatars.githubusercontent.com/u/6500863?v=4","gravatar_id":"","url":"https://api.github.com/users/mrbobbytables","html_url":"https://github.com/mrbobbytables","followers_url":"https://api.github.com/users/mrbobbytables/followers","following_url":"https://api.github.com/users/mrbobbytables/following{/other_user}","gists_url":"https://api.github.com/users/mrbobbytables/gists{/gist_id}","starred_url":"https://api.github.com/users/mrbobbytables/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrbobbytables/subscriptions","organizations_url":"https://api.github.com/users/mrbobbytables/orgs","repos_url":"https://api.github.com/users/mrbobbytables/repos","events_url":"https://api.github.com/users/mrbobbytables/events{/privacy}","received_events_url":"https://api.github.com/users/mrbobbytables/received_events","type":"User","user_view_type":"public","site_admin":false},"open_issues":0,"closed_issues":10,"state":"closed","created_at":"2025-01-21T14:12:47Z","updated_at":"2026-03-04T14:34:34Z","due_on":null,"closed_at":"2025-03-04T14:17:13Z"},"comments":16,"created_at":"2024-11-15T18:19:56Z","updated_at":"2025-06-12T12:17:22Z","closed_at":"2025-03-04T14:16:53Z","assignee":{"login":"mauilion","id":1534296,"node_id":"MDQ6VXNlcjE1MzQyOTY=","avatar_url":"https://avatars.githubusercontent.com/u/1534296?v=4","gravatar_id":"","url":"https://api.github.com/users/mauilion","html_url":"https://github.com/mauilion","followers_url":"https://api.github.com/users/mauilion/followers","following_url":"https://api.github.com/users/mauilion/following{/other_user}","gists_url":"https://api.github.com/users/mauilion/gists{/gist_id}","starred_url":"https://api.github.com/users/mauilion/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mauilion/subscriptions","organizations_url":"https://api.github.com/users/mauilion/orgs","repos_url":"https://api.github.com/users/mauilion/repos","events_url":"https://api.github.com/users/mauilion/events{/privacy}","received_events_url":"https://api.github.com/users/mauilion/received_events","type":"User","user_view_type":"public","site_admin":false},"author_association":"NONE","issue_field_values":[],"type":null,"active_lock_reason":null,"sub_issues_summary":{"total":0,"completed":0,"percent_completed":0},"issue_dependencies_summary":{"blocked_by":0,"total_blocked_by":0,"blocking":0,"total_blocking":0},"body":"### Application contact emails\n\ngorkem@jozu.com, brad@jozu.com\n\n### Project Summary\n\nSecurely store and share AI/ML artifacts as OCI artifacts in a container registry.\n\n### Project Description\n\nAI and ML are becoming integral components of cloud-native application architecture. However, the current AI/ML domain faces significant challenges due to fragmented packaging and versioning of not only models, but their associated datasets, codebases, and parameters. These problems are largely solved for cloud native applications thanks to standards like git and OCI that are used across all tools and infrastructures. \n\nUnlike microservices that are loosely coupled, AI models have tight couplings with the datasets that trained and validated them, as well as their weights, parameters, inputs, and outputs. This complexity necessitates an improvement on OCI packaging formats that embraces these dependencies to help organizations manage, secure, and audit AI/ML projects effectively.\n\nKitOps is an open-source packaging and versioning solution for AI/ML projects, designed for enterprise speed, security, and consistency in cloud-native environments. By offering an OCI artifact called ModelKit, KitOps leverages the widely adopted OCI standard to ensure seamless integration with existing tools and infrastructures. This enables organizations to manage, secure, and audit AI/ML projects effectively. KitOps has already been downloaded tens of thousands of times and is in use in private and public sector organizations.\n\nKitOps allows users to:\n\n1. Selectively bundle models, datasets, codebases, and documentation into a single ModelKit package, ensuring reproducibility and version control.\n2. Version, sign, and store ModelKits in an OCI-compatible registry, facilitating collaboration and deployment alongside other cloud-native applications.\n3. Save resources and time by extracting only the necessary layers for each phase of the project lifecycle, optimizing resource utilization.\n\n\n\n### Org repo URL (provide if all repos under the org are in scope of the application)\n\nN/A\n\n### Project repo URL in scope of application\n\nhttps://github.com/jozu-ai/kitops\n\n### Additional repos in scope of the application\n\nhttps://github.com/jozu-ai/pykitops\nhttps://github.com/jozu-ai/gh-kit-setup\nhttps://github.com/jozu-ai/daggerverse\nhttps://github.com/jozu-ai/homebrew-kitops\n\n\n### Website URL\n\nhttps://kitops.ml/\n\n### Roadmap\n\nhttps://github.com/jozu-ai/kitops/blob/main/ROADMAP.md\n\n### Roadmap context\n\nThe current KitOps roadmap is concentrated on adoption, usability and security features. However, we expect to introduce more items around standardization as part of the CNCF community.\n\n### Contributing Guide\n\nhttps://github.com/jozu-ai/kitops/blob/main/CONTRIBUTING.md\n\n### Code of Conduct (CoC)\n\nhttps://github.com/jozu-ai/kitops/blob/main/CODE-OF-CONDUCT.md\n\n### Adopters\n\n_No response_\n\n### Contributing or Sponsoring Org\n\njozu.com\n\n### Maintainers file\n\nhttps://github.com/jozu-ai/kitops/blob/main/MAINTAINERS.md\n\n### IP Policy\n\n- [x] If the project is accepted, I agree the project will follow the CNCF IP Policy\n\n### Trademark and accounts\n\n- [x] If the project is accepted, I agree to donate all project trademarks and accounts to the CNCF\n\n### Why CNCF?\n\nKitOps is built upon the Open Container Initiative (OCI) standard, which is central to many CNCF projects such as Kubernetes, container runtimes, and registries. By extending OCI principles to the packaging and versioning of AI/ML projects, KitOps directly contributes to the cloud-native ecosystem’s growth and evolution.\n\nJoining the CNCF Sandbox offers the following advantages:\n\n- **Promoting Open Standards in AI/ML:** As AI becomes an enduring component of cloud-native applications, there’s a critical need for standardized tools and infrastructure. CNCF’s stewardship ensures that KitOps can contribute to, and benefit from, a governance model that prioritizes open standards and interoperability.\n\n- **Leveraging CNCF’s Ecosystem:** With OCI at its core, KitOps naturally integrates with CNCF projects like Kubernetes, Harbor, and Dragonfly, enabling seamless deployment and management of AI/ML workloads in cloud-native environments.\n\n- **Fostering Collaboration and Innovation:** Hosting KitOps within CNCF provides a platform for collaboration with a vibrant community of developers, end-users, and vendors. This collaborative environment accelerates innovation and adoption of best practices.\n\n- **Addressing Industry Challenges Together:** The tight coupling of AI models with datasets and dependencies presents unique challenges. By collaborating within CNCF, KitOps can help develop solutions that address these complexities, benefiting the broader community.\n\n- **Alignment with CNCF’s Mission:** KitOps shares CNCF’s goal of making cloud-native computing universal and sustainable. By standardizing AI/ML packaging, we aim to reduce fragmentation and promote interoperability across the cloud-native landscape.\n- \nGiven the central importance of OCI to CNCF projects and the shared vision of promoting open, cloud-native technologies, CNCF is the most logical and natural foundation for hosting this emerging cloud native tooling for AI/ML. We believe that by joining forces with CNCF, KitOps can play a pivotal role in shaping the future of cloud-native AI/ML, driving innovation, and delivering value to organizations worldwide.\n\n\n### Benefit to the Landscape\n\nThe current CNCF ecosystem lacks a standard for packaging and versioning AI/ML projects, particularly for seamless integration with CNCF projects like Kubernetes. This absence creates challenges for organizations seeking to deploy AI/ML workloads in cloud-native environments, leading to fragmentation and inefficiencies.\n\nKitOps bridges this critical gap by introducing a clear, open standard for AI/ML project packaging, versioning, and sharing that enhances and extends the existing Open Container Initiative (OCI) standard. By leveraging OCI, KitOps ensures compatibility and interoperability with the tools and infrastructures that organizations already use, promoting a unified approach within the CNCF landscape.\n\nKey benefits KitOps brings to the CNCF ecosystem include:\n\n- **Facilitating AI/ML Adoption:** KitOps simplifies the integration of AI/ML projects with Kubernetes and other CNCF technologies, smoothing the path for organizations to incorporate AI capabilities into their cloud-native applications.\n\n- **Enhancing Interoperability:** By building upon the OCI standard, KitOps ensures that AI/ML packaging works harmoniously with existing containerization practices, registries, and deployment workflows. This avoids redundancy and leverages familiar tooling.\n\n- **Promoting Open Standards:** KitOps provides an open, transparent alternative to proprietary AI/ML packaging solutions. This empowers organizations to adopt open-source AI/ML models and approaches, fostering innovation and collaboration within the community.\n\n- **Driving Ecosystem Growth:** Introducing a standardized AI/ML packaging solution can stimulate the development of new tools, services, and best practices within the CNCF ecosystem, accelerating the growth of cloud-native AI/ML technologies.\n\nAdditionally, as AI becomes increasingly central to cloud-native applications, the need for standardized, open approaches is paramount. KitOps addresses this need by offering a solution that is:\n\n- **Open and Extensible:** Encouraging community contributions and extensions, fostering a vibrant ecosystem around AI/ML packaging standards.\n\n- **Transparent and Auditable:** Providing organizations with the ability to manage, secure, and audit their AI/ML projects effectively, enhancing trust and compliance.\n\n- **Complementary to Existing CNCF Projects:** Enabling seamless integration with projects like Kubernetes, OpenTelemetry, Harbor and others, without introducing conflicts or redundancies.\n\n\n### Cloud Native 'Fit'\n\nKitOps fits well into the Container registry in the CNCF Landscape as it aims to enable and standardize packaging AI/ML projects for OCI registries. I also interact well with other tools in the Cloud Native AI (CNAI) project area, as well as with projects like Kubernetes, CRI-O, containerd, Kserve, and others.\n\n### Cloud Native 'Integration'\n\nKitOps depends on OCI registries like Harbor, it complements projects such as Kubernetes, containerd/CRI-O for inference and training of AI/ML workloads.\n\n\n### Cloud Native Overlap\n\n- Harbor: KitOps extends the registry concept to AI/ML artifacts, providing specialized metadata storing, versioning, and distributing AI/ML artifacts.\n- Kubernetes: KitOps can integrate tightly with Kubernetes for deploying ML models as OCI artifacts into inference services or clusters.\n- Notary: KitOps can leverage Notary for artifact integrity and security when distributing AI/ML artifacts.\n- Flux and Argo Workflows: KitOps fits into GitOps workflows enabled by Flux or Argo Workflows by serving as a source for model artifacts, which can be deployed alongside infrastructure and application configurations.\n\n### Similar projects\n\nWe have not spotted any projects on CNCF Landscape but from Open Source community at large\n- [DVC](https://github.com/iterative/dvc)\n- [Git LFS](https://github.com/git-lfs/git-lfs)\n\n### Landscape\n\nNo\n\n### Business Product or Service to Project separation\n\nN/A\n\n### Project Domain Technical Review\n\nNot yet\n\n### CNCF Contacts\n\nAndrew Block @sabre1041\nChris Aniszczyk @caniszczyk \n\n### Additional information\n\n_No response_","closed_by":{"login":"angellk","id":836183,"node_id":"MDQ6VXNlcjgzNjE4Mw==","avatar_url":"https://avatars.githubusercontent.com/u/836183?v=4","gravatar_id":"","url":"https://api.github.com/users/angellk","html_url":"https://github.com/angellk","followers_url":"https://api.github.com/users/angellk/followers","following_url":"https://api.github.com/users/angellk/following{/other_user}","gists_url":"https://api.github.com/users/angellk/gists{/gist_id}","starred_url":"https://api.github.com/users/angellk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/angellk/subscriptions","organizations_url":"https://api.github.com/users/angellk/orgs","repos_url":"https://api.github.com/users/angellk/repos","events_url":"https://api.github.com/users/angellk/events{/privacy}","received_events_url":"https://api.github.com/users/angellk/received_events","type":"User","user_view_type":"public","site_admin":false},"reactions":{"url":"https://api.github.com/repos/cncf/sandbox/issues/313/reactions","total_count":8,"+1":8,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/cncf/sandbox/issues/313/timeline","performed_via_github_app":null,"state_reason":"completed","pinned_comment":null}