<p>Using Ubuntu 18.04.</p>

<p>I am trying to install a kubernetes cluster on my local machine (localhost) using this guide (LXD + conjure-up kubernetes):</p>

<p><a href="https://kubernetes.io/docs/getting-started-guides/ubuntu/local/#before-you-begin" rel="noreferrer">https://kubernetes.io/docs/getting-started-guides/ubuntu/local/#before-you-begin</a></p>

<p>When I run:</p>

<pre><code>conjure-up kubernetes
</code></pre>

<p>I select the following installation: </p>

<p><a href="https://i.stack.imgur.com/feNXd.png" rel="noreferrer"><img src="https://i.stack.imgur.com/feNXd.png" alt="enter image description here"></a></p>

<p>and select <code>localhost</code> for "Choose a cloud" and use the defaults for the rest of the install wizard. It then starts to install and after 30-40 minutes it completes with this error:</p>

<p><a href="https://i.stack.imgur.com/cYl0A.png" rel="noreferrer"><img src="https://i.stack.imgur.com/cYl0A.png" alt="enter image description here"></a></p>

<p>Here is the log:
<a href="https://pastebin.com/raw/re1UvrUU" rel="noreferrer">https://pastebin.com/raw/re1UvrUU</a></p>

<p>Where one error says:</p>

<pre><code>2018-07-25 20:09:38,125 [ERROR] conjure-up/canonical-kubernetes - events.py:161 - Unhandled exception in &lt;Task finished coro=&lt;BaseBootstrapController.run() done, defined at /snap/conjure-up/1015/lib/python3.6/site-packages/conjureup/controllers/juju/bootstrap/common.py:15&gt; exception=BootstrapError('Unable to bootstrap (cloud type: localhost)',)&gt;
</code></pre>

<p>but that does not really help much.</p>

<p>Any suggestion to why the install wizard/conjure-up fails?</p>

<p>Also based on this post:</p>

<p><a href="https://github.com/conjure-up/conjure-up/issues/1308" rel="noreferrer">https://github.com/conjure-up/conjure-up/issues/1308</a></p>

<p>I have tried to first disable firewall:</p>

<pre><code>sudo ufw disable
</code></pre>

<p>and then re-run installation/conjure install wizard. But I get the same error.</p>

<p>Some more details on how I installed and configured LXD/conjure-up below:</p>

<pre><code>$ snap install lxd
lxd 3.2 from 'canonical' installed
$ /snap/bin/lxd init
Would you like to use LXD clustering? (yes/no) [default=no]: 
Do you want to configure a new storage pool? (yes/no) [default=yes]: 
Name of the new storage pool [default=default]: 
Name of the storage backend to use (btrfs, ceph, dir, lvm) [default=btrfs]: 
Create a new BTRFS pool? (yes/no) [default=yes]: 
Would you like to use an existing block device? (yes/no) [default=no]: 
Size in GB of the new loop device (1GB minimum) [default=26GB]: 
Would you like to connect to a MAAS server? (yes/no) [default=no]: 
Would you like to create a new local network bridge? (yes/no) [default=yes]: 
What should the new bridge be called? [default=lxdbr0]: 
What IPv4 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: 
What IPv6 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: 
Would you like LXD to be available over the network? (yes/no) [default=no]: 
Would you like stale cached images to be updated automatically? (yes/no) [default=yes] 
Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]: 
</code></pre>

<p>Configured group membership:</p>

<pre><code>sudo usermod -a -G lxd $USER
newgrp lxd
</code></pre>

<p>Next installed:</p>

<pre><code>sudo snap install conjure-up --classic
</code></pre>

<p>And then ran installation:</p>

<pre><code>conjure-up kubernetes
</code></pre>

<p>I wasn't able to reproduce your exact problem but i got <code>conjure-up</code> + <code>lxd</code> installed and in the end Kubernetes on my newly installed VirtualBox Ubuntu 18.04 (Desktop) VM. Hopefully this answer could help you somehow!</p>

<p>I looked through the kubernetes.io documentation page and that one lacked tiny bits of information, it does mention <code>lxd</code> but not the part with <code>lxd init</code> which i assume you picked up in the <a href="https://docs.conjure-up.io/stable/en/user-manual" rel="nofollow noreferrer">conjure-up user manual</a>. </p>

<p>So with that said, i followed the <code>conjure-up</code> user manual with some minor changes on the way. I'm assuming that it's OK for you to use the edge version of <code>conjure-up</code>, i started off with the stable one but changed to edge when testing different combinations. </p>

<p>Also please ensure that you have the recommended resources available stated by the <a href="https://docs.conjure-up.io/stable/en/user-manual" rel="nofollow noreferrer">user manual</a>, <code>conjure-up</code> and the <em>Canoncial Distribution of Kubernetes</em> launches a number of containers for you. You might not need 3 x <em>etcd</em>, 3 x <em>worker</em> nodes and 2 x <em>Master</em>, and if you don't just tune the number of containers down in the <code>conjure-up</code> wizard.</p>

<p>These are the steps i performed (as my local user):</p>

<ol>
<li>Make sure your Ubuntu box are updated: <code>sudo apt update &amp;&amp; sudo apt upgrade</code></li>
<li>Install <code>conjure-up</code> by running: <code>sudo snap install conjure-up --classic --edge</code></li>
<li>Install <code>lxd</code> by running: <code>sudo snap install lxd</code></li>
<li>With <code>lxd</code> comes the client part which is <code>lxc</code>, if you run e.g. <code>lxc list</code> you should get an empty table (no containers started yet). I got an permission error at this time, i ran the following: <code>sudo chown -R lxd:lxd /var/snap/lxd/</code> to change owner and group of the <code>lxd</code> directory containing the socket you'll be communicating with using <code>lxc</code>.</li>
<li>Add your user to the <code>lxd</code>group: <code>sudo usermod -a -G lxd $USER &amp;&amp; newgrp lxd</code>, log off and on to make this permanent and not only active in your current shell.</li>
<li>Now create a <code>lxd</code> bridge manually with the following command: <code>lxc network create lxdbr1 ipv4.address=auto ipv4.nat=true ipv6.address=none ipv6.nat=false</code></li>
<li>Now let's run the init part of <code>lxd</code> with <code>lxd init</code>. Remember to answer <code>no</code> when being asked to <em>create a new local network bridge?</em>, in the next prompt provide your newly created network bridge instead (<code>lxdbr1</code>). The rest of the answers to the questions can be left as default.</li>
<li>Now continue with running <code>conjure-up kubernetes</code> and choose <code>localhost</code> as your type. For me the <code>localhost</code> choice was greyed out from the beginning, it worked when i created the network bridge manually and not via the <code>lxd init</code> step.</li>
<li>Skip the additional components you can install like Rancher, Prometheus etc.</li>
<li>Choose your new network bridge and the default storage pool, proceed to the next step.</li>
<li>In the next step customize your Kubernetes cluster if needed and then hit Deploy. And now you wait!</li>
</ol>

<p>You can always troubleshoot and list all containers created with the <code>lxc</code> tool. If you've ever used Docker the <code>lxc</code> tool feels a lot like the <code>docker</code> client.</p>

<p>And finally some thoughts and observations, there's <em>a lot</em> of moving parts to <code>conjure-up</code> as you might have seen. It's actually described as: <em>conjure-up is a thin layer spanning a few different underlying technologies - Juju, MAAS and LXD.</em> </p>

<p>For reference, i ended up having the following versions installed:</p>

<ul>
<li><code>lxd</code> version 3.3</li>
<li><code>conjure-up</code> version 2.6.1</li>
</ul>
