{"id":13500412,"url":"https://github.com/RedHatInsights/clowder","last_synced_at":"2025-03-29T07:30:54.440Z","repository":{"id":37069043,"uuid":"292856243","full_name":"RedHatInsights/clowder","owner":"RedHatInsights","description":"Operator for operating cloud.redhat.com ","archived":false,"fork":false,"pushed_at":"2024-05-21T16:16:48.000Z","size":7713,"stargazers_count":30,"open_issues_count":11,"forks_count":54,"subscribers_count":15,"default_branch":"master","last_synced_at":"2024-05-22T12:08:23.947Z","etag":null,"topics":["operator","operator-sdk","redhat"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RedHatInsights.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-04T13:33:36.000Z","updated_at":"2024-05-29T22:43:32.926Z","dependencies_parsed_at":"2023-09-23T05:20:18.059Z","dependency_job_id":"d7795ac4-ca30-47f3-a6bc-b2c9f30fc25d","html_url":"https://github.com/RedHatInsights/clowder","commit_stats":null,"previous_names":[],"tags_count":74,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedHatInsights%2Fclowder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedHatInsights%2Fclowder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedHatInsights%2Fclowder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedHatInsights%2Fclowder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RedHatInsights","download_url":"https://codeload.github.com/RedHatInsights/clowder/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246155984,"owners_count":20732355,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["operator","operator-sdk","redhat"],"created_at":"2024-07-31T22:00:59.657Z","updated_at":"2025-03-29T07:30:53.423Z","avatar_url":"https://github.com/RedHatInsights.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":":note-caption: :information_source:\nimage::docs/antora/modules/ROOT/images/clowder.svg[Clowder - Clowd Platform Operator]\n\nimage:https://img.shields.io/github/actions/workflow/status/RedHatInsights/clowder/package.yml?branch=master[Build Passing]\nimage:https://img.shields.io/github/downloads/RedHatInsights/clowder/total.svg[Downloads]\nimage:https://img.shields.io/github/v/release/RedHatInsights/clowder[Release]\nimage:https://goreportcard.com/badge/github.com/RedHatInsights/clowder[Go Report Card]\n\n## What is Clowder?\n\nClowder is a kubernetes operator designed to make it easy to deploy applications\nrunning on the cloud.redhat.com platform in production, testing and local\ndevelopment environments.\n\nxref:docs/antora/modules/ROOT/pages/learn-more.adoc[Learn More]\n\n## See Clowder in Action\n\nimage::docs/antora/modules/ROOT/images/terminal-example.gif[Animated GIF terminal example]\n\n## Why use Clowder?\n\nIn addition to reducing the effort to maintain a deployment template, Clowder\nprovides a number of other benefits:\n\n* **Consistent deployment** Whether you're deploying to production, running smoke\n  tests on a PR, or developing your application locally, Clowder will use the\n  same app definition for all three. No more endlessly tweaking environment variables!\n* **Focus on development** Clowder has the best practices of running an app in\n  a microservices environment as well as specific requirements from the app-sre\n  team, such as pod affinity, rollout parameters etc built-in. Spend less time\n  worrying about configuring deployment templates and more time writing your app.\n* **Assisting Ops** Any dev or SRE that learns how Clowder deploys apps will\n  implicitly understand the deployment of any other app utilizing Clowder.\n* **Deploy a full environment locally** Gone are the days of hacking together\n  scripts that just about get you mocked or partially working dependant services.\n  With  Clowder, you can deploy an instance of the cloud.redhat.com platform on your\n  local laptop, or in a dev cluster to use as you wish.\n\nClowder will provision resources depending on the mode choosen for each provider,\nand will return a consistently formatted JSON configuration document for each app\nto consume, leaving teams to focus more on writing code than differences between\nenvironments. The Clowder config client can assist with this and currently has support\nfor Python, Go, Javascript and Ruby.\n\nimage::docs/antora/modules/ROOT/images/config.svg[Configuration model]\n\n## Feature List\n\nClowder currently features support for:\n\n* Kafka Topics\n* Object Storage\n* PostgreSQL Database\n* In-Memory DB\n* Feature Flags\n* CronJob support\n* Jobs Support\n* Istio integration\n* TLS Sidecar\n* Simple Autoscaling\n\n## Roadmap\n\nOur current roadmap looks like this:\n\n* Autoscaling (possibly via https://github.com/kedacore/keda[Keda])\n* Dynamic routing for public web sevices\n* Automatic metrics configuration\n* Automatic network policy configuration\n* Standard, configurable alerting: Error rate, latency, Kafka topic lag, etc\n* Canary deployments (possibly via https://github.com/weaveworks/flagger[Flagger])\n* Operational remediations\n* Observe service status from a `ClowdApp` `status`, based on sevice dependencies.\n* Advanced logging configurations (e.g. logging messages to kafka topics)\n\n## Getting Clowder\n\n**Clowder is already running in pre-prod/prod environments.**\n\nTo run Clowder locally in Minikube, obtain and install\nhttps://minikube.sigs.k8s.io/docs/start/[Minikube].\n\nClowder is developed on Fedora and the kvm driver has been found to work best\ninitiated with the following options:\n\n[source,shell]\nminikube start --cpus 4 --disk-size 36GB --memory 16000MB --driver=kvm2 --addons registry --addons ingress  --addons=metrics-server --disable-optimizations\n\n[NOTE]\n====\nMac OS is also supported with the `virtualbox` and `hyperkit` drivers. A full\nguide xref:docs/antora/modules/ROOT/pages/macos.adoc[can be found here]\n====\n\nTo persist these changes for every minikube invocation, run the following:\n\n[source,shell]\nminikube config set cpus 4\nminikube config set memory 16000\nminikube config set disk-size 36GB\nminikube config set driver kvm2\n\nIf you encounter any kvm issues, please take a look\nxref:docs/antora/modules/ROOT/pages/developer-guide.adoc[at the troubleshooting guide]\n\nThe ``kube_setup.sh`` script then needs to be run by invoking\n\n[source,shell]\n....\n./build/kube_setup.sh\n....\n\nClowder can then be installed by running:\n\n[source,shell]\n----\n# Be sure to get the latest release in the link above!\nminikube kubectl -- apply -f $(curl https://api.github.com/repos/RedHatInsights/clowder/releases/latest | jq '.assets[0].browser_download_url' -r) --validate=false\n----\n\n## Usage\n\nTo use Clowder to deploy an application a ``ClowdEnvironment`` resource must be\npresent to define an environment. Once this has been deployed, a ``ClowdApp``\nresource is authored for the app and deployed alongside the ``ClowdEnvironment``.\n\nExample app developer workflow:\n\n. Install Clowder on a minikube environment.\n. Use ``kubectl apply -f clowdenv.yaml`` to apply a ``ClowdEnvironment`` resource\n  to the cluster.\n. Use ``kubectl apply -f clowdapp.yaml`` to apply a ``ClowdApp`` resource to the\n  cluster.\n\nMore details on how to do this are present in the xref:docs/antora/modules/usage/pages/getting-started.adoc[Getting Started] section\nof the documentation.\n\nhttps://redhatinsights.github.io/clowder/clowder/dev/api_reference.html[API Reference]\n\n## Building Clowder\n\nIf you want to run a version of Clowder other than the released version there\nare a few prerequisites you will need. To learn about developing Clowder please\nvisit the xref:docs/antora/modules/ROOT/pages/developer-guide.adoc[developing clowder] page for more detailed instructions.\n\n## History\n\nTo understand more about the design decisions made while developing Clowder,\nplease visit the xref:docs/antora/modules/ROOT/pages/clowder-design.adoc[design document]\n\n## Connect\n\nAny questions, please ask one of the Clowder development team\n\n* https://github.com/psav[@psav]\n* https://github.com/bsquizz[@bsquizz]\n* https://github.com/bennyturns[@bennyturns]\n* https://github.com/adamrdrew[@adamrdrew]\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRedHatInsights%2Fclowder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FRedHatInsights%2Fclowder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRedHatInsights%2Fclowder/lists"}