diff --git a/cli/cmd/dev/microshift/static/all.yaml.tmpl b/cli/cmd/dev/microshift/static/all.yaml.tmpl index eec98a9c..bde32587 100644 --- a/cli/cmd/dev/microshift/static/all.yaml.tmpl +++ b/cli/cmd/dev/microshift/static/all.yaml.tmpl @@ -5,7 +5,7 @@ sf_fqdn: {{ .FQDN }} # The following variables will be used to check out the ansible-microshift-role role at a pinned version microshift_role_path: "{{ .MicroshiftRolePath }}" -microshift_role_version: af71ceef51ad42b881dfdb3fd025839e6f9563ca +microshift_role_version: 6d8be500b4d434b9d98564e0f0a4d8739a328fce # The following variables are used when the ansible-microshift-role role is called disk_file_sparsed: true diff --git a/roles/setup-env/defaults/main.yaml b/roles/setup-env/defaults/main.yaml index c7feb6ec..8ea52c8c 100644 --- a/roles/setup-env/defaults/main.yaml +++ b/roles/setup-env/defaults/main.yaml @@ -3,3 +3,4 @@ install_requirements: true microshift_fqdn: microshift.dev microshift_role_path: "{{ ansible_user_dir }}/src/github.com/openstack-k8s-operators/ansible-microshift-role" os_host: '' +microshift_version: 4.16 diff --git a/roles/setup-env/tasks/main.yaml b/roles/setup-env/tasks/main.yaml index 2e68f35b..189ec049 100644 --- a/roles/setup-env/tasks/main.yaml +++ b/roles/setup-env/tasks/main.yaml @@ -40,8 +40,6 @@ - name: Install packages ansible.builtin.package: name: - - git-review - - golang - jq - make - podman @@ -65,6 +63,24 @@ - kubernetes-client when: ansible_distribution == "Fedora" + # NOTE: Tasks are required on multinode-deployment to get kubectl binary + # NOTE: The command needs to be executed via shell/command module + # not rhsm_repository modue, because it will raise an error on + # Centos deployment. + - name: Install openshift-client when RHEL + when: ansible_distribution | lower == 'redhat' + block: + - name: Enable RHOCP subscription using command + become: true + ansible.builtin.command: | + subscription-manager repos --enable rhocp-{{ microshift_version }}-for-rhel-9-{{ ansible_architecture }}-rpms + + - name: Install openshift-clients + become: true + ansible.builtin.package: + name: openshift-clients + state: present + - name: Install python3-pip ansible.builtin.package: name: @@ -78,3 +94,43 @@ - kubernetes - oauthlib>=3.2.2 - websocket-client + +# FIXME: Install golang package when 1.21 is available +# ERROR on `go build` for sf-operator: +# go: go.mod requires go >= 1.22.0 (running go 1.21.13; GOTOOLCHAIN=local) +- name: Configure TEMPORARY solution for Golang 1.22 + when: ansible_distribution | lower == 'redhat' + block: + - name: Check golang version + ansible.builtin.package_facts: + + - name: Install minimum version when Go binary is old + when: + - "'golang' in ansible_facts.packages" + - "ansible_facts.packages['golang'][0]['version'] is version('1.22.0', 'lt')" + block: + - name: Remove golang + become: true + ansible.builtin.package: + name: golang + state: absent + + - name: Extract Go archive + become: true + ansible.builtin.unarchive: + src: https://go.dev/dl/go1.22.10.linux-amd64.tar.gz + dest: /usr/local + remote_src: true + + - name: Create symlinks for go binary + become: true + ansible.builtin.file: + src: "/usr/local/go/bin/{{ item }}" + dest: "/usr/bin/{{ item }}" + state: link + loop: + - go + - gofmt + +- name: Print golang version + ansible.builtin.command: go version diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index f43b0be6..a093265d 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -41,6 +41,19 @@ - 199.204.47.54 inject_dev_ssh_keys: true + +- job: + name: sf-operator-rhel + parent: sf-operator-microshift-rhel + pre-run: *pre-run + post-run: *post-run + timeout: 5200 + attempts: 5 + run: playbooks/main.yaml + abstract: true + irrelevant-files: *irrelevant-files + vars: *vars + - job: name: sf-operator-multinode parent: sf-operator-microshift-multinode @@ -53,6 +66,18 @@ irrelevant-files: *irrelevant-files vars: *vars +- job: + name: sf-operator-multinode-rhel + parent: sf-operator-microshift-multinode-rhel + pre-run: *pre-run + post-run: *post-run + timeout: 5200 + attempts: 5 + run: playbooks/main.yaml + abstract: true + irrelevant-files: *irrelevant-files + vars: *vars + - secret: name: zuul_quay_sf data: @@ -108,6 +133,28 @@ vars: mode: "standalone" +- job: + name: sf-operator-olm-rhel + description: Validates a sf-operator deployment via OLM on RHEL + parent: sf-operator-rhel + vars: + mode: "olm" + +- job: + name: sf-operator-upgrade-rhel + description: Validates a sf-operator upgrade via OLM on RHEL + parent: sf-operator-rhel + run: playbooks/upgrade.yaml + vars: + mode: "olm" + +- job: + name: sf-operator-standalone-rhel + description: Validates a sf-operator standalone deployment in multinode on RHEL + parent: sf-operator-multinode-rhel + vars: + mode: "standalone" + - job: name: sf-operator-ansible-lint description: Lint Ansible playbooks located in playbooks directory diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml index fe88fc84..77ffe373 100644 --- a/zuul.d/project.yaml +++ b/zuul.d/project.yaml @@ -6,6 +6,9 @@ - sf-operator-upgrade - sf-operator-standalone - sf-operator-ansible-lint + - sf-operator-olm-rhel + - sf-operator-upgrade-rhel + - sf-operator-standalone-rhel gate: jobs: - sf-operator-vuln-check @@ -13,6 +16,9 @@ - sf-operator-upgrade - sf-operator-standalone - sf-operator-ansible-lint + - sf-operator-olm-rhel + - sf-operator-upgrade-rhel + - sf-operator-standalone-rhel release: jobs: - sf-operator-publish-olm-bundle-image