Skip to content

Commit 12c6b1f

Browse files
committed
CON-13396, CON-13852, CON-13397 - Added coredns_autoscaler plugin for DOKS requests
1 parent 98bd27b commit 12c6b1f

2 files changed

Lines changed: 39 additions & 1 deletion

File tree

kubernetes.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ type KubernetesClusterCreateRequest struct {
9292
AmdGpuDeviceMetricsExporterPlugin *KubernetesAmdGpuDeviceMetricsExporterPlugin `json:"amd_gpu_device_metrics_exporter_plugin,omitempty"`
9393
NvidiaGpuDevicePlugin *KubernetesNvidiaGpuDevicePlugin `json:"nvidia_gpu_device_plugin,omitempty"`
9494
RdmaSharedDevicePlugin *KubernetesRdmaSharedDevicePlugin `json:"rdma_shared_dev_plugin,omitempty"`
95+
CorednsAutoscaler *KubernetesCorednsAutoscaler `json:"coredns_autoscaler,omitempty"`
9596
SSO *KubernetesClusterSSO `json:"sso,omitempty"`
9697
}
9798

@@ -109,6 +110,7 @@ type KubernetesClusterUpdateRequest struct {
109110
AmdGpuDeviceMetricsExporterPlugin *KubernetesAmdGpuDeviceMetricsExporterPlugin `json:"amd_gpu_device_metrics_exporter_plugin,omitempty"`
110111
NvidiaGpuDevicePlugin *KubernetesNvidiaGpuDevicePlugin `json:"nvidia_gpu_device_plugin,omitempty"`
111112
RdmaSharedDevicePlugin *KubernetesRdmaSharedDevicePlugin `json:"rdma_shared_dev_plugin,omitempty"`
113+
CorednsAutoscaler *KubernetesCorednsAutoscaler `json:"coredns_autoscaler,omitempty"`
112114
SSO *KubernetesClusterSSO `json:"sso,omitempty"`
113115

114116
// Convert cluster to run highly available control plane
@@ -252,6 +254,7 @@ type KubernetesCluster struct {
252254
AmdGpuDeviceMetricsExporterPlugin *KubernetesAmdGpuDeviceMetricsExporterPlugin `json:"amd_gpu_device_metrics_exporter_plugin,omitempty"`
253255
NvidiaGpuDevicePlugin *KubernetesNvidiaGpuDevicePlugin `json:"nvidia_gpu_device_plugin,omitempty"`
254256
RdmaSharedDevicePlugin *KubernetesRdmaSharedDevicePlugin `json:"rdma_shared_dev_plugin,omitempty"`
257+
CorednsAutoscaler *KubernetesCorednsAutoscaler `json:"coredns_autoscaler,omitempty"`
255258
SSO *KubernetesClusterSSO `json:"sso,omitempty"`
256259

257260
Status *KubernetesClusterStatus `json:"status,omitempty"`
@@ -330,6 +333,11 @@ type KubernetesRdmaSharedDevicePlugin struct {
330333
Enabled *bool `json:"enabled"`
331334
}
332335

336+
// KubernetesCorednsAutoscaler represents information about the CoreDNS Cluster Proportional Autoscaler plugin.
337+
type KubernetesCorednsAutoscaler struct {
338+
Enabled *bool `json:"enabled"`
339+
}
340+
333341
// KubernetesClusterSSO configures Single Sign-On (SSO) for a Kubernetes cluster.
334342
type KubernetesClusterSSO struct {
335343
Enabled bool `json:"enabled"`

kubernetes_test.go

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@ func TestKubernetesClusters_ListClusters(t *testing.T) {
4848
RdmaSharedDevicePlugin: &KubernetesRdmaSharedDevicePlugin{
4949
Enabled: PtrTo(true),
5050
},
51+
CorednsAutoscaler: &KubernetesCorednsAutoscaler{
52+
Enabled: PtrTo(true),
53+
},
5154
SSO: &KubernetesClusterSSO{
5255
Enabled: true,
5356
IssuerURL: "https://example.com/issuer",
@@ -158,6 +161,9 @@ func TestKubernetesClusters_ListClusters(t *testing.T) {
158161
"rdma_shared_dev_plugin": {
159162
"enabled": true
160163
},
164+
"coredns_autoscaler": {
165+
"enabled": true
166+
},
161167
"sso": {
162168
"enabled": true,
163169
"required": false,
@@ -320,6 +326,9 @@ func TestKubernetesClusters_Get(t *testing.T) {
320326
RdmaSharedDevicePlugin: &KubernetesRdmaSharedDevicePlugin{
321327
Enabled: PtrTo(true),
322328
},
329+
CorednsAutoscaler: &KubernetesCorednsAutoscaler{
330+
Enabled: PtrTo(true),
331+
},
323332
SSO: &KubernetesClusterSSO{
324333
Enabled: true,
325334
IssuerURL: "https://example.com/issuer",
@@ -391,6 +400,9 @@ func TestKubernetesClusters_Get(t *testing.T) {
391400
"rdma_shared_dev_plugin": {
392401
"enabled": true
393402
},
403+
"coredns_autoscaler": {
404+
"enabled": true
405+
},
394406
"sso": {
395407
"enabled": true,
396408
"required": false,
@@ -760,6 +772,9 @@ func TestKubernetesClusters_Create(t *testing.T) {
760772
RdmaSharedDevicePlugin: &KubernetesRdmaSharedDevicePlugin{
761773
Enabled: PtrTo(true),
762774
},
775+
CorednsAutoscaler: &KubernetesCorednsAutoscaler{
776+
Enabled: PtrTo(true),
777+
},
763778
SSO: &KubernetesClusterSSO{
764779
Enabled: true,
765780
Required: false,
@@ -817,6 +832,9 @@ func TestKubernetesClusters_Create(t *testing.T) {
817832
RdmaSharedDevicePlugin: &KubernetesRdmaSharedDevicePlugin{
818833
Enabled: PtrTo(true),
819834
},
835+
CorednsAutoscaler: &KubernetesCorednsAutoscaler{
836+
Enabled: PtrTo(true),
837+
},
820838
SSO: &KubernetesClusterSSO{
821839
Enabled: true,
822840
IssuerURL: "https://example.com/issuer",
@@ -869,6 +887,9 @@ func TestKubernetesClusters_Create(t *testing.T) {
869887
"rdma_shared_dev_plugin": {
870888
"enabled": true
871889
},
890+
"coredns_autoscaler": {
891+
"enabled": true
892+
},
872893
"sso": {
873894
"enabled": true,
874895
"required": false,
@@ -1089,6 +1110,9 @@ func TestKubernetesClusters_Update(t *testing.T) {
10891110
RdmaSharedDevicePlugin: &KubernetesRdmaSharedDevicePlugin{
10901111
Enabled: PtrTo(true),
10911112
},
1113+
CorednsAutoscaler: &KubernetesCorednsAutoscaler{
1114+
Enabled: PtrTo(true),
1115+
},
10921116
SSO: &KubernetesClusterSSO{
10931117
Enabled: false,
10941118
},
@@ -1124,6 +1148,9 @@ func TestKubernetesClusters_Update(t *testing.T) {
11241148
RdmaSharedDevicePlugin: &KubernetesRdmaSharedDevicePlugin{
11251149
Enabled: PtrTo(true),
11261150
},
1151+
CorednsAutoscaler: &KubernetesCorednsAutoscaler{
1152+
Enabled: PtrTo(true),
1153+
},
11271154
SSO: &KubernetesClusterSSO{
11281155
Enabled: false,
11291156
},
@@ -1188,14 +1215,17 @@ func TestKubernetesClusters_Update(t *testing.T) {
11881215
"rdma_shared_dev_plugin": {
11891216
"enabled": true
11901217
},
1218+
"coredns_autoscaler": {
1219+
"enabled": true
1220+
},
11911221
"sso": {
11921222
"enabled": false,
11931223
"required": false
11941224
}
11951225
}
11961226
}`
11971227

1198-
expectedReqJSON := `{"name":"antoine-test-cluster","tags":["cluster-tag-1","cluster-tag-2"],"maintenance_policy":{"start_time":"00:00","duration":"","day":"monday"},"surge_upgrade":true,"control_plane_firewall":{"enabled":true,"allowed_addresses":["1.2.3.4/32"]},"cluster_autoscaler_configuration":{"scale_down_utilization_threshold":0.2,"scale_down_unneeded_time":"1m27s","expanders":[]},"routing_agent":{"enabled":true},"amd_gpu_device_plugin":{"enabled":true},"amd_gpu_device_metrics_exporter_plugin":{"enabled":true},"nvidia_gpu_device_plugin":{"enabled":true},"rdma_shared_dev_plugin":{"enabled":true},"sso":{"enabled":false,"required":false}}
1228+
expectedReqJSON := `{"name":"antoine-test-cluster","tags":["cluster-tag-1","cluster-tag-2"],"maintenance_policy":{"start_time":"00:00","duration":"","day":"monday"},"surge_upgrade":true,"control_plane_firewall":{"enabled":true,"allowed_addresses":["1.2.3.4/32"]},"cluster_autoscaler_configuration":{"scale_down_utilization_threshold":0.2,"scale_down_unneeded_time":"1m27s","expanders":[]},"routing_agent":{"enabled":true},"amd_gpu_device_plugin":{"enabled":true},"amd_gpu_device_metrics_exporter_plugin":{"enabled":true},"nvidia_gpu_device_plugin":{"enabled":true},"rdma_shared_dev_plugin":{"enabled":true},"coredns_autoscaler":{"enabled":true},"sso":{"enabled":false,"required":false}}
11991229
`
12001230

12011231
mux.HandleFunc("/v2/kubernetes/clusters/8d91899c-0739-4a1a-acc5-deadbeefbb8f", func(w http.ResponseWriter, r *http.Request) {

0 commit comments

Comments
 (0)