kubefed: Use StoraceClassName class field for etcd pvc

This commit is contained in:
Maru Newby
2017-05-23 19:31:19 -07:00
parent 90250220a9
commit 2c886e93e9
3 changed files with 27 additions and 8 deletions

View File

@@ -98,6 +98,7 @@ func TestInitFederation(t *testing.T) {
serverImage string
etcdImage string
etcdPVCapacity string
etcdPVStorageClass string
etcdPersistence string
expectedErr string
dnsProvider string
@@ -200,6 +201,7 @@ func TestInitFederation(t *testing.T) {
serverImage: "example.test/foo:bar",
etcdImage: "gcr.io/google_containers/etcd:latest",
etcdPVCapacity: "5Gi",
etcdPVStorageClass: "fast",
etcdPersistence: "true",
expectedErr: "",
dryRun: "",
@@ -244,7 +246,7 @@ func TestInitFederation(t *testing.T) {
tc.etcdImage = defaultEtcdImage
}
hostFactory, err := fakeInitHostFactory(tc.apiserverServiceType, tc.federation, util.DefaultFederationSystemNamespace, tc.advertiseAddress, tc.lbIP, tc.dnsZoneName, tc.serverImage, tc.etcdImage, tc.dnsProvider, tc.dnsProviderConfig, tc.etcdPersistence, tc.etcdPVCapacity, tc.apiserverArgOverrides, tc.cmArgOverrides, tmpDirPath, tc.apiserverEnableHTTPBasicAuth, tc.apiserverEnableTokenAuth, tc.isRBACAPIAvailable)
hostFactory, err := fakeInitHostFactory(tc.apiserverServiceType, tc.federation, util.DefaultFederationSystemNamespace, tc.advertiseAddress, tc.lbIP, tc.dnsZoneName, tc.serverImage, tc.etcdImage, tc.dnsProvider, tc.dnsProviderConfig, tc.etcdPersistence, tc.etcdPVCapacity, tc.etcdPVStorageClass, tc.apiserverArgOverrides, tc.cmArgOverrides, tmpDirPath, tc.apiserverEnableHTTPBasicAuth, tc.apiserverEnableTokenAuth, tc.isRBACAPIAvailable)
if err != nil {
t.Fatalf("[%d] unexpected error: %v", i, err)
}
@@ -271,6 +273,9 @@ func TestInitFederation(t *testing.T) {
if tc.etcdPVCapacity != "" {
cmd.Flags().Set("etcd-pv-capacity", tc.etcdPVCapacity)
}
if tc.etcdPVStorageClass != "" {
cmd.Flags().Set("etcd-pv-storage-class", tc.etcdPVStorageClass)
}
if tc.etcdPersistence != "true" {
cmd.Flags().Set("etcd-persistent-storage", tc.etcdPersistence)
}
@@ -616,7 +621,7 @@ func TestCertsHTTPS(t *testing.T) {
}
}
func fakeInitHostFactory(apiserverServiceType v1.ServiceType, federationName, namespaceName, advertiseAddress, lbIp, dnsZoneName, serverImage, etcdImage, dnsProvider, dnsProviderConfig, etcdPersistence, etcdPVCapacity, apiserverOverrideArg, cmOverrideArg, tmpDirPath string, apiserverEnableHTTPBasicAuth, apiserverEnableTokenAuth, isRBACAPIAvailable bool) (cmdutil.Factory, error) {
func fakeInitHostFactory(apiserverServiceType v1.ServiceType, federationName, namespaceName, advertiseAddress, lbIp, dnsZoneName, serverImage, etcdImage, dnsProvider, dnsProviderConfig, etcdPersistence, etcdPVCapacity, etcdPVStorageClass, apiserverOverrideArg, cmOverrideArg, tmpDirPath string, apiserverEnableHTTPBasicAuth, apiserverEnableTokenAuth, isRBACAPIAvailable bool) (cmdutil.Factory, error) {
svcName := federationName + "-apiserver"
svcUrlPrefix := "/api/v1/namespaces/federation-system/services"
credSecretName := svcName + "-credentials"
@@ -729,6 +734,11 @@ func fakeInitHostFactory(apiserverServiceType v1.ServiceType, federationName, na
Data: nil,
}
var storageClassName *string
if len(etcdPVStorageClass) > 0 {
storageClassName = &etcdPVStorageClass
}
pvc := v1.PersistentVolumeClaim{
TypeMeta: metav1.TypeMeta{
Kind: "PersistentVolumeClaim",
@@ -739,8 +749,7 @@ func fakeInitHostFactory(apiserverServiceType v1.ServiceType, federationName, na
Namespace: namespaceName,
Labels: componentLabel,
Annotations: map[string]string{
"volume.alpha.kubernetes.io/storage-class": "yes",
federation.FederationNameAnnotation: federationName,
federation.FederationNameAnnotation: federationName,
},
},
Spec: v1.PersistentVolumeClaimSpec{
@@ -752,6 +761,7 @@ func fakeInitHostFactory(apiserverServiceType v1.ServiceType, federationName, na
v1.ResourceStorage: capacity,
},
},
StorageClassName: storageClassName,
},
}