Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/berops/claudie
Cloud-agnostic managed Kubernetes
https://github.com/berops/claudie
aws azure cloud-native cloudflare devops gcp hetzner hybrid-cloud hybridcloud inter-cloud intercloud k8s kubernetes kubernetes-cluster managed-kubernetes multi-cloud multicloud oci paas
Last synced: 7 days ago
JSON representation
Cloud-agnostic managed Kubernetes
- Host: GitHub
- URL: https://github.com/berops/claudie
- Owner: berops
- License: apache-2.0
- Created: 2020-08-02T04:09:43.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-10-29T14:31:38.000Z (about 1 month ago)
- Last Synced: 2024-10-29T17:21:22.001Z (about 1 month ago)
- Topics: aws, azure, cloud-native, cloudflare, devops, gcp, hetzner, hybrid-cloud, hybridcloud, inter-cloud, intercloud, k8s, kubernetes, kubernetes-cluster, managed-kubernetes, multi-cloud, multicloud, oci, paas
- Language: Go
- Homepage: https://docs.claudie.io/
- Size: 21.6 MB
- Stars: 599
- Watchers: 6
- Forks: 41
- Open Issues: 57
-
Metadata Files:
- Readme: README.md
- Contributing: docs/contributing/contributing.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
- Roadmap: docs/roadmap/roadmap.md
Awesome Lists containing this project
- awesome-k8s-resources - Claudie - Multi-cloud clusters with each nodepool in a different cloud provider. (Tools and Libraries / Cluster Provisioning)
- awesome-repositories - berops/claudie - Cloud-agnostic managed Kubernetes (Go)
README
Platform for managing multi-cloud and hybrid-cloud Kubernetes clusters with support for nodepools across different cloud-providers and on-premise data centers## Intro video
## Vision of Claudie
The purpose of Claudie is to become the final Kubernetes engine you'll ever need. It aims to build clusters that leverage features and costs across multiple cloud vendors and on-prem datacenters. A Kubernetes that you won't ever need to migrate away from.
## Typical use cases
Claudie has been built as an answer to the following Kubernetes challenges.
- Cost savings
- Data locality & compliance (e.g. GDPR)
- Managed Kubernetes for providers that do not offer it
- Cloud bursting
- Service interconnectRead in more details [here](https://docs.claudie.io/latest/use-cases/use-cases/).
## Features
### Manage multi-cloud and hybrid-cloud Kubernetes clusters
Create fully-featured Kubernetes clusters composed of multiple different public Cloud providers and on-premise data center in an easy and secure manner.
Simply insert credentials to your cloud projects, define your cluster, and watch how the infra spawns right in front of you.![](./docs/infra-diagram.png)
### Management via IaC
Declaratively define your infrastructure with a simple, easy to understand YAML [syntax](https://docs.claudie.io/latest/input-manifest/input-manifest/).
See example [manifest](https://docs.claudie.io/latest/input-manifest/example/).### Fast scale-up/scale-down of your infrastructure
To scale-up or scale-down, simply change a few lines in the input manifest and Claudie will take care of the rest in the matter of minutes.
### Loadbalancing
Claudie has its own managed load-balancing solution, which you can use for Ingresses, the Kubernetes API server, or generally anything. Check out our [LB docs](https://docs.claudie.io/latest/loadbalancing/loadbalancing-solution/).
### Persistent storage volumes
Claudie comes pre-configured with a storage solution, with ready-to-use Storage Classes. See [Storage docs](https://docs.claudie.io/latest/storage/storage-solution/) to learn more.
## Get started using Claudie
### Prerequisites
Before you begin, please make sure you have the following prerequisites installed and set up:1. Claudie needs to be installed on an existing Kubernetes cluster, referred to as the *Management Cluster*, which it uses to manage the clusters it provisions. For testing, you can use ephemeral clusters like Minikube or Kind. However, for production environments, we recommend using a more resilient solution since Claudie maintains the state of the infrastructure it creates.
2. Claudie requires the installation of cert-manager in your Management Cluster. To install cert-manager, use the following command:
```bash
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.12.0/cert-manager.yaml
```### Supported providers
| Supported Provider | Node Pools | DNS |
| --------------------------------------------------------------------------------- | ------------------ | ------------------ |
| [AWS](https://docs.claudie.io/latest/input-manifest/providers/aws/) | :heavy_check_mark: | :heavy_check_mark: |
| [Azure](https://docs.claudie.io/latest/input-manifest/providers/azure/) | :heavy_check_mark: | :heavy_check_mark: |
| [GCP](https://docs.claudie.io/latest/input-manifest/providers/gcp/) | :heavy_check_mark: | :heavy_check_mark: |
| [OCI](https://docs.claudie.io/latest/input-manifest/providers/oci/) | :heavy_check_mark: | :heavy_check_mark: |
| [Hetzner](https://docs.claudie.io/latest/input-manifest/providers/hetzner/) | :heavy_check_mark: | :heavy_check_mark: |
| [Cloudflare](https://docs.claudie.io/latest/input-manifest/providers/cloudflare/) | N/A | :heavy_check_mark: |
| [GenesisCloud](https://docs.claudie.io/latest/input-manifest/providers/genesiscloud/) | :heavy_check_mark: | N/A |For adding support for other cloud providers, open an issue or propose a PR.
### Install Claudie
1. Deploy Claudie to the Management Cluster:
```bash
kubectl apply -f https://github.com/berops/claudie/releases/latest/download/claudie.yaml
```To further harden claudie, you may want to deploy our pre-defined network policies:
```bash
# for clusters using cilium as their CNI
kubectl apply -f https://github.com/berops/claudie/releases/latest/download/network-policy-cilium.yaml
```
```bash
# other
kubectl apply -f https://github.com/berops/claudie/releases/latest/download/network-policy.yaml
```
### Deploy your cluster1. Create Kubernetes Secret resource for your provider configuration.
```bash
kubectl create secret generic example-aws-secret-1 \
--namespace=mynamespace \
--from-literal=accesskey='myAwsAccessKey' \
--from-literal=secretkey='myAwsSecretKey'
```Check the [supported providers](#supported-providers) for input manifest examples. For an input manifest spanning all supported hyperscalers checkout out [this example](https://docs.claudie.io/latest/input-manifest/example/).
2. Deploy InputManifest resource which Claudie uses to create infrastructure, include the created secret in `.spec.providers` as follows:
```bash
kubectl apply -f - <--kubeconfig` in the namespace where it is deployed:1. Recover kubeconfig of your cluster by running:
```bash
kubectl get secrets -n claudie -l claudie.io/output=kubeconfig -o jsonpath='{.items[0].data.kubeconfig}' | base64 -d > your_kubeconfig.yaml
```
2. Use your new kubeconfig:
```bash
kubectl get pods -A --kubeconfig=your_kubeconfig.yaml
```### Cleanup
1. To remove your cluster and its associated infrastructure, delete the cluster definition block from the InputManifest:
```bash
kubectl apply -f - <## Get involved
Everyone is more than welcome to open an issue, a PR or to start a discussion.
For more information about contributing please read the [contribution guidelines](https://docs.claudie.io/latest/contributing/contributing/).
If you want to have a chat with us, feel free to join our channel on [kubernetes Slack workspace](https://kubernetes.slack.com/archives/C05SW4GKPL3) (get invite [here](https://communityinviter.com/apps/kubernetes/community)).
## Security
While we strive to create secure software, there is always a chance that we
miss something.
If you've discovered something that requires our attention, see [our security
policy](SECURITY.md) to learn how to proceed.## Roadmap
To see the vision behind Claudie, please refer to the [roadmap](https://docs.claudie.io/latest/roadmap/roadmap/) document.
## Reach out to us
Claudie is proudly developed by Berops.
Feel free to request a demo [here](mailto:claudie-demo@berops.com).
For information on enterprise support, contact us [here](mailto:claudie@berops.com).## LICENSE
Apache-2.0 (see [LICENSE](LICENSE) for details).