All Projects → RedHatInsights → clowder

RedHatInsights / clowder

Licence: Apache-2.0 license
Operator for operating cloud.redhat.com

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects
Makefile
30231 projects

Projects that are alternatives of or similar to clowder

k8s-notify
Turn kubernetes events into useful notifications & alerts
Stars: ✭ 46 (+119.05%)
Mutual labels:  operator, operator-sdk
pulp-operator
Kubernetes Operator for Pulp 3. Under active development.
Stars: ✭ 32 (+52.38%)
Mutual labels:  operator, operator-sdk
aws-nlb-helper-operator
Simple operator to manage AWS NLB attributes using Kubernetes Service object annotations
Stars: ✭ 23 (+9.52%)
Mutual labels:  operator, operator-sdk
horusec-platform
Horusec Platform is a set of web services that integrate with the Horusec CLI to facilitate the visualization and management of found vulnerabilities.
Stars: ✭ 32 (+52.38%)
Mutual labels:  operator, operator-sdk
mysql-operator
A Kubernetes Operator for MySQL Community Server
Stars: ✭ 21 (+0%)
Mutual labels:  operator, operator-sdk
rabbitmq-operator
RabbitMQ Kubernetes operator
Stars: ✭ 16 (-23.81%)
Mutual labels:  operator, operator-sdk
opdemo
Kubernetes Operator 快速入门教程(Kubernetes Operator 101)
Stars: ✭ 158 (+652.38%)
Mutual labels:  operator, operator-sdk
Litmus
Litmus helps SREs and developers practice chaos engineering in a Cloud-native way. Chaos experiments are published at the ChaosHub (https://hub.litmuschaos.io). Community notes is at https://hackmd.io/a4Zu_sH4TZGeih-xCimi3Q
Stars: ✭ 2,377 (+11219.05%)
Mutual labels:  operator, operator-sdk
Casl Ansible
Ansible automation for Managing OpenShift Container Platform clusters
Stars: ✭ 123 (+485.71%)
Mutual labels:  redhat
Helloworld Msa
Main repository with documentation and support files
Stars: ✭ 218 (+938.1%)
Mutual labels:  redhat
Postinstall
💻 Bash Script to automate post-installation steps
Stars: ✭ 104 (+395.24%)
Mutual labels:  redhat
Mattermost Ansible
Ansible playbook to provide a turnkey solution for the Team Edition of Mattermost
Stars: ✭ 126 (+500%)
Mutual labels:  redhat
Stacki
Linux Cluster Builder - Bare Metal Red Hat & SUSE
Stars: ✭ 223 (+961.9%)
Mutual labels:  redhat
Serverfarmer
Manage multiple servers with different operating systems, configurations, requirements etc. for many separate customers in an outsourcing model.
Stars: ✭ 122 (+480.95%)
Mutual labels:  redhat
docker-java
Intro Level Lab for Docker Development for Java Developers
Stars: ✭ 34 (+61.9%)
Mutual labels:  redhat
Wg Install
Wireguard road warrior installer for Ubuntu, Debian, CentOS and Fedora
Stars: ✭ 99 (+371.43%)
Mutual labels:  redhat
Linux Cookbooks
Stars: ✭ 93 (+342.86%)
Mutual labels:  redhat
falcon-operator
artifacthub.io/packages/olm/falcon-operator/falcon-operator
Stars: ✭ 28 (+33.33%)
Mutual labels:  operator
Spring Boot Keycloak Tutorial
Easily Secure your Spring Boot Apps with Keycloak
Stars: ✭ 165 (+685.71%)
Mutual labels:  redhat
Terrible
An Ansible playbook that apply the principle of the Infrastructure as Code on a QEMU/KVM environment.
Stars: ✭ 161 (+666.67%)
Mutual labels:  redhat
Clowder - Clowd Platform Operator

Build Passing Downloads Release Go Report Card

What is Clowder?

Clowder is a kubernetes operator designed to make it easy to deploy applications running on the cloud.redhat.com platform in production, testing and local development environments.

See Clowder in Action

Animated GIF terminal example

Why use Clowder?

In addition to reducing the effort to maintain a deployment template, Clowder provides a number of other benefits:

  • Consistent deployment Whether you’re deploying to production, running smoke tests on a PR, or developing your application locally, Clowder will use the same app definition for all three. No more endlessly tweaking environment variables!

  • Focus on development Clowder has the best practices of running an app in a microservices environment as well as specific requirements from the app-sre team, such as pod affinity, rollout parameters etc built-in. Spend less time worrying about configuring deployment templates and more time writing your app.

  • Assisting Ops Any dev or SRE that learns how Clowder deploys apps will implicitly understand the deployment of any other app utilizing Clowder.

  • Deploy a full environment locally Gone are the days of hacking together scripts that just about get you mocked or partially working dependant services. With Clowder, you can deploy an instance of the cloud.redhat.com platform on your local laptop, or in a dev cluster to use as you wish.

Clowder will provision resources depending on the mode choosen for each provider, and will return a consistently formatted JSON configuration document for each app to consume, leaving teams to focus more on writing code than differences between environments. The Clowder config client can assist with this and currently has support for Python, Go, Javascript and Ruby.

Configuration model

Feature List

Clowder currently features support for:

  • Kafka Topics

  • Object Storage

  • PostgreSQL Database

  • In-Memory DB

  • Feature Flags (development only)

  • CronJob support

  • Jobs Support

Roadmap

Our current roadmap looks like this:

  • Autoscaling (possibly via Keda)

  • Dynamic routing for public web sevices

  • Automatic metrics configuration

  • Automatic network policy configuration

  • Standard, configurable alerting: Error rate, latency, Kafka topic lag, etc

  • Canary deployments (possibly via Flagger)

  • Operational remediations

  • Observe service status from a ClowdApp status, based on sevice dependencies.

  • Istio integration

  • Advanced logging configurations (e.g. logging messages to kafka topics)

Getting Clowder

Clowder is already running in pre-prod/prod environments.

To run Clowder locally in Minikube, obtain and install Minikube.

Clowder is developed on Fedora and the kvm driver has been found to work best initiated with the following options:

minikube start --cpus 4 --disk-size 36GB --memory 16000MB --driver=kvm2 --addons registry --addons ingress  --addons=metrics-server --disable-optimizations
ℹ️

Mac OS is also supported with the virtualbox and hyperkit drivers. A full guide can be found here

To persist these changes for every minikube invocation, run the following:

minikube config set cpus 4
minikube config set memory 16000
minikube config set disk-size 36GB
minikube config set driver kvm2

If you encounter any kvm issues, please take a look at the troubleshooting guide

The kube_setup.sh script then needs to be run by invoking

./build/kube_setup.sh

Clowder can then be installed by running:

# Be sure to get the latest release in the link above!
minikube kubectl -- apply -f $(curl https://api.github.com/repos/RedHatInsights/clowder/releases/latest | jq '.assets[0].browser_download_url' -r) --validate=false

Usage

To use Clowder to deploy an application a ClowdEnvironment resource must be present to define an environment. Once this has been deployed, a ClowdApp resource is authored for the app and deployed alongside the ClowdEnvironment.

Example app developer workflow:

  1. Install Clowder on a minikube environment.

  2. Use kubectl apply -f clowdenv.yaml to apply a ClowdEnvironment resource to the cluster.

  3. Use kubectl apply -f clowdapp.yaml to apply a ClowdApp resource to the cluster.

More details on how to do this are present in the Getting Started section of the documentation.

Building Clowder

If you want to run a version of Clowder other than the released version there are a few prerequisites you will need. To learn about developing Clowder please visit the developing clowder page for more detailed instructions.

History

To understand more about the design decisions made while developing Clowder, please visit the design document

Connect

Any questions, please ask one of the Clowder development team

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].