Skip to main content

Adding a Pulsar Instance

It is pretty easy to deploy Pulsar to a Linux machine (maybe to Windows as well, but we did not try that yet) using the Ansible playbook.

note

If you want to add an ORC instance, use the monorepo to create your VM before proceeding with the steps below.

Steps​

The steps to install to a Machine are:

  1. Make sure there is a user named cloud on the Machine. This user needs to

    • have sudo rights without a password (e.g. add cloud ALL=(ALL) NOPASSWD: ALL to the sudoers file),
    • have the public SSH key in its authorized_keys file. Copy it from an existing machine, or generate it from the private key (PULSAR_SSH_KEY in the CI/CD variables): ssh-keygen -y -f ssh-key > ssh-key.pub.

    You can use another username and key pair (as ndip-node01 does with xv6), but then the inventory and GitLab jobs must be adjusted accordingly.

  2. Add the Machine to the hosts file, once per environment (prod, test, dev aliases), and add each alias to the relevant groups (pulsar_prod, pulsar_test, pulsar_gpu_servers, ...).

  3. Add GitLab CI jobs for it in .gitlab-ci-pulsar.yml (prod jobs restricted to main), and run the test job first. Check for errors. A new OS version may need changes to the Ansible roles. Make sure Pulsar and the remote data broker run and can connect to RabbitMQ and Rucio for that environment (see the table on the Pulsar page).

  4. In calvera k8s/galaxy/:

    • add a runner and destination to both values-jobconf-test.yml and values-jobconf-prod.yml;
    • add the machine and destination to values-resource-orchestration.yml, and the hostname to destination_map in the rule;
    • add the destination to values-job-resource-params-<env>.yml if users should be able to pick it. Deploy with galaxy-test, then galaxy-k8s-prod.
  5. Add node exporter scrape targets with a host label equal to the hostname in destination_map (k8s/monitoring/helm/prometheus-sources.yaml, then the prometheus job), so that alerts can take the host out of rotation.

  6. Add the Machine to the system tests.