Skip to content

Commit 7ba1fab

Browse files
committed
make provider nil
1 parent 4d39041 commit 7ba1fab

8 files changed

Lines changed: 105 additions & 115 deletions

File tree

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ ldflags:
127127
require-%:
128128
@if ! command -v $* 1> /dev/null 2>&1; then echo "$* not found in \$$PATH"; exit 1; fi
129129

130-
build: WHAT ?= ./cmd/... ./cli/cmd/... ./cmd/kcp-init/...
130+
build: WHAT ?= ./cmd/... ./cli/cmd/... ./kcp/cmd/kcp-init/...
131131
build: require-jq require-go require-git verify-go-versions ## Build the project
132132
mkdir -p $(GOBIN_DIR)
133133
set -x; for W in $(WHAT); do \
@@ -292,7 +292,7 @@ endif
292292
test: WHAT ?= ./...
293293
# We will need to move into the sub package, of pkg/apis to run those tests.
294294
test: ## run unit tests
295-
$(GO_TEST) -race -count $(COUNT) -coverprofile=coverage.txt -covermode=atomic $(TEST_ARGS) $$(go list "$(WHAT)" | grep -v ./test/e2e/)
295+
$(GO_TEST) -race -count $(COUNT) -coverprofile=coverage.txt -covermode=atomic $(TEST_ARGS) $$(go list "$(WHAT)" | grep -v ./test/e2e/ | grep -v ./kcp)
296296
cd sdk/apis && $(GO_TEST) -race -count $(COUNT) -coverprofile=coverage.txt -covermode=atomic $(TEST_ARGS) $(WHAT)
297297

298298
.PHONY: verify-imports

