Skip to content

Commit

Permalink
Add playbook to configure lunasa access for barbican
Browse files Browse the repository at this point in the history
This playbook will check out an ansible role that creates modified
barbican images and creates the relevant secrets needed.

In addition, the playbook modifies the control plane CR to include
the required config to barbican.

You need to call the update-containers role to be able to use the
updated barbican images.
  • Loading branch information
vakwetu committed Jan 3, 2025
1 parent c2e4f9f commit f3d39d2
Show file tree
Hide file tree
Showing 4 changed files with 87 additions and 2 deletions.
6 changes: 6 additions & 0 deletions docs/dictionary/en-custom.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ az
azs
backend
backends
barbican
baremetal
baremetalhost
basedir
Expand All @@ -45,6 +46,7 @@ bootmacaddress
bootmode
buildah
buildpkgs
cacert
cacheable
cci
ccitredhat
Expand Down Expand Up @@ -203,6 +205,8 @@ hostnames
hostvars
hotfix
href
hsm
hsms
https
ic
icjbuue
Expand Down Expand Up @@ -300,6 +304,7 @@ mellanox
metallb
metalsmith
mgmt
minclient
mins
minsizegigabytes
mlnx
Expand Down Expand Up @@ -392,6 +397,7 @@ params
passwd
passwordless
pastebin
pem
pkgs
pki
png
Expand Down
78 changes: 78 additions & 0 deletions hooks/playbooks/barbican-enable-luna.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
---
- name: Create modified barbican image and get secrets
hosts: "{{ cifmw_target_hook_host | default('localhost') }}"
tasks:
- name: Check out the role git repo
ansible.builtin.git:
dest: "./rhoso_luna_hsm"
repo: "https://github.com/openstack-k8s-operators/ansible-role-rhoso-luna-hsm.git"
version: main

- name: Create and upload the new barbican images
ansible.builtin.include_role:
name: rhoso_luna_hsm
tasks_from: create_image.yml
vars:
barbican_src_image_registry: "{{ content_provider_registry_ip }}:5001"
barbican_src_image_namespace: "{{ cifmw_set_openstack_containers_namespace }}"
barbican_src_image_tag: "{{ cifmw_update_extras['cifmw_set_openstack_containers_tag'] }}"
barbican_dest_image_registry: "{{ content_provider_registry_ip }}:5001"
barbican_dest_image_namespace: "{{ cifmw_set_openstack_containers_namespace }}"
barbican_dest_image_tag: "{{ cifmw_update_extras['cifmw_set_openstack_containers_tag'] }}{{ cifmw_update_barbican_custom_tag }}"
luna_minclient_src: "{{ cifmw_hsm_luna_minclient_src }}"
luna_binaries_src: "{{ cifmw_hsm_luna_binaries_src }}"

- name: Create secrets with the HSM certs and hsm-login credentials
ansible.builtin.include_role:
name: rhoso_luna_hsm
tasks_from: create_secrets.yml
vars:
client_ip: "{{ cifmw_hsm_client_ip }}"
luna_server_cert_src: "{{ cifmw_hsm_luna_server_cert_src }}"
luna_client_cert_src: "{{ cifmw_hsm_luna_client_cert_src }}"
partition_password: "{{ cifmw_hsm_partition_password }}"
kubeconfig_path: "{{ cifmw_openshift_kubeconfig }}"
oc_path: "{{ cifmw_path }}"
luna_cert_secret: "{{ cifmw_hsm_luna_cert_secret | default('barbican-luna-certs', true) }}"
login_secret: "{{ cifmw_hsm_login_secret | default('hsm-login', true) }}"

