{"id":13742389,"url":"https://github.com/solo-io/envoy-operator","last_synced_at":"2025-05-07T21:40:33.571Z","repository":{"id":43121993,"uuid":"132199354","full_name":"solo-io/envoy-operator","owner":"solo-io","description":"Envoy Operator creates/configures/manages Envoy clusters atop Kubernetes","archived":false,"fork":false,"pushed_at":"2022-03-16T18:30:16.000Z","size":277,"stargazers_count":154,"open_issues_count":5,"forks_count":16,"subscribers_count":54,"default_branch":"master","last_synced_at":"2024-05-22T13:33:18.432Z","etag":null,"topics":[],"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/solo-io.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}},"created_at":"2018-05-04T23:52:29.000Z","updated_at":"2024-05-22T13:33:18.433Z","dependencies_parsed_at":"2022-09-01T22:30:56.056Z","dependency_job_id":null,"html_url":"https://github.com/solo-io/envoy-operator","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solo-io%2Fenvoy-operator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solo-io%2Fenvoy-operator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solo-io%2Fenvoy-operator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solo-io%2Fenvoy-operator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/solo-io","download_url":"https://codeload.github.com/solo-io/envoy-operator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252961082,"owners_count":21832179,"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":[],"created_at":"2024-08-03T05:00:31.177Z","updated_at":"2025-05-07T21:40:33.553Z","avatar_url":"https://github.com/solo-io.png","language":"Go","funding_links":[],"categories":["Repository is obsolete"],"sub_categories":["Awesome Operators in the Wild"],"readme":"\u003ch1 align=\"center\"\u003e\n    \u003cimg src=\"images/Envoy operator.png\" alt=\"Envoy operator\" width=\"419\" height=\"150\"\u003e\n\u003c/h1\u003e\n\nThe Envoy Operator project is a [Kubernetes Operator](https://coreos.com/operators/). Its purpose is to enable\neasy deployment of Envoy proxies using a high level declarative API.\n\nThe Envoy Operator currently supports deploying proxies as standalone pods, but will soon\nsupport injecting Envoy proxies as sidecar containers into existing pods to serve as transparent\nproxies for use in a service mesh [such as Istio](https://istio.io/).\n\nThe Envoy Operator was built using the [operator sdk](https://github.com/operator-framework/operator-sdk).\n\n# Quick usage\n\nDeploy the Operator:\n```\nkubectl create -f https://raw.githubusercontent.com/solo-io/envoy-operator/master/deploy/rbac.yaml\nkubectl create -f https://raw.githubusercontent.com/solo-io/envoy-operator/master/deploy/crd.yaml\nkubectl create -f https://raw.githubusercontent.com/solo-io/envoy-operator/master/deploy/operator.yaml\n```\n\nCreate an Envoy pod configured to use `ads-service.default.svc.cluster.local` as its [xDS  server](https://github.com/envoyproxy/data-plane-api/blob/master/XDS_PROTOCOL.md):\n```\ncat \u003c\u003cEOF | kubectl create -f -\napiVersion: \"envoy.solo.io/v1alpha1\"\nkind: \"Envoy\"\nmetadata:\n  name: \"myingress\"\nspec:\n  adsServer: ads-service.default.svc.cluster.local\n  adsPort: 8081\n  clusterIdTemplate: ingress\n  nodeIdTemplate: \"ingress-{{.PodName}}\"\nEOF\n```\n\n# How does it work?\nThe operator transforms the Envoy spec defined [here](pkg/apis/envoy/v1alpha1/types.go) to a deployment\nand a configmap that contains Envoy's static config file.\n\nNote that some of the parameters are templates. these templates can be filled with the kube downward api.\nExample:\n```\napiVersion: \"envoy.solo.io/v1alpha1\"\nkind: \"Envoy\"\nmetadata:\n  name: \"myingress\"\nspec:\n  ...\n  nodeIdTemplate: \"{{.PodName}}\"\n```\n\nThe node id given to each Envoy will match its pod name.\n\nThe full template interpolation interface is defined [here](pkg/downward/interface.go) and should cover all of the downward API (labels and annotations included).\n\n# Use cases\nThis operator's main uses case is with an ADS-enabled [xDS  server](https://github.com/envoyproxy/data-plane-api/blob/master/XDS_PROTOCOL.md) [such as Gloo](https://github.com/solo-io/gloo). We are looking to hear more from the community about what other uses cases are of interest.\n\n\n# Road Map\n- SSL \\ mTLS configuration\n- Pod Injection\n- Provide Locality information for zone aware routing.\n- Hot Restarts\n\n# Help\nPlease join us on our slack channel [https://slack.solo.io/](https://slack.solo.io/) with any questions, feedback, or suggestions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolo-io%2Fenvoy-operator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsolo-io%2Fenvoy-operator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolo-io%2Fenvoy-operator/lists"}