Skip to content

Commit 88af4d9

Browse files
authored
Report k8s distro and storage provisioners (#61)
Signed-off-by: Tamal Saha <tamal@appscode.com>
1 parent 01edce1 commit 88af4d9

File tree

7 files changed

+83
-14
lines changed

7 files changed

+83
-14
lines changed

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ require (
1414
k8s.io/client-go v0.34.3
1515
k8s.io/klog/v2 v2.130.1
1616
kmodules.xyz/client-go v0.34.2
17-
kmodules.xyz/resource-metadata v0.40.2
17+
kmodules.xyz/resource-metadata v0.42.1
1818
sigs.k8s.io/controller-runtime v0.22.4
1919
)
2020

@@ -99,7 +99,7 @@ require (
9999
github.com/yudai/gojsondiff v1.0.0 // indirect
100100
github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82 // indirect
101101
github.com/zeebo/xxh3 v1.0.2 // indirect
102-
go.bytebuilders.dev/license-proxyserver v0.0.25 // indirect
102+
go.bytebuilders.dev/license-proxyserver v0.0.26 // indirect
103103
go.uber.org/multierr v1.11.0 // indirect
104104
go.uber.org/zap v1.27.0 // indirect
105105
go.yaml.in/yaml/v2 v2.4.3 // indirect

go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -225,8 +225,8 @@ github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ=
225225
github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0=
226226
github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0=
227227
github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA=
228-
go.bytebuilders.dev/license-proxyserver v0.0.25 h1:dZfTk5DxSKr/ycEzp4wHtR0gCiSTLA4od93kLrYc3Pk=
229-
go.bytebuilders.dev/license-proxyserver v0.0.25/go.mod h1:JwdJtBnV93CNXHtdGXQ1BbY8Ma8zQAdS9Ckftor2qH4=
228+
go.bytebuilders.dev/license-proxyserver v0.0.26 h1:NoL8TQOxuquq9KChm0ihLpDTdT/5OljAx7X0Vdlnre4=
229+
go.bytebuilders.dev/license-proxyserver v0.0.26/go.mod h1:JwdJtBnV93CNXHtdGXQ1BbY8Ma8zQAdS9Ckftor2qH4=
230230
go.bytebuilders.dev/license-verifier v0.15.0 h1:9BHJSVpiCztnJMlsn1i36wi0ZeHdr46CrQH2GUzFLBA=
231231
go.bytebuilders.dev/license-verifier v0.15.0/go.mod h1:aGD3zgEUZ5BnOam9U241ZiOm4Wp8f+EiJeQ+nHTFO5A=
232232
go.bytebuilders.dev/license-verifier/kubernetes v0.15.0 h1:EQ0RKw45c/BNzx8qF5jabMl+zVDcGqOHXpSqtG2/2as=
@@ -349,8 +349,8 @@ kmodules.xyz/go-containerregistry v0.0.15 h1:PRY5FDOzb6u23KOulQ4SWNdeUkBKmezLyJX
349349
kmodules.xyz/go-containerregistry v0.0.15/go.mod h1:rO0DEbYYEu1BfVcZ1pXV+3RgzVXr/k5hXcO+BQYVVDI=
350350
kmodules.xyz/offshoot-api v0.34.0 h1:HnOOp8FrCjTWjtNApRDo6Ahe79tOlLrJmyye4xxO4Kk=
351351
kmodules.xyz/offshoot-api v0.34.0/go.mod h1:F+B59yYw4CZJ4uD4xu6C+mMLzIXUtuH7E+SbDICl9jE=
352-
kmodules.xyz/resource-metadata v0.40.2 h1:2J+UvAaHXfqDStO2SKqeVkER4z/kSOqpj8Iyrc9+V4Y=
353-
kmodules.xyz/resource-metadata v0.40.2/go.mod h1:38+41aUSrWqrQDeaSITKoxAiGT0ysQk5yjRODqBadpw=
352+
kmodules.xyz/resource-metadata v0.42.1 h1:RxAi354cKOeCVLoZI+WjR+tooU4lEq/axIafm1SYa20=
353+
kmodules.xyz/resource-metadata v0.42.1/go.mod h1:xntcQko2QLbLEHwGE4TQ7I/80fcBQzcexbep97Akstk=
354354
kmodules.xyz/resource-metrics v0.34.0 h1:cqscgTx3PONxHj6PIySK3sTlKKv8iKTGzRd+S6YSwXg=
355355
kmodules.xyz/resource-metrics v0.34.0/go.mod h1:R34IKtp5+NqcQz7AQJheBJK6Iem0LqrCbm/55Mn+ECQ=
356356
moul.io/http2curl/v2 v2.3.1-0.20221024080105-10c404f653f7 h1:NykkTlRB+X40z86cLHdEmuoTxhNKhQebLT379b1EumA=

vendor/kmodules.xyz/resource-metadata/apis/identity/v1alpha1/openapi_generated.go

Lines changed: 28 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/kmodules.xyz/resource-metadata/apis/identity/v1alpha1/siteinfo_types.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,13 @@ type KubernetesInfo struct {
7272
// Deprecated
7373
ClusterName string `json:"clusterName,omitempty"`
7474
// Deprecated
75-
ClusterUID string `json:"clusterUID,omitempty"`
76-
Cluster *kmapi.ClusterMetadata `json:"cluster,omitempty"`
77-
Version *version.Info `json:"version,omitempty"`
78-
ControlPlane *ControlPlaneInfo `json:"controlPlane,omitempty"`
79-
NodeStats NodeInfo `json:"nodeStats"`
75+
ClusterUID string `json:"clusterUID,omitempty"`
76+
Cluster *kmapi.ClusterMetadata `json:"cluster,omitempty"`
77+
Version *version.Info `json:"version,omitempty"`
78+
ControlPlane *ControlPlaneInfo `json:"controlPlane,omitempty"`
79+
NodeStats NodeInfo `json:"nodeStats"`
80+
Distributions []string `json:"distributions,omitempty"`
81+
StorageProvisioners []string `json:"storageProvisioners,omitempty"`
8082
}
8183

8284
// https://github.com/kmodules/client-go/blob/kubernetes-1.16.3/tools/analytics/analytics.go#L66

vendor/kmodules.xyz/resource-metadata/apis/identity/v1alpha1/zz_generated.deepcopy.go

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/kmodules.xyz/resource-metadata/pkg/identity/siteinfo.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"net"
2222
"strings"
2323

24+
kmapi "kmodules.xyz/client-go/api/v1"
2425
clustermeta "kmodules.xyz/client-go/cluster"
2526
"kmodules.xyz/client-go/tools/clusterid"
2627
identityapi "kmodules.xyz/resource-metadata/apis/identity/v1alpha1"
@@ -31,8 +32,10 @@ import (
3132
core "k8s.io/api/core/v1"
3233
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3334
"k8s.io/apimachinery/pkg/util/sets"
35+
"k8s.io/client-go/discovery/cached/memory"
3436
"k8s.io/client-go/kubernetes"
3537
"k8s.io/client-go/rest"
38+
"k8s.io/client-go/restmapper"
3639
)
3740

3841
func GetSiteInfo(cfg *rest.Config, kc kubernetes.Interface, nodes []*core.Node, licenseID string) (*identityapi.SiteInfo, error) {
@@ -128,6 +131,19 @@ func GetSiteInfo(cfg *rest.Config, kc kubernetes.Interface, nodes []*core.Node,
128131
si.Kubernetes.ControlPlane.URIs = uris
129132
}
130133

134+
si.Kubernetes.Distributions = DetectDistributions(kc)
135+
136+
scList, err := kc.StorageV1().StorageClasses().List(context.Background(), metav1.ListOptions{})
137+
scProvisioners := sets.NewString()
138+
if err == nil {
139+
for _, sc := range scList.Items {
140+
scProvisioners.Insert(sc.Provisioner)
141+
}
142+
}
143+
if scProvisioners.Len() > 0 {
144+
si.Kubernetes.StorageProvisioners = scProvisioners.List()
145+
}
146+
131147
if len(nodes) == 0 {
132148
result, err := kc.CoreV1().Nodes().List(context.TODO(), metav1.ListOptions{})
133149
if err != nil {
@@ -188,3 +204,16 @@ func skipIP(ip net.IP) bool {
188204
ip.IsLinkLocalMulticast() ||
189205
ip.IsLinkLocalUnicast()
190206
}
207+
208+
func DetectDistributions(kc kubernetes.Interface) []string {
209+
mapper := restmapper.NewDeferredDiscoveryRESTMapper(memory.NewMemCacheClient(kc.Discovery()))
210+
211+
distros := sets.NewString()
212+
if clustermeta.IsRancherManaged(mapper) {
213+
distros.Insert(kmapi.ClusterManagerRancher.Name())
214+
}
215+
if clustermeta.IsOpenShiftManaged(mapper) {
216+
distros.Insert(kmapi.ClusterManagerOpenShift.Name())
217+
}
218+
return distros.List()
219+
}

vendor/modules.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ github.com/yudai/golcs
337337
# github.com/zeebo/xxh3 v1.0.2
338338
## explicit; go 1.17
339339
github.com/zeebo/xxh3
340-
# go.bytebuilders.dev/license-proxyserver v0.0.25
340+
# go.bytebuilders.dev/license-proxyserver v0.0.26
341341
## explicit; go 1.25.0
342342
go.bytebuilders.dev/license-proxyserver/apis/proxyserver
343343
go.bytebuilders.dev/license-proxyserver/apis/proxyserver/v1alpha1
@@ -965,8 +965,8 @@ kmodules.xyz/go-containerregistry/name
965965
## explicit; go 1.24.0
966966
kmodules.xyz/offshoot-api/api/v1
967967
kmodules.xyz/offshoot-api/api/v2
968-
# kmodules.xyz/resource-metadata v0.40.2
969-
## explicit; go 1.24.0
968+
# kmodules.xyz/resource-metadata v0.42.1
969+
## explicit; go 1.25
970970
kmodules.xyz/resource-metadata/apis/core/v1alpha1
971971
kmodules.xyz/resource-metadata/apis/identity/v1alpha1
972972
kmodules.xyz/resource-metadata/apis/shared

0 commit comments

Comments
 (0)