This PR contains the following updates: | Package | Change | Age | Confidence | |---|---|---|---| | [github.com/go-viper/mapstructure/v2](https://redirect.github.com/go-viper/mapstructure) | `v2.3.0` -> `v2.4.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | ### GitHub Vulnerability Alerts #### [GHSA-2464-8j7c-4cjm](https://redirect.github.com/go-viper/mapstructure/security/advisories/GHSA-2464-8j7c-4cjm) ### Summary Use of this library in a security-critical context may result in leaking sensitive information, if used to process sensitive fields. ### Details OpenBao (and presumably HashiCorp Vault) have surfaced error messages from `mapstructure` as follows: |
||
|---|---|---|
| .. | ||
| cmd | ||
| pkg/service | ||
| tests/loadtest | ||
| CHANGELOG.md | ||
| README.md | ||
| build.Dockerfile | ||
| go.mod | ||
| go.sum | ||
| main.go | ||
README.md
Kube Flagd Proxy
The kube flagd proxy acts as a pub sub for deployed flagd sidecar containers to subscribe to change events in FeatureFlag CRs.
The flagd-proxy API follows the flagd grpc spec, found in the buf schema registry, as such the existing grpc sync can be used to subscribe to the CR changes.
Deployment
The proxy can be deployed to any namespace, provided that the associated service account has been added to the flagd-kubernetes-sync cluster role binding. A sample deployment can be found in /config/deployments/flagd-proxy requiring the namespace flagd-proxy to be deployed.
kubectl create namespace flagd-proxy
kubectl apply -f ./config/deployments/flagd-proxy
Once the flagd-proxy has been deployed, any flagd instances subscribe to flag changes using the grpc sync, providing the target resource uri using the selector configuration field.
apiVersion: v1
kind: Pod
metadata:
name: flagd
spec:
containers:
- name: flagd
image: ghcr.io/open-feature/flagd:latest
ports:
- containerPort: 8013
args:
- start
- --sources
- '[{"uri":"flagd-proxy-svc.flagd-proxy.svc.cluster.local:8015","provider":"grpc","selector":"core.openfeature.dev/NAMESPACE/NAME"}]'
- --debug
---
apiVersion: core.openfeature.dev/v1beta1
kind: FeatureFlag
metadata:
name: end-to-end
spec:
flagSpec:
flags:
color:
state: ENABLED
variants:
red: CC0000
green: 00CC00
blue: 0000CC
yellow: yellow
defaultVariant: yellow
Once deployed, the client flagd instance will receive almost instant flag configuration change events.