Skip to content

Latest commit

 

History

History
83 lines (66 loc) · 4.77 KB

README.md

File metadata and controls

83 lines (66 loc) · 4.77 KB

STSStack Bundles

This repository contains a set of bundles that leverage Juju bundle overlays to allow generating complex deployments from a number of options using a single command. These bundles are designed for use with the Juju OpenStack provider.

The top level directory contains a set of modules, each of which has a generate-bundle.sh script which you can use to create a deployment from a number of options.

NOTE: see generate-bundle.sh --help for option info about using that particular module.

The basic usage is as follows:

  • give your deployment a name with (--name)
  • create a Juju model using the given name or use existing one
  • add one or more feature overlays depending on what you need (see --list-overlays)
  • resources are stored under a named directory so as to be able to avoid collisions and replay later (--replay)
  • immediate deploy (--run) or save for later

Example:

Say you want to deploy OpenStack using the Caracal release on Jammy and you want to enable ceph and heat with keystone in HA:

$ cd openstack
$ ./generate-bundle.sh --name mytest -r caracal --ceph --heat --keystone-ha
Creating Juju model mytest

Created jammy-caracal bundle and overlays:
  + openstack/glance.yaml
  + openstack/keystone.yaml
  + ceph/ceph.yaml
  + openstack/openstack-ceph.yaml
  + ceph/ceph-juju-storage.yaml
  + openstack/heat.yaml
  + openstack/keystone-ha.yaml
  + openstack/neutron-ovn.yaml
  + vault.yaml
  + openstack/vault-openstack-secrets.yaml
  + openstack/vault-openstack-certificates.yaml
  + openstack/vault-openstack-certificates-heat.yaml
  + openstack/vault-openstack-certificates-placement.yaml
  + ceph/vault-ceph.yaml
  + openstack/neutron-ml2dns.yaml
  + mysql-innodb-cluster.yaml
  + mysql-innodb-cluster-router.yaml
  + openstack/placement.yaml

Command to deploy:
juju deploy     /home/user1/git/canonical/stsstack-bundles/openstack/b/mytest/openstack.yaml --overlay /home/user1/git/canonical/stsstack-bundles/openstack/b/mytest/o/openstack/glance.yaml --overlay /home/user1/git/canonical/stsstack-bundles/openstack/b/mytest/o/openstack/keystone.yaml --overlay /home/user1/git/canonical/stsstack-bundles/openstack/b/mytest/o/ceph/ceph.yaml --overlay /home/user1/git/canonical/stsstack-bundles/openstack/b/mytest/o/openstack/openstack-ceph.yaml --overlay /home/user1/git/canonical/stsstack-bundles/openstack/b/mytest/o/ceph/ceph-juju-storage.yaml --overlay /home/user1/git/canonical/stsstack-bundles/openstack/b/mytest/o/openstack/heat.yaml --overlay /home/user1/git/canonical/stsstack-bundles/openstack/b/mytest/o/openstack/keystone-ha.yaml --overlay /home/user1/git/canonical/stsstack-bundles/openstack/b/mytest/o/openstack/neutron-ovn.yaml --overlay /home/user1/git/canonical/stsstack-bundles/openstack/b/mytest/o/vault.yaml --overlay /home/user1/git/canonical/stsstack-bundles/openstack/b/mytest/o/openstack/vault-openstack-secrets.yaml --overlay /home/user1/git/canonical/stsstack-bundles/openstack/b/mytest/o/openstack/vault-openstack-certificates.yaml --overlay /home/user1/git/canonical/stsstack-bundles/openstack/b/mytest/o/openstack/vault-openstack-certificates-heat.yaml --overlay /home/user1/git/canonical/stsstack-bundles/openstack/b/mytest/o/openstack/vault-openstack-certificates-placement.yaml --overlay /home/user1/git/canonical/stsstack-bundles/openstack/b/mytest/o/ceph/vault-ceph.yaml --overlay /home/user1/git/canonical/stsstack-bundles/openstack/b/mytest/o/openstack/neutron-ml2dns.yaml --overlay /home/user1/git/canonical/stsstack-bundles/openstack/b/mytest/o/mysql-innodb-cluster.yaml --overlay /home/user1/git/canonical/stsstack-bundles/openstack/b/mytest/o/mysql-innodb-cluster-router.yaml --overlay /home/user1/git/canonical/stsstack-bundles/openstack/b/mytest/o/openstack/placement.yaml 
 

Post-Deployment Info/Actions:

[common]
  - run ./tools/vault-unseal-and-authorise.sh
  - run ./configure to initialise your deployment
  - source novarc
  - add rules to default security group: ./tools/sec_groups.sh

Note that the generated bundles and overlays are stored under a directory with the name you specified. You can now either (1) copy the command line above and execute it, or (2) add --run to ./generate-bundle.sh to automatically execute the mode, or (3) source b/mytest/command.

If you need to manually edit a bundle/overlay prior to deploying you can skip the --run argument and either manually run the deploy command once you have made your changes or alternatively re-run with --replay (which will prevent the files from being re-generated).

Note that an OpenStack deployment will almost certainly require the openstack command line client. At the time of this writing, installing openstackclients via snap is not fully supported. Instead, please install the client via package:

sudo apt install python3-openstackclient python3-neutronclient