I have successfully migrate my quickstart/express install of controller to an HA one node cluster.
I followed this post
to recreate server certificates including the missing SPIFFE ID.
Now I wish to add a second node.
Studying the file create-pki.sh in HA doc folder, I deduce the only common part between nodes id is the pki CA.
So I should deploy a new controller using the CA from the existing one.
Is it possible to bootstrap or express install a controller importing an existing CA?
My release is 1.2.2. Should I upgrade to 1.3.3 before proceeding?
Yes. At this time, you will need to create an intermediate from the original server and then transfer the cert/key to the second controller. We are going to address this flow at some point in the future so there will be no need to transfer a private key, but at this time, that's what you'll need/want to do.
By far the easiest way to do this will be to ssh your root CA and root key to the target machine. If you want to use a quickstart, you should be able to but just beware you and I are breaking new ground here... I haven't run through this myself yet. (it's on my list todo, just isn't todone yet) Also Ken is starting on the work to do this under the 'deployments' umbrella so we are working to make all this easier in the future.
If it were me, I would start by running both controllers on the same machine. That will give you what you need and let you iterate and make sure things are working. Once it works on one machine, I would just pick up my configuratoin and scp it to the other machine and clean up the pki bits that aren't needed (the ones ctrl 1 use)
Yes, makes sense. So I need to generate the intermediate, server and client for second controller on my ctrl1.
Then I need to copy and modify the yaml configuration for ctrl2, with different ports.
Since the ctrl2 will use a different DNS name, I need to temporarly assign a second name to my ctrl1 host.
Yeah that seems about right. You could probably just use a hosts file entry on controller 1 as well. You could also just scp the full pki to controller 2 firstt, get the second controller working and then rm the bits too I suppose. Then you can skip the temporary DNS stuff...
I haven't really gone through the process myself, so forgive me for not having a definitive answer here. I look forward to your results though...
I thing I got the gist of it.
I had much more struggling than necessary due to a firewall rule allowing only european IP addresses to connect to my home infrastructure. D'ho!
My first node (controller + router) is on oracle cloud in Europe so it was not a big deal.
My second node, though, is on google cloud in US, so connections and services were jerky.
Detailed steps:
All binaries version 1.3.3
First node installed as Quickstart Host Openziti Anywhere
recreate server/client certificates whith SPIFFE ID, following Clint's suggestion:
enable the raft section on yaml configuration and reboot the controller to get a running one node cluster.
copy the entire .ziti folder on second node
modify yaml file with correct advertiseaddress. Remove db stanza from configuration. Modify env file, only for the controller part. Do not change hostname part of folders.
remove any content of raft and db folders
create new intermediate, server and client certificates and update yaml accordly: