/kubecarrier

KubeCarrier - Service Management at Scale

Primary LanguageGoApache License 2.0Apache-2.0

KubeCarrier


KubeCarrier is an open source system for managing applications and services across multiple Kubernetes Clusters; providing a framework to centralize the management of services and provide these services with external users in a self service hub.



Project Status

KubeCarrier is currently in early development and is not ready for production use, the APIs are not yet final and breaking changes might be introduced in every release.

Features

  • Cross Cluster Management of CRD instances
  • Service Hub
  • Multi Tenancy
  • Account Management
  • Integration with any existing operator

Documentation

KubeCarrier is documented on docs.kubermatic.io alongside our other open source projects.

Troubleshooting

If you encounter issues file an issue or talk to us on the #kubecarrier channel on the Kubermatic Slack.

Contributing

Thanks for taking the time to join our community and start contributing! Feedback and discussion are available on the mailing list.

Before you start

  • Please familiarize yourself with the Code of Conduct before contributing.
  • See CONTRIBUTING.md for instructions on the developer certificate of origin that we require.

Pull requests

  • We welcome pull requests. Feel free to dig through the issues and jump in.

FAQ

What`s the difference to OLM / Crossplane?

The Operator Lifecycle Manager from RedHat and Crossplane are both projects that manage installation, upgrade and deletion of Operators and their CustomResourceDefinitions in a Kubernetes cluster.

KubeCarrier on the other hand is just working with existing CustomResourceDefinitions and already installed Operators. As both OLM and Crossplane are driven by CRDs, they can be combined with KubeCarrier to manage their configuration across clusters.

What`s the difference to KubeFed - Kubernetes Federation?

The Kubernetes Federation Project was created to distribute Workload across Kubernetes Clusters for e.g. geo-replication and disaster recovery. It's intentionally low-level to work for generic workload to be spread across clusters.

While KubeCarrier is also operating on multiple clusters, KubeCarrier operates on a higher abstraction level. KubeCarrier assigns applications onto single pre-determined Kubernetes clusters. Kubernetes Operators that enable these applications, may still use KubeFed underneath to spread the workload across clusters.

Changelog

See the list of releases to find out about feature changes.

Roadmap

v0.4 - Enhance Core Features

Region API Aggregation Provide a single API to access and work with the object across multiple regions

Project Bulward Integration Advanced multi-tenancy on Kubernetes. Enable the management of custom sub-roles for KubeCarrier Account.

v0.5 - Integrations

Client Operator Kubernetes Operator to enable the provisioning of new services, provided with KubeCarrier from within your own client Kubernetes cluster.

Secret Management Credential propagation mechanism to utilize Kubernetes Secrets.

Service Groups Combine multiple related APIs e.g.(EtcdClusters, EtcdBackups, EtcdRestores) into a group for easier discovery.

v0.x - Ease of Use

Audit Logging Multi-Tenancy audit logging within KubeCarrier.

UI TBD