{"id":20645032,"url":"https://github.com/romanow/project-operator","last_synced_at":"2026-05-30T04:31:23.259Z","repository":{"id":146005715,"uuid":"557465973","full_name":"Romanow/project-operator","owner":"Romanow","description":"Kubernetes operator for Project resource","archived":false,"fork":false,"pushed_at":"2022-10-25T18:35:15.000Z","size":17,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-25T16:16:52.355Z","etag":null,"topics":["ansible","kubernetes-operator"],"latest_commit_sha":null,"homepage":"","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Romanow.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2022-10-25T18:34:57.000Z","updated_at":"2024-03-14T23:13:07.000Z","dependencies_parsed_at":"2023-05-24T22:13:04.802Z","dependency_job_id":null,"html_url":"https://github.com/Romanow/project-operator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Romanow/project-operator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Romanow%2Fproject-operator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Romanow%2Fproject-operator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Romanow%2Fproject-operator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Romanow%2Fproject-operator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Romanow","download_url":"https://codeload.github.com/Romanow/project-operator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Romanow%2Fproject-operator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33680522,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["ansible","kubernetes-operator"],"created_at":"2024-11-16T16:18:27.912Z","updated_at":"2026-05-30T04:31:23.230Z","avatar_url":"https://github.com/Romanow.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kubernetes Project operator with ansible\n\n##### Создание шаблона оператора\n\n```shell\n$ operator-sdk init \\\n    --plugins=ansible.sdk.operatorframework.io/v1 \\\n    --domain k8s.romanow \\\n    --generate-role \\\n    --generate-playbook\n\n$ operator-sdk create api \\\n    --group ops \\\n    --version v1alpha1 \\\n    --kind Project \\\n    --generate-role   \n```\n\n##### Custom Resource Definition\n\n[ops.k8s.romanow_projects.yaml](config/crd/bases/ops.k8s.romanow_projects.yaml)\n\n##### Sample\n\n[ops_v1alpha1_project.yaml](config/samples/ops_v1alpha1_project.yaml)\n\n### Тестирование\n\n```shell\n$ molecule converge\n```\n\n### Тестирование на локальном кластере\n\n```shell\n$ kind create cluster --config kind.yml\n\n$ make docker-build IMG=romanowalex/project-operator:v1.0\n\n$ make docker-push IMG=romanowalex/project-operator:v1.0 \n\n$ make deploy IMG=romanowalex/project-operator:v1.0\n\n$ kubectl get namespace\nNAME                      STATUS   AGE\ndefault                   Active   20m\neducation-prod            Active   10m\neducation-stage           Active   10m\nproject-operator-system   Active   18m\n\n$ kubectl describe namespace education-prod                                                                    master \nName:         education-prod\nLabels:       app.kubernetes.io/managed-by=project-operator\n              kubernetes.io/metadata.name=education-prod\nAnnotations:  \u003cnone\u003e\nStatus:       Active\n\nResource Quotas\n  Name:            resource-quota\n  Resource         Used  Hard\n  --------         ---   ---\n  limits.cpu       0     1\n  limits.memory    0     1Gi\n  requests.cpu     0     1\n  requests.memory  0     1Gi\n\nNo LimitRange resource.\n```\n\n## Ссылки\n\n1. [Собственный Kubernetes оператор за час (видео)](https://www.youtube.com/watch?v=tFzM-2pwL8A)\n2. [Собственный Kubernetes оператор за час (текст)](https://habr.com/ru/company/southbridge/blog/658451/)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fromanow%2Fproject-operator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fromanow%2Fproject-operator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fromanow%2Fproject-operator/lists"}