[Federation] Make federation etcd PVC size configurable

This commit is contained in:
Irfan Ur Rehman 2016-11-05 22:48:55 +05:30
parent 28d273c8b2
commit 9cef38c705

View File

@ -119,6 +119,7 @@ func NewCmdInit(cmdOut io.Writer, config util.AdminConfig) *cobra.Command {
cmd.Flags().String("dns-zone-name", "", "DNS suffix for this federation. Federated Service DNS names are published with this suffix.") cmd.Flags().String("dns-zone-name", "", "DNS suffix for this federation. Federated Service DNS names are published with this suffix.")
cmd.Flags().String("image", defaultImage, "Image to use for federation API server and controller manager binaries.") cmd.Flags().String("image", defaultImage, "Image to use for federation API server and controller manager binaries.")
cmd.Flags().String("dns-provider", "google-clouddns", "Dns provider to be used for this deployment.") cmd.Flags().String("dns-provider", "google-clouddns", "Dns provider to be used for this deployment.")
cmd.Flags().String("etcd-pv-capacity", "10Gi", "Size of persistent volume claim to be used for etcd.")
return cmd return cmd
} }
@ -140,6 +141,7 @@ func initFederation(cmdOut io.Writer, config util.AdminConfig, cmd *cobra.Comman
dnsZoneName := cmdutil.GetFlagString(cmd, "dns-zone-name") dnsZoneName := cmdutil.GetFlagString(cmd, "dns-zone-name")
image := cmdutil.GetFlagString(cmd, "image") image := cmdutil.GetFlagString(cmd, "image")
dnsProvider := cmdutil.GetFlagString(cmd, "dns-provider") dnsProvider := cmdutil.GetFlagString(cmd, "dns-provider")
etcdPVCapacity := cmdutil.GetFlagString(cmd, "etcd-pv-capacity")
hostFactory := config.HostFactory(initFlags.Host, initFlags.Kubeconfig) hostFactory := config.HostFactory(initFlags.Host, initFlags.Kubeconfig)
hostClientset, err := hostFactory.ClientSet() hostClientset, err := hostFactory.ClientSet()
@ -188,7 +190,7 @@ func initFederation(cmdOut io.Writer, config util.AdminConfig, cmd *cobra.Comman
// 5. Create a persistent volume and a claim to store the federation // 5. Create a persistent volume and a claim to store the federation
// API server's state. This is where federation API server's etcd // API server's state. This is where federation API server's etcd
// stores its data. // stores its data.
pvc, err := createPVC(hostClientset, initFlags.FederationSystemNamespace, svc.Name) pvc, err := createPVC(hostClientset, initFlags.FederationSystemNamespace, svc.Name, etcdPVCapacity)
if err != nil { if err != nil {
return err return err
} }
@ -353,8 +355,9 @@ func createControllerManagerKubeconfigSecret(clientset *client.Clientset, namesp
return util.CreateKubeconfigSecret(clientset, config, namespace, kubeconfigName, false) return util.CreateKubeconfigSecret(clientset, config, namespace, kubeconfigName, false)
} }
func createPVC(clientset *client.Clientset, namespace, svcName string) (*api.PersistentVolumeClaim, error) { func createPVC(clientset *client.Clientset, namespace, svcName, etcdPVCapacity string) (*api.PersistentVolumeClaim, error) {
capacity, err := resource.ParseQuantity("10Gi")
capacity, err := resource.ParseQuantity(etcdPVCapacity)
if err != nil { if err != nil {
return nil, err return nil, err
} }