Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,9 @@ func ObserveCloudProviderNames(genericListers configobserver.Listers, recorder e
case platform["libvirt"] != nil:
// this means we are using libvirt
return observedConfig, errs
case platform["none"] != nil:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does the none need to be specifies explicitly? Just asking what is the difference when the cloud provider is not specified and when it is set to none.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

none is the platform name in the installer, not cloudprovider name

// this means we are using bare metal
return observedConfig, errs
case platform["aws"] != nil:
cloudProvider = "aws"
default:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,33 +15,53 @@ import (
)

func TestObserveCloudProviderNames(t *testing.T) {
indexer := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{})
if err := indexer.Add(&corev1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{
Name: "cluster-config-v1",
Namespace: "kube-system",
},
Data: map[string]string{
"install-config": "platform:\n aws: {}\n",
},
}); err != nil {
t.Fatal(err.Error())
}
listers := configobservation.Listers{
ConfigmapLister: corelistersv1.NewConfigMapLister(indexer),
}
result, errs := ObserveCloudProviderNames(listers, events.NewInMemoryRecorder("cloud"), map[string]interface{}{})
if len(errs) > 0 {
t.Fatal(errs)
}
cloudProvider, _, err := unstructured.NestedSlice(result, "extendedArguments", "cloud-provider")
if err != nil {
t.Fatal(err)
}
if e, a := 1, len(cloudProvider); e != a {
t.Fatalf("expected len(cloudProvider) == %d, got %d", e, a)
}
if e, a := "aws", cloudProvider[0]; e != a {
t.Errorf("expected cloud-provider=%s, got %s", e, a)
cases := []struct {
installConfig string
expectedCloudProvider string
cloudProviderCount int
}{{
installConfig: "platform:\n aws: {}\n",
expectedCloudProvider: "aws",
cloudProviderCount: 1,
}, {
installConfig: "platform:\n libvirt: {}\n",
cloudProviderCount: 0,
}, {
installConfig: "platform:\n none: {}\n",
cloudProviderCount: 0,
}}
for idx, c := range cases {
t.Logf("Testing case #%d", idx+1)
indexer := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{})
if err := indexer.Add(&corev1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{
Name: "cluster-config-v1",
Namespace: "kube-system",
},
Data: map[string]string{
"install-config": c.installConfig,
},
}); err != nil {
t.Fatal(err.Error())
}
listers := configobservation.Listers{
ConfigmapLister: corelistersv1.NewConfigMapLister(indexer),
}
result, errs := ObserveCloudProviderNames(listers, events.NewInMemoryRecorder("cloud"), map[string]interface{}{})
if len(errs) > 0 {
t.Fatal(errs)
}
cloudProvider, _, err := unstructured.NestedSlice(result, "extendedArguments", "cloud-provider")
if err != nil {
t.Fatal(err)
}
if e, a := c.cloudProviderCount, len(cloudProvider); e != a {
t.Fatalf("expected len(cloudProvider) == %d, got %d", e, a)
}
if c.cloudProviderCount > 0 {
if e, a := c.expectedCloudProvider, cloudProvider[0]; e != a {
t.Errorf("expected cloud-provider=%s, got %s", e, a)
}
}
}
}