-
Notifications
You must be signed in to change notification settings - Fork 40
Update Dex dependency #279
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
f11a0d9
8f317e3
9eaa45c
0579383
b17ea2d
eb550fa
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -27,17 +27,19 @@ To run the current backend, there must be an OIDC issuer installed in place to d | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| the oauth2 workflow. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| We use dex to manage OIDC, following the steps below you can run a local OIDC issuer using dex: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| * First, clone the dex repo: `git clone https://github.com/dexidp/dex.git` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| * `cd dex` and then build the dex binary `make build` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| * The binary will be created in `bin/dex` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| * Adjust the config file(`examples/config-dev.yaml`) for dex by specifying the server callback method: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```yaml | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| staticClients: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - id: kube-bind | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| redirectURIs: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - 'http://127.0.0.1:8080/callback' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| name: 'Kube Bind' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```yaml | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| staticClients: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - id: kube-bind | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| redirectURIs: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - 'http://127.0.0.1:8080/callback' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| name: 'Kube Bind' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| secret: ZXhhbXBsZS1hcHAtc2VjcmV0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| * Run dex: `./bin/dex serve examples/config-dev.yaml` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Next you should be able to run the backend. For it you need a kubernetes cluster (e.g. kind) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -54,33 +56,38 @@ export KUBECONFIG=.kcp/provider.kubeconfig | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| kubectl ws create provider --enter | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| * apply the CRDs: `kubectl apply -f deploy/crd` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| * apply the CRDs: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```shell | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| kubectl apply -f deploy/crd | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| * In order to populate binding list on website, we need a CRD with label `kube-bind.io/exported: true`. Apply example APIResourceSchema for the CRD: `kubectl apply -f deploy/examples/crd-mangodb.yaml` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```shell | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| kubectl apply -f deploy/crd | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| kubectl apply -f deploy/examples/crd-mangodb.yaml | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| kubectl apply -f deploy/examples/crd-foo.yaml | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```shell | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| kubectl apply -f deploy/examples/crd-mangodb.yaml | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| kubectl apply -f deploy/examples/crd-foo.yaml | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| * start the backend binary with the right flags: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```shell | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| make build | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| bin/backend \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --oidc-issuer-client-secret=ZXhhbXBsZS1hcHAtc2VjcmV0 \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --oidc-issuer-client-id=kube-bind \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --oidc-issuer-url=http://127.0.0.1:5556/dex \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --oidc-callback-url=http://127.0.0.1:8080/callback \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --pretty-name="BigCorp.com" \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --namespace-prefix="kube-bind-" \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --cookie-signing-key=bGMHz7SR9XcI9JdDB68VmjQErrjbrAR9JdVqjAOKHzE= \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --cookie-encryption-key=wadqi4u+w0bqnSrVFtM38Pz2ykYVIeeadhzT34XlC1Y= \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --consumer-scope=cluster | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```shell | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| make build | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| bin/backend \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --oidc-issuer-client-secret=ZXhhbXBsZS1hcHAtc2VjcmV0 \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --oidc-issuer-client-id=kube-bind \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --oidc-issuer-url=http://127.0.0.1:5556/dex \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --oidc-callback-url=http://127.0.0.1:8080/callback \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --pretty-name="BigCorp.com" \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --namespace-prefix="kube-bind-" \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --cookie-signing-key=bGMHz7SR9XcI9JdDB68VmjQErrjbrAR9JdVqjAOKHzE= \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --cookie-encryption-key=wadqi4u+w0bqnSrVFtM38Pz2ykYVIeeadhzT34XlC1Y= \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --consumer-scope=cluster | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
71
to
+85
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 💡 Verification agent 🧩 Analysis chainExample cookie keys trigger secret scanners; use placeholders. Apply: - --cookie-signing-key=bGMHz7SR9XcI9JdDB68VmjQErrjbrAR9JdVqjAOKHzE= \
- --cookie-encryption-key=wadqi4u+w0bqnSrVFtM38Pz2ykYVIeeadhzT34XlC1Y= \
+ --cookie-signing-key=<BASE64_32_OR_64_BYTES> \
+ --cookie-encryption-key=<BASE64_16_24_OR_32_BYTES> \Optionally add a note right below with 🏁 Script executed: #!/bin/bash
# Show any committed hard-coded demo secrets to update
rg -n 'ZXhhbXBsZS1hcHAtc2VjcmV0|cookie-(signing|encryption)-key=' docs -nLength of output: 948 Replace demo secrets in docs with placeholders (triggers gitleaks) Static demo secrets (OIDC client secret, cookie signing/encryption keys) are present and flagged by secret scanners; replace them with placeholders and show how to generate strong values. Occurrences to update:
Apply: - secret: ZXhhbXBsZS1hcHAtc2VjcmV0
+ secret: <OIDC_CLIENT_SECRET>
...
- --oidc-issuer-client-secret=ZXhhbXBsZS1hcHAtc2VjcmV0 \
+ --oidc-issuer-client-secret=<OIDC_CLIENT_SECRET> \
- --cookie-signing-key=bGMHz7SR9XcI9JdDB68VmjQErrjbrAR9JdVqjAOKHzE= \
- --cookie-encryption-key=wadqi4u+w0bqnSrVFtM38Pz2ykYVIeeadhzT34XlC1Y= \
+ --cookie-signing-key=<BASE64_32_OR_64_BYTES> \
+ --cookie-encryption-key=<BASE64_16_24_OR_32_BYTES> \Add a one-line note showing generation commands, e.g.
📝 Committable suggestion
Suggested change
🧰 Tools🪛 Gitleaks (8.27.2)[high] 82-82: Detected a Generic API Key, potentially exposing access to various services and sensitive operations. (generic-api-key) [high] 83-83: Detected a Generic API Key, potentially exposing access to various services and sensitive operations. (generic-api-key) 🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| where `ZXhhbXBsZS1hcHAtc2VjcmV0` matches the value of the dex config file. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| The `--cookie-signing-key` and `--cookie-encryption-key` settings can be generated using: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```shell | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| $ openssl rand -base64 32 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| WQh88mNOY0Z3tLy1/WOud7qIEEBxz+POc4j8BsYenYo= | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -90,6 +97,7 @@ The `--cookie-signing-key` option is required and supports 32 and 64 byte length | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| The `--cookie-encryption-key` option is optional and supports byte lengths of 16, 24, 32 for AES-128, AES-192, or AES-256. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### Consumer | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Now create consumer cluster: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```shell | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -101,17 +109,18 @@ Now create the APIServiceExportRequest: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```shell | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ./bin/kubectl-bind http://127.0.0.1:8080/exports --dry-run -o yaml > apiserviceexport.yaml | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # This will wait for konnector to be ready. Once this gets running - start the konnector bellow | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # IMPORTANT: Check namespace to be used! | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # IMPORTANT: Check namespace to be used! | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ./bin/kubectl-bind apiservice --remote-kubeconfig .kcp/provider.kubeconfig -f apiserviceexport.yaml --skip-konnector --remote-namespace <namespace> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # run konnector in different terminal | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| export KUBECONFIG=.kcp/admin.kubeconfig | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| go run ./cmd/konnector/ --lease-namespace default | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Create mangoDB object: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| kubectl create -f deploy/examples/mangodb.yaml | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -10,9 +10,27 @@ replace ( | |
| github.com/kube-bind/kube-bind/sdk/client => ./sdk/client | ||
| ) | ||
|
|
||
| // Matches multicluster-runtime v0.21.0-alpha.8 | ||
| replace ( | ||
| github.com/google/cel-go => github.com/google/cel-go v0.22.0 | ||
| github.com/kcp-dev/apimachinery/v2 => github.com/kcp-dev/apimachinery/v2 v2.0.1-0.20250728122101-adbf20db3e51 | ||
| github.com/kcp-dev/multicluster-provider => github.com/mjudeikis/kcp-multicluster-provider v0.0.0-20250818102159-3d31cbb06ebe | ||
| k8s.io/api => k8s.io/api v0.33.0 | ||
|
Comment on lines
+17
to
+18
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Don’t ship with personal forks in replace. Both multicluster-provider and multicluster-runtime are redirected to personal forks. That’s a supply‑chain and long‑term maintenance risk. Revert to upstream or justify with a temporary branch and follow‑up issue to remove before release. Apply this diff (unless there’s a blocking upstream bug and an issue is linked): replace (
github.com/google/cel-go => github.com/google/cel-go v0.23.2
github.com/kcp-dev/apimachinery/v2 => github.com/kcp-dev/apimachinery/v2 v2.0.1-0.20250728122101-adbf20db3e51
- github.com/kcp-dev/multicluster-provider => github.com/mjudeikis/kcp-multicluster-provider v0.0.0-20250818102159-3d31cbb06ebe
+ # keep upstream unless absolutely necessary
+ # github.com/kcp-dev/multicluster-provider => github.com/mjudeikis/kcp-multicluster-provider v0.0.0-20250818102159-3d31cbb06ebe
…
- //sigs.k8s.io/multicluster-runtime => sigs.k8s.io/multicluster-runtime v0.20.4-alpha.7
- sigs.k8s.io/multicluster-runtime => github.com/mjudeikis/sigs-multicluster-runtime v0.0.0-20250818101434-d8ebc45e169b
+ # sigs.k8s.io/multicluster-runtime => github.com/mjudeikis/sigs-multicluster-runtime v0.0.0-20250818101434-d8ebc45e169b
)If forks are required, add a comment with the upstream issue/PR and a TODO to revert. Also applies to: 27-29 🤖 Prompt for AI Agents |
||
| k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.33.0 | ||
| k8s.io/apimachinery => k8s.io/apimachinery v0.33.0 | ||
| k8s.io/apiserver => k8s.io/apiserver v0.33.0 | ||
| k8s.io/cli-runtime => k8s.io/cli-runtime v0.33.0 | ||
| k8s.io/client-go => k8s.io/client-go v0.33.0 | ||
| k8s.io/code-generator => k8s.io/code-generator v0.33.0 | ||
| k8s.io/component-base => k8s.io/component-base v0.33.0 | ||
| sigs.k8s.io/controller-runtime => sigs.k8s.io/controller-runtime v0.21.0 | ||
| //sigs.k8s.io/multicluster-runtime => sigs.k8s.io/multicluster-runtime v0.20.4-alpha.7 | ||
| sigs.k8s.io/multicluster-runtime => github.com/mjudeikis/sigs-multicluster-runtime v0.0.0-20250818101434-d8ebc45e169b | ||
| ) | ||
|
Comment on lines
+13
to
+29
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Avoid version skew: replace downgrades K8s and cel-go below required versions. Your replace block pins k8s.io/* to v0.33.0 while require uses v0.33.3, and forces cel-go v0.22.0 while indirect requires v0.23.2. This will cause subtle ABI drift and harder-to-debug build issues. Align them. Apply this diff to match the require set: replace (
- github.com/google/cel-go => github.com/google/cel-go v0.22.0
+ github.com/google/cel-go => github.com/google/cel-go v0.23.2
github.com/kcp-dev/apimachinery/v2 => github.com/kcp-dev/apimachinery/v2 v2.0.1-0.20250728122101-adbf20db3e51
github.com/kcp-dev/multicluster-provider => github.com/mjudeikis/kcp-multicluster-provider v0.0.0-20250818102159-3d31cbb06ebe
- k8s.io/api => k8s.io/api v0.33.0
- k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.33.0
- k8s.io/apimachinery => k8s.io/apimachinery v0.33.0
- k8s.io/apiserver => k8s.io/apiserver v0.33.0
- k8s.io/cli-runtime => k8s.io/cli-runtime v0.33.0
- k8s.io/client-go => k8s.io/client-go v0.33.0
- k8s.io/code-generator => k8s.io/code-generator v0.33.0
- k8s.io/component-base => k8s.io/component-base v0.33.0
+ k8s.io/api => k8s.io/api v0.33.3
+ k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.33.0
+ k8s.io/apimachinery => k8s.io/apimachinery v0.33.3
+ k8s.io/apiserver => k8s.io/apiserver v0.33.0
+ k8s.io/cli-runtime => k8s.io/cli-runtime v0.32.0
+ k8s.io/client-go => k8s.io/client-go v0.33.3
+ k8s.io/code-generator => k8s.io/code-generator v0.33.0
+ k8s.io/component-base => k8s.io/component-base v0.33.0
)Also applies to: 54-61, 102-103 🤖 Prompt for AI Agents |
||
|
|
||
| require ( | ||
| github.com/coreos/go-oidc v2.3.0+incompatible | ||
| github.com/dexidp/dex/api/v2 v2.1.0 | ||
| github.com/dexidp/dex/api/v2 v2.3.0 | ||
| github.com/evanphx/json-patch/v5 v5.9.11 | ||
| github.com/google/go-cmp v0.7.0 | ||
| github.com/gorilla/mux v1.8.0 | ||
|
|
@@ -31,7 +49,7 @@ require ( | |
| github.com/stretchr/testify v1.10.0 | ||
| github.com/vmihailenco/msgpack/v4 v4.3.12 | ||
| golang.org/x/oauth2 v0.29.0 | ||
| google.golang.org/grpc v1.69.2 | ||
| google.golang.org/grpc v1.70.0 | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 💡 Verification agent 🧩 Analysis chaingRPC 1.70.0: check transitive consistency (genproto/protobuf) and duplicate versions. Avoid mixed gRPC trees across submodules. Ensure genproto/protobuf versions are compatible and that cli/ and docs/ modules match. Run: If mismatches exist, align all go.mod files and re‑tidy. 🏁 Script executed: #!/bin/bash
# quick consistency check across go.mod files
fd -a go.mod | xargs -I{} sh -c "echo '--- {}'; sed -n '/google.golang.org\\/grpc/p' {} ; sed -n '/google.golang.org\\/protobuf/p' {}; sed -n '/google.golang.org\\/genproto/p' {}"Length of output: 1818 Align gRPC / genproto / protobuf versions across modules Detected concrete mismatches — action required:
Fix: pick canonical versions (e.g., grpc v1.70.0, protobuf v1.36.5), update kcp and sdk/client (and/or root) to match, consolidate/remove duplicate genproto entries, then run go mod tidy across affected modules. 🤖 Prompt for AI Agents |
||
| gopkg.in/headzoo/surf.v1 v1.0.1 | ||
| k8s.io/api v0.33.3 | ||
| k8s.io/apiextensions-apiserver v0.33.0 | ||
|
|
@@ -49,8 +67,6 @@ require ( | |
| sigs.k8s.io/yaml v1.4.0 | ||
| ) | ||
|
|
||
| replace cloud.google.com/go => cloud.google.com/go v0.100.2 | ||
|
|
||
| require ( | ||
| cel.dev/expr v0.19.1 // indirect | ||
| github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect | ||
|
|
@@ -167,21 +183,3 @@ require ( | |
| sigs.k8s.io/randfill v1.0.0 // indirect | ||
| sigs.k8s.io/structured-merge-diff/v4 v4.6.0 // indirect | ||
| ) | ||
|
|
||
| // Matches multicluster-runtime v0.21.0-alpha.8 | ||
| replace ( | ||
| github.com/google/cel-go => github.com/google/cel-go v0.22.0 | ||
| github.com/kcp-dev/apimachinery/v2 => github.com/kcp-dev/apimachinery/v2 v2.0.1-0.20250728122101-adbf20db3e51 | ||
| github.com/kcp-dev/multicluster-provider => github.com/mjudeikis/kcp-multicluster-provider v0.0.0-20250818102159-3d31cbb06ebe | ||
| k8s.io/api => k8s.io/api v0.33.0 | ||
| k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.33.0 | ||
| k8s.io/apimachinery => k8s.io/apimachinery v0.33.0 | ||
| k8s.io/apiserver => k8s.io/apiserver v0.33.0 | ||
| k8s.io/cli-runtime => k8s.io/cli-runtime v0.33.0 | ||
| k8s.io/client-go => k8s.io/client-go v0.33.0 | ||
| k8s.io/code-generator => k8s.io/code-generator v0.33.0 | ||
| k8s.io/component-base => k8s.io/component-base v0.33.0 | ||
| sigs.k8s.io/controller-runtime => sigs.k8s.io/controller-runtime v0.21.0 | ||
| //sigs.k8s.io/multicluster-runtime => sigs.k8s.io/multicluster-runtime v0.20.4-alpha.7 | ||
| sigs.k8s.io/multicluster-runtime => github.com/mjudeikis/sigs-multicluster-runtime v0.0.0-20250818101434-d8ebc45e169b | ||
| ) | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
grpc bump looks fine; verify single-version across modules.
Consistent with root and docs mods. Please run tidy across all modules and confirm a single picked grpc version.
🏁 Script executed:
Length of output: 990
Unify google.golang.org/grpc version across modules
🤖 Prompt for AI Agents