delegate_to: "{{ groups['deployer'][0] }}"
when: ocloud_platform == "okd"
+- name: Include platform role - SiteConfig
+ ansible.builtin.import_role:
+ name: "ocloud_platform_siteconfig"
+ delegate_to: "{{ groups['deployer'][0] }}"
+ when: ocloud_platform == "okd"
+
+- name: Include platform role - ClusterGroupUpgrades
+ ansible.builtin.import_role:
+ name: "ocloud_platform_cgu"
+ delegate_to: "{{ groups['deployer'][0] }}"
+ when: ocloud_platform == "okd"
+
+- name: Include platform role - MultiClusterObservability
+ ansible.builtin.import_role:
+ name: "ocloud_platform_mco"
+ delegate_to: "{{ groups['deployer'][0] }}"
+ when: ocloud_platform == "okd"
+
- name: Include platform role - oran-o2ims
ansible.builtin.import_role:
name: "ocloud_platform_o2ims"
---
-ocloud_infra_vm_cpus: 8
-ocloud_infra_vm_mem_gb: 24
-ocloud_infra_vm_disk_gb: 120
+ocloud_infra_vm_cpus: 16
+ocloud_infra_vm_mem_gb: 32
+ocloud_infra_vm_disk_gb: 150
ocloud_infra_vm_disk_dir: "/var/lib/libvirt/images"
ocloud_infra_vm_disk_path: "{{ ocloud_infra_vm_disk_dir }}/{{ inventory_hostname }}.qcow2"
ocloud_infra_vm_image: "{{ ocloud_infra_vm_disk_dir }}/{{ inventory_hostname }}-image.iso"
- name: Install cluster-group-upgrades
ansible.builtin.shell:
chdir: "{{ ocloud_staging_dir['path'] }}/git/cluster-group-upgrades"
- cmd: "make install deploy VERSION={{ ocloud_platform_cgu_snapshot }}"
+ cmd: "make install deploy VERSION={{ ocloud_platform_cgu_version }}"
environment:
PATH: "{{ ocloud_staging_dir['path'] }}/go/bin:{{ ansible_env.PATH }}"
KUBECONFIG: "{{ ocloud_platform_cgu_kubeconfig }}"
advanced:
alertmanager:
replicas: {{ ocloud_platform_mco_replicas }}
+ compact:
+ resources:
+ requests:
+ memory: 512m
grafana:
replicas: {{ ocloud_platform_mco_replicas }}
observatoriumAPI:
replicas: {{ ocloud_platform_mco_replicas }}
query:
replicas: {{ ocloud_platform_mco_replicas }}
+ resources:
+ requests:
+ memory: 512m
queryFrontend:
replicas: {{ ocloud_platform_mco_replicas }}
queryFrontendMemcached:
replicas: {{ ocloud_platform_mco_replicas }}
store:
replicas: {{ ocloud_platform_mco_replicas }}
+ resources:
+ requests:
+ memory: 512m
storeMemcached:
replicas: {{ ocloud_platform_mco_replicas }}
---
-ocloud_platform_o2ims_golang_url: "https://go.dev/dl/go1.23.2.linux-amd64.tar.gz"
ocloud_platform_o2ims_kubeconfig: "{{ ocloud_platform_okd_kubeconfig }}"
ocloud_platform_o2ims_repo_url: "https://github.com/openshift-kni/oran-o2ims.git"
-ocloud_platform_o2ims_repo_version: "osc-k-release"
-ocloud_platform_o2ims_service: "o2ims"
+ocloud_platform_o2ims_repo_version: "main"
--- /dev/null
+---
+dependencies:
+ - role: ocloud_setup
---
-- name: Gather facts
- ansible.builtin.setup:
- gather_subset: all
-
-- name: Create staging dir for orano2ims installation
- ansible.builtin.tempfile:
- state: directory
- register: ocloud_platform_o2ims_staging_dir
-
-- name: Create staging subdirs
- ansible.builtin.file:
- path: "{{ ocloud_platform_o2ims_staging_dir['path'] }}/{{ item }}"
- state: directory
- loop:
- - go
- - git
-
-- name: Download golang
- ansible.builtin.get_url:
- url: "{{ ocloud_platform_o2ims_golang_url }}"
- dest: "{{ ocloud_platform_o2ims_staging_dir['path'] }}/go.linux-amd64.tar.gz"
-
-- name: Extract golang
- ansible.builtin.unarchive:
- src: "{{ ocloud_platform_o2ims_staging_dir['path'] }}/go.linux-amd64.tar.gz"
- dest: "{{ ocloud_platform_o2ims_staging_dir['path'] }}"
- remote_src: true
-
- name: Clone oran-o2ims repo
ansible.builtin.git:
repo: "{{ ocloud_platform_o2ims_repo_url }}"
version: "{{ ocloud_platform_o2ims_repo_version }}"
- dest: "{{ ocloud_platform_o2ims_staging_dir['path'] }}/git"
-
-- name: Deploy oran-o2ims operator
- ansible.builtin.shell:
- chdir: "{{ ocloud_platform_o2ims_staging_dir['path'] }}/git"
- cmd: "make deploy"
- environment:
- PATH: "{{ ocloud_platform_o2ims_staging_dir['path'] }}/go/bin:{{ ansible_env.PATH }}"
- KUBECONFIG: "{{ ocloud_platform_o2ims_kubeconfig }}"
+ dest: "{{ ocloud_staging_dir['path'] }}/git/oran-o2ims"
-- name: Install oran-o2ims custom resource definitions
+- name: Install oran-o2ims operator
ansible.builtin.shell:
- chdir: "{{ ocloud_platform_o2ims_staging_dir['path'] }}/git"
- cmd: "make install"
+ chdir: "{{ ocloud_staging_dir['path'] }}/git/oran-o2ims"
+ cmd: "make install deploy"
environment:
- PATH: "{{ ocloud_platform_o2ims_staging_dir['path'] }}/go/bin:{{ ansible_env.PATH }}"
+ PATH: "{{ ocloud_staging_dir['path'] }}/go/bin:{{ ansible_env.PATH }}"
KUBECONFIG: "{{ ocloud_platform_o2ims_kubeconfig }}"
-
-- name: Get Infrastructure config
- kubernetes.core.k8s_info:
- api_version: config.openshift.io/v1
- kind: Infrastructure
- name: cluster
- kubeconfig: "{{ ocloud_platform_o2ims_kubeconfig }}"
- register: ocloud_platform_o2ims_infrastructure_info
-
-- name: Get IngressController config
- kubernetes.core.k8s_info:
- api_version: operator.openshift.io/v1
- kind: IngressController
- name: default
- namespace: openshift-ingress-operator
- kubeconfig: "{{ ocloud_platform_o2ims_kubeconfig }}"
- register: ocloud_platform_o2ims_ingresscontroller_info
-
-- name: Get search-api Route config
- kubernetes.core.k8s_info:
- api_version: route.openshift.io/v1
- kind: Route
- name: search-api
- namespace: open-cluster-management
- kubeconfig: "{{ ocloud_platform_o2ims_kubeconfig }}"
- register: ocloud_platform_o2ims_search_api_route_info
-
-- set_fact:
- ocloud_platform_o2ims_api_url: "{{ ocloud_platform_o2ims_infrastructure_info['resources'][0]['status']['apiServerURL'] }}"
- ocloud_platform_o2ims_ingress_host: "{{ ocloud_platform_o2ims_service }}.{{ ocloud_platform_o2ims_ingresscontroller_info['resources'][0]['status']['domain'] }}"
- ocloud_platform_o2ims_search_api_url: "https://{{ ocloud_platform_o2ims_search_api_route_info['resources'][0]['spec']['host'] }}"
-
-- name: Create Inventory resource
- kubernetes.core.k8s:
- template: v1alpha1_inventory.yaml.j2
- state: present
- kubeconfig: "{{ ocloud_platform_o2ims_kubeconfig }}"
+++ /dev/null
-apiVersion: o2ims.oran.openshift.io/v1alpha1
-kind: Inventory
-metadata:
- labels:
- app.kubernetes.io/name: inventory
- app.kubernetes.io/instance: inventory-sample
- app.kubernetes.io/part-of: oran-o2ims
- app.kubernetes.io/managed-by: kustomize
- app.kubernetes.io/created-by: oran-o2ims
- name: default
- namespace: oran-o2ims
-spec:
- cloudID: {{ ocloud_platform_o2ims_ingress_host | to_uuid }}
- ingressHost: {{ ocloud_platform_o2ims_ingress_host }}
- alarmServerConfig:
- enabled: false
- metadataServerConfig:
- enabled: true
- deploymentManagerServerConfig:
- enabled: true
- backendURL: "{{ ocloud_platform_o2ims_api_url }}"
- backendType: regular-hub
- resourceServerConfig:
- enabled: true
- backendURL: "{{ocloud_platform_o2ims_search_api_url }}"
ocloud_platform_okd_pull_secret: '{"auths":{"fake":{"auth":"aWQ6cGFzcwo="}}}'
ocloud_platform_okd_ssh_pubkey: ~
ocloud_platform_okd_kubeconfig: ~
-ocloud_platform_okd_release: "4.16.0-0.okd-scos-2024-08-01-132038"
+ocloud_platform_okd_release: "4.19.0-okd-scos.0"
ocloud_platform_okd_base_url: "quay.io/okd/scos-release"
ocloud_platform_okd_cli_url: "https://mirror.openshift.com/pub/openshift-v4/x86_64/clients/ocp"
-ocloud_platform_okd_image_url: "https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.16/4.16.3/rhcos-4.16.3-x86_64-live.x86_64.iso"
---
- name: Monitor OKD platform deployment
ansible.builtin.command:
- cmd: "openshift-install agent wait-for {{ item }} --log-level=info --dir {{ ocloud_platform_okd_staging_dir['path'] }}/cfg"
+ cmd: "openshift-install agent wait-for {{ item }} --log-level=info --dir {{ ocloud_staging_dir['path'] }}/cfg"
environment:
- PATH: "{{ ocloud_platform_okd_staging_dir['path'] }}/bin:{{ ansible_env.PATH }}"
+ PATH: "{{ ocloud_staging_dir['path'] }}/bin:{{ ansible_env.PATH }}"
loop:
- bootstrap-complete
- install-complete
--- /dev/null
+---
+dependencies:
+ - role: ocloud_setup
---
-- name: Create staging dir for OKD installation
- ansible.builtin.tempfile:
- state: directory
- register: ocloud_platform_okd_staging_dir
-
-- name: Create staging subdirs
- ansible.builtin.file:
- path: "{{ ocloud_platform_okd_staging_dir['path'] }}/{{ item }}"
- state: directory
- loop:
- - bin
- - cfg
- - cfg/openshift
-
-- name: Download OKD CLI
- ansible.builtin.get_url:
- url: "{{ ocloud_platform_okd_cli_url }}/stable-{{ ocloud_platform_okd_release | regex_search('^[0-9]*\\.[0-9]*') }}/openshift-client-linux.tar.gz"
- dest: "{{ ocloud_platform_okd_staging_dir['path'] }}"
-
-- name: Extract OKD CLI
- ansible.builtin.unarchive:
- src: "{{ ocloud_platform_okd_staging_dir['path'] }}/openshift-client-linux.tar.gz"
- dest: "{{ ocloud_platform_okd_staging_dir['path'] }}/bin"
- remote_src: true
-
- name: Extract OKD installer
ansible.builtin.shell:
- cmd: "oc adm release extract --command=openshift-install {{ ocloud_platform_okd_base_url }}:{{ ocloud_platform_okd_release }} --to {{ ocloud_platform_okd_staging_dir['path'] }}/bin"
+ cmd: "oc adm release extract --command=openshift-install {{ ocloud_platform_okd_base_url }}:{{ ocloud_platform_okd_release }} --to {{ ocloud_staging_dir['path'] }}/bin"
environment:
- PATH: "{{ ocloud_platform_okd_staging_dir['path'] }}/bin:{{ ansible_env.PATH }}"
+ PATH: "{{ ocloud_staging_dir['path'] }}/bin:{{ ansible_env.PATH }}"
- name: Template OKD configs
ansible.builtin.template:
src: "{{ item }}.j2"
- dest: "{{ ocloud_platform_okd_staging_dir['path'] }}/cfg/{{ item }}"
+ dest: "{{ ocloud_staging_dir['path'] }}/cfg/{{ item }}"
loop:
- agent-config.yaml
- install-config.yaml
- name: Copy MachineConfig manifests
ansible.builtin.template:
src: "{{ item }}.j2"
- dest: "{{ ocloud_platform_okd_staging_dir['path'] }}/cfg/openshift/{{ item }}"
+ dest: "{{ ocloud_staging_dir['path'] }}/cfg/openshift/{{ item }}"
loop:
- 99-master-pvs.yaml
- ansible.builtin.debug:
verbosity: 2
- msg: "{{ lookup('file', [ocloud_platform_okd_staging_dir['path'], 'cfg', item] | path_join) }}"
+ msg: "{{ lookup('file', [ocloud_staging_dir['path'], 'cfg', item] | path_join) }}"
loop:
- agent-config.yaml
- install-config.yaml
- name: Generate OKD agent-based installer image
ansible.builtin.shell:
- cmd: "openshift-install agent create image --dir {{ ocloud_platform_okd_staging_dir['path'] }}/cfg"
+ cmd: "openshift-install agent create image --dir {{ ocloud_staging_dir['path'] }}/cfg"
environment:
- PATH: "{{ ocloud_platform_okd_staging_dir['path'] }}/bin:{{ ansible_env.PATH }}"
- OPENSHIFT_INSTALL_OS_IMAGE_OVERRIDE: "{{ ocloud_platform_okd_image_url }}"
+ PATH: "{{ ocloud_staging_dir['path'] }}/bin:{{ ansible_env.PATH }}"
- debug:
msg: |
- OKD agent-based installer image has been created as {{ ocloud_platform_okd_staging_dir['path'] }}/cfg/agent.x86_64.iso
- kubeconfig and kubeadmin-password can be found under {{ ocloud_platform_okd_staging_dir['path'] }}/cfg/auth/
+ OKD agent-based installer image has been created as {{ ocloud_staging_dir['path'] }}/cfg/agent.x86_64.iso
+ kubeconfig and kubeadmin-password can be found under {{ ocloud_staging_dir['path'] }}/cfg/auth/
- ansible.builtin.set_fact:
- ocloud_platform_okd_kubeconfig: "{{ ocloud_platform_okd_staging_dir['path'] }}/cfg/auth/kubeconfig"
+ ocloud_platform_okd_kubeconfig: "{{ ocloud_staging_dir['path'] }}/cfg/auth/kubeconfig"
- ansible.builtin.set_fact:
- ocloud_platform_image: "{{ ocloud_platform_okd_staging_dir['path'] }}/cfg/agent.x86_64.iso"
+ ocloud_platform_image: "{{ ocloud_staging_dir['path'] }}/cfg/agent.x86_64.iso"
---
-- name: Gather facts
- ansible.builtin.setup:
- gather_subset: all
-
- include_tasks: version.yml
when: ocloud_platform_okd_kubeconfig
---
ocloud_platform_siteconfig_kubeconfig: "{{ ocloud_platform_okd_kubeconfig }}"
-ocloud_platform_siteconfig_snapshot: "2.14.0-SNAPSHOT-2025-03-24-21-08-55"
+ocloud_platform_siteconfig_snapshot: "2.14.0-SNAPSHOT-2025-05-19-21-04-46"
ocloud_platform_siteconfig_repo_url: "https://github.com/stolostron/siteconfig.git"
environment:
PATH: "{{ ocloud_staging_dir['path'] }}/go/bin:{{ ansible_env.PATH }}"
KUBECONFIG: "{{ ocloud_platform_siteconfig_kubeconfig }}"
+
+- name: Enable siteconfig
+ kubernetes.core.k8s_json_patch:
+ name: multiclusterhub
+ kind: MultiClusterHub
+ namespace: open-cluster-management
+ kubeconfig: "{{ ocloud_platform_siteconfig_kubeconfig }}"
+ patch:
+ - op: add
+ path: "/spec/overrides/components/-"
+ value:
+ name: siteconfig
+ enabled: true
---
ocloud_platform_stolostron_pull_secret: "{{ ocloud_platform_okd_pull_secret }}"
ocloud_platform_stolostron_kubeconfig: "{{ ocloud_platform_okd_kubeconfig }}"
-ocloud_platform_stolostron_snapshot: "2.11.2-SNAPSHOT-2024-08-27-14-52-55"
+ocloud_platform_stolostron_snapshot: "2.14.0-SNAPSHOT-2025-05-19-21-04-46"
ocloud_platform_stolostron_repo_url: "https://github.com/stolostron/deploy.git"
-ocloud_platform_stolostron_yq_url: "https://github.com/mikefarah/yq/releases/download/v4.45.1/yq_linux_amd64"
--- /dev/null
+---
+dependencies:
+ - role: ocloud_setup
---
-- name: Gather facts
- ansible.builtin.setup:
- gather_subset: all
-
- name: Disable default catalog sources
kubernetes.core.k8s:
api_version: config.openshift.io/v1
disableAllDefaultSources: true
kubeconfig: "{{ ocloud_platform_stolostron_kubeconfig }}"
-- name: Create staging dir for Stolostron installation
- ansible.builtin.tempfile:
- state: directory
- register: ocloud_platform_stolostron_staging_dir
-
-- name: Create staging subdirs
- ansible.builtin.file:
- path: "{{ ocloud_platform_stolostron_staging_dir['path'] }}/{{ item }}"
- state: directory
- loop:
- - bin
- - git
-
-- name: Download OKD CLI
- ansible.builtin.get_url:
- url: "{{ ocloud_platform_okd_cli_url }}/stable-{{ ocloud_platform_okd_release | regex_search('^[0-9]*\\.[0-9]*') }}/openshift-client-linux.tar.gz"
- dest: "{{ ocloud_platform_stolostron_staging_dir['path'] }}"
-
-- name: Extract OKD CLI
- ansible.builtin.unarchive:
- src: "{{ ocloud_platform_stolostron_staging_dir['path'] }}/openshift-client-linux.tar.gz"
- dest: "{{ ocloud_platform_stolostron_staging_dir['path'] }}/bin"
- remote_src: true
-
-- name: Download yq
- ansible.builtin.get_url:
- url: "{{ ocloud_platform_stolostron_yq_url }}"
- dest: "{{ ocloud_platform_stolostron_staging_dir['path'] }}/bin/yq"
- mode: '0555'
-
- name: Clone stolostron/deploy repo
ansible.builtin.git:
repo: "{{ ocloud_platform_stolostron_repo_url }}"
- dest: "{{ ocloud_platform_stolostron_staging_dir['path'] }}/git"
+ dest: "{{ ocloud_staging_dir['path'] }}/git/stolostron-deploy"
- name: Template pull secret
ansible.builtin.template:
src: "pull-secret.yaml.j2"
- dest: "{{ ocloud_platform_stolostron_staging_dir['path'] }}/git/prereqs/pull-secret.yaml"
+ dest: "{{ ocloud_staging_dir['path'] }}/git/stolostron-deploy/prereqs/pull-secret.yaml"
- name: Template snapshot version
ansible.builtin.template:
src: "snapshot.ver.j2"
- dest: "{{ ocloud_platform_stolostron_staging_dir['path'] }}/git/snapshot.ver"
+ dest: "{{ ocloud_staging_dir['path'] }}/git/stolostron-deploy/snapshot.ver"
- name: Install stolostron
ansible.builtin.shell:
- chdir: "{{ ocloud_platform_stolostron_staging_dir['path'] }}/git"
+ chdir: "{{ ocloud_staging_dir['path'] }}/git/stolostron-deploy"
cmd: "./start.sh --silent --watch --search"
environment:
- PATH: "{{ ocloud_platform_stolostron_staging_dir['path'] }}/bin:{{ ansible_env.PATH }}"
+ PATH: "{{ ocloud_staging_dir['path'] }}/bin:{{ ansible_env.PATH }}"
KUBECONFIG: "{{ ocloud_platform_stolostron_kubeconfig }}"
- name: Create search-api route
ocloud_setup_okd_cli_version: "stable-4.18"
ocloud_setup_okd_cli_url: "https://mirror.openshift.com/pub/openshift-v4/x86_64/clients/ocp"
ocloud_setup_golang_url: "https://go.dev/dl/go1.23.2.linux-amd64.tar.gz"
+ocloud_setup_yq_url: "https://github.com/mikefarah/yq/releases/download/v4.45.1/yq_linux_amd64"
loop:
- bin
- cfg
+ - cfg/openshift
- git
- include_tasks: okd.yml
src: "{{ ocloud_staging_dir['path'] }}/go.linux-amd64.tar.gz"
dest: "{{ ocloud_staging_dir['path'] }}"
remote_src: true
+
+- name: Download yq
+ ansible.builtin.get_url:
+ url: "{{ ocloud_setup_yq_url }}"
+ dest: "{{ ocloud_staging_dir['path'] }}/bin/yq"
+ mode: '0555'
+