Prepare workspace

For this module, you should be on: k8s-kops-mgmt-cloud9-instance

Configure k8s-kops-mgmt-cloud9-instance to create Kops cluster:

  1. Create .kube for kops configuration

    mkdir -p $HOME/.kube
  2. Create $HOME/kopsCluster folder to store kops related artifacts

    mkdir -p $HOME/kopsCluster
  3. Export Cloud9 Workspace’s role, ID and AMI ID to $HOME/.bash_profile:

    echo "export AWS_INSTANCE_IAM_ROLE=$(curl -s" >> $HOME/.bash_profile
    echo "export AWS_INSTANCE_ID=$(ec2-metadata  |grep instance-id | awk -F': ' '{print $2}')" >> $HOME/.bash_profile
    echo "export AMI_ID=$(curl -s" >> $HOME/.bash_profile
  4. Export KUBECONFIG variable used for storing kops cluster configuration to $HOME/.bash_profile:

    echo "export KUBECONFIG=$HOME/.kube/config" >> $HOME/.bash_profile
  5. Source $HOME/.bash_profile so that we can use the exported variables:

    source $HOME/.bash_profile
  6. Export kops cluster state to $HOME/.bash_profile:

    echo "export KOPS_STATE_STORE=s3://amazon-kops-cluster-state-${AWS_ACCOUNT_ID}-${AWS_REGION}" >> $HOME/.bash_profile
  7. Source $HOME/.bash_profile update KOPS_STATE_STORE:

    source $HOME/.bash_profile
  8. Create Amazon S3 bucket:

    • Amazon S3 bucket is used for storing kops cluster state:
    • Note: Amazon S3 requires –create-bucket-configuration LocationConstraint= for regions other than us-east-1:

      aws s3api create-bucket --bucket amazon-kops-cluster-state-${AWS_ACCOUNT_ID}-${AWS_REGION} --region ${AWS_REGION} --create-bucket-configuration LocationConstraint=${AWS_REGION}
    • Note: it is strongly recommended versioning your S3 bucket in case you ever need to revert or recover a previous state store:

      aws s3api put-bucket-versioning --bucket amazon-kops-cluster-state-${AWS_ACCOUNT_ID}-${AWS_REGION} --versioning-configuration Status=Enabled
  9. Copy configuration files to $HOME/kopsConfigFiles/:

    aws s3 sync s3://net410-workshop-us-west-2/kopsConfigFiles/ $HOME/kopsConfigFiles/