From 982993b1e5d906e9190b3e5d3e8fe8c12d0fc1fe Mon Sep 17 00:00:00 2001 From: Karan Goel Date: Thu, 7 Jun 2018 12:07:23 -0700 Subject: [PATCH] vsphere generate-yaml usability changes, timeout for clusterctl (#302) * vsphere generate-yaml usability changes * Change timeouts, copy ssh keys if they dontexist --- clusterctl/clusterdeployer/clusterclient.go | 6 ++-- clusterctl/clusterdeployer/clusterdeployer.go | 2 +- clusterctl/examples/vsphere/generate-yaml.sh | 33 ++++++++++++------- 3 files changed, 25 insertions(+), 16 deletions(-) diff --git a/clusterctl/clusterdeployer/clusterclient.go b/clusterctl/clusterdeployer/clusterclient.go index b34e9895b20d..08dd37f9e746 100644 --- a/clusterctl/clusterdeployer/clusterclient.go +++ b/clusterctl/clusterdeployer/clusterclient.go @@ -35,9 +35,9 @@ const ( ApiServerPort = 443 RetryIntervalKubectlApply = 5 * time.Second RetryIntervalResourceReady = 5 * time.Second - TimeoutKubectlApply = 2 * time.Minute - TimeoutResourceReady = 2 * time.Minute - TimeoutMachineReady = 5 * time.Minute + TimeoutKubectlApply = 5 * time.Minute + TimeoutResourceReady = 5 * time.Minute + TimeoutMachineReady = 10 * time.Minute ) type clusterClient struct { diff --git a/clusterctl/clusterdeployer/clusterdeployer.go b/clusterctl/clusterdeployer/clusterdeployer.go index 73e28b24f323..5b67631a07d6 100644 --- a/clusterctl/clusterdeployer/clusterdeployer.go +++ b/clusterctl/clusterdeployer/clusterdeployer.go @@ -300,7 +300,7 @@ func (d *ClusterDeployer) writeKubeconfig(kubeconfig string) error { func waitForKubeconfigReady(provider ProviderDeployer, cluster *clusterv1.Cluster, machine *clusterv1.Machine) (string, error) { kubeconfig := "" - err := util.Poll(500*time.Millisecond, 120*time.Second, func() (bool, error) { + err := util.Poll(5*time.Second, 10*time.Minute, func() (bool, error) { glog.V(2).Infof("Waiting for kubeconfig on %v to become ready...", machine.Name) k, err := provider.GetKubeConfig(cluster, machine) if err != nil { diff --git a/clusterctl/examples/vsphere/generate-yaml.sh b/clusterctl/examples/vsphere/generate-yaml.sh index fc8edc9ac629..ebe9fec097f7 100755 --- a/clusterctl/examples/vsphere/generate-yaml.sh +++ b/clusterctl/examples/vsphere/generate-yaml.sh @@ -40,24 +40,33 @@ while test $# -gt 0; do done if [ $OVERWRITE -ne 1 ] && [ -f $PROVIDERCOMPONENT_GENERATED_FILE ]; then - echo File $PROVIDERCOMPONENT_GENERATED_FILE already exists. Delete it manually before running this script. + echo "File $PROVIDERCOMPONENT_GENERATED_FILE already exists. Delete it manually before running this script." exit 1 fi -if [ ! -f $MACHINE_CONTROLLER_SSH_PRIVATE_FILE ]; then - echo Generate SSH key files fo machine controller - ssh-keygen -t rsa -f $MACHINE_CONTROLLER_SSH_PRIVATE_FILE -N "" +# Check if the ssh key already exists. If not, generate and copy to the .ssh dir. +if [ ! -f $MACHINE_CONTROLLER_SSH_HOME$MACHINE_CONTROLLER_SSH_PRIVATE_FILE ]; then + echo "Generating SSH key files for machine controller." + # This is needed because GetKubeConfig assumes the key in the home .ssh dir. + ssh-keygen -t rsa -f $MACHINE_CONTROLLER_SSH_HOME$MACHINE_CONTROLLER_SSH_PRIVATE_FILE -N "" fi -# Copy file to home ssh directory till using vsphere GetIP logic that -# does not assume the file at this location -cp $MACHINE_CONTROLLER_SSH_PUBLIC_FILE $MACHINE_CONTROLLER_SSH_HOME -cp $MACHINE_CONTROLLER_SSH_PRIVATE_FILE $MACHINE_CONTROLLER_SSH_HOME - -MACHINE_CONTROLLER_SSH_PUBLIC=$(cat $MACHINE_CONTROLLER_SSH_PUBLIC_FILE|base64 -w0) -MACHINE_CONTROLLER_SSH_PRIVATE=$(cat $MACHINE_CONTROLLER_SSH_PRIVATE_FILE|base64 -w0) +OS=$(uname) +if [[ "$OS" =~ "Linux" ]]; then + MACHINE_CONTROLLER_SSH_PUBLIC=$(cat $MACHINE_CONTROLLER_SSH_HOME$MACHINE_CONTROLLER_SSH_PUBLIC_FILE|base64 -w0) + MACHINE_CONTROLLER_SSH_PRIVATE=$(cat $MACHINE_CONTROLLER_SSH_HOME$MACHINE_CONTROLLER_SSH_PRIVATE_FILE|base64 -w0) +elif [[ "$OS" =~ "Darwin" ]]; then + MACHINE_CONTROLLER_SSH_PUBLIC=$(cat $MACHINE_CONTROLLER_SSH_HOME$MACHINE_CONTROLLER_SSH_PUBLIC_FILE|base64) + MACHINE_CONTROLLER_SSH_PRIVATE=$(cat $MACHINE_CONTROLLER_SSH_HOME$MACHINE_CONTROLLER_SSH_PRIVATE_FILE|base64) +else + echo "Unrecognized OS : $OS" + exit 1 +fi cat $PROVIDERCOMPONENT_TEMPLATE_FILE \ | sed -e "s/\$MACHINE_CONTROLLER_SSH_PUBLIC/$MACHINE_CONTROLLER_SSH_PUBLIC/" \ | sed -e "s/\$MACHINE_CONTROLLER_SSH_PRIVATE/$MACHINE_CONTROLLER_SSH_PRIVATE/" \ - > $PROVIDERCOMPONENT_GENERATED_FILE \ No newline at end of file + > $PROVIDERCOMPONENT_GENERATED_FILE + +echo "Done generating $PROVIDERCOMPONENT_GENERATED_FILE" +echo "You will still need to generate the cluster.yaml and machines.yaml" \ No newline at end of file