kubernetes - add support for surge upgrades (#355)

This commit is contained in:
Varsha Varadarajan 2020-07-16 15:28:55 -07:00 committed by GitHub
parent c46bc28841
commit d36624db38
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 20 additions and 13 deletions

View File

@ -62,7 +62,6 @@ func TestOneClick_List(t *testing.T) {
assert.Equal(t, want, got) assert.Equal(t, want, got)
} }
func TestOneClick_InstallKubernetes(t *testing.T) { func TestOneClick_InstallKubernetes(t *testing.T) {
setup() setup()
defer teardown() defer teardown()
@ -70,7 +69,6 @@ func TestOneClick_InstallKubernetes(t *testing.T) {
svc := client.OneClick svc := client.OneClick
path := "/v2/1-clicks/kubernetes" path := "/v2/1-clicks/kubernetes"
mux.HandleFunc(path, func(w http.ResponseWriter, r *http.Request) { mux.HandleFunc(path, func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, http.MethodPost) testMethod(t, r, http.MethodPost)
fmt.Fprint(w, testMessageJSON) fmt.Fprint(w, testMessageJSON)

View File

@ -66,6 +66,7 @@ type KubernetesClusterCreateRequest struct {
MaintenancePolicy *KubernetesMaintenancePolicy `json:"maintenance_policy"` MaintenancePolicy *KubernetesMaintenancePolicy `json:"maintenance_policy"`
AutoUpgrade bool `json:"auto_upgrade"` AutoUpgrade bool `json:"auto_upgrade"`
SurgeUpgrade bool `json:"surge_upgrade"`
} }
// KubernetesClusterUpdateRequest represents a request to update a Kubernetes cluster. // KubernetesClusterUpdateRequest represents a request to update a Kubernetes cluster.
@ -74,6 +75,7 @@ type KubernetesClusterUpdateRequest struct {
Tags []string `json:"tags,omitempty"` Tags []string `json:"tags,omitempty"`
MaintenancePolicy *KubernetesMaintenancePolicy `json:"maintenance_policy,omitempty"` MaintenancePolicy *KubernetesMaintenancePolicy `json:"maintenance_policy,omitempty"`
AutoUpgrade *bool `json:"auto_upgrade,omitempty"` AutoUpgrade *bool `json:"auto_upgrade,omitempty"`
SurgeUpgrade bool `json:"surge_upgrade,omitempty"`
} }
// KubernetesClusterUpgradeRequest represents a request to upgrade a Kubernetes cluster. // KubernetesClusterUpgradeRequest represents a request to upgrade a Kubernetes cluster.
@ -143,6 +145,7 @@ type KubernetesCluster struct {
MaintenancePolicy *KubernetesMaintenancePolicy `json:"maintenance_policy,omitempty"` MaintenancePolicy *KubernetesMaintenancePolicy `json:"maintenance_policy,omitempty"`
AutoUpgrade bool `json:"auto_upgrade,omitempty"` AutoUpgrade bool `json:"auto_upgrade,omitempty"`
SurgeUpgrade bool `json:"surge_upgrade,omitempty"`
Status *KubernetesClusterStatus `json:"status,omitempty"` Status *KubernetesClusterStatus `json:"status,omitempty"`
CreatedAt time.Time `json:"created_at,omitempty"` CreatedAt time.Time `json:"created_at,omitempty"`

View File

@ -522,6 +522,7 @@ func TestKubernetesClusters_Create(t *testing.T) {
ServiceSubnet: "10.245.0.0/16", ServiceSubnet: "10.245.0.0/16",
Tags: []string{"cluster-tag-1", "cluster-tag-2"}, Tags: []string{"cluster-tag-1", "cluster-tag-2"},
VPCUUID: "880b7f98-f062-404d-b33c-458d545696f6", VPCUUID: "880b7f98-f062-404d-b33c-458d545696f6",
SurgeUpgrade: true,
NodePools: []*KubernetesNodePool{ NodePools: []*KubernetesNodePool{
&KubernetesNodePool{ &KubernetesNodePool{
ID: "8d91899c-0739-4a1a-acc5-deadbeefbb8a", ID: "8d91899c-0739-4a1a-acc5-deadbeefbb8a",
@ -543,6 +544,7 @@ func TestKubernetesClusters_Create(t *testing.T) {
VersionSlug: want.VersionSlug, VersionSlug: want.VersionSlug,
Tags: want.Tags, Tags: want.Tags,
VPCUUID: want.VPCUUID, VPCUUID: want.VPCUUID,
SurgeUpgrade: true,
NodePools: []*KubernetesNodePoolCreateRequest{ NodePools: []*KubernetesNodePoolCreateRequest{
&KubernetesNodePoolCreateRequest{ &KubernetesNodePoolCreateRequest{
Size: want.NodePools[0].Size, Size: want.NodePools[0].Size,
@ -572,6 +574,7 @@ func TestKubernetesClusters_Create(t *testing.T) {
"cluster-tag-2" "cluster-tag-2"
], ],
"vpc_uuid": "880b7f98-f062-404d-b33c-458d545696f6", "vpc_uuid": "880b7f98-f062-404d-b33c-458d545696f6",
"surge_upgrade": true,
"node_pools": [ "node_pools": [
{ {
"id": "8d91899c-0739-4a1a-acc5-deadbeefbb8a", "id": "8d91899c-0739-4a1a-acc5-deadbeefbb8a",
@ -729,6 +732,7 @@ func TestKubernetesClusters_Update(t *testing.T) {
ServiceSubnet: "10.245.0.0/16", ServiceSubnet: "10.245.0.0/16",
Tags: []string{"cluster-tag-1", "cluster-tag-2"}, Tags: []string{"cluster-tag-1", "cluster-tag-2"},
VPCUUID: "880b7f98-f062-404d-b33c-458d545696f6", VPCUUID: "880b7f98-f062-404d-b33c-458d545696f6",
SurgeUpgrade: true,
NodePools: []*KubernetesNodePool{ NodePools: []*KubernetesNodePool{
&KubernetesNodePool{ &KubernetesNodePool{
ID: "8d91899c-0739-4a1a-acc5-deadbeefbb8a", ID: "8d91899c-0739-4a1a-acc5-deadbeefbb8a",
@ -750,6 +754,7 @@ func TestKubernetesClusters_Update(t *testing.T) {
Name: want.Name, Name: want.Name,
Tags: want.Tags, Tags: want.Tags,
MaintenancePolicy: want.MaintenancePolicy, MaintenancePolicy: want.MaintenancePolicy,
SurgeUpgrade: true,
} }
jBlob := ` jBlob := `
@ -766,6 +771,7 @@ func TestKubernetesClusters_Update(t *testing.T) {
"cluster-tag-2" "cluster-tag-2"
], ],
"vpc_uuid": "880b7f98-f062-404d-b33c-458d545696f6", "vpc_uuid": "880b7f98-f062-404d-b33c-458d545696f6",
"surge_upgrade": true,
"node_pools": [ "node_pools": [
{ {
"id": "8d91899c-0739-4a1a-acc5-deadbeefbb8a", "id": "8d91899c-0739-4a1a-acc5-deadbeefbb8a",
@ -787,7 +793,7 @@ func TestKubernetesClusters_Update(t *testing.T) {
} }
}` }`
expectedReqJSON := `{"name":"antoine-test-cluster","tags":["cluster-tag-1","cluster-tag-2"],"maintenance_policy":{"start_time":"00:00","duration":"","day":"monday"}} expectedReqJSON := `{"name":"antoine-test-cluster","tags":["cluster-tag-1","cluster-tag-2"],"maintenance_policy":{"start_time":"00:00","duration":"","day":"monday"},"surge_upgrade":true}
` `
mux.HandleFunc("/v2/kubernetes/clusters/8d91899c-0739-4a1a-acc5-deadbeefbb8f", func(w http.ResponseWriter, r *http.Request) { mux.HandleFunc("/v2/kubernetes/clusters/8d91899c-0739-4a1a-acc5-deadbeefbb8f", func(w http.ResponseWriter, r *http.Request) {