{"id":17066231,"url":"https://github.com/sapcc/kubernetes-operators","last_synced_at":"2025-04-05T01:08:49.734Z","repository":{"id":13292207,"uuid":"74126983","full_name":"sapcc/kubernetes-operators","owner":"sapcc","description":"Operators that automate common tasks for managing Openstack on Kubernetes.","archived":false,"fork":false,"pushed_at":"2025-03-14T00:02:26.000Z","size":66977,"stargazers_count":125,"open_issues_count":37,"forks_count":14,"subscribers_count":55,"default_branch":"master","last_synced_at":"2025-03-29T00:11:36.435Z","etag":null,"topics":["kubernetes","openstack","operators"],"latest_commit_sha":null,"homepage":null,"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/sapcc.png","metadata":{"files":{"readme":"README.md","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":"2016-11-18T12:14:57.000Z","updated_at":"2025-03-05T07:57:45.000Z","dependencies_parsed_at":"2023-10-15T06:02:55.136Z","dependency_job_id":"8ebd5f79-7118-4578-9ca8-fd4d1718f3bc","html_url":"https://github.com/sapcc/kubernetes-operators","commit_stats":{"total_commits":365,"total_committers":25,"mean_commits":14.6,"dds":0.6383561643835616,"last_synced_commit":"e8a6f6f77e4e1ed3a71354071e437a12fefd644b"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sapcc%2Fkubernetes-operators","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sapcc%2Fkubernetes-operators/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sapcc%2Fkubernetes-operators/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sapcc%2Fkubernetes-operators/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sapcc","download_url":"https://codeload.github.com/sapcc/kubernetes-operators/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247271532,"owners_count":20911587,"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":["kubernetes","openstack","operators"],"created_at":"2024-10-14T11:06:21.618Z","updated_at":"2025-04-05T01:08:49.705Z","avatar_url":"https://github.com/sapcc.png","language":"Go","funding_links":[],"categories":["Operators"],"sub_categories":["[Jenkins](#jenkins)"],"readme":"# Kubernetes Openstack Operators\n\nThis repository holds operators that automate common tasks for managing\nOpenstack on Kubernetes.\n\nWe define an operator as piece of software that uses Kubernetes primitives to\nmodel domain specific operational tasks. It extends Kubernetes using best\npractices and controller concepts to remote control the system through the API\non behalf of a Kubernetes user. Using the third party resource mechanismm, this\nallows us to detangle configuration changes and offloads the burden of\ngenerating and reconfiguring the system into a dynamic runtime component.\n\nSee also: [CoreOS - Introducing Operators](https://coreos.com/blog/introducing-operators.html)\n\n\n## Example \n\nAs an example, a [ThirdPartyResource](http://kubernetes.io/docs/user-guide/thirdpartyresources/) `BuildingBlock` drives the creation of\na set of Nova-Agents through a `DeploymentSpec`. The operator will watch for\nchanges on `BuildingBlock` events and create/update the specs for the nova\nagents. Additionally, it could remote control auxiliary systems, like sending a\nstatus notification when a builing block goes into maintenance mode.\n\nNow that building block configuration can be manages as Kubernetes spec, we\nhave a standarized way of changing the system's configuration - through\nKubernetes. This decoupling reduces the churn on the redeployment of the whole\nsystem and makes changes easy and documentable. \n\nAdditionally, \"change\" is now easy to compose even across system boundaries.\nA new building block can be onboarded with an automated process, directly from\na build pipeline, triggered by a Git commit. Even auto-registration is\na thinkable scenario now. The building block could come with an agent that\ntalks directly to Kubernetes.\n\n\n## Design Principles\n\nOperators are build in Go. They use [kubernetes/client-go](https://github.com/kubernetes/client-go) to interface with the \nKubernetes API. They follow the Kubernetes controller best practices and\nprogramatically manage resources. \n\nOperators have one job and do that job well. They are easy to reason about. \n\n\n## Prior Art\n\n  * [sapcc/kube-parrot](https://github.com/sapcc/kube-parrot)\n  * [coreos/etcd-operator](https://github.com/coreos/etcd-operator)\n  * [coreos/prometheus-operator](https://github.com/coreos/prometheus-operator)\n  * [kelseyhightower/kubernetes-certificate-manager](https://github.com/kelseyhightower/kube-cert-manager)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsapcc%2Fkubernetes-operators","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsapcc%2Fkubernetes-operators","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsapcc%2Fkubernetes-operators/lists"}