Skip to main content

Deployment

This section describes step by step how to deploy the OSISM Testbed.

Initializing

  1. Request access from the administrator of the respective cloud or get access to an OpenStack cloud.

  2. Clone the osism/testbed repository.

    The repository can also be cloned to any other location.

    mkdir -p ~/src/github.com/osism
    git clone https://github.com/osism/testbed ~/src/github.com/osism/testbed
    cd ~/src/github.com/osism/testbed
  3. Configure your cloud access profile

    The OSISM automation needs credentials to deploy resources on your cloud. These are stored in a file called terraform/clouds.yaml, which you create in the following steps.

    To create this file, log in to the OpenStack Dashboard (Horizon) of your cloud provider and create an application credential:

    1. Navigate to Identity → Application Credentials.
    2. Click Create Application Credential.
    3. Enter a name (e.g., OSISM Testbed) and accept all other defaults.
    4. Click Create Application Credential.
    5. In the confirmation dialog, click Download clouds.yaml.

    Open the downloaded file and rename the cloud entry (typically openstack) to match your environment's profile name from the table on the prerequisites page (e.g., regiocloud). The cloud name in clouds.yaml must match the ENVIRONMENT value used in subsequent make commands.

    terraform/clouds.yaml (example for REGIO.cloud)
    clouds:
    regiocloud: # <- renamed from "openstack" to match ENVIRONMENT
    auth:
    auth_url: https://keystone.services.a.regiocloud.tech/v3
    application_credential_id: "YOUR_ID"
    application_credential_secret: "YOUR_SECRET"
    region_name: RegionA
    identity_api_version: 3
    auth_type: v3applicationcredential

    Move the file to terraform/clouds.yaml in the testbed repository.

  4. Prepare for the deployment.

    The versions of Ansible and OpenTofu are managed automatically, and necessary dependencies are cloned.

    make prepare
    tip

    If any error occurs during preparation, and you want to run the preparation again, it is important to run make wipe-local-install first. Otherwise, the preparation will not be redone completely, and necessary parts will be missing later on.

Start deployment

  1. Create the infrastructure, deploy the OSISM Manager and bootstrap all nodes.

    make ENVIRONMENT=regiocloud manager

    Replace the version with the version you prefer. Check the OSISM release notes to find out what's available.

  2. After the bootstrap, you can log in to the OSISM Manager via SSH.

    make ENVIRONMENT=regiocloud login

    You can log in to the nodes of the cluster via the OSISM Manager.

    osism console testbed-node-0
  3. Deploy all services.

    It is also possible to deploy the services step by step on the OSISM Manager. To do this, first log in with make ENVIRONMENT=regiocloud login and then execute the deployment scripts one after the other. It is recommended to do this within a screen session.

    Deploying the services takes some time and depends on how much bandwidth is available, how the instances are equipped, etc. 90–120 minutes is not unusual when Ceph and OpenStack are fully deployed.

    To speed up the Ansible playbooks, ARA can be disabled. This is done by executing /opt/configuration/scripts/disable-ara.sh. Run this script before the deployment scripts. Afterwards, no more logs are available in the ARA web interface. To re-enable ARA use /opt/configuration/scripts/enable-ara.sh.

    There is also the option of pre-population of images with /opt/configuration/scripts/pull-images.sh so that deployments do not have to be lengthy. Run this script before the deployment scripts. The script will start background tasks and not wait for them to finish before exiting. To wait for all containers to be pulled, you can use osism wait --live (waiting for all tasks to finish). Depending on the internet connection, this should take around 2 to 3 minutes.

    /opt/configuration/scripts/deploy/001-helpers.sh
    /opt/configuration/scripts/deploy/100-ceph-with-ansible.sh
    /opt/configuration/scripts/deploy/200-infrastructure.sh
    /opt/configuration/scripts/deploy/300-openstack.sh
    /opt/configuration/scripts/deploy/400-monitoring.sh
    /opt/configuration/scripts/deploy/500-kubernetes.sh

    Prepare OpenStack resources like public network, flavors and images by running /opt/configuration/scripts/bootstrap.sh. Run this script after the deployment scripts.

    info

    If you only want to deploy the monitoring services with /opt/configuration/scripts/deploy/400-monitoring.sh, a few dependencies must be deployed first. You can then use the monitoring services without having to install a complete OpenStack & Ceph environment.

    osism apply common
    osism apply loadbalancer
    osism apply opensearch
    osism apply mariadb

Verify and adjust deployment

  1. If you want to verify the deployment with refstack run /opt/configuration/scripts/check.sh. This step will take some time and is optional.

  2. The machine images required for the use of Kubernetes Cluster API and the amphora driver of OpenStack Octavia service are not provided by default to save resources on the OSISM Testbed and improve deployment time. These can be provisioned if required.

    /opt/configuration/scripts/bootstrap/301-openstack-octavia-amphora-image.sh
    /opt/configuration/scripts/bootstrap/302-openstack-k8s-clusterapi-images.sh
  3. If you want, you can create a test project with a test user after login. It also creates an instance with a volume attached to a network with a router. This step is optional.

    osism apply --environment openstack test
  4. When the OSISM Testbed is no longer needed, it can be deleted.

    make ENVIRONMENT=regiocloud clean