Skip to content

Commit 85d1f3c

Browse files
fix(deck): create empty providers.kubernetes entry if provider is enabled (#108)
As explained in this [PR](spinnaker/deck#8381), the Kubernetes provider does not have any statically configured defaults in Deck. However, the registration of the Kubernetes cloud provider in Deck depends on the truthiness of `providers.kubernetes`.
1 parent 0c7699f commit 85d1f3c

File tree

6 files changed

+272
-155
lines changed

6 files changed

+272
-155
lines changed

api/client/config/deck.pb.go

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

api/proto/config/deck.proto

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,8 @@ message Deck {
161161
// Tencent Cloud provider defaults.
162162
TencentCloud tencentcloud = 9;
163163

164+
Kubernetes kubernetes = 10;
165+
164166
message Appengine {
165167
Defaults defaults = 1;
166168
message Defaults {
@@ -230,5 +232,10 @@ message Deck {
230232
string region = 2;
231233
}
232234
}
235+
236+
// The Kubernetes provider has no statically-configured defaults,
237+
// but Deck currently registers each cloud provider based on the existence
238+
// of an entry in the `providers` block.
239+
message Kubernetes {}
233240
}
234241
}

docs/docs.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,7 @@
231231
- [Deck.Providers.Gce.Defaults](#proto.config.Deck.Providers.Gce.Defaults)
232232
- [Deck.Providers.HuaweiCloud](#proto.config.Deck.Providers.HuaweiCloud)
233233
- [Deck.Providers.HuaweiCloud.Defaults](#proto.config.Deck.Providers.HuaweiCloud.Defaults)
234+
- [Deck.Providers.Kubernetes](#proto.config.Deck.Providers.Kubernetes)
234235
- [Deck.Providers.TencentCloud](#proto.config.Deck.Providers.TencentCloud)
235236
- [Deck.Providers.TencentCloud.Defaults](#proto.config.Deck.Providers.TencentCloud.Defaults)
236237

@@ -3450,6 +3451,7 @@ UI-specific provider default settings.
34503451
| gce | [Deck.Providers.Gce](#proto.config.Deck.Providers.Gce) | | GCE provider defaults. |
34513452
| huaweicloud | [Deck.Providers.HuaweiCloud](#proto.config.Deck.Providers.HuaweiCloud) | | Huawei Cloud provider defaults. |
34523453
| tencentcloud | [Deck.Providers.TencentCloud](#proto.config.Deck.Providers.TencentCloud) | | Tencent Cloud provider defaults. |
3454+
| kubernetes | [Deck.Providers.Kubernetes](#proto.config.Deck.Providers.Kubernetes) | | |
34533455

34543456

34553457

@@ -3700,6 +3702,18 @@ UI-specific provider default settings.
37003702

37013703

37023704

3705+
<a name="proto.config.Deck.Providers.Kubernetes"></a>
3706+
3707+
### Deck.Providers.Kubernetes
3708+
The Kubernetes provider has no statically-configured defaults,
3709+
but Deck currently registers each cloud provider based on the existence
3710+
of an entry in the `providers` block.
3711+
3712+
3713+
3714+
3715+
3716+
37033717
<a name="proto.config.Deck.Providers.TencentCloud"></a>
37043718

37053719
### Deck.Providers.TencentCloud

internal/convert/deck.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,5 +222,9 @@ func getDeckProvidersConfig(h *config.Hal) *config.Deck_Providers {
222222
}
223223
}
224224

225+
if h.GetProviders().GetKubernetes().GetEnabled().GetValue() {
226+
providers.Kubernetes = &config.Deck_Providers_Kubernetes{}
227+
}
228+
225229
return providers
226230
}

internal/convert/deck_test.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,29 @@ var deckTests = configTest{
235235
},
236236
},
237237
},
238+
{
239+
"Enabled provider without defaults",
240+
&config.Hal{
241+
Providers: &cloudprovider.Providers{
242+
Kubernetes: &cloudprovider.Kubernetes{
243+
Enabled: wrapperspb.Bool(true),
244+
},
245+
},
246+
},
247+
&config.Deck{
248+
GateUrl: "http://localhost:8084",
249+
AuthEndpoint: "http://localhost:8084/auth/user",
250+
BakeryDetailUrl: "http://localhost:8084/bakery/logs/{{context.region}}/{{context.status.resourceId}}",
251+
Canary: &config.Deck_Canary{
252+
FeatureDisabled: wrapperspb.Bool(true),
253+
},
254+
Feature: &config.Deck_Features{},
255+
Notifications: &config.Deck_Notifications{},
256+
Providers: &config.Deck_Providers{
257+
Kubernetes: &config.Deck_Providers_Kubernetes{},
258+
},
259+
},
260+
},
238261
{
239262
"Override gate URL",
240263
&config.Hal{

testdata/deck.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,5 +64,6 @@ providers:
6464
defaults:
6565
account: my-huawei-account
6666
region: us-east1
67+
kubernetes: {}
6768
defaultTimeZone: America/Chicago
6869
version: master-latest-unvalidated

0 commit comments

Comments
 (0)