kubecarrier

module
v0.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 3, 2020 License: Apache-2.0

README

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

Directories

Path Synopsis
cmd
pkg
apis/catalog/v1alpha1
Package v1alpha1 contains API Schema definitions for the catalog v1alpha1 API group +kubebuilder:object:generate=true +groupName=catalog.kubecarrier.io
Package v1alpha1 contains API Schema definitions for the catalog v1alpha1 API group +kubebuilder:object:generate=true +groupName=catalog.kubecarrier.io
apis/fake/v1
Package v1 contains API Schema definitions for the operator v1 API group +kubebuilder:object:generate=true +groupName=fake.kubecarrier.io
Package v1 contains API Schema definitions for the operator v1 API group +kubebuilder:object:generate=true +groupName=fake.kubecarrier.io
apis/fake/v1alpha1
Package v1alpha1 contains API Schema definitions for the operator v1alpha1 API group +kubebuilder:object:generate=true +groupName=fake.kubecarrier.io
Package v1alpha1 contains API Schema definitions for the operator v1alpha1 API group +kubebuilder:object:generate=true +groupName=fake.kubecarrier.io
apis/operator/v1alpha1
Package v1alpha1 contains API Schema definitions for the operator v1alpha1 API group +kubebuilder:object:generate=true +groupName=operator.kubecarrier.io
Package v1alpha1 contains API Schema definitions for the operator v1alpha1 API group +kubebuilder:object:generate=true +groupName=operator.kubecarrier.io
apiserver/api/v1
Package v1 is a reverse proxy.
Package v1 is a reverse proxy.
apiserver/internal/auth/oidc
This is very very very specific instance when we're using unsafe.
This is very very very specific instance when we're using unsafe.
cli
ide
internal/kustomize
Package kustomize is a wrapper to call Kustomize directly from Go.
Package kustomize is a wrapper to call Kustomize directly from Go.
internal/reconcile
Package reconcile implements reconcile functions for common Kubernetes types.
Package reconcile implements reconcile functions for common Kubernetes types.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL