{"id":19070024,"url":"https://github.com/ricoberger/sidecar-injector","last_synced_at":"2025-04-28T14:13:23.185Z","repository":{"id":40535106,"uuid":"367701493","full_name":"ricoberger/sidecar-injector","owner":"ricoberger","description":"Kubernetes Sidecar Injector","archived":false,"fork":false,"pushed_at":"2025-04-27T09:11:09.000Z","size":309,"stargazers_count":4,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-28T14:13:14.821Z","etag":null,"topics":["helm","injector","kubernetes","mutating-webhook","sidecar"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ricoberger.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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,"zenodo":null},"funding":{"github":["ricoberger"],"custom":["https://www.paypal.me/ricoberger"]}},"created_at":"2021-05-15T18:15:43.000Z","updated_at":"2025-04-27T09:11:13.000Z","dependencies_parsed_at":"2023-12-19T10:51:02.612Z","dependency_job_id":"8e4da410-53b2-4be7-9860-0c8368757662","html_url":"https://github.com/ricoberger/sidecar-injector","commit_stats":{"total_commits":83,"total_committers":5,"mean_commits":16.6,"dds":0.6024096385542168,"last_synced_commit":"28f767bc223b569b3899d685fdf5dfd283f8eca9"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ricoberger%2Fsidecar-injector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ricoberger%2Fsidecar-injector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ricoberger%2Fsidecar-injector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ricoberger%2Fsidecar-injector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ricoberger","download_url":"https://codeload.github.com/ricoberger/sidecar-injector/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251326851,"owners_count":21571636,"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":["helm","injector","kubernetes","mutating-webhook","sidecar"],"created_at":"2024-11-09T01:16:35.003Z","updated_at":"2025-04-28T14:13:23.176Z","avatar_url":"https://github.com/ricoberger.png","language":"Go","funding_links":["https://github.com/sponsors/ricoberger","https://www.paypal.me/ricoberger"],"categories":[],"sub_categories":[],"readme":"# Sidecar Injector\n\nThe sidecar injector can be used to inject a sidecar into a Pod via a\n[Mutating Webhook](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/).\n\n## Usage\n\nThe sidecar injector can be installed via Helm. To use the Helm\n[cert-manager](https://cert-manager.io) is required.\n\n```sh\nhelm upgrade --install sidecar-injector oci://ghcr.io/ricoberger/charts/sidecar-injector --version \u003cVERSION\u003e\n```\n\nThe configuration for the injected sidecars can be passed to the sidecar\ninjector via the `config` value in the Helm chart. The following configuration\ninjects the basic auth sidecar:\n\n```yaml\nconfig: |\n  injectors:\n    selector:\n      matchLabels:\n        useBasicAuth: \"true\"\n    containers:\n      - basic-auth\n    initContainers: []\n    volumes: []\n  containers:\n    - name: basic-auth\n      image: ghcr.io/ricoberger/sidecar-injector/basicauth:latest\n      imagePullPolicy: Always\n      env:\n        - name: BASIC_AUTH_PASSWORD\n          valueFrom:\n            secretKeyRef:\n              key: BASIC_AUTH_PASSWORD\n              name: basic-auth-credentials\n        - name: BASIC_AUTH_USERNAME\n          valueFrom:\n            secretKeyRef:\n              key: BASIC_AUTH_USERNAME\n              name: basic-auth-credentials\n      ports:\n        - name: http-auth\n          containerPort: 4180\n      livenessProbe:\n        httpGet:\n          port: 4180\n          path: /health\n        initialDelaySeconds: 1\n        timeoutSeconds: 5\n      readinessProbe:\n        httpGet:\n          port: 4180\n          path: /health\n        initialDelaySeconds: 1\n        timeoutSeconds: 5\n      resources:\n        requests:\n          cpu: 50m\n          memory: 64Mi\n        limits:\n          cpu: 50m\n          memory: 64Mi\n  volumes: []\n  environmentVariables: []\n```\n\nYou can also define a list of volumes and a list of environment variables, which\nshould be set from Pod annotations.\n\nWhen the sidecar injector is installed in your cluster you have to set some\nannotation for your Pods:\n\n- `sidecar-injector.ricoberger.de: enabled`: Enable the sidecar injection for a\n  Pod.\n- `sidecar-injector.ricoberger.de/containers: \u003cCONTAINER-NAME-1\u003e,\u003cCONTAINER-NAME-2\u003e`:\n  Comma-separated list of container names, which should be used from the\n  configuration file.\n- `sidecar-injector.ricoberger.de/init-containers: \u003cCONTAINER-NAME-1\u003e,\u003cCONTAINER-NAME-2\u003e`:\n  Comma-separated list of container names, which should be used from the\n  configuration file as init containers.\n- `sidecar-injector.ricoberger.de/volumes: \u003cVOLUME-NAME-1\u003e,\u003cVOLUME-NAME-2\u003e`:\n  Comma-separated list of volume names, which should be used from the\n  configuration file.\n\nThe sidecars which should be injected can also be defined via the `injectors`\nfield in the configuration. This can be used to inject sidecars without the need\nof defining them via annotations. Instead the `selector` can be used to defined\nthe Pods which should have a sidecar injected.\n\n### Environment Variables\n\nIt is possible to set additional environment variables for the injected sidecar\nvia annotations. The environment variables which can be injected must be defined\nin the `environmentVariables` section in the config, e.g.\n\n```yaml\nconfig: |\n  environmentVariables:\n    - name: ENV_NAME\n      container: \u003cCONTAINER-NAME\u003e\n      annotation: sidecar-injector.ricoberger.de/envname\n```\n\nWith this configuration a user can then use the\n`sidecar-injector.ricoberger.de/envname` annotation to set the value of the\n`ENV_NAME` environment variable in the specified `\u003cCONTAINER-NAME\u003e`:\n\n```yaml\n---\nkind: Deployment\napiVersion: apps/v1\nmetadata:\n  name: example\n  namespace: default\nspec:\n  selector:\n    matchLabels:\n      app: example\n  template:\n    metadata:\n      annotations:\n        sidecar-injector.ricoberger.de: enabled\n        sidecar-injector.ricoberger.de/envname: envvalue\n```\n\n### Resources\n\nSince the injected sidecars might need different resources depending on the\nservice where they are injected it is also possible to overwrite the CPU\nRequests / Limits and Memory Requests and Limits via an annotation:\n\n- `sidecar-injector.ricoberger.de/containers-\u003cCONTAINER-NAME\u003e-cpurequests`\n- `sidecar-injector.ricoberger.de/containers-\u003cCONTAINER-NAME\u003e-cpulimits`\n- `sidecar-injector.ricoberger.de/containers-\u003cCONTAINER-NAME\u003e-memoryrequests`\n- `sidecar-injector.ricoberger.de/containers-\u003cCONTAINER-NAME\u003e-memorylimits`\n\nThe same can be done for init containers by using the following annotations:\n\n- `sidecar-injector.ricoberger.de/init-containers-\u003cCONTAINER-NAME\u003e-cpurequests`\n- `sidecar-injector.ricoberger.de/init-containers-\u003cCONTAINER-NAME\u003e-cpulimits`\n- `sidecar-injector.ricoberger.de/init-containers-\u003cCONTAINER-NAME\u003e-memoryrequests`\n- `sidecar-injector.ricoberger.de/init-containers-\u003cCONTAINER-NAME\u003e-memorylimits`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fricoberger%2Fsidecar-injector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fricoberger%2Fsidecar-injector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fricoberger%2Fsidecar-injector/lists"}