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.
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:
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: ALLto 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_KEYin the CI/CD variables):ssh-keygen -y -f ssh-key > ssh-key.pub.
You can use another username and key pair (as
ndip-node01does withxv6), but then the inventory and GitLab jobs must be adjusted accordingly.- have sudo rights without a password (e.g. add
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, ...).Add GitLab CI jobs for it in
.gitlab-ci-pulsar.yml(prod jobs restricted tomain), 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).In calvera
k8s/galaxy/:- add a runner and destination to both
values-jobconf-test.ymlandvalues-jobconf-prod.yml; - add the machine and destination to
values-resource-orchestration.yml, and the hostname todestination_mapin the rule; - add the destination to
values-job-resource-params-<env>.ymlif users should be able to pick it. Deploy withgalaxy-test, thengalaxy-k8s-prod.
- add a runner and destination to both
Add node exporter scrape targets with a
hostlabel equal to the hostname indestination_map(k8s/monitoring/helm/prometheus-sources.yaml, then theprometheusjob), so that alerts can take the host out of rotation.Add the Machine to the system tests.