Prerequisites
- Install terraform 1.0 or greater
- Configure some application credentials in the RC Openstack dashboard
- Add a key pair (in the Key Pairs section)
Infrastructure deployment
- Copy
terraform.tfvars.example
toterraform.tfvars
and edit in appropriate values - Run
terraform init
- Run
terraform apply
Ceph setup
- Log into the admin node with
ssh -i ${PRIVATE_KEY_PATH} -o GlobalKnownHostsFile=/dev/null -o StrictHostKeyChecking=no sles@$(terraform output -raw admin_ip_address)
-
sudo salt-key -F
to show nodes waiting to be accept into the salt-master; you may need to wait a bit before all nodes show up -
sudo salt-key --accept-all
to accept all nodes -
sudo salt \* saltutil.sync_all
to sync all the nodes (if there's an error, wait a moment and try again) -
sudo ceph-salt import cluster.json
to import configuration -
sudo ceph-salt config ls
to both verify that the config is correct and to create ceph-salt metadata files -
sudo ceph-salt update --reboot
to update all nodes; reboot the admin node withsudo shutdown -r now
- log back in to the admin node (same command as step 1)
sudo ceph-salt apply
- access the web interface (in the terraform outputs with
terraform output web_ip_address
)
Variables
Variable | Type | Required | Default | Description |
---|---|---|---|---|
user_name |
string | yes | OpenStack username | |
user_domain_name |
string | yes | The login domain to use for the user | |
appcred_id |
string | yes | Application credential ID. Get one from the openstack dashboard | |
appcred_name |
string | yes | Name of the application credential | |
appcred_secret |
string | yes | Application credential secret | |
ssh_keypair |
string | yes | ssh keypair name to use for authentication | |
base_image_name |
string | no | sles-15-sp2-x86_64 |
Base image to use for all instances |
base_image_visibility |
string | no | null |
Visibility of image. Must be one of "public", "private", "community", or "shared" |
osd_node_count |
number | no | 3 | Amount of OSD node(s) to provision |
public_network_dns |
list(string) | yes | DNS to use for hosts | |
sles_rmt_host |
string | yes | Host of a SUSE RMT server | |
sles_rmt_fingerprint |
string | yes | Fingerprint for SUSE RMT certificate | |
osd_disk_sizes |
list(number) | no | [8, 8] | Amount/size of disks to add, in GB |
app_instance_count |
number | no | 0 | Additional instances to add for testing rgw, rbd, etc |