Skip to content

Commit

Permalink
Add feature to install olm via rpm
Browse files Browse the repository at this point in the history
This commit provides a feature to setup the OLM via MicroShift RPM package.
  • Loading branch information
danpawlik committed Oct 4, 2024
1 parent cd82af3 commit 4e7b8a4
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 28 deletions.
2 changes: 2 additions & 0 deletions defaults/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,8 @@ microshift_ovn: {}
# Install the OLM - https://olm.operatorframework.io/
setup_olm: false
# https://github.com/operator-framework/operator-lifecycle-manager/releases
# NOTE: the olm_version is not working when microshift_olm_package is set to true.
microshift_olm_package: false
olm_version: "v0.28.0"

# Version of the Operator SDK
Expand Down
73 changes: 45 additions & 28 deletions tasks/olm.yaml
Original file line number Diff line number Diff line change
@@ -1,32 +1,49 @@
---
- name: Fetch operator-sdk
become: true
ansible.builtin.uri:
url: https://github.com/operator-framework/operator-sdk/releases/download/{{ operator_sdk_version }}/operator-sdk_linux_amd64
dest: /usr/local/bin/operator-sdk
mode: "755"
status_code:
- 200
- 304
- name: Install OLM via rpm package
when: microshift_olm_package
block:
- name: Install OLM rpm
become: true
ansible.builtin.yum:
name: microshift-olm
state: present
enablerepo: microshift-rpms,microshift-deps-rpms
notify: Restart Microshift

- name: Check if OLM is installed
ansible.builtin.command: /usr/local/bin/operator-sdk olm status
register: olm_status
failed_when: olm_status.rc not in [0, 1]
changed_when: true
- name: Flush handlers
ansible.builtin.meta: flush_handlers

# Set ns/user to SCC before we run the OLM installation
- name: Ensure privileged SCC for OLM
ansible.builtin.command:
oc adm policy add-scc-to-user privileged system:serviceaccount:olm:{{ item }}
changed_when: true
loop:
- "default"
- "operatorhubio-catalog"
- "olm-operator-serviceaccount"
- name: Install OLM via OperatorSDK
when: not microshift_olm_package
block:
- name: Fetch operator-sdk
become: true
ansible.builtin.uri:
url: https://github.com/operator-framework/operator-sdk/releases/download/{{ operator_sdk_version }}/operator-sdk_linux_amd64
dest: /usr/local/bin/operator-sdk
mode: "755"
status_code:
- 200
- 304

- name: Install OLM with SDK
ansible.builtin.command: |
/usr/local/bin/operator-sdk olm install --version {{ olm_version }}
when: olm_status.rc != 0
changed_when: true
- name: Check if OLM is installed
ansible.builtin.command: /usr/local/bin/operator-sdk olm status
register: olm_status
failed_when: olm_status.rc not in [0, 1]
changed_when: true

# Set ns/user to SCC before we run the OLM installation
- name: Ensure privileged SCC for OLM
ansible.builtin.command:
oc adm policy add-scc-to-user privileged system:serviceaccount:olm:{{ item }}
changed_when: true
loop:
- "default"
- "operatorhubio-catalog"
- "olm-operator-serviceaccount"

- name: Install OLM with SDK
ansible.builtin.command: |
/usr/local/bin/operator-sdk olm install --version {{ olm_version }}
when: olm_status.rc != 0
changed_when: true

0 comments on commit 4e7b8a4

Please sign in to comment.