diff --git a/go.mod b/go.mod index 1904141..24c66d8 100644 --- a/go.mod +++ b/go.mod @@ -23,40 +23,40 @@ require ( ) replace ( - github.com/kplane-dev/informer => github.com/kplane-dev/informer v0.0.0-20260303050920-e9c86850386e - github.com/kplane-dev/storage => github.com/kplane-dev/storage v0.0.0-20260303050750-8ad94e8ce404 - k8s.io/api => github.com/kplane-dev/kubernetes/staging/src/k8s.io/api v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/apiextensions-apiserver => github.com/kplane-dev/kubernetes/staging/src/k8s.io/apiextensions-apiserver v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/apimachinery => github.com/kplane-dev/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/apiserver => github.com/kplane-dev/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/cli-runtime => github.com/kplane-dev/kubernetes/staging/src/k8s.io/cli-runtime v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/client-go => github.com/kplane-dev/kubernetes/staging/src/k8s.io/client-go v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/cloud-provider => github.com/kplane-dev/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/cluster-bootstrap => github.com/kplane-dev/kubernetes/staging/src/k8s.io/cluster-bootstrap v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/code-generator => github.com/kplane-dev/kubernetes/staging/src/k8s.io/code-generator v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/component-base => github.com/kplane-dev/kubernetes/staging/src/k8s.io/component-base v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/component-helpers => github.com/kplane-dev/kubernetes/staging/src/k8s.io/component-helpers v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/controller-manager => github.com/kplane-dev/kubernetes/staging/src/k8s.io/controller-manager v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/cri-api => github.com/kplane-dev/kubernetes/staging/src/k8s.io/cri-api v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/cri-client => github.com/kplane-dev/kubernetes/staging/src/k8s.io/cri-client v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/csi-translation-lib => github.com/kplane-dev/kubernetes/staging/src/k8s.io/csi-translation-lib v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/dynamic-resource-allocation => github.com/kplane-dev/kubernetes/staging/src/k8s.io/dynamic-resource-allocation v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/endpointslice => github.com/kplane-dev/kubernetes/staging/src/k8s.io/endpointslice v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/externaljwt => github.com/kplane-dev/kubernetes/staging/src/k8s.io/externaljwt v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/kms => github.com/kplane-dev/kubernetes/staging/src/k8s.io/kms v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/kube-aggregator => github.com/kplane-dev/kubernetes/staging/src/k8s.io/kube-aggregator v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/kube-controller-manager => github.com/kplane-dev/kubernetes/staging/src/k8s.io/kube-controller-manager v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/kube-proxy => github.com/kplane-dev/kubernetes/staging/src/k8s.io/kube-proxy v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/kube-scheduler => github.com/kplane-dev/kubernetes/staging/src/k8s.io/kube-scheduler v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/kubectl => github.com/kplane-dev/kubernetes/staging/src/k8s.io/kubectl v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/kubelet => github.com/kplane-dev/kubernetes/staging/src/k8s.io/kubelet v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/kubernetes => github.com/kplane-dev/kubernetes v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/metrics => github.com/kplane-dev/kubernetes/staging/src/k8s.io/metrics v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/mount-utils => github.com/kplane-dev/kubernetes/staging/src/k8s.io/mount-utils v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/pod-security-admission => github.com/kplane-dev/kubernetes/staging/src/k8s.io/pod-security-admission v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/sample-apiserver => github.com/kplane-dev/kubernetes/staging/src/k8s.io/sample-apiserver v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/sample-cli-plugin => github.com/kplane-dev/kubernetes/staging/src/k8s.io/sample-cli-plugin v0.0.0-20260303044756-e9e2a52adaf0 - k8s.io/sample-controller => github.com/kplane-dev/kubernetes/staging/src/k8s.io/sample-controller v0.0.0-20260303044756-e9e2a52adaf0 + github.com/kplane-dev/informer => github.com/kplane-dev/informer v0.0.0-20260404055613-d9279cfd5e9b + github.com/kplane-dev/storage => github.com/kplane-dev/storage v0.0.0-20260404055526-b175d95c9fe7 + k8s.io/api => github.com/kplane-dev/kubernetes/staging/src/k8s.io/api v0.0.0-20260404055358-aac72e7d04ad + k8s.io/apiextensions-apiserver => github.com/kplane-dev/kubernetes/staging/src/k8s.io/apiextensions-apiserver v0.0.0-20260404055358-aac72e7d04ad + k8s.io/apimachinery => github.com/kplane-dev/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20260404055358-aac72e7d04ad + k8s.io/apiserver => github.com/kplane-dev/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20260404055358-aac72e7d04ad + k8s.io/cli-runtime => github.com/kplane-dev/kubernetes/staging/src/k8s.io/cli-runtime v0.0.0-20260404055358-aac72e7d04ad + k8s.io/client-go => github.com/kplane-dev/kubernetes/staging/src/k8s.io/client-go v0.0.0-20260404055358-aac72e7d04ad + k8s.io/cloud-provider => github.com/kplane-dev/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20260404055358-aac72e7d04ad + k8s.io/cluster-bootstrap => github.com/kplane-dev/kubernetes/staging/src/k8s.io/cluster-bootstrap v0.0.0-20260404055358-aac72e7d04ad + k8s.io/code-generator => github.com/kplane-dev/kubernetes/staging/src/k8s.io/code-generator v0.0.0-20260404055358-aac72e7d04ad + k8s.io/component-base => github.com/kplane-dev/kubernetes/staging/src/k8s.io/component-base v0.0.0-20260404055358-aac72e7d04ad + k8s.io/component-helpers => github.com/kplane-dev/kubernetes/staging/src/k8s.io/component-helpers v0.0.0-20260404055358-aac72e7d04ad + k8s.io/controller-manager => github.com/kplane-dev/kubernetes/staging/src/k8s.io/controller-manager v0.0.0-20260404055358-aac72e7d04ad + k8s.io/cri-api => github.com/kplane-dev/kubernetes/staging/src/k8s.io/cri-api v0.0.0-20260404055358-aac72e7d04ad + k8s.io/cri-client => github.com/kplane-dev/kubernetes/staging/src/k8s.io/cri-client v0.0.0-20260404055358-aac72e7d04ad + k8s.io/csi-translation-lib => github.com/kplane-dev/kubernetes/staging/src/k8s.io/csi-translation-lib v0.0.0-20260404055358-aac72e7d04ad + k8s.io/dynamic-resource-allocation => github.com/kplane-dev/kubernetes/staging/src/k8s.io/dynamic-resource-allocation v0.0.0-20260404055358-aac72e7d04ad + k8s.io/endpointslice => github.com/kplane-dev/kubernetes/staging/src/k8s.io/endpointslice v0.0.0-20260404055358-aac72e7d04ad + k8s.io/externaljwt => github.com/kplane-dev/kubernetes/staging/src/k8s.io/externaljwt v0.0.0-20260404055358-aac72e7d04ad + k8s.io/kms => github.com/kplane-dev/kubernetes/staging/src/k8s.io/kms v0.0.0-20260404055358-aac72e7d04ad + k8s.io/kube-aggregator => github.com/kplane-dev/kubernetes/staging/src/k8s.io/kube-aggregator v0.0.0-20260404055358-aac72e7d04ad + k8s.io/kube-controller-manager => github.com/kplane-dev/kubernetes/staging/src/k8s.io/kube-controller-manager v0.0.0-20260404055358-aac72e7d04ad + k8s.io/kube-proxy => github.com/kplane-dev/kubernetes/staging/src/k8s.io/kube-proxy v0.0.0-20260404055358-aac72e7d04ad + k8s.io/kube-scheduler => github.com/kplane-dev/kubernetes/staging/src/k8s.io/kube-scheduler v0.0.0-20260404055358-aac72e7d04ad + k8s.io/kubectl => github.com/kplane-dev/kubernetes/staging/src/k8s.io/kubectl v0.0.0-20260404055358-aac72e7d04ad + k8s.io/kubelet => github.com/kplane-dev/kubernetes/staging/src/k8s.io/kubelet v0.0.0-20260404055358-aac72e7d04ad + k8s.io/kubernetes => github.com/kplane-dev/kubernetes v0.0.0-20260404055358-aac72e7d04ad + k8s.io/metrics => github.com/kplane-dev/kubernetes/staging/src/k8s.io/metrics v0.0.0-20260404055358-aac72e7d04ad + k8s.io/mount-utils => github.com/kplane-dev/kubernetes/staging/src/k8s.io/mount-utils v0.0.0-20260404055358-aac72e7d04ad + k8s.io/pod-security-admission => github.com/kplane-dev/kubernetes/staging/src/k8s.io/pod-security-admission v0.0.0-20260404055358-aac72e7d04ad + k8s.io/sample-apiserver => github.com/kplane-dev/kubernetes/staging/src/k8s.io/sample-apiserver v0.0.0-20260404055358-aac72e7d04ad + k8s.io/sample-cli-plugin => github.com/kplane-dev/kubernetes/staging/src/k8s.io/sample-cli-plugin v0.0.0-20260404055358-aac72e7d04ad + k8s.io/sample-controller => github.com/kplane-dev/kubernetes/staging/src/k8s.io/sample-controller v0.0.0-20260404055358-aac72e7d04ad ) require ( diff --git a/go.sum b/go.sum index 36b41cb..00b883f 100644 --- a/go.sum +++ b/go.sum @@ -125,64 +125,64 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= -github.com/kplane-dev/informer v0.0.0-20260303050920-e9c86850386e h1:alhKoCGQhvNyKi+8h0/m3N46/mfxmvzUAK4gFabPsJk= -github.com/kplane-dev/informer v0.0.0-20260303050920-e9c86850386e/go.mod h1:Nd1KQEeObbfGhP3NZsLNrOtNVDl6h4L3l4R52FQrJYI= -github.com/kplane-dev/kubernetes v0.0.0-20260303044756-e9e2a52adaf0 h1:6s12hLrc1qmwLFEhI5OofZ7J07sw8q7pg552jgNlpTU= -github.com/kplane-dev/kubernetes v0.0.0-20260303044756-e9e2a52adaf0/go.mod h1:9uEdeMBkUjkGSL2ioy2pKr0+aLNIvmOan7p8F7ENHbk= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/api v0.0.0-20260303044756-e9e2a52adaf0 h1:sQjyTi6O+gAnxvjltaNQk77Q+0gCPopYDH9P1YZkN/k= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/api v0.0.0-20260303044756-e9e2a52adaf0/go.mod h1:KOrdwhDi3QHVXr50HAWBhO2r9uMtWbO46CiIHzRVtU8= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/apiextensions-apiserver v0.0.0-20260303044756-e9e2a52adaf0 h1:SC2NAxlp1NfqJo6lfPgGWYDdqlT3A39UpmvlOlznvKM= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/apiextensions-apiserver v0.0.0-20260303044756-e9e2a52adaf0/go.mod h1:wZyuUfbqWsRKO42GvZVHZSJ0JttMO7YrXnu/bv/GqPg= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20260303044756-e9e2a52adaf0 h1:2TJwa1qB8fIP5+SxnZydicT9uxKFnVx92afDO8O1tVE= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20260303044756-e9e2a52adaf0/go.mod h1:7mgr/dli8ofwAbcIQXetFVX1fbOYsOYojq3AUbybVmQ= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20260303044756-e9e2a52adaf0 h1:ylj6Fc6O3iXH6pLyfYEFhXjNjgEm9v3mVt8jWsdZeYY= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20260303044756-e9e2a52adaf0/go.mod h1:GNWcUSRqjpm4i1hrLaGA7EQrl60YdahMic4aS+WUQVI= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/client-go v0.0.0-20260303044756-e9e2a52adaf0 h1:RM/DJi1rJcAb7RQI+Zt5NxHJNk2cAM+KDVl9Xl9lxIU= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/client-go v0.0.0-20260303044756-e9e2a52adaf0/go.mod h1:7IM9p4c8CafSxF7ZY0F46WHylFn3o4mLVW5T1VZbaY8= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20260303044756-e9e2a52adaf0 h1:2PkgzWXTPKwkcuzEcxsMTUf8llfcOl5rzR3r1UbSLVw= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20260303044756-e9e2a52adaf0/go.mod h1:bGWrOCyYWe9G/1zpB0hSLAO+BnZUNbNVWXcHAzfaF+E= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/cluster-bootstrap v0.0.0-20260303044756-e9e2a52adaf0 h1:dt9wd4bwSNXxi8Ma/PdECxhVAotI8LVUusSPMzSf740= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/cluster-bootstrap v0.0.0-20260303044756-e9e2a52adaf0/go.mod h1:CxFNOU1/U4gfM4SU7hRkzCRhTfUweuTLRWKWh6yitcE= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/component-base v0.0.0-20260303044756-e9e2a52adaf0 h1:azL0YSPSlc/id0oPDs4hXeWSiv8HO9vrNhxEl6LdbVY= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/component-base v0.0.0-20260303044756-e9e2a52adaf0/go.mod h1:R6vYa1XRfX3PdQEGNkCaL3pt7NvLU2ti7FPzsEsA6GQ= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/component-helpers v0.0.0-20260303044756-e9e2a52adaf0 h1:c3DFoxrOUhhzUIyLOjGRvFGABKKPF1aDgq5xYHpaOEI= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/component-helpers v0.0.0-20260303044756-e9e2a52adaf0/go.mod h1:axBpPWJYMZFstDUXj45ooTW3njLMa7B8Kz8o4QY5xfk= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/controller-manager v0.0.0-20260303044756-e9e2a52adaf0 h1:FUKLrOqS04/6uSpEVD0cLCT9+IRCuQpgEceDpJ9PoNs= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/controller-manager v0.0.0-20260303044756-e9e2a52adaf0/go.mod h1:gjjSpBn/ZS8VRB+BMH7Ttd2kk+Hr+IYvm4LwBwQAtaU= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/cri-api v0.0.0-20260303044756-e9e2a52adaf0 h1:Q3mSnGo3lyBFi83ztys5jItqPuqqGDIi0HPmlWCclb8= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/cri-api v0.0.0-20260303044756-e9e2a52adaf0/go.mod h1:sez47HjW1useDMcQeVkW7kQNjwzaLJlaJoMcWYU6WVE= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/cri-client v0.0.0-20260303044756-e9e2a52adaf0 h1:PNPWPY/kn7vuwIYFeXCWdc0A06S8Mm08jzmErUisus4= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/cri-client v0.0.0-20260303044756-e9e2a52adaf0/go.mod h1:rVFUCMkvRUmEXFCLoBSsAbnSarFL/9tYTe6kE+nh/a0= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/csi-translation-lib v0.0.0-20260303044756-e9e2a52adaf0 h1:QOHDI3guNsPh6OlJqVMOu/wgwYLlVtMhm4U05oNDa8c= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/csi-translation-lib v0.0.0-20260303044756-e9e2a52adaf0/go.mod h1:h4+rRn/HN1k7Uln9nnxykSWPI5ZBQCBJyHosyW4F7nk= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/dynamic-resource-allocation v0.0.0-20260303044756-e9e2a52adaf0 h1:LUI/X6tSzQknb1Sj6NTdwZlqjPcpu1i5Ncyz8SQVlGo= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/dynamic-resource-allocation v0.0.0-20260303044756-e9e2a52adaf0/go.mod h1:2UvGX2oAJmCnqKSEBlBMnCEWisTXl2ZXQK/quJy61Q4= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/endpointslice v0.0.0-20260303044756-e9e2a52adaf0 h1:7ow1+bA4PhrMBdYxnOwjHrSRHYZJrIeNXjjmGH3d0C4= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/endpointslice v0.0.0-20260303044756-e9e2a52adaf0/go.mod h1:fdIUBx+W5Ypy0TBvfW8qonHr4QV3iXw+N+ADcGYf8eI= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/externaljwt v0.0.0-20260303044756-e9e2a52adaf0 h1:Q+5yNIJcssUqBYZLqrDOB4SukPAutQDtzYdowPDsfUg= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/externaljwt v0.0.0-20260303044756-e9e2a52adaf0/go.mod h1:+8tzBBizhTus+bM0JPY/4h2O26NxIQgcEBdK5Xdfehc= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/kms v0.0.0-20260303044756-e9e2a52adaf0 h1:No3QOZxohl0wJ9y8FIeS+40LQaKYsKi/9JDNSN64u/s= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/kms v0.0.0-20260303044756-e9e2a52adaf0/go.mod h1:rhO9JHsWibaRLx12/ViuMQdeZi43hsiXCl8KEEihjaw= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/kube-aggregator v0.0.0-20260303044756-e9e2a52adaf0 h1:aa+2RkO/nOKISlkzNxnHsGRSlqYgdN3f0K9hmUDryP0= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/kube-aggregator v0.0.0-20260303044756-e9e2a52adaf0/go.mod h1:KXJ9MlZYxlzOWKhHqfdxOTDdmfk/+ftdOwN//JGQs0g= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/kube-controller-manager v0.0.0-20260303044756-e9e2a52adaf0 h1:M93LWZ6iNDKr5lKTKc727Idty1Yb28cqgSfM9iBS+F0= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/kube-controller-manager v0.0.0-20260303044756-e9e2a52adaf0/go.mod h1:fvSj40FltpPVU4KLda+I/WhFTwwiGuPpzpy+5UeiOaM= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/kube-proxy v0.0.0-20260303044756-e9e2a52adaf0 h1:3irDg3wS8FC2Ad2etU4zIuvPOrvqZLLn/uAL+zarO7c= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/kube-proxy v0.0.0-20260303044756-e9e2a52adaf0/go.mod h1:1nDymEUiZa0nIsVZkeSAFISoJsp0Nnd40vWuipDGLv0= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/kube-scheduler v0.0.0-20260303044756-e9e2a52adaf0 h1:oTGF1xkyClEHgE6tPJRea+nr+qj87xhk7spFpczhCUg= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/kube-scheduler v0.0.0-20260303044756-e9e2a52adaf0/go.mod h1:5ZwsfUdHnj/nEAAdk8utKGDG6c4eZTyZg/7BHPE4uaQ= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/kubectl v0.0.0-20260303044756-e9e2a52adaf0 h1:UMxEse6cLj5UVoPrnUvCLXejOy1Q0NQjZ8f22mYuOXI= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/kubectl v0.0.0-20260303044756-e9e2a52adaf0/go.mod h1:ZmlXPtm3wJFF6x/7QU8q/op7GHIyBvnUjsbkud1NeNQ= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/kubelet v0.0.0-20260303044756-e9e2a52adaf0 h1:zUmxHL3TG3Ou7SN/zU0I5ykFaTOuterfjqAPIJWgb7c= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/kubelet v0.0.0-20260303044756-e9e2a52adaf0/go.mod h1:h59njVygVWeHIhmMqMoocQNjUyC3q8D51fZNSuMEAis= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/metrics v0.0.0-20260303044756-e9e2a52adaf0 h1:FrczvZ9dkyIrBdL9dMjeFy4bAe1mdWZOeJklFJUxmpE= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/metrics v0.0.0-20260303044756-e9e2a52adaf0/go.mod h1:5vBQ1SE0Ed1m5R6BkCKRXDboEjmKbbO17EyrF6XXiqA= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/mount-utils v0.0.0-20260303044756-e9e2a52adaf0 h1:JuZNurkMdNL7PrkddsBKsbJuEtCGaC6lB5fvGsVHwsU= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/mount-utils v0.0.0-20260303044756-e9e2a52adaf0/go.mod h1:0tRkeDDp5zQDR/JKhcttJMwq3mTWqNm5GE2DgjfRvsY= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/pod-security-admission v0.0.0-20260303044756-e9e2a52adaf0 h1:VD7WwvMpgBTi++h1LpLszj9fZXBwMhPtb6jIjlpLeGo= -github.com/kplane-dev/kubernetes/staging/src/k8s.io/pod-security-admission v0.0.0-20260303044756-e9e2a52adaf0/go.mod h1:2Hv3+Ga3SCWHO9E8+Ym58CioDvWe7wW21gy3nVetVNw= -github.com/kplane-dev/storage v0.0.0-20260303050750-8ad94e8ce404 h1:WBSxvdd1pjj2BesniHdRIBklW84P8KQfjvc/RRCvNJg= -github.com/kplane-dev/storage v0.0.0-20260303050750-8ad94e8ce404/go.mod h1:CApTI1DlyUgXF/p8uWvPVQ0pyPoeY7Yt+enSu57gPoo= +github.com/kplane-dev/informer v0.0.0-20260404055613-d9279cfd5e9b h1:Z1+b+fPm/I2STcdIT3Psb3OYng2xYYILMmdgD55KEm8= +github.com/kplane-dev/informer v0.0.0-20260404055613-d9279cfd5e9b/go.mod h1:y+IpeQX/vAaf7h6d+fwTYQ9kqdpwJdjHCc5KuN4JcC4= +github.com/kplane-dev/kubernetes v0.0.0-20260404055358-aac72e7d04ad h1:249TYMHw60P6D58XGVjf7G2TNp708zRyNa0RbXfQAUQ= +github.com/kplane-dev/kubernetes v0.0.0-20260404055358-aac72e7d04ad/go.mod h1:9uEdeMBkUjkGSL2ioy2pKr0+aLNIvmOan7p8F7ENHbk= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/api v0.0.0-20260404055358-aac72e7d04ad h1:0k/XM+mWOjNWWmc/HkYP5qYcIw72vssnGhS6i7jidBE= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/api v0.0.0-20260404055358-aac72e7d04ad/go.mod h1:KOrdwhDi3QHVXr50HAWBhO2r9uMtWbO46CiIHzRVtU8= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/apiextensions-apiserver v0.0.0-20260404055358-aac72e7d04ad h1:XLq9ewx7uGAHa18cYQ1juWA/2dgrp4/bct+38M2XSuQ= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/apiextensions-apiserver v0.0.0-20260404055358-aac72e7d04ad/go.mod h1:wZyuUfbqWsRKO42GvZVHZSJ0JttMO7YrXnu/bv/GqPg= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20260404055358-aac72e7d04ad h1:hR3yKcG3v2+mjQEMME/9piLycd/Ry7JKtzVGB76satk= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20260404055358-aac72e7d04ad/go.mod h1:7mgr/dli8ofwAbcIQXetFVX1fbOYsOYojq3AUbybVmQ= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20260404055358-aac72e7d04ad h1:mWkFOi6/+Ttf9RzcReo+0Om1AFJDTrHzxnfIWueiTRQ= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20260404055358-aac72e7d04ad/go.mod h1:GNWcUSRqjpm4i1hrLaGA7EQrl60YdahMic4aS+WUQVI= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/client-go v0.0.0-20260404055358-aac72e7d04ad h1:OhrfiUM1g6sHUohSTgiWoTwXfl1fg2He51+X0KneB8c= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/client-go v0.0.0-20260404055358-aac72e7d04ad/go.mod h1:7IM9p4c8CafSxF7ZY0F46WHylFn3o4mLVW5T1VZbaY8= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20260404055358-aac72e7d04ad h1:J8CwRPJ1ehjMrT0UbH2cUaXDTUfJ7W7JVRkMumWKukw= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20260404055358-aac72e7d04ad/go.mod h1:bGWrOCyYWe9G/1zpB0hSLAO+BnZUNbNVWXcHAzfaF+E= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/cluster-bootstrap v0.0.0-20260404055358-aac72e7d04ad h1:BH4eKNGN6ep4PQzAOya7Y2tqFui5jvl95jelztrCl1s= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/cluster-bootstrap v0.0.0-20260404055358-aac72e7d04ad/go.mod h1:CxFNOU1/U4gfM4SU7hRkzCRhTfUweuTLRWKWh6yitcE= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/component-base v0.0.0-20260404055358-aac72e7d04ad h1:msldiJV5olCNfzoFD7pMKFMa1D0DTMWbASyAS4fxMEs= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/component-base v0.0.0-20260404055358-aac72e7d04ad/go.mod h1:R6vYa1XRfX3PdQEGNkCaL3pt7NvLU2ti7FPzsEsA6GQ= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/component-helpers v0.0.0-20260404055358-aac72e7d04ad h1:y+O0nFoSa7+0Z9HAfB0ffVjTiUxETsGzmi7vS3m7HWQ= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/component-helpers v0.0.0-20260404055358-aac72e7d04ad/go.mod h1:axBpPWJYMZFstDUXj45ooTW3njLMa7B8Kz8o4QY5xfk= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/controller-manager v0.0.0-20260404055358-aac72e7d04ad h1:5bXsA+t0Qj8s/qLCB1ZWbjZTBLNYXbW2wLG+XrSiVhI= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/controller-manager v0.0.0-20260404055358-aac72e7d04ad/go.mod h1:gjjSpBn/ZS8VRB+BMH7Ttd2kk+Hr+IYvm4LwBwQAtaU= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/cri-api v0.0.0-20260404055358-aac72e7d04ad h1:f8s2S/2J/nm4NhCjkrU5tST0B3Y3e+501NxH/dJizXc= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/cri-api v0.0.0-20260404055358-aac72e7d04ad/go.mod h1:sez47HjW1useDMcQeVkW7kQNjwzaLJlaJoMcWYU6WVE= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/cri-client v0.0.0-20260404055358-aac72e7d04ad h1:ufowm4dXMNXSHGVkjfdqkRWVdq04dAmeGhu6miLuz5E= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/cri-client v0.0.0-20260404055358-aac72e7d04ad/go.mod h1:rVFUCMkvRUmEXFCLoBSsAbnSarFL/9tYTe6kE+nh/a0= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/csi-translation-lib v0.0.0-20260404055358-aac72e7d04ad h1:HgcSsZgjPAgPkK0nIZGTVliZx1HREu5X9GOMMLi2vyY= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/csi-translation-lib v0.0.0-20260404055358-aac72e7d04ad/go.mod h1:h4+rRn/HN1k7Uln9nnxykSWPI5ZBQCBJyHosyW4F7nk= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/dynamic-resource-allocation v0.0.0-20260404055358-aac72e7d04ad h1:nl9unlL2JiIKQ3FgVbVQXwibcJU0npGsKUkB7uTDOBE= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/dynamic-resource-allocation v0.0.0-20260404055358-aac72e7d04ad/go.mod h1:2UvGX2oAJmCnqKSEBlBMnCEWisTXl2ZXQK/quJy61Q4= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/endpointslice v0.0.0-20260404055358-aac72e7d04ad h1:+GjOBFoY4CtAwNsgRKUoFcL7g7sizw6QROeSnLZZRgM= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/endpointslice v0.0.0-20260404055358-aac72e7d04ad/go.mod h1:fdIUBx+W5Ypy0TBvfW8qonHr4QV3iXw+N+ADcGYf8eI= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/externaljwt v0.0.0-20260404055358-aac72e7d04ad h1:dGtsABtyNZPtY696j/WnFHM8mTaMNw0KJgbCxO4lG6c= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/externaljwt v0.0.0-20260404055358-aac72e7d04ad/go.mod h1:+8tzBBizhTus+bM0JPY/4h2O26NxIQgcEBdK5Xdfehc= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/kms v0.0.0-20260404055358-aac72e7d04ad h1:F5GG5dhOffoOm+4jG94RLGaaFdKKO0nPiJCCqTHn8h8= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/kms v0.0.0-20260404055358-aac72e7d04ad/go.mod h1:rhO9JHsWibaRLx12/ViuMQdeZi43hsiXCl8KEEihjaw= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/kube-aggregator v0.0.0-20260404055358-aac72e7d04ad h1:0cEi7M+eIESF+kWiEHnL7/kirpbvEn/b2asLQSZHx3o= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/kube-aggregator v0.0.0-20260404055358-aac72e7d04ad/go.mod h1:KXJ9MlZYxlzOWKhHqfdxOTDdmfk/+ftdOwN//JGQs0g= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/kube-controller-manager v0.0.0-20260404055358-aac72e7d04ad h1:BZew8n8DewnquBgR4mEKdgvoq3EVV3/4EMyW37KAd+8= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/kube-controller-manager v0.0.0-20260404055358-aac72e7d04ad/go.mod h1:fvSj40FltpPVU4KLda+I/WhFTwwiGuPpzpy+5UeiOaM= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/kube-proxy v0.0.0-20260404055358-aac72e7d04ad h1:EEyuT5azRN/RkWgXDczPRDgX3598fP1iHsuVQauWGi4= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/kube-proxy v0.0.0-20260404055358-aac72e7d04ad/go.mod h1:1nDymEUiZa0nIsVZkeSAFISoJsp0Nnd40vWuipDGLv0= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/kube-scheduler v0.0.0-20260404055358-aac72e7d04ad h1:sdCFHW5DkVxoth6vaYH4Gu05ay0Vd2jOz4ag9cYBcxw= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/kube-scheduler v0.0.0-20260404055358-aac72e7d04ad/go.mod h1:5ZwsfUdHnj/nEAAdk8utKGDG6c4eZTyZg/7BHPE4uaQ= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/kubectl v0.0.0-20260404055358-aac72e7d04ad h1:GNH39+P1HigOfx5C8H0blnUhq1KU3pVzXuKeMJ5KFOE= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/kubectl v0.0.0-20260404055358-aac72e7d04ad/go.mod h1:ZmlXPtm3wJFF6x/7QU8q/op7GHIyBvnUjsbkud1NeNQ= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/kubelet v0.0.0-20260404055358-aac72e7d04ad h1:/+N54AxY+Oacq2Ovo9HP1jNJWQhfllm6KTLLfxjtAxo= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/kubelet v0.0.0-20260404055358-aac72e7d04ad/go.mod h1:h59njVygVWeHIhmMqMoocQNjUyC3q8D51fZNSuMEAis= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/metrics v0.0.0-20260404055358-aac72e7d04ad h1:Y3dWxmUNbH9sYyldW7SbGzQCtUPh94yqxnNJTcW1y8c= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/metrics v0.0.0-20260404055358-aac72e7d04ad/go.mod h1:5vBQ1SE0Ed1m5R6BkCKRXDboEjmKbbO17EyrF6XXiqA= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/mount-utils v0.0.0-20260404055358-aac72e7d04ad h1:Lz4SqxEKxB2lxmBCnaoqyx4ofqx13nmo838ZFMI+OG0= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/mount-utils v0.0.0-20260404055358-aac72e7d04ad/go.mod h1:0tRkeDDp5zQDR/JKhcttJMwq3mTWqNm5GE2DgjfRvsY= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/pod-security-admission v0.0.0-20260404055358-aac72e7d04ad h1:d51TIux4RCxVjdYsZnyyQcwiA/h1R7hTlH5s80Ylzp8= +github.com/kplane-dev/kubernetes/staging/src/k8s.io/pod-security-admission v0.0.0-20260404055358-aac72e7d04ad/go.mod h1:2Hv3+Ga3SCWHO9E8+Ym58CioDvWe7wW21gy3nVetVNw= +github.com/kplane-dev/storage v0.0.0-20260404055526-b175d95c9fe7 h1:mvqa9LueCYKUDY/2Hsrg4E7/UwtFcps5dAua31PgS+0= +github.com/kplane-dev/storage v0.0.0-20260404055526-b175d95c9fe7/go.mod h1:add4/uRzmN2LrWjbWvoEGfIFBD5E1gfG+FJ/V/JN8SI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= diff --git a/test/smoke/list_after_restart_test.go b/test/smoke/list_after_restart_test.go new file mode 100644 index 0000000..796275c --- /dev/null +++ b/test/smoke/list_after_restart_test.go @@ -0,0 +1,96 @@ +package smoke + +import ( + "context" + "os" + "strings" + "testing" + "time" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// TestListAfterRestart reproduces the cacher keying bug where LIST returns +// empty for some VCPs after an apiserver restart. +// +// Root cause: the reflector's WatchList uses a temporaryStore keyed by +// DeletionHandlingMetaNamespaceKeyFunc (namespace/name). When multiple VCPs +// have same-named objects (every VCP has "default", "kube-system", etc.), +// the temporaryStore deduplicates them. Only the last VCP's objects survive. +// Replace sends the deduplicated set to the watchCache, so most VCPs +// get empty LIST results. +// +// This test does NOT require any etcd manipulation — a simple restart +// with existing multi-VCP data triggers the bug. +func TestListAfterRestart(t *testing.T) { + etcd := os.Getenv("ETCD_ENDPOINTS") + if strings.TrimSpace(etcd) == "" { + t.Skip("ETCD_ENDPOINTS is not set") + } + + prefix := randomEtcdPrefix("restart") + + // Start apiserver and create VCPs + s := startAPIServerWithOptions(t, etcd, apiserverOptions{etcdPrefix: prefix}) + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Minute) + defer cancel() + + clusters := []string{"vcp-alpha", "vcp-beta", "vcp-gamma"} + for _, cid := range clusters { + cs := kubeClientForCluster(t, s, cid) + if err := waitForNamespace(ctx, cs, "default"); err != nil { + t.Fatalf("cluster %s: bootstrap failed: %v", cid, err) + } + } + + // Verify all VCPs work before restart + for _, cid := range clusters { + verifyListAndGet(ctx, t, s, cid, "before-restart") + } + verifyListAndGet(ctx, t, s, s.root, "before-restart-root") + t.Log("pre-restart: all VCPs return namespaces via LIST") + + // Restart apiserver — same etcd, no data manipulation + s.Stop() + s2 := startAPIServerWithOptions(t, etcd, apiserverOptions{ + etcdPrefix: prefix, + port: s.port, + }) + + // Wait for VCPs to be accessible + time.Sleep(5 * time.Second) + + // Verify all VCPs still work after restart + for _, cid := range clusters { + verifyListAndGet(ctx, t, s2, cid, "after-restart") + } + verifyListAndGet(ctx, t, s2, s2.root, "after-restart-root") + t.Log("post-restart: all VCPs return namespaces via LIST") +} + +func verifyListAndGet(ctx context.Context, t *testing.T, s *testAPIServer, clusterID, phase string) { + t.Helper() + cs := kubeClientForCluster(t, s, clusterID) + + nsList, err := cs.CoreV1().Namespaces().List(ctx, metav1.ListOptions{}) + if err != nil { + t.Fatalf("[%s] cluster %s: LIST error: %v", phase, clusterID, err) + } + + ns, getErr := cs.CoreV1().Namespaces().Get(ctx, "default", metav1.GetOptions{}) + + if len(nsList.Items) == 0 { + if getErr == nil && ns != nil { + t.Fatalf("[%s] cluster %s: BUG — LIST returned 0 namespaces but GET 'default' succeeded (uid=%s rv=%s). "+ + "The cacher's WatchList temporaryStore deduplicates objects by namespace/name across clusters.", + phase, clusterID, ns.UID, ns.ResourceVersion) + } + t.Fatalf("[%s] cluster %s: LIST returned 0 namespaces, GET also failed: %v", phase, clusterID, getErr) + } + + t.Logf("[%s] cluster %s: LIST=%d namespaces", phase, clusterID, len(nsList.Items)) +} + +func randomEtcdPrefix(label string) string { + return "/registry-" + label + "-" + randSuffix(4) +}