backend/config.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ import (
3030
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
3131
"k8s.io/client-go/rest"
3232
"k8s.io/client-go/tools/clientcmd"
33-
"k8s.io/utils/ptr"
3433
ctrl "sigs.k8s.io/controller-runtime"
3534
ctrlconfig "sigs.k8s.io/controller-runtime/pkg/config"
3635
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
@@ -91,7 +90,6 @@ func NewConfig(options *options.CompletedOptions) (*Config, error) {
9190

9291
config.Scheme = scheme
9392

94-
var provider *apiexport.Provider // This bit sucks that we can't use multicluster.Provider here. We need SetupWithManager.
9593
switch options.Provider {
9694
case "kcp":
9795
if err := apisv1alpha1.AddToScheme(scheme); err != nil {
@@ -100,7 +98,7 @@ func NewConfig(options *options.CompletedOptions) (*Config, error) {
10098
if err := apisv1alpha2.AddToScheme(scheme); err != nil {
10199
return nil, fmt.Errorf("error adding apis scheme: %w", err)
102100
}
103-
provider, err = apiexport.New(config.ClientConfig, apiexport.Options{
101+
provider, err := apiexport.New(config.ClientConfig, apiexport.Options{
104102
Scheme: scheme,
105103
})
106104
if err != nil {
@@ -130,26 +128,27 @@ func NewConfig(options *options.CompletedOptions) (*Config, error) {
130128

131129
return u.String(), nil
132130
}
131+
config.Provider = provider
133132
default:
134133
config.ExternalAddressGenerator = kuberesources.DefaultExternalAddreesGenerator
134+
config.Provider = nil
135135
}
136136

137137
opts := ctrl.Options{
138138
Controller: ctrlconfig.Controller{
139-
SkipNameValidation: ptr.To(true), // TODO(mjudeikis): Debug why this makes tests fail.
139+
SkipNameValidation: &config.Options.TestingSkipNameValidation,
140140
},
141141
Metrics: metricsserver.Options{
142142
BindAddress: "0",
143143
},
144144
Scheme: scheme,
145145
}
146146

147-
manager, err := mcmanager.New(config.ClientConfig, provider, opts)
147+
manager, err := mcmanager.New(config.ClientConfig, config.Provider, opts)
148148
if err != nil {
149149
return nil, fmt.Errorf("error setting up controller manager: %w", err)
150150
}
151151

152-
config.Provider = provider
153152
config.Manager = manager
154153

155154
return config, nil

docs/content/setup/quickstart.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ $ kubectl ws create consumer --enter
9898
Now create the APIServiceExportRequest:
9999

100100
```shell
101-
$ ./bin/kubectl-bind http://127.0.0.1:8080/clusters/-/exports --dry-run -o yaml > apiserviceexport.yaml
101+
$ ./bin/kubectl-bind http://127.0.0.1:8080/exports --dry-run -o yaml > apiserviceexport.yaml
102102
# This will wait for konnector to be ready. Once this gets running - start the konnector bellow
103103
# IMPORTANT: Check namespace to be used!
104104
$ ./bin/kubectl-bind apiservice --remote-kubeconfig .kcp/provider.kubeconfig -f apiserviceexport.yaml --skip-konnector --remote-namespace <namespace>
Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ k ws use :root:kube-bind
3333
3434
bin/backend \
3535
--multicluster-runtime-provider kcp \
36-
--server=$(kubectl get apiexportendpointslice kube-bind.io -o jsonpath="{.status.endpoints[0].url}") \
36+
--server-url=$(kubectl get apiexportendpointslice kube-bind.io -o jsonpath="{.status.endpoints[0].url}") \
3737
--oidc-issuer-client-secret=ZXhhbXBsZS1hcHAtc2VjcmV0 \
3838
--oidc-issuer-client-id=kube-bind \
3939
--oidc-issuer-url=http://127.0.0.1:5556/dex \
@@ -77,7 +77,7 @@ kubectl apply -f deploy/examples/crd-mangodb.yaml
7777
```bash
7878
kubectl get logicalcluster
7979
NAME PHASE URL AGE
80-
cluster Ready https://192.168.2.166:6443/clusters/2p0rtkf7b697s6mj
80+
cluster Ready https://192.168.2.166:6443/clusters/2xh2v3gzjhn4tmve
8181
```
8282

8383
9. No we gonna imitate consumer:
@@ -89,22 +89,18 @@ kubectl ws use :root
8989
kubectl ws create consumer --enter
9090
```
9191

92-
93-
94-
95-
9692
10. Bind the thing:
9793

9894
```bash
99-
./bin/kubectl-bind http://127.0.0.1:8080/clusters/2p0rtkf7b697s6mj/exports --dry-run -o yaml > apiserviceexport.yaml
95+
./bin/kubectl-bind http://127.0.0.1:8080/clusters/2xh2v3gzjhn4tmve/exports --dry-run -o yaml > apiserviceexport.yaml
10096

10197
# we need dedicated secret for that
10298
kubectl get secret kubeconfig-wvvsb -n kube-bind -o jsonpath='{.data.kubeconfig}' | base64 -d > remote.kubeconfig
10399

104100
./bin/kubectl-bind apiservice --remote-kubeconfig remote.kubeconfig -f apiserviceexport.yaml --skip-konnector --remote-namespace kube-bind-m5zx4
105101

106102
export KUBECONFIG=.kcp/consumer.kubeconfig
107-
$ go run ./cmd/konnector/ --lease-namespace default
103+
go run ./cmd/konnector/ --lease-namespace default
108104

109105
## Debug
110106

Lines changed: 48 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
1-
module github.com/kube-bind/kube-bind/cmd/kcp-init
1+
module github.com/kube-bind/kube-bind/kcp
22

33
go 1.24.0
44

5-
replace github.com/kube-bind/kube-bind => ../../
5+
replace github.com/kube-bind/kube-bind => ../
66

77
require (
8-
github.com/kube-bind/kube-bind v0.0.0-00010101000000-000000000000
8+
github.com/kcp-dev/client-go v0.0.0-20250728134101-0355faa9361b
9+
github.com/kcp-dev/kcp v0.28.0
10+
github.com/kcp-dev/kcp/sdk v0.28.0
11+
github.com/kcp-dev/logicalcluster/v3 v3.0.5
912
github.com/spf13/pflag v1.0.7
13+
k8s.io/apiextensions-apiserver v0.33.3
14+
k8s.io/apimachinery v0.33.3
1015
k8s.io/apiserver v0.33.3
16+
k8s.io/client-go v0.33.3
1117
k8s.io/component-base v0.33.3
1218
k8s.io/klog/v2 v2.130.1
1319
)
@@ -16,7 +22,6 @@ require (
1622
cel.dev/expr v0.19.1 // indirect
1723
github.com/NYTimes/gziphandler v1.1.1 // indirect
1824
github.com/antlr4-go/antlr/v4 v4.13.1 // indirect
19-
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
2025
github.com/beorn7/perks v1.0.1 // indirect
2126
github.com/blang/semver/v4 v4.0.0 // indirect
2227
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
@@ -39,18 +44,13 @@ require (
3944
github.com/google/cel-go v0.23.2 // indirect
4045
github.com/google/gnostic-models v0.6.9 // indirect
4146
github.com/google/go-cmp v0.7.0 // indirect
42-
github.com/google/gofuzz v1.2.0 // indirect
4347
github.com/google/uuid v1.6.0 // indirect
4448
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect
4549
github.com/grpc-ecosystem/grpc-gateway/v2 v2.25.1 // indirect
4650
github.com/inconshreveable/mousetrap v1.1.0 // indirect
4751
github.com/josharian/intern v1.0.0 // indirect
4852
github.com/json-iterator/go v1.1.12 // indirect
49-
github.com/kcp-dev/apimachinery/v2 v2.0.1-0.20250512171935-ebb573a40077 // indirect
50-
github.com/kcp-dev/client-go v0.0.0-20250707095244-decc4df45adb // indirect
51-
github.com/kcp-dev/kcp v0.28.0 // indirect
52-
github.com/kcp-dev/kcp/sdk v0.28.0 // indirect
53-
github.com/kcp-dev/logicalcluster/v3 v3.0.5 // indirect
53+
github.com/kcp-dev/apimachinery/v2 v2.0.1-0.20250728122101-adbf20db3e51 // indirect
5454
github.com/kylelemons/godebug v1.1.0 // indirect
5555
github.com/mailru/easyjson v0.9.0 // indirect
5656
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
@@ -80,14 +80,14 @@ require (
8080
go.opentelemetry.io/proto/otlp v1.5.0 // indirect
8181
go.uber.org/multierr v1.11.0 // indirect
8282
go.uber.org/zap v1.27.0 // indirect
83-
golang.org/x/crypto v0.37.0 // indirect
83+
golang.org/x/crypto v0.38.0 // indirect
8484
golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 // indirect
85-
golang.org/x/net v0.39.0 // indirect
85+
golang.org/x/net v0.40.0 // indirect
8686
golang.org/x/oauth2 v0.29.0 // indirect
87-
golang.org/x/sync v0.13.0 // indirect
88-
golang.org/x/sys v0.32.0 // indirect
89-
golang.org/x/term v0.31.0 // indirect
90-
golang.org/x/text v0.24.0 // indirect
87+
golang.org/x/sync v0.14.0 // indirect
88+
golang.org/x/sys v0.33.0 // indirect
89+
golang.org/x/term v0.32.0 // indirect
90+
golang.org/x/text v0.25.0 // indirect
9191
golang.org/x/time v0.11.0 // indirect
9292
google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422 // indirect
9393
google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422 // indirect
@@ -97,9 +97,6 @@ require (
9797
gopkg.in/inf.v0 v0.9.1 // indirect
9898
gopkg.in/yaml.v3 v3.0.1 // indirect
9999
k8s.io/api v0.33.3 // indirect
100-
k8s.io/apiextensions-apiserver v0.33.0 // indirect
101-
k8s.io/apimachinery v0.33.3 // indirect
102-
k8s.io/client-go v0.33.3 // indirect
103100
k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff // indirect
104101
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect
105102
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 // indirect
@@ -111,36 +108,36 @@ require (
111108

112109
replace (
113110
github.com/google/cel-go => github.com/google/cel-go v0.22.1
114-
k8s.io/api => github.com/kcp-dev/kubernetes/staging/src/k8s.io/api v0.0.0-20250425143807-ddbe171670d8
115-
k8s.io/apiextensions-apiserver => github.com/kcp-dev/kubernetes/staging/src/k8s.io/apiextensions-apiserver v0.0.0-20250425143807-ddbe171670d8
116-
k8s.io/apimachinery => github.com/kcp-dev/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20250425143807-ddbe171670d8
117-
k8s.io/apiserver => github.com/kcp-dev/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20250425143807-ddbe171670d8
118-
k8s.io/cli-runtime => github.com/kcp-dev/kubernetes/staging/src/k8s.io/cli-runtime v0.0.0-20250425143807-ddbe171670d8
119-
k8s.io/client-go => github.com/kcp-dev/kubernetes/staging/src/k8s.io/client-go v0.0.0-20250425143807-ddbe171670d8
120-
k8s.io/cloud-provider => github.com/kcp-dev/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20250425143807-ddbe171670d8
121-
k8s.io/cluster-bootstrap => github.com/kcp-dev/kubernetes/staging/src/k8s.io/cluster-bootstrap v0.0.0-20250425143807-ddbe171670d8
122-
k8s.io/code-generator => github.com/kcp-dev/kubernetes/staging/src/k8s.io/code-generator v0.0.0-20250425143807-ddbe171670d8
123-
k8s.io/component-base => github.com/kcp-dev/kubernetes/staging/src/k8s.io/component-base v0.0.0-20250425143807-ddbe171670d8
124-
k8s.io/component-helpers => github.com/kcp-dev/kubernetes/staging/src/k8s.io/component-helpers v0.0.0-20250425143807-ddbe171670d8
125-
k8s.io/controller-manager => github.com/kcp-dev/kubernetes/staging/src/k8s.io/controller-manager v0.0.0-20250425143807-ddbe171670d8
126-
k8s.io/cri-api => github.com/kcp-dev/kubernetes/staging/src/k8s.io/cri-api v0.0.0-20250425143807-ddbe171670d8
127-
k8s.io/cri-client => github.com/kcp-dev/kubernetes/staging/src/k8s.io/cri-client v0.0.0-20250425143807-ddbe171670d8
128-
k8s.io/csi-translation-lib => github.com/kcp-dev/kubernetes/staging/src/k8s.io/csi-translation-lib v0.0.0-20250425143807-ddbe171670d8
129-
k8s.io/dynamic-resource-allocation => github.com/kcp-dev/kubernetes/staging/src/k8s.io/dynamic-resource-allocation v0.0.0-20250425143807-ddbe171670d8
130-
k8s.io/endpointslice => github.com/kcp-dev/kubernetes/staging/src/k8s.io/endpointslice v0.0.0-20250425143807-ddbe171670d8
131-
k8s.io/externaljwt => github.com/kcp-dev/kubernetes/staging/src/k8s.io/externaljwt v0.0.0-20250425143807-ddbe171670d8
132-
k8s.io/kms => github.com/kcp-dev/kubernetes/staging/src/k8s.io/kms v0.0.0-20250425143807-ddbe171670d8
133-
k8s.io/kube-aggregator => github.com/kcp-dev/kubernetes/staging/src/k8s.io/kube-aggregator v0.0.0-20250425143807-ddbe171670d8
134-
k8s.io/kube-controller-manager => github.com/kcp-dev/kubernetes/staging/src/k8s.io/kube-controller-manager v0.0.0-20250425143807-ddbe171670d8
135-
k8s.io/kube-proxy => github.com/kcp-dev/kubernetes/staging/src/k8s.io/kube-proxy v0.0.0-20250425143807-ddbe171670d8
136-
k8s.io/kube-scheduler => github.com/kcp-dev/kubernetes/staging/src/k8s.io/kube-scheduler v0.0.0-20250425143807-ddbe171670d8
137-
k8s.io/kubectl => github.com/kcp-dev/kubernetes/staging/src/k8s.io/kubectl v0.0.0-20250425143807-ddbe171670d8
138-
k8s.io/kubelet => github.com/kcp-dev/kubernetes/staging/src/k8s.io/kubelet v0.0.0-20250425143807-ddbe171670d8
139-
k8s.io/kubernetes => github.com/kcp-dev/kubernetes v0.0.0-20250425143807-ddbe171670d8
140-
k8s.io/metrics => github.com/kcp-dev/kubernetes/staging/src/k8s.io/metrics v0.0.0-20250425143807-ddbe171670d8
141-
k8s.io/mount-utils => github.com/kcp-dev/kubernetes/staging/src/k8s.io/mount-utils v0.0.0-20250425143807-ddbe171670d8
142-
k8s.io/pod-security-admission => github.com/kcp-dev/kubernetes/staging/src/k8s.io/pod-security-admission v0.0.0-20250425143807-ddbe171670d8
143-
k8s.io/sample-apiserver => github.com/kcp-dev/kubernetes/staging/src/k8s.io/sample-apiserver v0.0.0-20250425143807-ddbe171670d8
144-
k8s.io/sample-cli-plugin => github.com/kcp-dev/kubernetes/staging/src/k8s.io/sample-cli-plugin v0.0.0-20250425143807-ddbe171670d8
145-
k8s.io/sample-controller => github.com/kcp-dev/kubernetes/staging/src/k8s.io/sample-controller v0.0.0-20250425143807-ddbe171670d8
111+
k8s.io/api => github.com/kcp-dev/kubernetes/staging/src/k8s.io/api v0.0.0-20250816165010-ffe1d7c8649b
112+
k8s.io/apiextensions-apiserver => github.com/kcp-dev/kubernetes/staging/src/k8s.io/apiextensions-apiserver v0.0.0-20250816165010-ffe1d7c8649b
113+
k8s.io/apimachinery => github.com/kcp-dev/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20250816165010-ffe1d7c8649b
114+
k8s.io/apiserver => github.com/kcp-dev/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20250816165010-ffe1d7c8649b
115+
k8s.io/cli-runtime => github.com/kcp-dev/kubernetes/staging/src/k8s.io/cli-runtime v0.0.0-20250816165010-ffe1d7c8649b
116+
k8s.io/client-go => github.com/kcp-dev/kubernetes/staging/src/k8s.io/client-go v0.0.0-20250816165010-ffe1d7c8649b
117+
k8s.io/cloud-provider => github.com/kcp-dev/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20250816165010-ffe1d7c8649b
118+
k8s.io/cluster-bootstrap => github.com/kcp-dev/kubernetes/staging/src/k8s.io/cluster-bootstrap v0.0.0-20250816165010-ffe1d7c8649b
119+
k8s.io/code-generator => github.com/kcp-dev/kubernetes/staging/src/k8s.io/code-generator v0.0.0-20250816165010-ffe1d7c8649b
120+
k8s.io/component-base => github.com/kcp-dev/kubernetes/staging/src/k8s.io/component-base v0.0.0-20250816165010-ffe1d7c8649b
121+
k8s.io/component-helpers => github.com/kcp-dev/kubernetes/staging/src/k8s.io/component-helpers v0.0.0-20250816165010-ffe1d7c8649b
122+
k8s.io/controller-manager => github.com/kcp-dev/kubernetes/staging/src/k8s.io/controller-manager v0.0.0-20250816165010-ffe1d7c8649b
123+
k8s.io/cri-api => github.com/kcp-dev/kubernetes/staging/src/k8s.io/cri-api v0.0.0-20250816165010-ffe1d7c8649b
124+
k8s.io/cri-client => github.com/kcp-dev/kubernetes/staging/src/k8s.io/cri-client v0.0.0-20250816165010-ffe1d7c8649b
125+
k8s.io/csi-translation-lib => github.com/kcp-dev/kubernetes/staging/src/k8s.io/csi-translation-lib v0.0.0-20250816165010-ffe1d7c8649b
126+
k8s.io/dynamic-resource-allocation => github.com/kcp-dev/kubernetes/staging/src/k8s.io/dynamic-resource-allocation v0.0.0-20250816165010-ffe1d7c8649b
127+
k8s.io/endpointslice => github.com/kcp-dev/kubernetes/staging/src/k8s.io/endpointslice v0.0.0-20250816165010-ffe1d7c8649b
128+
k8s.io/externaljwt => github.com/kcp-dev/kubernetes/staging/src/k8s.io/externaljwt v0.0.0-20250816165010-ffe1d7c8649b
129+
k8s.io/kms => github.com/kcp-dev/kubernetes/staging/src/k8s.io/kms v0.0.0-20250816165010-ffe1d7c8649b
130+
k8s.io/kube-aggregator => github.com/kcp-dev/kubernetes/staging/src/k8s.io/kube-aggregator v0.0.0-20250816165010-ffe1d7c8649b
131+
k8s.io/kube-controller-manager => github.com/kcp-dev/kubernetes/staging/src/k8s.io/kube-controller-manager v0.0.0-20250816165010-ffe1d7c8649b
132+
k8s.io/kube-proxy => github.com/kcp-dev/kubernetes/staging/src/k8s.io/kube-proxy v0.0.0-20250816165010-ffe1d7c8649b
133+
k8s.io/kube-scheduler => github.com/kcp-dev/kubernetes/staging/src/k8s.io/kube-scheduler v0.0.0-20250816165010-ffe1d7c8649b
134+
k8s.io/kubectl => github.com/kcp-dev/kubernetes/staging/src/k8s.io/kubectl v0.0.0-20250816165010-ffe1d7c8649b
135+
k8s.io/kubelet => github.com/kcp-dev/kubernetes/staging/src/k8s.io/kubelet v0.0.0-20250816165010-ffe1d7c8649b
136+
k8s.io/kubernetes => github.com/kcp-dev/kubernetes v0.0.0-20250816165010-ffe1d7c8649b
137+
k8s.io/metrics => github.com/kcp-dev/kubernetes/staging/src/k8s.io/metrics v0.0.0-20250816165010-ffe1d7c8649b
138+
k8s.io/mount-utils => github.com/kcp-dev/kubernetes/staging/src/k8s.io/mount-utils v0.0.0-20250816165010-ffe1d7c8649b
139+
k8s.io/pod-security-admission => github.com/kcp-dev/kubernetes/staging/src/k8s.io/pod-security-admission v0.0.0-20250816165010-ffe1d7c8649b
140+
k8s.io/sample-apiserver => github.com/kcp-dev/kubernetes/staging/src/k8s.io/sample-apiserver v0.0.0-20250816165010-ffe1d7c8649b
141+
k8s.io/sample-cli-plugin => github.com/kcp-dev/kubernetes/staging/src/k8s.io/sample-cli-plugin v0.0.0-20250816165010-ffe1d7c8649b
142+
k8s.io/sample-controller => github.com/kcp-dev/kubernetes/staging/src/k8s.io/sample-controller v0.0.0-20250816165010-ffe1d7c8649b
146143
)

0 commit comments

Comments
 (0)