diff --git a/.github/scripts/strip-kustomize-helm.sh b/.github/scripts/strip-kustomize-helm.sh index 7647a83f0..62e47a015 100755 --- a/.github/scripts/strip-kustomize-helm.sh +++ b/.github/scripts/strip-kustomize-helm.sh @@ -1,18 +1,26 @@ -#!/bin/bash +#!/usr/bin/env bash # This script is a hack to support helm flow control in kustomize overlays, which would otherwise break them. # It allows us to render helm template bindings and add newlines. # For instance, it transforms "___{{ .Value.myValue }}___" to {{ .Value.myValue }}. -# It also adds newlines wherever ___newline___ is found. - -CHARTS_DIR='./chart/open-feature-operator/templates'; +# It also adds newlines wherever ___newline___ is found, and other operations. See +# sed_expressions below. echo 'Running strip-kustomize-helm.sh script' -filenames=`find $CHARTS_DIR -name "*.yaml"` -for file in $filenames; do - sed -i "s/___newline___/\\n/g" $file - sed -i "s/\"___//g" $file - sed -i "s/___\"//g" $file - sed -i "s/___//g" $file +CHARTS_DIR='./chart/open-feature-operator/templates' +# Careful! Ordering of these expressions matter! +sed_expressions=( + "s/___newline___/\\n/g" + "s/___space___/ /g" + "s/\"___//g" + "s/___\"//g" + "/___delete_me___/d" + "s/___//g" +) +find $CHARTS_DIR -name "*.yaml" | while read file; do + for expr in "${sed_expressions[@]}"; do + sed -i "$expr" "$file" + done done -echo 'Done running strip-kustomize-helm.sh script' \ No newline at end of file + +echo 'Done running strip-kustomize-helm.sh script' diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index c64e28430..66f7caec4 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -29,7 +29,7 @@ jobs: - name: Check out code uses: actions/checkout@v4 - - uses: actions/setup-go@v4 + - uses: actions/setup-go@v5 with: go-version: ${{ env.GO_VERSION }} check-latest: true diff --git a/.github/workflows/pr-checks.yml b/.github/workflows/pr-checks.yml index ccaf12149..8d5071031 100644 --- a/.github/workflows/pr-checks.yml +++ b/.github/workflows/pr-checks.yml @@ -22,7 +22,7 @@ jobs: runs-on: ubuntu-22.04 steps: - name: Install Go - uses: actions/setup-go@v4 + uses: actions/setup-go@v5 with: go-version: ${{ env.DEFAULT_GO_VERSION }} diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 51cbf3557..1f52bc813 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -52,7 +52,7 @@ jobs: ref: ${{ needs.release-please.outputs.release_tag_name }} - name: Log in to the Container registry - uses: docker/login-action@a9794064588be971151ec5e7144cb535bcb56e36 + uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -60,7 +60,7 @@ jobs: - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@f7b4ed12385588c3f9bc252f0a2b520d83b52d48 + uses: docker/metadata-action@60a0d343a0d8a18aedee9d34e62251f752153bdb with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} @@ -118,7 +118,7 @@ jobs: ref: ${{ needs.release-please.outputs.release_tag_name }} - name: Setup go - uses: actions/setup-go@v4 + uses: actions/setup-go@v5 with: go-version: ${{ env.DEFAULT_GO_VERSION }} - run: | @@ -155,7 +155,7 @@ jobs: ref: ${{ env.GITHUB_PAGES_BRANCH }} - name: Setup go - uses: actions/setup-go@v4 + uses: actions/setup-go@v5 with: go-version: ${{ env.DEFAULT_GO_VERSION }} diff --git a/.github/workflows/validate-helm-docs.yml b/.github/workflows/validate-helm-docs.yml index c3b5b330f..c168ad399 100644 --- a/.github/workflows/validate-helm-docs.yml +++ b/.github/workflows/validate-helm-docs.yml @@ -17,7 +17,7 @@ jobs: uses: actions/checkout@v4 - name: Set up Node - uses: actions/setup-node@v3.8.2 + uses: actions/setup-node@v4.0.3 with: node-version: 16 diff --git a/.release-please-manifest.json b/.release-please-manifest.json index e66a82c26..f50949e84 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,4 +1,4 @@ { - ".": "0.7.0", - "apis": "0.2.43" + ".": "0.7.1", + "apis": "0.2.44" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 613c29b4a..6d978e479 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,29 @@ # Changelog +## [0.7.1](https://github.com/open-feature/open-feature-operator/compare/v0.7.0...v0.7.1) (2024-07-23) + + +### โœจ New Features + +* Add labels and annotations to pods. ([#681](https://github.com/open-feature/open-feature-operator/issues/681)) ([7ec44a6](https://github.com/open-feature/open-feature-operator/commit/7ec44a6a06ce570bf80d2cf6d78632f61a73fe89)) + + +### ๐Ÿ› Bug Fixes + +* **deps:** update golang.org/x/exp digest to 8a7402a ([#691](https://github.com/open-feature/open-feature-operator/issues/691)) ([db53303](https://github.com/open-feature/open-feature-operator/commit/db53303d14ca0fada38db97981dd5ed95d95f7ad)) +* **deps:** update module github.com/stretchr/testify to v1.9.0 ([#671](https://github.com/open-feature/open-feature-operator/issues/671)) ([1d2713d](https://github.com/open-feature/open-feature-operator/commit/1d2713dad6381e56aa3b552c33e1cb3513574a6e)) + + +### ๐Ÿงน Chore + +* **deps:** update actions/setup-go action to v5 ([#673](https://github.com/open-feature/open-feature-operator/issues/673)) ([b27a9eb](https://github.com/open-feature/open-feature-operator/commit/b27a9eb7163b23c4febec9721126639297a41217)) +* **deps:** update actions/setup-node action to v4 ([#675](https://github.com/open-feature/open-feature-operator/issues/675)) ([6f77899](https://github.com/open-feature/open-feature-operator/commit/6f77899bdefefdf43f4cee02c6f1def3ccaf758a)) +* **deps:** update docker/login-action digest to 9780b0c ([#605](https://github.com/open-feature/open-feature-operator/issues/605)) ([486a4fd](https://github.com/open-feature/open-feature-operator/commit/486a4fd8b2d647d1666f745ed07a601fcc8b7af8)) +* **deps:** update docker/metadata-action digest to 60a0d34 ([#690](https://github.com/open-feature/open-feature-operator/issues/690)) ([473929c](https://github.com/open-feature/open-feature-operator/commit/473929c3d80f1abe9a9dd92e5a4db542c8b32da8)) +* **deps:** update module golang.org/x/net to v0.27.0 ([#669](https://github.com/open-feature/open-feature-operator/issues/669)) ([0fdd6db](https://github.com/open-feature/open-feature-operator/commit/0fdd6db6e1809f3e94fe68ca6d3094725ce51b4c)) +* **deps:** update open-feature/flagd ([#689](https://github.com/open-feature/open-feature-operator/issues/689)) ([0d331a9](https://github.com/open-feature/open-feature-operator/commit/0d331a9bc5db752cb3aa49f7ce5afc0830f115fe)) +* release apis 0.2.44 ([#688](https://github.com/open-feature/open-feature-operator/issues/688)) ([9997ea4](https://github.com/open-feature/open-feature-operator/commit/9997ea443ecc025afd7aff2e33e92fb05acb3b1a)) + ## [0.7.0](https://github.com/open-feature/open-feature-operator/compare/v0.6.1...v0.7.0) (2024-07-04) diff --git a/Makefile b/Makefile index 01c8a213a..64ff675f1 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ ARCH?=amd64 IMG?=$(RELEASE_REGISTRY)/$(RELEASE_IMAGE) # customize overlay to be used in the build, DEFAULT or HELM KUSTOMIZE_OVERLAY ?= DEFAULT -CHART_VERSION=v0.7.0# x-release-please-version +CHART_VERSION=v0.7.1# x-release-please-version # ENVTEST_K8S_VERSION refers to the version of kubebuilder assets to be downloaded by envtest binary. ENVTEST_K8S_VERSION = 1.26.1 WAIT_TIMEOUT_SECONDS?=60 @@ -252,7 +252,7 @@ set-helm-overlay: helm-package: set-helm-overlay generate release-manifests helm mkdir -p chart/open-feature-operator/templates/crds mv chart/open-feature-operator/templates/*customresourcedefinition* chart/open-feature-operator/templates/crds - sh .github/scripts/strip-kustomize-helm.sh + .github/scripts/strip-kustomize-helm.sh $(HELM) package --version $(CHART_VERSION) chart/open-feature-operator mkdir -p charts && mv open-feature-operator-*.tgz charts $(HELM) repo index --url https://open-feature.github.io/open-feature-operator/charts charts diff --git a/apis/CHANGELOG.md b/apis/CHANGELOG.md index 00cb1ee03..38c287631 100644 --- a/apis/CHANGELOG.md +++ b/apis/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [0.2.44](https://github.com/open-feature/open-feature-operator/compare/apis/v0.2.43...apis/v0.2.44) (2024-07-23) + + +### ๐Ÿ› Bug Fixes + +* **deps:** update module github.com/stretchr/testify to v1.9.0 ([#671](https://github.com/open-feature/open-feature-operator/issues/671)) ([1d2713d](https://github.com/open-feature/open-feature-operator/commit/1d2713dad6381e56aa3b552c33e1cb3513574a6e)) + + +### ๐Ÿงน Chore + +* **deps:** update open-feature/flagd ([#689](https://github.com/open-feature/open-feature-operator/issues/689)) ([0d331a9](https://github.com/open-feature/open-feature-operator/commit/0d331a9bc5db752cb3aa49f7ce5afc0830f115fe)) + ## [0.2.43](https://github.com/open-feature/open-feature-operator/compare/apis/v0.2.42...apis/v0.2.43) (2024-06-06) diff --git a/apis/go.mod b/apis/go.mod index fcf8093d7..954c9cecf 100644 --- a/apis/go.mod +++ b/apis/go.mod @@ -3,8 +3,8 @@ module github.com/open-feature/open-feature-operator/apis go 1.21 require ( - github.com/open-feature/flagd-schemas v0.2.9-0.20240527214546-61523e5efe3e - github.com/stretchr/testify v1.8.4 + github.com/open-feature/flagd-schemas v0.2.9-0.20240708163558-2aa89b314322 + github.com/stretchr/testify v1.9.0 github.com/xeipuuv/gojsonschema v1.2.0 k8s.io/api v0.28.10 k8s.io/apimachinery v0.28.10 diff --git a/apis/go.sum b/apis/go.sum index 001386994..dd456df3e 100644 --- a/apis/go.sum +++ b/apis/go.sum @@ -81,6 +81,8 @@ github.com/open-feature/flagd-schemas v0.2.9-0.20240408192555-ea4f119d2bd7 h1:oP github.com/open-feature/flagd-schemas v0.2.9-0.20240408192555-ea4f119d2bd7/go.mod h1:WKtwo1eW9/K6D+4HfgTXWBqCDzpvMhDa5eRxW7R5B2U= github.com/open-feature/flagd-schemas v0.2.9-0.20240527214546-61523e5efe3e h1:j1xFE8kIrFXf4fZtJUsR457rEG4mxsq2YCVyy92I0HU= github.com/open-feature/flagd-schemas v0.2.9-0.20240527214546-61523e5efe3e/go.mod h1:WKtwo1eW9/K6D+4HfgTXWBqCDzpvMhDa5eRxW7R5B2U= +github.com/open-feature/flagd-schemas v0.2.9-0.20240708163558-2aa89b314322 h1:5zbNHqcZAc9jlhSrC0onuVL2RPpvYcDaNvW2wOZBfUY= +github.com/open-feature/flagd-schemas v0.2.9-0.20240708163558-2aa89b314322/go.mod h1:WKtwo1eW9/K6D+4HfgTXWBqCDzpvMhDa5eRxW7R5B2U= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -107,6 +109,8 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= diff --git a/chart/open-feature-operator/Chart.yaml b/chart/open-feature-operator/Chart.yaml index 400e81178..31910e48d 100755 --- a/chart/open-feature-operator/Chart.yaml +++ b/chart/open-feature-operator/Chart.yaml @@ -13,12 +13,12 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: "v0.7.0" # x-release-please-version +version: "v0.7.1" # x-release-please-version # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "v0.7.0" # x-release-please-version +appVersion: "v0.7.1" # x-release-please-version home: https://openfeature.dev icon: https://open-feature.github.io/open-feature-operator/chart/open-feature-operator/openfeature-logo.png diff --git a/chart/open-feature-operator/README.md b/chart/open-feature-operator/README.md index 4d0a07cba..4903d5c31 100644 --- a/chart/open-feature-operator/README.md +++ b/chart/open-feature-operator/README.md @@ -97,6 +97,8 @@ The command removes all the Kubernetes components associated with the chart and | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ | | `defaultNamespace` | To override the namespace use the `--namespace` flag. This default is provided to ensure that the kustomize build charts in `/templates` deploy correctly when no `namespace` is provided via the `-n` flag. | `open-feature-operator-system` | | `imagePullSecrets` | Array of ImagePullSecret objects containing credentials for images pulled by the operator (flagdProxyConfiguration.image, flagdConfiguration.image, controllerManager.manager.image, controllerManager.kubeRbacProxy.image). Example: imagePullSecrets: [{"name": "my-secret"}] | `[]` | +| `labels` | Labels to apply to all of the pods in the operator. | `{}` | +| `annotations` | Annotations to apply to all of the pods in the operator. | `{}` | ### Sidecar configuration @@ -106,7 +108,7 @@ The command removes all the Kubernetes components associated with the chart and | `sidecarConfiguration.managementPort` | Sets the value of the `XXX_MANAGEMENT_PORT` environment variable for the injected sidecar. | `8014` | | `sidecarConfiguration.socketPath` | Sets the value of the `XXX_SOCKET_PATH` environment variable for the injected sidecar. | `""` | | `sidecarConfiguration.image.repository` | Sets the image for the injected sidecar. | `ghcr.io/open-feature/flagd` | -| `sidecarConfiguration.image.tag` | Sets the version tag for the injected sidecar. | `v0.10.3` | +| `sidecarConfiguration.image.tag` | Sets the version tag for the injected sidecar. | `v0.11.1` | | `sidecarConfiguration.providerArgs` | Used to append arguments to the sidecar startup command. This value is a comma separated string of key values separated by '=', e.g. `key=value,key2=value2` results in the appending of `--sync-provider-args key=value --sync-provider-args key2=value2`. | `""` | | `sidecarConfiguration.envVarPrefix` | Sets the prefix for all environment variables set in the injected sidecar. | `FLAGD` | | `sidecarConfiguration.defaultSyncProvider` | Sets the value of the `XXX_SYNC_PROVIDER` environment variable for the injected sidecar container. There are 4 valid sync providers: `kubernetes`, `grpc`, `file` and `http`. | `kubernetes` | @@ -141,7 +143,7 @@ The command removes all the Kubernetes components associated with the chart and | `flagdProxyConfiguration.port` | Sets the port to expose the sync API on. | `8015` | | `flagdProxyConfiguration.managementPort` | Sets the port to expose the management API on. | `8016` | | `flagdProxyConfiguration.image.repository` | Sets the image for the flagd-proxy deployment. | `ghcr.io/open-feature/flagd-proxy` | -| `flagdProxyConfiguration.image.tag` | Sets the tag for the flagd-proxy deployment. | `v0.6.2` | +| `flagdProxyConfiguration.image.tag` | Sets the tag for the flagd-proxy deployment. | `v0.6.4` | | `flagdProxyConfiguration.debugLogging` | Controls the addition of the `--debug` flag to the container startup arguments. | `false` | ### Flagd configuration @@ -153,7 +155,7 @@ The command removes all the Kubernetes components associated with the chart and | `flagdConfiguration.syncPort` | Sets the port to expose the sync API on. | `8015` | | `flagdConfiguration.managementPort` | Sets the port to expose the management API on. | `8014` | | `flagdConfiguration.image.repository` | Sets the image for the flagd deployment. | `ghcr.io/open-feature/flagd` | -| `flagdConfiguration.image.tag` | Sets the tag for the flagd deployment. | `v0.10.3` | +| `flagdConfiguration.image.tag` | Sets the tag for the flagd deployment. | `v0.11.1` | | `flagdConfiguration.debugLogging` | Controls the addition of the `--debug` flag to the container startup arguments. | `false` | ### Operator resource configuration @@ -167,7 +169,7 @@ The command removes all the Kubernetes components associated with the chart and | `controllerManager.kubeRbacProxy.resources.requests.cpu` | Sets cpu resource requests for kube-rbac-proxy. | `5m` | | `controllerManager.kubeRbacProxy.resources.requests.memory` | Sets memory resource requests for kube-rbac-proxy. | `64Mi` | | `controllerManager.manager.image.repository` | Sets the image for the operator. | `ghcr.io/open-feature/open-feature-operator` | -| `controllerManager.manager.image.tag` | Sets the version tag for the operator. | `v0.6.1` | +| `controllerManager.manager.image.tag` | Sets the version tag for the operator. | `v0.7.0` | | `controllerManager.manager.resources.limits.cpu` | Sets cpu resource limits for operator. | `500m` | | `controllerManager.manager.resources.limits.memory` | Sets memory resource limits for operator. | `128Mi` | | `controllerManager.manager.resources.requests.cpu` | Sets cpu resource requests for operator. | `10m` | @@ -180,3 +182,4 @@ The command removes all the Kubernetes components associated with the chart and | `managerConfig.controllerManagerConfigYaml.metrics.bindAddress` | Sets the bind address for metrics (combined with bindPort). | `127.0.0.1` | | `managerConfig.controllerManagerConfigYaml.metrics.bindPort` | Sets the bind port for metrics. | `8080` | | `managerConfig.controllerManagerConfigYaml.webhook.port` | Sets the bind address for webhook. | `9443` | + diff --git a/chart/open-feature-operator/values.yaml b/chart/open-feature-operator/values.yaml index 42bec3d8d..b37beb7ec 100644 --- a/chart/open-feature-operator/values.yaml +++ b/chart/open-feature-operator/values.yaml @@ -4,6 +4,10 @@ defaultNamespace: open-feature-operator-system ## @param imagePullSecrets Array of ImagePullSecret objects containing credentials for images pulled by the operator (flagdProxyConfiguration.image, flagdConfiguration.image, controllerManager.manager.image, controllerManager.kubeRbacProxy.image). Example: imagePullSecrets: [{"name": "my-secret"}] imagePullSecrets: [] +## @param labels Labels to apply to all of the pods in the operator. +labels: {} +## @param annotations Annotations to apply to all of the pods in the operator. +annotations: {} ## @section Sidecar configuration sidecarConfiguration: @@ -18,7 +22,7 @@ sidecarConfiguration: ## @param sidecarConfiguration.image.repository Sets the image for the injected sidecar. repository: "ghcr.io/open-feature/flagd" ## @param sidecarConfiguration.image.tag Sets the version tag for the injected sidecar. - tag: v0.10.3 + tag: v0.11.1 ## @param sidecarConfiguration.providerArgs Used to append arguments to the sidecar startup command. This value is a comma separated string of key values separated by '=', e.g. `key=value,key2=value2` results in the appending of `--sync-provider-args key=value --sync-provider-args key2=value2`. providerArgs: "" ## @param sidecarConfiguration.envVarPrefix Sets the prefix for all environment variables set in the injected sidecar. @@ -79,7 +83,7 @@ flagdProxyConfiguration: ## @param flagdProxyConfiguration.image.repository Sets the image for the flagd-proxy deployment. repository: "ghcr.io/open-feature/flagd-proxy" ## @param flagdProxyConfiguration.image.tag Sets the tag for the flagd-proxy deployment. - tag: v0.6.2 + tag: v0.6.4 ## @param flagdProxyConfiguration.debugLogging Controls the addition of the `--debug` flag to the container startup arguments. debugLogging: false @@ -97,7 +101,7 @@ flagdConfiguration: ## @param flagdConfiguration.image.repository Sets the image for the flagd deployment. repository: "ghcr.io/open-feature/flagd" ## @param flagdConfiguration.image.tag Sets the tag for the flagd deployment. - tag: v0.10.3 + tag: v0.11.1 ## @param flagdConfiguration.debugLogging Controls the addition of the `--debug` flag to the container startup arguments. debugLogging: false @@ -125,7 +129,7 @@ controllerManager: ## @param controllerManager.manager.image.repository Sets the image for the operator. repository: ghcr.io/open-feature/open-feature-operator ## @param controllerManager.manager.image.tag Sets the version tag for the operator. - tag: v0.7.0 # x-release-please-version + tag: v0.7.1 # x-release-please-version resources: limits: ## @param controllerManager.manager.resources.limits.cpu Sets cpu resource limits for operator. diff --git a/common/flagdproxy/flagdproxy.go b/common/flagdproxy/flagdproxy.go index eefdb8abc..28131dd45 100644 --- a/common/flagdproxy/flagdproxy.go +++ b/common/flagdproxy/flagdproxy.go @@ -8,6 +8,7 @@ import ( "github.com/go-logr/logr" "github.com/open-feature/open-feature-operator/common" "github.com/open-feature/open-feature-operator/common/types" + "golang.org/x/exp/maps" appsV1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/errors" @@ -39,9 +40,11 @@ type FlagdProxyConfiguration struct { Namespace string OperatorDeploymentName string ImagePullSecrets []string + Labels map[string]string + Annotations map[string]string } -func NewFlagdProxyConfiguration(env types.EnvConfig, imagePullSecrets []string) *FlagdProxyConfiguration { +func NewFlagdProxyConfiguration(env types.EnvConfig, imagePullSecrets []string, labels map[string]string, annotations map[string]string) *FlagdProxyConfiguration { return &FlagdProxyConfiguration{ Image: env.FlagdProxyImage, Tag: env.FlagdProxyTag, @@ -51,6 +54,8 @@ func NewFlagdProxyConfiguration(env types.EnvConfig, imagePullSecrets []string) ManagementPort: env.FlagdProxyManagementPort, DebugLogging: env.FlagdProxyDebugLogging, ImagePullSecrets: imagePullSecrets, + Labels: labels, + Annotations: annotations, } } @@ -151,6 +156,21 @@ func (f *FlagdProxyHandler) newFlagdProxyManifest(ownerReference *metav1.OwnerRe Name: secret, }) } + flagdLabels := map[string]string{ + "app": FlagdProxyDeploymentName, + "app.kubernetes.io/name": FlagdProxyDeploymentName, + "app.kubernetes.io/managed-by": common.ManagedByAnnotationValue, + "app.kubernetes.io/version": f.config.Tag, + } + if len(f.config.Labels) > 0 { + maps.Copy(flagdLabels, f.config.Labels) + } + + // No "built-in" annotations to merge at this time. If adding them follow the same pattern as labels. + flagdAnnotations := map[string]string{} + if len(f.config.Annotations) > 0 { + maps.Copy(flagdAnnotations, f.config.Annotations) + } return &appsV1.Deployment{ ObjectMeta: metav1.ObjectMeta{ @@ -172,12 +192,8 @@ func (f *FlagdProxyHandler) newFlagdProxyManifest(ownerReference *metav1.OwnerRe }, Template: corev1.PodTemplateSpec{ ObjectMeta: metav1.ObjectMeta{ - Labels: map[string]string{ - "app": FlagdProxyDeploymentName, - "app.kubernetes.io/name": FlagdProxyDeploymentName, - "app.kubernetes.io/managed-by": common.ManagedByAnnotationValue, - "app.kubernetes.io/version": f.config.Tag, - }, + Labels: flagdLabels, + Annotations: flagdAnnotations, }, Spec: corev1.PodSpec{ ServiceAccountName: FlagdProxyServiceAccountName, diff --git a/common/flagdproxy/flagdproxy_test.go b/common/flagdproxy/flagdproxy_test.go index ce324b2ed..8ab7d223c 100644 --- a/common/flagdproxy/flagdproxy_test.go +++ b/common/flagdproxy/flagdproxy_test.go @@ -21,12 +21,22 @@ import ( var pullSecrets = []string{"test-pullSecret"} +var labels = map[string]string{ + "label1": "labelValue1", + "label2": "labelValue2", +} + +var annotations = map[string]string{ + "annotation1": "annotationValue1", + "annotation2": "annotationValue2", +} + func TestNewFlagdProxyConfiguration(t *testing.T) { kpConfig := NewFlagdProxyConfiguration(types.EnvConfig{ FlagdProxyPort: 8015, FlagdProxyManagementPort: 8016, - }, pullSecrets) + }, pullSecrets, labels, annotations) require.NotNil(t, kpConfig) require.Equal(t, &FlagdProxyConfiguration{ @@ -35,6 +45,8 @@ func TestNewFlagdProxyConfiguration(t *testing.T) { DebugLogging: false, OperatorDeploymentName: common.OperatorDeploymentName, ImagePullSecrets: pullSecrets, + Labels: labels, + Annotations: annotations, }, kpConfig) } @@ -48,7 +60,7 @@ func TestNewFlagdProxyConfiguration_OverrideEnvVars(t *testing.T) { FlagdProxyDebugLogging: true, } - kpConfig := NewFlagdProxyConfiguration(env, pullSecrets) + kpConfig := NewFlagdProxyConfiguration(env, pullSecrets, labels, annotations) require.NotNil(t, kpConfig) require.Equal(t, &FlagdProxyConfiguration{ @@ -60,11 +72,13 @@ func TestNewFlagdProxyConfiguration_OverrideEnvVars(t *testing.T) { Namespace: "my-namespace", OperatorDeploymentName: common.OperatorDeploymentName, ImagePullSecrets: pullSecrets, + Labels: labels, + Annotations: annotations, }, kpConfig) } func TestNewFlagdProxyHandler(t *testing.T) { - kpConfig := NewFlagdProxyConfiguration(types.EnvConfig{}, pullSecrets) + kpConfig := NewFlagdProxyConfiguration(types.EnvConfig{}, pullSecrets, labels, annotations) require.NotNil(t, kpConfig) @@ -100,7 +114,7 @@ func TestDoesFlagdProxyExist(t *testing.T) { }, } - kpConfig := NewFlagdProxyConfiguration(env, pullSecrets) + kpConfig := NewFlagdProxyConfiguration(env, pullSecrets, labels, annotations) require.NotNil(t, kpConfig) @@ -128,7 +142,7 @@ func TestFlagdProxyHandler_HandleFlagdProxy_ProxyExistsWithBadVersion(t *testing env := types.EnvConfig{ PodNamespace: "ns", } - kpConfig := NewFlagdProxyConfiguration(env, pullSecrets) + kpConfig := NewFlagdProxyConfiguration(env, pullSecrets, labels, annotations) require.NotNil(t, kpConfig) @@ -187,7 +201,7 @@ func TestFlagdProxyHandler_HandleFlagdProxy_ProxyExistsWithoutLabel(t *testing.T env := types.EnvConfig{ PodNamespace: "ns", } - kpConfig := NewFlagdProxyConfiguration(env, pullSecrets) + kpConfig := NewFlagdProxyConfiguration(env, pullSecrets, labels, annotations) require.NotNil(t, kpConfig) @@ -236,7 +250,7 @@ func TestFlagdProxyHandler_HandleFlagdProxy_ProxyExistsWithNewestVersion(t *test env := types.EnvConfig{ PodNamespace: "ns", } - kpConfig := NewFlagdProxyConfiguration(env, pullSecrets) + kpConfig := NewFlagdProxyConfiguration(env, pullSecrets, labels, annotations) require.NotNil(t, kpConfig) @@ -280,7 +294,7 @@ func TestFlagdProxyHandler_HandleFlagdProxy_CreateProxy(t *testing.T) { FlagdProxyManagementPort: 90, FlagdProxyDebugLogging: true, } - kpConfig := NewFlagdProxyConfiguration(env, pullSecrets) + kpConfig := NewFlagdProxyConfiguration(env, pullSecrets, labels, annotations) require.NotNil(t, kpConfig) @@ -357,7 +371,10 @@ func TestFlagdProxyHandler_HandleFlagdProxy_CreateProxy(t *testing.T) { "app.kubernetes.io/name": FlagdProxyDeploymentName, "app.kubernetes.io/managed-by": common.ManagedByAnnotationValue, "app.kubernetes.io/version": "tag", + "label1": "labelValue1", + "label2": "labelValue2", }, + Annotations: annotations, }, Spec: corev1.PodSpec{ ServiceAccountName: FlagdProxyServiceAccountName, diff --git a/common/types/envconfig.go b/common/types/envconfig.go index 2c7dae19f..09aa88ffa 100644 --- a/common/types/envconfig.go +++ b/common/types/envconfig.go @@ -5,14 +5,14 @@ type EnvConfig struct { FlagdProxyImage string `envconfig:"FLAGD_PROXY_IMAGE" default:"ghcr.io/open-feature/flagd-proxy"` FlagsValidationEnabled bool `envconfig:"FLAGS_VALIDATION_ENABLED" default:"true"` // renovate: datasource=github-tags depName=open-feature/flagd/flagd-proxy - FlagdProxyTag string `envconfig:"FLAGD_PROXY_TAG" default:"v0.6.2"` + FlagdProxyTag string `envconfig:"FLAGD_PROXY_TAG" default:"v0.6.4"` FlagdProxyPort int `envconfig:"FLAGD_PROXY_PORT" default:"8015"` FlagdProxyManagementPort int `envconfig:"FLAGD_PROXY_MANAGEMENT_PORT" default:"8016"` FlagdProxyDebugLogging bool `envconfig:"FLAGD_PROXY_DEBUG_LOGGING" default:"false"` FlagdImage string `envconfig:"FLAGD_IMAGE" default:"ghcr.io/open-feature/flagd"` // renovate: datasource=github-tags depName=open-feature/flagd/flagd - FlagdTag string `envconfig:"FLAGD_TAG" default:"v0.10.3"` + FlagdTag string `envconfig:"FLAGD_TAG" default:"v0.11.1"` FlagdPort int `envconfig:"FLAGD_PORT" default:"8013"` FlagdOFREPPort int `envconfig:"FLAGD_OFREP_PORT" default:"8016"` FlagdSyncPort int `envconfig:"FLAGD_SYNC_PORT" default:"8015"` @@ -24,7 +24,7 @@ type EnvConfig struct { SidecarPort int `envconfig:"SIDECAR_PORT" default:"8013"` SidecarImage string `envconfig:"SIDECAR_IMAGE" default:"ghcr.io/open-feature/flagd"` // renovate: datasource=github-tags depName=open-feature/flagd/flagd - SidecarTag string `envconfig:"SIDECAR_TAG" default:"v0.10.3"` + SidecarTag string `envconfig:"SIDECAR_TAG" default:"v0.11.1"` SidecarSocketPath string `envconfig:"SIDECAR_SOCKET_PATH" default:""` SidecarEvaluator string `envconfig:"SIDECAR_EVALUATOR" default:"json"` SidecarProviderArgs string `envconfig:"SIDECAR_PROVIDER_ARGS" default:""` diff --git a/config/overlays/helm/manager.yaml b/config/overlays/helm/manager.yaml index e35ac993e..8f90f1fe2 100644 --- a/config/overlays/helm/manager.yaml +++ b/config/overlays/helm/manager.yaml @@ -6,12 +6,19 @@ metadata: spec: replicas: 0{{ .Values.controllerManager.replicas }} template: + metadata: + # this is transformed by .github/scripts/strip-kustomize-helm.sh + annotations: + ___delete_me___: "___ ___newline___{{ if .Values.annotations }}{{___space___toYaml___space___.Values.annotations___space___|___space___indent___space___8___space___}}{{ end }}___" + # this is transformed by .github/scripts/strip-kustomize-helm.sh + labels: + ___delete_me___: "___ ___newline___{{ if .Values.labels }}___newline___{{___space___toYaml___space___.Values.labels___space___|___space___indent___space___8___space___}}{{ end }}___" spec: # this is transformed by .github/scripts/strip-kustomize-helm.sh - ___imagePullSecrets___: "___ ___newline___{{ toYaml .Values.imagePullSecrets | indent 8 }}___" - dnsPolicy: "{{ .Values.controllerManager.manager.dnsPolicy }}" + ___imagePullSecrets___: "___ ___newline___ {{ toYaml .Values.imagePullSecrets___space___|___space___indent___space___8___space___}}___" # this is transformed by .github/scripts/strip-kustomize-helm.sh hostNetwork: "___{{ .Values.controllerManager.manager.hostNetwork }}___" + dnsPolicy: "{{ .Values.controllerManager.manager.dnsPolicy }}" containers: - name: manager image: "{{ .Values.controllerManager.manager.image.repository }}:{{ .Values.controllerManager.manager.image.tag }}" @@ -104,6 +111,8 @@ spec: - --sidecar-ram-request={{ .Values.sidecarConfiguration.resources.requests.memory }} - --image-pull-secrets={{ range .Values.imagePullSecrets }}{{ .name }},{{- end }} - --metrics-bind-address=:{{ .Values.managerConfig.controllerManagerConfigYaml.metrics.bindPort }} + - --labels={{ $labelKeys := keys .Values.labels -}}{{- $labelPairs := list -}}{{- range $key := $labelKeys -}}{{- $labelPairs = append $labelPairs (printf "%s:%s" $key (index $.Values.labels $key)) -}}{{- end -}}{{- join "," $labelPairs }} + - --annotations={{ $annotationKeys := keys .Values.annotations -}}{{- $annotationPairs := list -}}{{- range $key := $annotationKeys -}}{{- $annotationPairs = append $annotationPairs (printf "%s:%s" $key (index $.Values.annotations $key)) -}}{{- end -}}{{- join "," $annotationPairs }} - name: kube-rbac-proxy image: "{{ .Values.controllerManager.kubeRbacProxy.image.repository }}:{{ .Values.controllerManager.kubeRbacProxy.image.tag }}" resources: diff --git a/controllers/core/featureflagsource/controller.go b/controllers/core/featureflagsource/controller.go index 701cf98d8..b81e7341c 100644 --- a/controllers/core/featureflagsource/controller.go +++ b/controllers/core/featureflagsource/controller.go @@ -45,7 +45,7 @@ type FeatureFlagSourceReconciler struct { } // renovate: datasource=github-tags depName=open-feature/flagd/flagd-proxy -const flagdProxyTag = "v0.6.2" +const flagdProxyTag = "v0.6.4" //+kubebuilder:rbac:groups=core.openfeature.dev,resources=featureflagsources,verbs=get;list;watch;create;update;patch;delete //+kubebuilder:rbac:groups=core.openfeature.dev,resources=featureflagsources/status,verbs=get;update;patch diff --git a/controllers/core/featureflagsource/controller_test.go b/controllers/core/featureflagsource/controller_test.go index e5f9b367e..6f2613b66 100644 --- a/controllers/core/featureflagsource/controller_test.go +++ b/controllers/core/featureflagsource/controller_test.go @@ -30,6 +30,16 @@ func TestFeatureFlagSourceReconciler_Reconcile(t *testing.T) { ) var pullSecrets = []string{"test-pullsecret"} + var labels = map[string]string{ + "label1": "labelValue1", + "label2": "labelValue2", + } + + var annotations = map[string]string{ + "annotation1": "annotationValue1", + "annotation2": "annotationValue2", + } + tests := []struct { name string fsConfig *api.FeatureFlagSource @@ -93,7 +103,7 @@ func TestFeatureFlagSourceReconciler_Reconcile(t *testing.T) { kpConfig := flagdproxy.NewFlagdProxyConfiguration(commontypes.EnvConfig{ FlagdProxyImage: "ghcr.io/open-feature/flagd-proxy", FlagdProxyTag: flagdProxyTag, - }, pullSecrets) + }, pullSecrets, labels, annotations) kpConfig.Namespace = testNamespace kph := flagdproxy.NewFlagdProxyHandler( @@ -169,6 +179,7 @@ func createTestDeployment(fsConfigName string, testNamespace string, deploymentN }, }, Spec: corev1.PodSpec{ + ImagePullSecrets: []corev1.LocalObjectReference{{Name: "test-pullSecret"}}, Containers: []corev1.Container{ { Name: "test", diff --git a/controllers/core/flagd/common/common.go b/controllers/core/flagd/common/common.go index fcdd61b74..fa88c55a9 100644 --- a/controllers/core/flagd/common/common.go +++ b/controllers/core/flagd/common/common.go @@ -9,6 +9,8 @@ type FlagdConfiguration struct { Image string Tag string ImagePullSecrets []string + Labels map[string]string + Annotations map[string]string OperatorNamespace string OperatorDeploymentName string diff --git a/controllers/core/flagd/config.go b/controllers/core/flagd/config.go index e4ce776b7..33a1c3434 100644 --- a/controllers/core/flagd/config.go +++ b/controllers/core/flagd/config.go @@ -6,7 +6,7 @@ import ( resources "github.com/open-feature/open-feature-operator/controllers/core/flagd/common" ) -func NewFlagdConfiguration(env types.EnvConfig, imagePullSecrets []string) resources.FlagdConfiguration { +func NewFlagdConfiguration(env types.EnvConfig, imagePullSecrets []string, labels map[string]string, annotations map[string]string) resources.FlagdConfiguration { return resources.FlagdConfiguration{ Image: env.FlagdImage, Tag: env.FlagdTag, @@ -17,5 +17,7 @@ func NewFlagdConfiguration(env types.EnvConfig, imagePullSecrets []string) resou ManagementPort: env.FlagdManagementPort, DebugLogging: env.FlagdDebugLogging, ImagePullSecrets: imagePullSecrets, + Labels: labels, + Annotations: annotations, } } diff --git a/controllers/core/flagd/resources/deployment.go b/controllers/core/flagd/resources/deployment.go index faedb5226..05b71ae80 100644 --- a/controllers/core/flagd/resources/deployment.go +++ b/controllers/core/flagd/resources/deployment.go @@ -11,6 +11,7 @@ import ( "github.com/open-feature/open-feature-operator/common" "github.com/open-feature/open-feature-operator/common/flagdinjector" resources "github.com/open-feature/open-feature-operator/controllers/core/flagd/common" + "golang.org/x/exp/maps" appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -46,11 +47,20 @@ func (r *FlagdDeployment) GetResource(ctx context.Context, flagd *api.Flagd) (cl "app.kubernetes.io/managed-by": common.ManagedByAnnotationValue, "app.kubernetes.io/version": r.FlagdConfig.Tag, } + if len(r.FlagdConfig.Labels) > 0 { + maps.Copy(labels, r.FlagdConfig.Labels) + } + // No "built-in" annotations to merge at this time. If adding them follow the same pattern as labels. + annotations := map[string]string{} + if len(r.FlagdConfig.Annotations) > 0 { + maps.Copy(annotations, r.FlagdConfig.Annotations) + } deployment := &appsv1.Deployment{ ObjectMeta: metav1.ObjectMeta{ - Name: flagd.Name, - Namespace: flagd.Namespace, - Labels: labels, + Name: flagd.Name, + Namespace: flagd.Namespace, + Labels: labels, + Annotations: annotations, OwnerReferences: []metav1.OwnerReference{{ APIVersion: flagd.APIVersion, Kind: flagd.Kind, @@ -67,7 +77,8 @@ func (r *FlagdDeployment) GetResource(ctx context.Context, flagd *api.Flagd) (cl }, Template: corev1.PodTemplateSpec{ ObjectMeta: metav1.ObjectMeta{ - Labels: labels, + Labels: labels, + Annotations: annotations, }, Spec: corev1.PodSpec{ ServiceAccountName: flagd.Spec.ServiceAccountName, @@ -77,11 +88,9 @@ func (r *FlagdDeployment) GetResource(ctx context.Context, flagd *api.Flagd) (cl } featureFlagSource := &api.FeatureFlagSource{} - imagePullSecrets := []corev1.LocalObjectReference{} - for _, secret := range r.FlagdConfig.ImagePullSecrets { - imagePullSecrets = append(imagePullSecrets, corev1.LocalObjectReference{ - Name: secret, - }) + imagePullSecrets := make([]corev1.LocalObjectReference, len(r.FlagdConfig.ImagePullSecrets)) + for i, secret := range r.FlagdConfig.ImagePullSecrets { + imagePullSecrets[i] = corev1.LocalObjectReference{Name: secret} } if err := r.Client.Get(ctx, client.ObjectKey{ @@ -100,11 +109,9 @@ func (r *FlagdDeployment) GetResource(ctx context.Context, flagd *api.Flagd) (cl return nil, errors.New("no flagd container has been injected into deployment") } - deployment.Spec.Template.Spec.ImagePullSecrets = imagePullSecrets - // override settings for the injected container for flagd standalone deployment mode + deployment.Spec.Template.Spec.ImagePullSecrets = imagePullSecrets deployment.Spec.Template.Spec.Containers[0].Image = fmt.Sprintf("%s:%s", r.FlagdConfig.Image, r.FlagdConfig.Tag) - deployment.Spec.Template.Spec.Containers[0].Ports = []corev1.ContainerPort{ { Name: "management", diff --git a/docs/installation.md b/docs/installation.md index e1b982301..59aa60068 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -62,13 +62,13 @@ Apply the release yaml directly via kubectl ```sh kubectl create namespace open-feature-operator-system && -kubectl apply -f https://github.com/open-feature/open-feature-operator/releases/download/v0.7.0/release.yaml +kubectl apply -f https://github.com/open-feature/open-feature-operator/releases/download/v0.7.1/release.yaml ``` ### Uninstall ```sh -kubectl delete -f https://github.com/open-feature/open-feature-operator/releases/download/v0.7.0/release.yaml && +kubectl delete -f https://github.com/open-feature/open-feature-operator/releases/download/v0.7.1/release.yaml && kubectl delete namespace open-feature-operator-system ``` diff --git a/docs/quick_start.md b/docs/quick_start.md index e7f7580ca..c53f80ab3 100644 --- a/docs/quick_start.md +++ b/docs/quick_start.md @@ -40,7 +40,7 @@ helm upgrade --install openfeature openfeature/open-feature-operator ```sh kubectl create namespace open-feature-operator-system && -kubectl apply -f https://github.com/open-feature/open-feature-operator/releases/download/v0.7.0/release.yaml +kubectl apply -f https://github.com/open-feature/open-feature-operator/releases/download/v0.7.1/release.yaml ``` diff --git a/go.mod b/go.mod index 83ba65500..4e73b245d 100644 --- a/go.mod +++ b/go.mod @@ -7,8 +7,9 @@ require ( github.com/golang/mock v1.4.4 github.com/kelseyhightower/envconfig v1.4.0 github.com/open-feature/open-feature-operator/apis v0.2.41-0.20240506125212-c4831a3cdc00 - github.com/stretchr/testify v1.8.4 + github.com/stretchr/testify v1.9.0 go.uber.org/zap v1.27.0 + golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 k8s.io/api v0.28.10 k8s.io/apimachinery v0.28.10 k8s.io/client-go v0.28.10 @@ -31,7 +32,7 @@ require ( github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/google/gnostic-models v0.6.8 // indirect - github.com/google/go-cmp v0.5.9 // indirect + github.com/google/go-cmp v0.6.0 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/uuid v1.3.0 // indirect github.com/imdario/mergo v0.3.12 // indirect @@ -54,12 +55,11 @@ require ( github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect - golang.org/x/net v0.23.0 // indirect + golang.org/x/net v0.25.0 // indirect golang.org/x/oauth2 v0.8.0 // indirect - golang.org/x/sys v0.19.0 // indirect - golang.org/x/term v0.19.0 // indirect - golang.org/x/text v0.14.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect + golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.3.0 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect google.golang.org/appengine v1.6.7 // indirect @@ -77,4 +77,4 @@ require ( sigs.k8s.io/yaml v1.3.0 // indirect ) -replace golang.org/x/net => golang.org/x/net v0.24.0 +replace golang.org/x/net => golang.org/x/net v0.27.0 diff --git a/go.sum b/go.sum index ac9f436ce..5d233e9fd 100644 --- a/go.sum +++ b/go.sum @@ -1,6 +1,4 @@ github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= -github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= -github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= @@ -18,7 +16,6 @@ github.com/evanphx/json-patch/v5 v5.6.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2Vvl github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= @@ -44,8 +41,8 @@ github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -118,6 +115,8 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= @@ -130,29 +129,35 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1 github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= -go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= -go.uber.org/zap v1.25.0 h1:4Hvk6GtkucQ790dqmj7l1eEnRdKm3k3ZUrUMS2d5+5c= -go.uber.org/zap v1.25.0/go.mod h1:JIAUzQIH94IC4fOJQm7gMmBJP5k7wQfdcnYdPoEXJYk= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= -golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA= -golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= +golang.org/x/exp v0.0.0-20240707233637-46b078467d37 h1:uLDX+AfeFCct3a2C7uIWBKMJIR3CJMhcgfrUAqjRK6w= +golang.org/x/exp v0.0.0-20240707233637-46b078467d37/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= +golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= +golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= +golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= +golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -162,6 +167,9 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -169,16 +177,26 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.19.0 h1:+ThwsDv+tYfnJFhF4L8jITxu1tdTWRTZpdsWgEgjL6Q= golang.org/x/term v0.19.0/go.mod h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= +golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -190,8 +208,10 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.16.1 h1:TLyB3WofjdOEepBHAU20JdNC1Zbg87elYofWYAY5oZA= -golang.org/x/tools v0.16.1/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= +golang.org/x/tools v0.23.0 h1:SGsXPZ+2l4JsgaCKkx+FQ9YZ5XEtA1GZYuoDjenLjvg= +golang.org/x/tools v0.23.0/go.mod h1:pnu6ufv6vQkll6szChhK3C3L/ruaIv5eBeztNG8wtsI= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/main.go b/main.go index 779679648..c3902e062 100644 --- a/main.go +++ b/main.go @@ -58,16 +58,27 @@ const ( metricsBindAddressFlagName = "metrics-bind-address" verboseFlagName = "verbose" leaderElectFlagName = "leader-elect" - sidecarCpuLimitFlagName = "sidecar-cpu-limit" - sidecarRamLimitFlagName = "sidecar-ram-limit" - sidecarCpuRequestFlagName = "sidecar-cpu-request" - sidecarRamRequestFlagName = "sidecar-ram-request" - sidecarCpuLimitDefault = "0.5" - sidecarRamLimitDefault = "64M" - sidecarCpuRequestDefault = "0.2" - sidecarRamRequestDefault = "32M" - imagePullSecretFlagName = "image-pull-secrets" - imagePullSecretFlagDefault = "" + + sidecarCpuLimitFlagName = "sidecar-cpu-limit" + sidecarCpuLimitDefault = "0.5" + + sidecarRamLimitFlagName = "sidecar-ram-limit" + sidecarRamLimitDefault = "64M" + + sidecarCpuRequestFlagName = "sidecar-cpu-request" + sidecarCpuRequestDefault = "0.2" + + sidecarRamRequestFlagName = "sidecar-ram-request" + sidecarRamRequestDefault = "32M" + + imagePullSecretFlagName = "image-pull-secrets" + imagePullSecretFlagDefault = "" + + labelsFlagName = "labels" + labelsFlagDefault = "" + + annotationsFlagName = "annotations" + annotationsFlagDefault = "" ) var ( @@ -79,8 +90,22 @@ var ( verbose bool sidecarCpuLimit, sidecarRamLimit, sidecarCpuRequest, sidecarRamRequest string imagePullSecrets string + labels string + annotations string ) +// StringToMap transforms a string into a map[string]string +func StringToMap(s string) map[string]string { + m := map[string]string{} + for _, pair := range strings.Split(s, ",") { + kv := strings.SplitN(pair, ":", 2) + if len(kv) == 2 { + m[kv[0]] = kv[1] + } + } + return m +} + func init() { utilruntime.Must(clientgoscheme.AddToScheme(scheme)) utilruntime.Must(corev1beta1.AddToScheme(scheme)) @@ -107,6 +132,8 @@ func main() { flag.StringVar(&sidecarCpuRequest, sidecarCpuRequestFlagName, sidecarCpuRequestDefault, "sidecar CPU minimum, in cores. (500m = .5 cores)") flag.StringVar(&sidecarRamRequest, sidecarRamRequestFlagName, sidecarRamRequestDefault, "sidecar memory minimum, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)") flag.StringVar(&imagePullSecrets, imagePullSecretFlagName, imagePullSecretFlagDefault, "Comma-delimited list of secrets containing credentials to pull images.") + flag.StringVar(&labels, labelsFlagName, labelsFlagDefault, "Map of labels to add to the deployed pods. Formatted like key1:value1,key2:value2,key3:value3") + flag.StringVar(&annotations, annotationsFlagName, annotationsFlagDefault, "Map of annotations to add to the deployed pods. Formatted like key1:value1,key2:value2,key3:value3") flag.Parse() @@ -182,8 +209,16 @@ func main() { os.Exit(1) } + labelsMap := StringToMap(labels) + annotationsMap := StringToMap(annotations) + kph := flagdproxy.NewFlagdProxyHandler( - flagdproxy.NewFlagdProxyConfiguration(env, strings.Split(imagePullSecrets, ",")), + flagdproxy.NewFlagdProxyConfiguration( + env, + strings.Split(imagePullSecrets, ","), + labelsMap, + annotationsMap, + ), mgr.GetClient(), ctrl.Log.WithName("FeatureFlagSource FlagdProxyHandler"), ) @@ -215,7 +250,12 @@ func main() { Scheme: mgr.GetScheme(), Log: flagdControllerLogger, } - flagdConfig := flagd.NewFlagdConfiguration(env, strings.Split(imagePullSecrets, ",")) + flagdConfig := flagd.NewFlagdConfiguration( + env, + strings.Split(imagePullSecrets, ","), + labelsMap, + annotationsMap, + ) if err = (&flagd.FlagdReconciler{ Client: mgr.GetClient(), diff --git a/test/e2e/chainsaw/flagd-with-ingress-custom-paths/00-assert.yaml b/test/e2e/chainsaw/flagd-with-ingress-custom-paths/00-assert.yaml index d02f9bc2f..643c2e8b0 100644 --- a/test/e2e/chainsaw/flagd-with-ingress-custom-paths/00-assert.yaml +++ b/test/e2e/chainsaw/flagd-with-ingress-custom-paths/00-assert.yaml @@ -26,7 +26,7 @@ spec: containers: - name: flagd # renovate: datasource=github-tags depName=open-feature/flagd/flagd - image: ghcr.io/open-feature/flagd:v0.10.3 + image: ghcr.io/open-feature/flagd:v0.11.1 ports: - containerPort: 8014 name: management diff --git a/test/e2e/chainsaw/flagd-with-ingress-default-paths/00-assert.yaml b/test/e2e/chainsaw/flagd-with-ingress-default-paths/00-assert.yaml index de373389d..5dadf2e8b 100644 --- a/test/e2e/chainsaw/flagd-with-ingress-default-paths/00-assert.yaml +++ b/test/e2e/chainsaw/flagd-with-ingress-default-paths/00-assert.yaml @@ -26,7 +26,7 @@ spec: containers: - name: flagd # renovate: datasource=github-tags depName=open-feature/flagd/flagd - image: ghcr.io/open-feature/flagd:v0.10.3 + image: ghcr.io/open-feature/flagd:v0.11.1 ports: - containerPort: 8014 name: management diff --git a/test/e2e/chainsaw/fsconfig-file-sync/00-assert.yaml b/test/e2e/chainsaw/fsconfig-file-sync/00-assert.yaml index 0e89eff60..e2157feba 100644 --- a/test/e2e/chainsaw/fsconfig-file-sync/00-assert.yaml +++ b/test/e2e/chainsaw/fsconfig-file-sync/00-assert.yaml @@ -13,4 +13,4 @@ spec: - name: open-feature-e2e-test image: nginx:stable-alpine - name: flagd # this part verifies flagd injection happened - image: ghcr.io/open-feature/flagd:v0.10.3 + image: ghcr.io/open-feature/flagd:v0.11.1 diff --git a/test/e2e/chainsaw/fsconfig-flagd-proxy-sync/00-assert.yaml b/test/e2e/chainsaw/fsconfig-flagd-proxy-sync/00-assert.yaml index 0e89eff60..e2157feba 100644 --- a/test/e2e/chainsaw/fsconfig-flagd-proxy-sync/00-assert.yaml +++ b/test/e2e/chainsaw/fsconfig-flagd-proxy-sync/00-assert.yaml @@ -13,4 +13,4 @@ spec: - name: open-feature-e2e-test image: nginx:stable-alpine - name: flagd # this part verifies flagd injection happened - image: ghcr.io/open-feature/flagd:v0.10.3 + image: ghcr.io/open-feature/flagd:v0.11.1 diff --git a/test/e2e/chainsaw/fsconfig-k8s-sync/00-assert.yaml b/test/e2e/chainsaw/fsconfig-k8s-sync/00-assert.yaml index 4c030ecd5..d567b37a3 100644 --- a/test/e2e/chainsaw/fsconfig-k8s-sync/00-assert.yaml +++ b/test/e2e/chainsaw/fsconfig-k8s-sync/00-assert.yaml @@ -14,4 +14,4 @@ spec: - name: open-feature-e2e-test image: nginx:stable-alpine - name: flagd # this part verifies flagd injection happened - image: ghcr.io/open-feature/flagd:v0.10.3 + image: ghcr.io/open-feature/flagd:v0.11.1