{"id":19359219,"url":"https://github.com/shopstic/k8s-resource-replicator","last_synced_at":"2026-05-16T00:09:34.765Z","repository":{"id":103486582,"uuid":"335215006","full_name":"shopstic/k8s-resource-replicator","owner":"shopstic","description":"A Kubernetes operator to replicate resources (e.g ConfigMap, Secret, etc.) across namespaces, with optional JSON Patch custom transformations.","archived":false,"fork":false,"pushed_at":"2022-01-25T18:30:48.000Z","size":140,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-24T12:16:07.424Z","etag":null,"topics":["configmap","crd","jsonpatch","kubernetes","operator","secrets"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/shopstic.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":"2021-02-02T08:13:16.000Z","updated_at":"2023-09-30T21:47:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"e25857bf-207d-48d7-b8ff-a344ac4bf16c","html_url":"https://github.com/shopstic/k8s-resource-replicator","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/shopstic/k8s-resource-replicator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shopstic%2Fk8s-resource-replicator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shopstic%2Fk8s-resource-replicator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shopstic%2Fk8s-resource-replicator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shopstic%2Fk8s-resource-replicator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shopstic","download_url":"https://codeload.github.com/shopstic/k8s-resource-replicator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shopstic%2Fk8s-resource-replicator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33085159,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-15T20:25:35.270Z","status":"ssl_error","status_checked_at":"2026-05-15T20:25:34.732Z","response_time":103,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["configmap","crd","jsonpatch","kubernetes","operator","secrets"],"created_at":"2024-11-10T07:14:24.556Z","updated_at":"2026-05-16T00:09:30.725Z","avatar_url":"https://github.com/shopstic.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kubernetes Resource Replicator\n\n[![CI](https://github.com/shopstic/k8s-resource-replicator/actions/workflows/ci.yaml/badge.svg)](https://github.com/shopstic/k8s-resource-replicator/actions)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/shopstic/k8s-resource-replicator/blob/main/LICENSE)\n[![Docker](https://img.shields.io/docker/v/shopstic/k8s-resource-replicator?arch=amd64\u0026color=%23ab47bc\u0026label=Docker%20Image\u0026sort=date)](https://hub.docker.com/repository/docker/shopstic/k8s-resource-replicator/tags?page=1\u0026ordering=last_updated)\n\nA very lean and fast Kubernetes operator which enables replication of resources\n(e.g `ConfigMap`, `Secret`, etc.) across namespaces. It also supports\n[JSON Patch](http://jsonpatch.com/) operations to allow transformation of the\npayload with ease.\n\nExample of a CRD instance:\n\n```yaml\napiVersion: shopstic.com/v1\nkind: ReplicatedResource\nmetadata:\n  name: foo-secret-replication\n  namespace: bar\nspec:\n  kind: secret\n  fromNamespace: foo\n  fromName: some-foo-secret\n  toName: some-bar-secret\n  patches:\n    - op: replace\n      path: \"/stringData/one\"\n      value: replaced_one\n    - op: add\n      path: \"/stringData/ten\"\n      value: added_ten\n    - op: move\n      from: \"/stringData/three\"\n      path: \"/stringData/moved_three_again_here\"\n    - op: render\n      path: \"/stringData/templated\"\n      template: |-\n        copy_of_one: {{stringData.one}}\n        copy_of_ten: {{stringData.ten}}\n        something_else: whatever_here\n      replace: false\n```\n\nWhich will replicate a Secret named `some-foo-secret` from namespace `foo` to a\nSecret named `some-bar-secret` in namespace `bar` (the same namespace where this\n`ReplicatedResource` instance is created), while performing some transformations\nas specified as JSON Patch operations. Replication reacts almost instantaneously\nto any changes by leveraging \"watch\" capability of Kubernetes APIs.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshopstic%2Fk8s-resource-replicator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshopstic%2Fk8s-resource-replicator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshopstic%2Fk8s-resource-replicator/lists"}