@@ -24,23 +24,21 @@ import (
24
24
"strings"
25
25
)
26
26
27
- // +kubebuilder:validation:Enum=Aws;Azure; DigitalOcean;GoogleCloud;Linode;Packet;Scaleway;Vultr;BareMetal;KIND;Generic;Private
27
+ // +kubebuilder:validation:Enum=AKS; DigitalOcean;EKS;Exoscale;Generic;GKE;Linode;Packet;Rancher;Scaleway;Vultr
28
28
type HostingProvider string
29
29
30
30
const (
31
- HostingProviderAWS HostingProvider = "Aws"
32
- HostingProviderAzure HostingProvider = "Azure"
31
+ HostingProviderAKS HostingProvider = "AKS"
33
32
HostingProviderDigitalOcean HostingProvider = "DigitalOcean"
34
- HostingProviderGoogleCloud HostingProvider = "GoogleCloud "
33
+ HostingProviderEKS HostingProvider = "EKS "
35
34
HostingProviderExoscale HostingProvider = "Exoscale"
35
+ HostingProviderGeneric HostingProvider = "Generic"
36
+ HostingProviderGKE HostingProvider = "GKE"
36
37
HostingProviderLinode HostingProvider = "Linode"
37
38
HostingProviderPacket HostingProvider = "Packet"
39
+ HostingProviderRancher HostingProvider = "Rancher"
38
40
HostingProviderScaleway HostingProvider = "Scaleway"
39
41
HostingProviderVultr HostingProvider = "Vultr"
40
- HostingProviderBareMetal HostingProvider = "BareMetal"
41
- HostingProviderKIND HostingProvider = "KIND"
42
- HostingProviderGeneric HostingProvider = "Generic"
43
- HostingProviderPrivate HostingProvider = "Private"
44
42
)
45
43
46
44
const (
@@ -49,22 +47,34 @@ const (
49
47
ClusterNameKey string = "cluster.appscode.com/name"
50
48
ClusterDisplayNameKey string = "cluster.appscode.com/display-name"
51
49
ClusterProviderNameKey string = "cluster.appscode.com/provider"
50
+
51
+ ClientOrgKey string = "ace.appscode.com/client-org"
52
+ ClientKeyPrefix string = "client.ace.appscode.com/"
52
53
)
53
54
54
55
type ClusterMetadata struct {
55
- UID string `json:"uid" protobuf:"bytes,1,opt,name=uid"`
56
- Name string `json:"name,omitempty" protobuf:"bytes,2,opt,name=name"`
57
- DisplayName string `json:"displayName,omitempty" protobuf:"bytes,3,opt,name=displayName"`
58
- Provider HostingProvider `json:"provider,omitempty" protobuf:"bytes,4,opt,name=provider,casttype=HostingProvider"`
59
- OwnerID string `json:"ownerID,omitempty"`
60
- OwnerType string `json:"ownerType,omitempty"`
61
- APIEndpoint string `json:"apiEndpoint,omitempty"`
62
- CABundle string `json:"caBundle,omitempty"`
56
+ UID string `json:"uid" protobuf:"bytes,1,opt,name=uid"`
57
+ Name string `json:"name,omitempty" protobuf:"bytes,2,opt,name=name"`
58
+ DisplayName string `json:"displayName,omitempty" protobuf:"bytes,3,opt,name=displayName"`
59
+ Provider HostingProvider `json:"provider,omitempty" protobuf:"bytes,4,opt,name=provider,casttype=HostingProvider"`
60
+ OwnerID string `json:"ownerID,omitempty" protobuf:"bytes,5,opt,name=ownerID"`
61
+ OwnerType string `json:"ownerType,omitempty" protobuf:"bytes,6,opt,name=ownerType"`
62
+ APIEndpoint string `json:"apiEndpoint,omitempty" protobuf:"bytes,7,opt,name=apiEndpoint"`
63
+ CABundle string `json:"caBundle,omitempty" protobuf:"bytes,8,opt,name=caBundle"`
64
+ ManagerID string `json:"managerID,omitempty" protobuf:"bytes,9,opt,name=managerID"`
65
+ HubClusterID string `json:"hubClusterID,omitempty" protobuf:"bytes,10,opt,name=hubClusterID"`
66
+ }
67
+
68
+ func (md ClusterMetadata ) Manager () string {
69
+ if md .ManagerID != "" && md .ManagerID != "0" {
70
+ return md .ManagerID
71
+ }
72
+ return md .OwnerID
63
73
}
64
74
65
75
func (md ClusterMetadata ) State () string {
66
76
hasher := hmac .New (sha256 .New , []byte (md .UID ))
67
- state := fmt .Sprintf ("%s,%s" , md .APIEndpoint , md .OwnerID )
77
+ state := fmt .Sprintf ("%s,%s" , md .APIEndpoint , md .Manager () )
68
78
hasher .Write ([]byte (state ))
69
79
return base64 .URLEncoding .EncodeToString (hasher .Sum (nil ))
70
80
}
@@ -153,27 +163,26 @@ func (cm ClusterManager) String() string {
153
163
}
154
164
155
165
type CAPIClusterInfo struct {
156
- Provider CAPIProvider `json:"provider"`
157
- Namespace string `json:"namespace"`
158
- ClusterName string `json:"clusterName"`
166
+ Provider CAPIProvider `json:"provider" protobuf:"bytes,1,opt,name=provider,casttype=CAPIProvider" `
167
+ Namespace string `json:"namespace" protobuf:"bytes,2,opt,name=namespace" `
168
+ ClusterName string `json:"clusterName" protobuf:"bytes,3,opt,name=clusterName" `
159
169
}
160
170
161
171
// ClusterInfo used in ace-installer
162
172
type ClusterInfo struct {
163
- UID string `json:"uid"`
164
- Name string `json:"name"`
165
- ClusterManagers []string `json:"clusterManagers"`
173
+ UID string `json:"uid" protobuf:"bytes,1,opt,name=uid" `
174
+ Name string `json:"name" protobuf:"bytes,2,opt,name=name" `
175
+ ClusterManagers []string `json:"clusterManagers" protobuf:"bytes,3,rep,name=clusterManagers" `
166
176
// +optional
167
- CAPI CAPIClusterInfo `json:"capi"`
177
+ CAPI * CAPIClusterInfo `json:"capi" protobuf:"bytes,4,opt,name= capi"`
168
178
}
169
179
170
180
// +kubebuilder:validation:Enum=capa;capg;capz
171
181
type CAPIProvider string
172
182
173
183
const (
174
- CAPIProviderUnknown CAPIProvider = ""
175
- CAPIProviderCAPA CAPIProvider = "capa"
176
- CAPIProviderCAPG CAPIProvider = "capg"
177
- CAPIProviderCAPZ CAPIProvider = "capz"
178
- CAPIProviderCAPH CAPIProvider = "caph"
184
+ CAPIProviderCAPA CAPIProvider = "capa"
185
+ CAPIProviderCAPG CAPIProvider = "capg"
186
+ CAPIProviderCAPZ CAPIProvider = "capz"
187
+ CAPIProviderCAPH CAPIProvider = "caph"
179
188
)
0 commit comments