File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -20,6 +20,7 @@ func init() {
2020 allProviders [providers .Docker ] = providers .IsDocker
2121 allProviders [providers .EKS ] = providers .IsEKS
2222 allProviders [providers .GKE ] = providers .IsGKE
23+ allProviders [providers .Harvester ] = providers .IsHarvester
2324 allProviders [providers .K3s ] = providers .IsK3s
2425 allProviders [providers .Minikube ] = providers .IsMinikube
2526 allProviders [providers .RKE ] = providers .IsRKE
Original file line number Diff line number Diff line change 1+ package providers
2+
3+ import (
4+ "context"
5+
6+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
7+ "k8s.io/client-go/kubernetes"
8+ )
9+
10+ const Harvester = "harvester"
11+
12+ func IsHarvester (ctx context.Context , k8sClient kubernetes.Interface ) (bool , error ) {
13+ // Look for nodes that have an Harvester specific label
14+ listOpts := metav1.ListOptions {
15+ LabelSelector : "harvesterhci.io/managed" ,
16+ // Only need one
17+ Limit : 1 ,
18+ }
19+
20+ nodes , err := k8sClient .CoreV1 ().Nodes ().List (ctx , listOpts )
21+ if err != nil {
22+ return false , err
23+ }
24+
25+ return len (nodes .Items ) > 0 , nil
26+ }
Original file line number Diff line number Diff line change @@ -10,6 +10,10 @@ import (
1010const K3s = "k3s"
1111
1212func IsK3s (ctx context.Context , k8sClient kubernetes.Interface ) (bool , error ) {
13+ if isHarvester , err := IsHarvester (ctx , k8sClient ); err != nil || isHarvester {
14+ return false , err
15+ }
16+
1317 v , err := k8sClient .Discovery ().ServerVersion ()
1418 if err != nil {
1519 return false , err
Original file line number Diff line number Diff line change @@ -10,6 +10,10 @@ import (
1010const RKE2 = "rke2"
1111
1212func IsRKE2 (ctx context.Context , k8sClient kubernetes.Interface ) (bool , error ) {
13+ if isHarvester , err := IsHarvester (ctx , k8sClient ); err != nil || isHarvester {
14+ return false , err
15+ }
16+
1317 v , err := k8sClient .Discovery ().ServerVersion ()
1418 if err != nil {
1519 return false , err
You can’t perform that action at this time.
0 commit comments