- name: Create kustomization to use update barbican to use luna
hosts: "{{ cifmw_target_hook_host | default('localhost') }}"
tasks:
- name: Create file to customize barbican resource deployed in the control plane
vars:
certs_secret: "{{ cifmw_hsm_luna_cert_secret | default('barbican-luna-certs', true) }}"
login_secret: "{{ cifmw_hsm_login_secret | default('hsm-login', true) }}"
ansible.builtin.copy:
dest: "{{ cifmw_basedir }}/artifacts/manifests/kustomizations/controlplane/93-barbican-luna.yaml"
content: |-
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
namespace: {{ namespace }}
patches:
- target:
kind: OpenStackControlPlane
name: .*
patch: |-
- op: add
path: /spec/barbican/template/globalDefaultSecretStore
value: pkcs11
- op: add
path: /spec/barbican/template/enabledSecretStores
value:
- pkcs11
- op: add
path: /spec/barbican/template/pkcs11
value:
type: luna
libraryPath: /usr/local/luna/libs/64/libCryptoki2.so
tokenLabels: "{{ cifmw_hsm_luna_partition }}"
MKEKLabel: "{{ cifm_hsm_mkek_label }}"
HMACLabel: "{{ cifm_hsm_hmac_label }}"
serverAddress: "{{ cifmw_hsm_server_ip }}"
clientAddress: "{{ cifmw_hsm_client_ip }}"
loginSecret: "{{ login_secret }}"
certificatesSecret: "{{ certs_secret }}"
certificatesMountPoint: /usr/local/luna/config/certs
keyWrapMechanism: "{{ cifmw_hsm_key_wrap_mechanism }}"
1 change: 1 addition & 0 deletions roles/update_containers/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,4 @@ cifmw_update_containers_manilashares:
# cifmw_update_containers_edpm_image_url:
# cifmw_update_containers_ipa_image_url:
# cifmw_update_containers_edpmnodeexporterimage:
cifmw_update_barbican_custom_tag: ""
4 changes: 2 additions & 2 deletions roles/update_containers/templates/update_containers.j2
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ spec:
aodhEvaluatorImage: {{ cifmw_update_containers_registry }}/{{ cifmw_update_containers_org }}/openstack-aodh-evaluator:{{ cifmw_update_containers_tag }}
aodhListenerImage: {{ cifmw_update_containers_registry }}/{{ cifmw_update_containers_org }}/openstack-aodh-listener:{{ cifmw_update_containers_tag }}
aodhNotifierImage: {{ cifmw_update_containers_registry }}/{{ cifmw_update_containers_org }}/openstack-aodh-notifier:{{ cifmw_update_containers_tag }}
barbicanAPIImage: {{ cifmw_update_containers_registry }}/{{ cifmw_update_containers_org }}/openstack-barbican-api:{{ cifmw_update_containers_tag }}
barbicanAPIImage: {{ cifmw_update_containers_registry }}/{{ cifmw_update_containers_org }}/openstack-barbican-api:{{ cifmw_update_containers_tag }}{{ cifmw_update_barbican_custom_tag }}
barbicanKeystoneListenerImage: {{ cifmw_update_containers_registry }}/{{ cifmw_update_containers_org }}/openstack-barbican-keystone-listener:{{ cifmw_update_containers_tag }}
barbicanWorkerImage: {{ cifmw_update_containers_registry }}/{{ cifmw_update_containers_org }}/openstack-barbican-worker:{{ cifmw_update_containers_tag }}
barbicanWorkerImage: {{ cifmw_update_containers_registry }}/{{ cifmw_update_containers_org }}/openstack-barbican-worker:{{ cifmw_update_containers_tag }}{{ cifmw_update_barbican_custom_tag }}
ceilometerCentralImage: {{ cifmw_update_containers_registry }}/{{ cifmw_update_containers_org }}/openstack-ceilometer-central:{{ cifmw_update_containers_tag }}
ceilometerComputeImage: {{ cifmw_update_containers_registry }}/{{ cifmw_update_containers_org }}/openstack-ceilometer-compute:{{ cifmw_update_containers_tag }}
ceilometerIpmiImage: {{ cifmw_update_containers_registry }}/{{ cifmw_update_containers_org }}/openstack-ceilometer-ipmi:{{ cifmw_update_containers_tag }}
Expand Down

0 comments on commit f3d39d2

Please sign in to comment.