<p>When you deploy a Kubernetes cluster with juju on AWS the default root disk of all the master and worker nodes is a 'magnetic' storage. I want to set this to use ssd (gp2) instead.</p>

<p>I cannot find any way to do this per application (e.g. kubernetes-worker)
<code>juju get-constrains kubernetes-worker</code> is now => <code>cores=2 mem=4096M root-disk=51200M</code>.</p>

<p>Spinning up new machines always gives me magnetic root disks. <a href="https://docs.jujucharms.com/2.5/en/reference-constraints" rel="nofollow noreferrer">https://docs.jujucharms.com/2.5/en/reference-constraints</a> shows all constraints and no mention of 'volume type' or other.</p>

<p>There is a way to make new storage classes and to attach them to machines/units after deploy, but I would like to add it as default per application when adding new units.</p>

cm4l
<p>I tried this myself and I wasn't able to create an SSD EBS root volume either. I tried this:</p>

<pre><code>$ juju storage-pools
$ juju model-config storage-default-block-source=ebs-ssd
$ juju deploy canonical-kubernetes --storage data=ebs-ssd,10G,1
</code></pre>

<p>It looks like the charms: <a href="https://api.jujucharms.com/charmstore/v5/~containers/kubernetes-worker/archive/metadata.yaml" rel="nofollow noreferrer">kubernetes worker</a>, and <a href="https://api.jujucharms.com/charmstore/v5/~containers/kubernetes-master/archive/metadata.yaml" rel="nofollow noreferrer">kubernetes master</a>  don't have support for a storage label. But you can see that <a href="https://api.jujucharms.com/charmstore/v5/etcd/archive/metadata.yaml" rel="nofollow noreferrer">etcd</a> does have support. So, it's likely one doesn't work with the other, there are also related juju <a href="https://bugs.launchpad.net/juju/+bug/1691694" rel="nofollow noreferrer">open issues</a> to support storage bindings in bundles.</p>

<p>Hope it helps!</p>
