mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-11-03 23:40:03 +00:00 
			
		
		
		
	AWS kube-up: Allow BLOCK_DEVICE_MAPPINGS_BASE to be empty
We rename it to EPHEMERAL_BLOCK_DEVICE_MAPPINGS, and we also change the value so that it starts with a `,`, instead of always inserting a comma before it. In this way the value can be empty. Also, if the user sets the (currently experimental) KUBE_AWS_STORAGE environment variable to be "ebs", then we will not mount any instance storage which will cause the machines to use EBS storage instead.
This commit is contained in:
		@@ -120,10 +120,17 @@ NODE_SG_NAME="kubernetes-minion-${CLUSTER_ID}"
 | 
				
			|||||||
# Be sure to map all the ephemeral drives.  We can specify more than we actually have.
 | 
					# Be sure to map all the ephemeral drives.  We can specify more than we actually have.
 | 
				
			||||||
# TODO: Actually mount the correct number (especially if we have more), though this is non-trivial, and
 | 
					# TODO: Actually mount the correct number (especially if we have more), though this is non-trivial, and
 | 
				
			||||||
#  only affects the big storage instance types, which aren't a typical use case right now.
 | 
					#  only affects the big storage instance types, which aren't a typical use case right now.
 | 
				
			||||||
BLOCK_DEVICE_MAPPINGS_BASE="{\"DeviceName\": \"/dev/sdc\",\"VirtualName\":\"ephemeral0\"},{\"DeviceName\": \"/dev/sdd\",\"VirtualName\":\"ephemeral1\"},{\"DeviceName\": \"/dev/sde\",\"VirtualName\":\"ephemeral2\"},{\"DeviceName\": \"/dev/sdf\",\"VirtualName\":\"ephemeral3\"}"
 | 
					EPHEMERAL_BLOCK_DEVICE_MAPPINGS=",{\"DeviceName\": \"/dev/sdc\",\"VirtualName\":\"ephemeral0\"},{\"DeviceName\": \"/dev/sdd\",\"VirtualName\":\"ephemeral1\"},{\"DeviceName\": \"/dev/sde\",\"VirtualName\":\"ephemeral2\"},{\"DeviceName\": \"/dev/sdf\",\"VirtualName\":\"ephemeral3\"}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Experimental: If the user sets KUBE_AWS_STORAGE to ebs, use ebs storage
 | 
				
			||||||
 | 
					# in preference to local instance storage We do this by not mounting any
 | 
				
			||||||
 | 
					# instance storage.  We could do this better in future (e.g. making instance
 | 
				
			||||||
 | 
					# storage available for other purposes)
 | 
				
			||||||
 | 
					if [[ "${KUBE_AWS_STORAGE:-}" == "ebs" ]]; then
 | 
				
			||||||
 | 
					  EPHEMERAL_BLOCK_DEVICE_MAPPINGS=""
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# TODO (bburns) Parameterize this for multiple cluster per project
 | 
					# TODO (bburns) Parameterize this for multiple cluster per project
 | 
				
			||||||
 | 
					 | 
				
			||||||
function get_vpc_id {
 | 
					function get_vpc_id {
 | 
				
			||||||
  $AWS_CMD describe-vpcs \
 | 
					  $AWS_CMD describe-vpcs \
 | 
				
			||||||
           --filters Name=tag:Name,Values=kubernetes-vpc \
 | 
					           --filters Name=tag:Name,Values=kubernetes-vpc \
 | 
				
			||||||
@@ -417,8 +424,8 @@ function detect-root-device {
 | 
				
			|||||||
      ROOT_DEVICE_NODE=$($AWS_CMD describe-images --image-ids ${node_image} --query 'Images[].RootDeviceName')
 | 
					      ROOT_DEVICE_NODE=$($AWS_CMD describe-images --image-ids ${node_image} --query 'Images[].RootDeviceName')
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  MASTER_BLOCK_DEVICE_MAPPINGS="[{\"DeviceName\":\"${ROOT_DEVICE_MASTER}\",\"Ebs\":{\"DeleteOnTermination\":true,\"VolumeSize\":${MASTER_ROOT_DISK_SIZE},\"VolumeType\":\"${MASTER_ROOT_DISK_TYPE}\"}}, ${BLOCK_DEVICE_MAPPINGS_BASE}]"
 | 
					  MASTER_BLOCK_DEVICE_MAPPINGS="[{\"DeviceName\":\"${ROOT_DEVICE_MASTER}\",\"Ebs\":{\"DeleteOnTermination\":true,\"VolumeSize\":${MASTER_ROOT_DISK_SIZE},\"VolumeType\":\"${MASTER_ROOT_DISK_TYPE}\"}} ${EPHEMERAL_BLOCK_DEVICE_MAPPINGS}]"
 | 
				
			||||||
  NODE_BLOCK_DEVICE_MAPPINGS="[{\"DeviceName\":\"${ROOT_DEVICE_NODE}\",\"Ebs\":{\"DeleteOnTermination\":true,\"VolumeSize\":${NODE_ROOT_DISK_SIZE},\"VolumeType\":\"${NODE_ROOT_DISK_TYPE}\"}}, ${BLOCK_DEVICE_MAPPINGS_BASE}]"
 | 
					  NODE_BLOCK_DEVICE_MAPPINGS="[{\"DeviceName\":\"${ROOT_DEVICE_NODE}\",\"Ebs\":{\"DeleteOnTermination\":true,\"VolumeSize\":${NODE_ROOT_DISK_SIZE},\"VolumeType\":\"${NODE_ROOT_DISK_TYPE}\"}} ${EPHEMERAL_BLOCK_DEVICE_MAPPINGS}]"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Computes the AWS fingerprint for a public key file ($1)
 | 
					# Computes the AWS fingerprint for a public key file ($1)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user