{"id":22070963,"url":"https://github.com/vshn/espejo","last_synced_at":"2025-07-24T08:36:27.095Z","repository":{"id":40646357,"uuid":"173784870","full_name":"vshn/espejo","owner":"vshn","description":"OpenShift and Kubernetes Object Syncer","archived":false,"fork":false,"pushed_at":"2024-11-30T07:09:51.000Z","size":30076,"stargazers_count":11,"open_issues_count":11,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-11-30T08:23:52.335Z","etag":null,"topics":["kubernetes","kubernetes-operator","openshift","openshift-operator","operator-sdk","vshn-project-ocp"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vshn.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":"2019-03-04T16:52:54.000Z","updated_at":"2024-06-13T13:29:19.000Z","dependencies_parsed_at":"2023-09-24T21:46:24.643Z","dependency_job_id":"3a521ae0-c86f-4897-bae9-0095bb71f640","html_url":"https://github.com/vshn/espejo","commit_stats":{"total_commits":113,"total_committers":5,"mean_commits":22.6,"dds":0.5132743362831859,"last_synced_commit":"ad6e6dea6131066dc4ea8b8812c41ad91175d16a"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vshn%2Fespejo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vshn%2Fespejo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vshn%2Fespejo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vshn%2Fespejo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vshn","download_url":"https://codeload.github.com/vshn/espejo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227423533,"owners_count":17775183,"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","kubernetes-operator","openshift","openshift-operator","operator-sdk","vshn-project-ocp"],"created_at":"2024-11-30T20:20:17.072Z","updated_at":"2024-11-30T20:20:17.585Z","avatar_url":"https://github.com/vshn.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [Espejo](https://es.wikipedia.org/wiki/Espejo) (object-syncer)\n\n[![Build](https://img.shields.io/github/workflow/status/vshn/espejo/Test)][build]\n![Go version](https://img.shields.io/github/go-mod/go-version/vshn/espejo)\n![Kubernetes version](https://img.shields.io/badge/k8s-v1.20-blue)\n[![Version](https://img.shields.io/github/v/release/vshn/espejo)][releases]\n[![Maintainability](https://img.shields.io/codeclimate/maintainability/vshn/espejo)][codeclimate]\n[![GitHub downloads](https://img.shields.io/github/downloads/vshn/espejo/total)][releases]\n[![Docker image](https://img.shields.io/docker/pulls/vshn/espejo)][dockerhub]\n[![License](https://img.shields.io/github/license/vshn/espejo)][license]\n\nThe espejo tool (which means 'mirror' in Spanish) syncs objects from a SyncConfig CRD to multiple namespaces. The idea is to replace OpenShift's [project templates](https://docs.openshift.com/container-platform/3.11/admin_guide/managing_projects.html#modifying-the-template-for-new-projects) with a more flexible and robust solution.\n\n## CustomResourceDefinitions\n\nThe operator introduces a CRD called `SyncConfig` to configure the objects which should be synced.\n[This `SyncConfig`](config/samples/complete-syncconfig.yaml) will create a `Service`, `Endpoints` and `NetworkPolicy` object in all namespaces which mach the [label selector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#labelselector-v1-meta) OR one of the name selectors.\nTo ensure objects are deleted, set the `prune` parameter to `true` (default is `false`)\n\n### Parameters\n\nStrings within object definitions can be replaced with dynamic values with parameters. The following parameters can be used:\n\n| Parameter Name               | Description                  |\n|------------------------------|------------------------------|\n| `${PROJECT_NAME}`            | Name of the target namespace |\n\n## Development\n\nThe Operator is implemented with the [Operator SDK](https://github.com/operator-framework/operator-sdk) ([Installation](https://sdk.operatorframework.io/docs/installation/)).\n\n### Build\n\n* `make build` creates the `espejo` binary. Go is required.\n* `make docker-build` creates the Docker image with `docker.io/vshn/espejo:latest` and `quay.io/vshn/espejo:latest` tags.\n* `make test` runs all unit tests.\n* `make integration-test` runs the integration tests.\n\n### Run E2E tests\n\nYou need `node` and `npm` to run the tests, as it runs with [DETIK][detik].\n\nTo run e2e tests, execute:\n\n```bash\nmake e2e-test\n```\n\n[build]: https://github.com/vshn/espejo/actions?query=workflow%3ATest\n[releases]: https://github.com/vshn/espejo/releases\n[license]: https://github.com/vshn/espejo/blob/master/LICENSE\n[dockerhub]: https://hub.docker.com/r/vshn/espejo\n[codeclimate]: https://codeclimate.com/github/vshn/espejo\n\n[detik]: https://github.com/bats-core/bats-detik\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvshn%2Fespejo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvshn%2Fespejo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvshn%2Fespejo/lists"}