diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 9e6acb8..2841858 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -8,6 +8,7 @@ on: - 'lab-4.13' - 'lab-4.14' - 'lab-4.15' + - 'lab-4.16' env: SITE_DIR: "gh-pages" jobs: diff --git a/dev-site.yml b/dev-site.yml index 1a7e2ec..fde15d2 100644 --- a/dev-site.yml +++ b/dev-site.yml @@ -11,12 +11,12 @@ content: sources: - url: . branches: - - 'lab-4.15' + - 'lab-4.16' start_path: documentation asciidoc: attributes: - release-version: 4.15 + release-version: 4.16 page-pagination: true extensions: - ./lib/tab-block.js diff --git a/documentation/antora.yml b/documentation/antora.yml index 474e784..2e7f920 100644 --- a/documentation/antora.yml +++ b/documentation/antora.yml @@ -1,4 +1,4 @@ -name: 4.15 +name: 4.16 title: LAB - 5G RAN Deployments on OpenShift version: ~ nav: diff --git a/documentation/modules/ROOT/nav.adoc b/documentation/modules/ROOT/nav.adoc index 021b999..f30eab3 100644 --- a/documentation/modules/ROOT/nav.adoc +++ b/documentation/modules/ROOT/nav.adoc @@ -136,11 +136,15 @@ *** xref:crafting-deployments-iac.adoc#baremetal-node-details[Bare Metal Node Details] *** xref:crafting-deployments-iac.adoc#pre-reqs[Deployment Prerequesites] *** xref:crafting-deployments-iac.adoc#siteconfig[SiteConfig] +*** xref:crafting-deployments-iac.adoc#reference-manifest-siteconfig[Reference Manifest Configuration] +*** xref:crafting-deployments-iac.adoc#extra-manifest-siteconfig[Extra Manifest Configuration] +*** xref:crafting-deployments-iac.adoc#preparing-installation[Preparing for the Installation] * xref:crafting-cluster-telco-related-infra-operators-configs.adoc[Crafting Cluster and Telco Related Infrastructure Operators Configs] ** xref:crafting-cluster-telco-related-infra-operators-configs.adoc#crafting-common-policies[Crafting Common Policies] ** xref:crafting-cluster-telco-related-infra-operators-configs.adoc#crafting-group-policies[Crafting Group Policies] ** xref:crafting-cluster-telco-related-infra-operators-configs.adoc#crafting-site-policies[Crafting Site Policies] +** xref:crafting-cluster-telco-related-infra-operators-configs.adoc#crafting-custom-policies[Adding custom content] ** xref:crafting-cluster-telco-related-infra-operators-configs.adoc#crafting-testing-policies[Crafting testing Policies] ** xref:crafting-cluster-telco-related-infra-operators-configs.adoc#configure-kustomization-for-policies[Configure Kustomization for Policies] @@ -195,7 +199,6 @@ *** xref:lab-environment.adoc#install-kcli[Install kcli] *** xref:lab-environment.adoc#install-oc-kubectl[Install oc/kubectl CLIs] *** xref:lab-environment.adoc#configure-disconnected-network[Configure Disconnected Networks] -*** xref:lab-environment.adoc#update-qemu-sriov[Update QEMU to support SR-IOV] *** xref:lab-environment.adoc#configure-local-dns-dhcp-server[Configure Local DNS/DHCP Server] *** xref:lab-environment.adoc#configure-local-dns-as-primary-server[Configure Local DNS as Primary Server] *** xref:lab-environment.adoc#disable-firewall[Disable Firewall] diff --git a/documentation/modules/ROOT/pages/_attributes.adoc b/documentation/modules/ROOT/pages/_attributes.adoc index 932a55f..1919324 100644 --- a/documentation/modules/ROOT/pages/_attributes.adoc +++ b/documentation/modules/ROOT/pages/_attributes.adoc @@ -1,72 +1,75 @@ -:experimental: +code:experimental: :source-highlighter: highlightjs -:branch: lab-4.15 -:github-repo: https://github.com/RHsyseng/5g-ran-deployments-on-ocp-lab/blob/{branch} +:branch: lab-4.16 +// :github-repo: https://github.com/RHsyseng/5g-ran-deployments-on-ocp-lab/blob/{branch} +//:repo_user: RHsyseng +:repo_user: alosadagrande +:github-repo: https://github.com/{repo_user}/5g-ran-deployments-on-ocp-lab/blob/{branch} :profile: 5g-ran-lab -:openshift-release: v4.15 +:openshift-release: v4.16 :rds-link: https://docs.google.com/document/d/1qWUNGGaEEnzEF3hO0b00K1531YXQf0IxIUmq0FchB3I -:policygen-common-file: common-415.yaml -:policygen-common-label: ocp415 -:lvms-channel: stable-4.15 -:catalogsource-index-image-tag: v4.15-1711601986 -:ztp-sitegenerate-disconnected-image: infra.5g-deployment.lab:8443/openshift4/ztp-site-generate-rhel8:v4.15.0-32 -:example-sno-siteconfig-link: https://github.com/openshift-kni/cnf-features-deploy/blob/release-4.15/ztp/gitops-subscriptions/argocd/example/siteconfig/example-sno.yaml -:example-groupdu-policygen-link: https://github.com/openshift-kni/cnf-features-deploy/blob/release-4.15/ztp/gitops-subscriptions/argocd/example/policygentemplates/group-du-standard-ranGen.yaml -:reference-documentation: https://docs.openshift.com/container-platform/4.15/scalability_and_performance/ztp_far_edge/ztp-vdu-validating-cluster-tuning.html#ztp-du-firmware-config-reference_vdu-config-ref -:hub-cluster-ocp-version: v4.15.3 -:hub-cluster-kubeversion: v1.28.7+6e2789b -:sno-cluster-version1: v4.15.0 -:sno-cluster-version2: v4.15.3 -:sno-cluster-version1-kubeversion: v1.28.7+6e2789b -:sno-cluster-version2-kubeversion: v1.28.7+6e2789b -:sno-cluster-version1-cvo: 4.15.0 -:sno-cluster-version2-cvo: 4.15.3 +:policygen-common-file: common-416.yaml +:policygen-common-label: ocp416 +:lvms-channel: stable-4.16 +:catalogsource-index-image-tag: v4.16-1723045275 +:ztp-sitegenerate-disconnected-image: infra.5g-deployment.lab:8443/openshift4/ztp-site-generate-rhel8:v4.16.1-5 +:example-sno-siteconfig-link: https://github.com/openshift-kni/cnf-features-deploy/blob/release-4.16/ztp/gitops-subscriptions/argocd/example/siteconfig/example-sno.yaml +:example-groupdu-policygen-link: https://github.com/openshift-kni/cnf-features-deploy/blob/release-4.16/ztp/gitops-subscriptions/argocd/example/policygentemplates/group-du-standard-ranGen.yaml +:reference-documentation: https://docs.openshift.com/container-platform/4.16/scalability_and_performance/ztp_far_edge/ztp-vdu-validating-cluster-tuning.html#ztp-du-firmware-config-reference_vdu-config-ref +:hub-cluster-ocp-version: v4.16.3 +:hub-cluster-kubeversion: v1.29.6+aba1e8d +:sno-cluster-version1: v4.16.0 +:sno-cluster-version2: v4.16.3 +:sno-cluster-version1-kubeversion: v1.29.5+29c95f3 +:sno-cluster-version2-kubeversion: v1.29.6+aba1e8d +:sno-cluster-version1-cvo: 4.16.0 +:sno-cluster-version2-cvo: 4.16.3 :active-ocp-version-clusterimageset: infra.5g-deployment.lab:8443/openshift/release-images:{sno-cluster-version1-cvo}-x86_64 -:talm-update-file: zone-europe-upgrade-415-3.yaml -:talm-update-channel: stable-4.15 -:talm-update-version: 4.15.3 +:talm-update-file: zone-europe-upgrade-416-3.yaml +:talm-update-channel: stable-4.16 +:talm-update-version: 4.16.3 // oc adm release info 4.15.3 | grep "Pull From" -:talm-update-image: infra.5g-deployment.lab:8443/openshift/release-images@sha256:8e8c6c2645553e6df8eb7985d8cb322f333a4152453e2aa85fff24ac5e0755b0 -:talm-update-policy-name: version-415-3 -:rhacm-version: v2.10 -:rhacm-template-processing: https://access.redhat.com/documentation/en-us/red_hat_advanced_cluster_management_for_kubernetes/2.10/html/governance/governance#template-processing -:mce-version: v2.5 -:policygentool-version: v4.15 -:kcli-tools-tag: 4.15 -:rhcos-rootfs-url: https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.15/4.15.0/rhcos-4.15.0-x86_64-live-rootfs.x86_64.img -:rhcos-rootfs-filename: rhcos-4.15.0-x86_64-live-rootfs.x86_64.img -:rhcos-liveiso-url: https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.15/4.15.0/rhcos-4.15.0-x86_64-live.x86_64.iso -:rhcos-liveiso-filename: rhcos-4.15.0-x86_64-live.x86_64.iso -:disconnected-registry-docs: https://docs.openshift.com/container-platform/4.15/installing/disconnected_install/installing-mirroring-disconnected.html -:openshift-gitops-docs: https://docs.openshift.com/gitops/1.11/understanding_openshift_gitops/about-redhat-openshift-gitops.html -:cnf-features-source-crs: https://github.com/openshift-kni/cnf-features-deploy/tree/release-4.15/ztp/source-crs -:cnf-features-siteconfig-gen: https://github.com/openshift-kni/cnf-features-deploy/tree/release-4.15/ztp/siteconfig-generator -:cnf-features-policy-gen: https://github.com/openshift-kni/cnf-features-deploy/tree/release-4.15/ztp/policygenerator -:cnf-features-clustersgo: https://github.com/openshift-kni/cnf-features-deploy/blob/release-4.15/ztp/siteconfig-generator/siteConfig/clusterCRsV1.go -:cnf-features-siteconfig-plugin: https://github.com/openshift-kni/cnf-features-deploy/tree/release-4.15/ztp/siteconfig-generator-kustomize-plugin -:cnf-features-policygen-plugin: https://github.com/openshift-kni/cnf-features-deploy/tree/release-4.15/ztp/policygenerator-kustomize-plugin -:rhacm-governance-doc: https://access.redhat.com/documentation/en-us/red_hat_advanced_cluster_management_for_kubernetes/2.10/html/governance/governance -:ocp-cli-docs: https://docs.openshift.com/container-platform/4.15/cli_reference/openshift_cli/getting-started-cli.html -:sno-preparing-docs: https://docs.openshift.com/container-platform/4.15/installing/installing_sno/install-sno-preparing-to-install-sno.html#install-sno-requirements-for-installing-on-a-single-node_install-sno-preparing -:sno-installing-docs: https://docs.openshift.com/container-platform/4.15/installing/installing_sno/install-sno-installing-sno.html#installing-single-node-openshift-using-the-assisted-installer -:sno-install-manually-docs: https://docs.openshift.com/container-platform/4.15/installing/installing_sno/install-sno-installing-sno.html#install-sno-installing-sno-manually -:talm-recovery-from-failed-upgrade-doc: https://docs.openshift.com/container-platform/4.15/scalability_and_performance/ztp_far_edge/cnf-talm-for-cluster-upgrades.html#talo-backup-recovery_cnf-topology-aware-lifecycle-manager -:talm-cluster-upgrades-doc: https://docs.openshift.com/container-platform/4.15/scalability_and_performance/ztp_far_edge/cnf-talm-for-cluster-upgrades.html +:talm-update-image: infra.5g-deployment.lab:8443/openshift/release-images@sha256:3ec3a43ded1decc18134e5677f56037d8929f4442930f5d1156e7a77cdf1b9b3 +:talm-update-policy-name: version-416-3 +:rhacm-version: v2.11 +:rhacm-template-processing: https://access.redhat.com/documentation/en-us/red_hat_advanced_cluster_management_for_kubernetes/2.11/html/governance/governance#template-processing +:mce-version: v2.6 +:policygentool-version: v4.16 +:kcli-tools-tag: 4.16 +:rhcos-rootfs-url: https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.16/4.16.0/rhcos-4.16.0-x86_64-live-rootfs.x86_64.img +:rhcos-rootfs-filename: rhcos-4.16.0-x86_64-live-rootfs.x86_64.img +:rhcos-liveiso-url: https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.16/4.16.0/rhcos-4.16.0-x86_64-live.x86_64.iso +:rhcos-liveiso-filename: rhcos-4.16.0-x86_64-live.x86_64.iso +:disconnected-registry-docs: https://docs.openshift.com/container-platform/4.16/installing/disconnected_install/installing-mirroring-disconnected.html +:openshift-gitops-docs: https://docs.openshift.com/gitops/1.13/understanding_openshift_gitops/about-redhat-openshift-gitops.html +:cnf-features-source-crs: https://github.com/openshift-kni/cnf-features-deploy/tree/release-4.16/ztp/source-crs +:cnf-features-siteconfig-gen: https://github.com/openshift-kni/cnf-features-deploy/tree/release-4.16/ztp/siteconfig-generator +:cnf-features-policy-gen: https://github.com/openshift-kni/cnf-features-deploy/tree/release-4.16/ztp/policygenerator +:cnf-features-clustersgo: https://github.com/openshift-kni/cnf-features-deploy/blob/release-4.16/ztp/siteconfig-generator/siteConfig/clusterCRsV1.go +:cnf-features-siteconfig-plugin: https://github.com/openshift-kni/cnf-features-deploy/tree/release-4.16/ztp/siteconfig-generator-kustomize-plugin +:cnf-features-policygen-plugin: https://github.com/openshift-kni/cnf-features-deploy/tree/release-4.16/ztp/policygenerator-kustomize-plugin +:rhacm-governance-doc: https://access.redhat.com/documentation/en-us/red_hat_advanced_cluster_management_for_kubernetes/2.11/html/governance/governance +:ocp-cli-docs: https://docs.openshift.com/container-platform/4.16/cli_reference/openshift_cli/getting-started-cli.html +:sno-preparing-docs: https://docs.openshift.com/container-platform/4.16/installing/installing_sno/install-sno-preparing-to-install-sno.html#install-sno-requirements-for-installing-on-a-single-node_install-sno-preparing +:sno-installing-docs: https://docs.openshift.com/container-platform/4.16/installing/installing_sno/install-sno-installing-sno.html#installing-single-node-openshift-using-the-assisted-installer +:sno-install-manually-docs: https://docs.openshift.com/container-platform/4.16/installing/installing_sno/install-sno-installing-sno.html#install-sno-installing-sno-manually +:talm-recovery-from-failed-upgrade-doc: https://docs.openshift.com/container-platform/4.16/scalability_and_performance/ztp_far_edge/cnf-talm-for-cluster-upgrades.html#talo-backup-recovery_cnf-topology-aware-lifecycle-manager +:talm-cluster-upgrades-doc: https://docs.openshift.com/container-platform/4.16/scalability_and_performance/ztp_far_edge/cnf-talm-for-cluster-upgrades.html :talm-upstream-project: https://github.com/openshift-kni/cluster-group-upgrades-operator -:talm-precachingconfig-doc:https://docs.openshift.com/container-platform/4.15/scalability_and_performance/ztp_far_edge/ztp-talm-updating-managed-policies.html#talm-prechache-user-specified-images-concept_ztp-talm -:workload-hints-doc: https://docs.openshift.com/container-platform/4.15/scalability_and_performance/cnf-low-latency-tuning.html#cnf-understanding-workload-hints_cnf-master -:ztp-gitops-docs: https://docs.openshift.com/container-platform/4.15/scalability_and_performance/ztp_far_edge/ztp-preparing-the-hub-cluster.html#installing-disconnected-rhacm_ztp-preparing-the-hub-cluster -:nto-docs: https://docs.openshift.com/container-platform/4.15/scalability_and_performance/using-node-tuning-operator.html -:sriov-docs: https://docs.openshift.com/container-platform/4.15/networking/hardware_networks/about-sriov.html -:sriov-supported-nics: https://docs.openshift.com/container-platform/4.15/networking/hardware_networks/about-sriov.html#supported-devices_about-sriov -:ptp-docs: https://docs.openshift.com/container-platform/4.15/networking/using-ptp.html -:workload-partitioning-docs: https://docs.openshift.com/container-platform/4.15/scalability_and_performance/enabling-workload-partitioning.html -:advanced-ztp-policy-config: https://docs.openshift.com/container-platform/4.15/scalability_and_performance/ztp_far_edge/ztp-advanced-policy-config.html#ztp-adding-new-content-to-gitops-ztp_ztp-advanced-policy-config -:ztp-precaching-config-docs: https://docs.openshift.com/container-platform/4.15/scalability_and_performance/ztp_far_edge/ztp-talm-updating-managed-policies.html#talm-prechache-user-specified-images-concept_ztp-talm +:talm-precachingconfig-doc: https://docs.openshift.com/container-platform/4.16/scalability_and_performance/ztp_far_edge/ztp-talm-updating-managed-policies.html#talm-prechache-user-specified-images-concept_ztp-talm +:workload-hints-doc: https://docs.openshift.com/container-platform/4.16/scalability_and_performance/cnf-low-latency-tuning.html#cnf-understanding-workload-hints_cnf-master +:ztp-gitops-docs: https://docs.openshift.com/container-platform/4.16/scalability_and_performance/ztp_far_edge/ztp-preparing-the-hub-cluster.html#installing-disconnected-rhacm_ztp-preparing-the-hub-cluster +:nto-docs: https://docs.openshift.com/container-platform/4.16/scalability_and_performance/using-node-tuning-operator.html +:sriov-docs: https://docs.openshift.com/container-platform/4.16/networking/hardware_networks/about-sriov.html +:sriov-supported-nics: https://docs.openshift.com/container-platform/4.16/networking/hardware_networks/about-sriov.html#supported-devices_about-sriov +:ptp-docs: https://docs.openshift.com/container-platform/4.16/networking/ptp/about-ptp.html +:workload-partitioning-docs: https://docs.openshift.com/container-platform/4.16/scalability_and_performance/enabling-workload-partitioning.html +:advanced-ztp-policy-config: https://docs.openshift.com/container-platform/4.16/edge_computing/policygentemplate_for_ztp/ztp-advanced-policy-config.html#ztp-adding-new-content-to-gitops-ztp_ztp-advanced-policy-config +:ztp-precaching-config-docs: https://docs.openshift.com/container-platform/4.16/edge_computing/policygentemplate_for_ztp/ztp-talm-updating-managed-policies.html#talm-prechache-user-specified-images-concept_ztp-talm :ssh-pub-key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC5pFKFLOuxrd9Q/TRu9sRtwGg2PV+kl2MHzBIGUhCcR0LuBJk62XG9tQWPQYTQ3ZUBKb6pRTqPXg+cDu5FmcpTwAKzqgUb6ArnjECxLJzJvWieBJ7k45QzhlZPeiN2Omik5bo7uM/P1YIo5pTUdVk5wJjaMOb7Xkcmbjc7r22xY54cce2Wb7B1QDtLWJkq++eJHSX2GlEjfxSlEvQzTN7m2N5pmoZtaXpLKcbOqtuSQSVKC4XPgb57hgEs/ZZy/LbGGHZyLAW5Tqfk1JCTFGm6Q+oOd3wAOF1SdUxM7frdrN3UOB12u/E6YuAx3fDvoNZvcrCYEpjkfrsjU91oz78aETZV43hOK9NWCOhdX5djA7G35/EMn1ifanVoHG34GwNuzMdkb7KdYQUztvsXIC792E2XzWfginFZha6kORngokZ2DwrzFj3wgvmVyNXyEOqhwi6LmlsYdKxEvUtiYhdISvh2Y9GPrFcJ5DanXe7NVAKXe5CyERjBnxWktqAPBzXJa36FKIlkeVF5G+NWgufC6ZWkDCD98VZDiPP9sSgqZF8bSR4l4/vxxAW4knKIZv11VX77Sa1qZOR9Ml12t5pNGT7wDlSOiDqr5EWsEexga/2s/t9itvfzhcWKt+k66jd8tdws2dw6+8JYJeiBbU63HBjxCX+vCVZASrNBjiXhFw== :aap-docs: https://access.redhat.com/documentation/en-us/red_hat_ansible_automation_platform/2.4/ :aap-hub-docs: https://access.redhat.com/documentation/en-us/red_hat_ansible_automation_platform/2.4/html/deploying_the_red_hat_ansible_automation_platform_operator_on_openshift_container_platform/installing-hub-operator :aap-controller-docs: https://access.redhat.com/documentation/en-us/red_hat_ansible_automation_platform/2.4/html/deploying_the_red_hat_ansible_automation_platform_operator_on_openshift_container_platform/installing-controller-operator :aap-get-manifest-docs: https://access.redhat.com/documentation/en-us/red_hat_ansible_automation_platform/2.4/html/red_hat_ansible_automation_platform_operations_guide/assembly-aap-obtain-manifest-files :sriov-channel: stable -:last-update-date: 2024-04-12 +:last-update-date: 2024-09-12 \ No newline at end of file diff --git a/documentation/modules/ROOT/pages/crafting-cluster-telco-related-infra-operators-configs.adoc b/documentation/modules/ROOT/pages/crafting-cluster-telco-related-infra-operators-configs.adoc index 5f4fd96..8bc2cbb 100644 --- a/documentation/modules/ROOT/pages/crafting-cluster-telco-related-infra-operators-configs.adoc +++ b/documentation/modules/ROOT/pages/crafting-cluster-telco-related-infra-operators-configs.adoc @@ -357,6 +357,25 @@ EOF More information about Template processing can be found in {rhacm-template-processing}[Red Hat Advanced Cluster Management documentation]. +[#crafting-custom-policies] +== Adding custom content + +If you require cluster configuration changes outside of the base GitOps Zero Touch Provisioning (ZTP) pipeline configuration, you can add content to the GitOps ZTP library. The base source custom resources (CRs) that are included in the ztp-generate container that you deploy with the GitOps ZTP pipeline can be augmented with custom content as required. + +WARNING: We recommend a directory structure to keep reference manifests corresponding to the y-stream release. + +In this lab we do not need extra content, however we are going to pave the way for future requirements. Let's first extract the predefined source-crs from the ztp-generate container 4.16 version to the reference-crs folder. + +[.console-input] +[source,bash,subs="attributes+,+macros"] +----- +podman login infra.5g-deployment.lab:8443 -u admin -p r3dh4t1! --tls-verify=false +podman run --log-driver=none --rm --tls-verify=false {ztp-sitegenerate-disconnected-image} extract /home/ztp/source-crs --tar | tar x -C ~/5g-deployment-lab/ztp-repository/site-policies/fleet/active/source-crs/reference-crs/ +----- + +Notice that we can add content not included in the ZTP container image by creating the required source CR in the `source-crs/custom-crs` folder. Once pushed to our Git repo, we can reference it in any of the common, group or site policies we have already created. More information on Deploying additional changes to cluster can be found in the {advanced-ztp-policy-config}[docs] + + [#crafting-testing-policies] == Crafting testing Policies diff --git a/documentation/modules/ROOT/pages/crafting-deployments-iac.adoc b/documentation/modules/ROOT/pages/crafting-deployments-iac.adoc index 6ae9442..2242d23 100644 --- a/documentation/modules/ROOT/pages/crafting-deployments-iac.adoc +++ b/documentation/modules/ROOT/pages/crafting-deployments-iac.adoc @@ -56,13 +56,18 @@ As we saw in a previous section, the Git repository we will be using will have t ----- ├── site-configs │ ├── hub-1 -| | └── sno2-extra-manifest +| | └── extra-manifest +| | └── reference-manifest +| | | └── 4.16 │ ├── pre-reqs │ │ └── sno2 │ └── resources └── site-policies ├── fleet │ ├── active + | │ └── source-crs + | | | └── reference-crs + | | | └── custom-crs │ └── testing └── sites └── hub-1 @@ -78,10 +83,10 @@ IMPORTANT: The cluster name for the SNO that we will be deploying in the lab wil [source,bash,subs="attributes+,+macros"] ----- cd ~/5g-deployment-lab/ztp-repository/ -mkdir -p site-configs/{hub-1,resources,pre-reqs/sno2,hub-1/sno2-extra-manifest} -mkdir -p site-policies/{fleet/active,fleet/testing,sites/hub-1} -touch site-configs/{hub-1,resources,pre-reqs/sno2}/.gitkeep -touch site-policies/{fleet/active,fleet/testing,sites/hub-1}/.gitkeep +mkdir -p site-configs/{hub-1,resources,pre-reqs/sno2,hub-1/extra-manifest,reference-manifest/4.16} +mkdir -p site-policies/{fleet/active/source-crs/reference-crs,fleet/active/source-crs/custom-crs,fleet/testing,sites/hub-1} +touch site-configs/{hub-1,resources,pre-reqs/sno2,hub-1/extra-manifest,reference-manifest/4.16}/.gitkeep +touch site-policies/{fleet/active/source-crs/reference-crs,fleet/active/source-crs/custom-crs,fleet/testing,sites/hub-1}/.gitkeep git add --all git commit -m 'Initialized repo structure' git push origin main @@ -181,7 +186,7 @@ Copy the command below and refer to the comments in the code for explanations. [.console-input] [source,bash,subs="attributes+,+macros"] ----- -cat < ~/5g-deployment-lab/ztp-repository/site-configs/hub-1/5glab.yaml +cat << 'EOF' > ~/5g-deployment-lab/ztp-repository/site-configs/hub-1/5glab.yaml --- apiVersion: ran.openshift.io/v1 kind: SiteConfig @@ -203,8 +208,13 @@ spec: # The sdn plugin that will be used networkType: "OVNKubernetes" # All Composable capabilities removed except required for telco - installConfigOverrides: "{\"capabilities\":{\"baselineCapabilitySet\": \"None\", \"additionalEnabledCapabilities\": [ \"OperatorLifecycleManager\", \"NodeTuning\" ] }}" - extraManifestPath: hub-1/sno2-extra-manifest + installConfigOverrides: "{\"capabilities\":{\"baselineCapabilitySet\": \"None\", \"additionalEnabledCapabilities\": [ \"OperatorLifecycleManager\", \"NodeTuning\", \"Ingress\" ] }}" + #extraManifestPath: hub-1/extra-manifest + # Search for extra configuration in the following folders + extraManifests: + searchPaths: + - hub-1/extra-manifest/ + - reference-manifest/4.16/ # Cluster labels (this will be used by RHACM) clusterLabels: common: "{policygen-common-label}" @@ -243,6 +253,8 @@ spec: bootMode: "UEFI" rootDeviceHints: deviceName: /dev/vda + # Creates a 5th partition on the root disk to use it as /var/lib/containers mountpoint + ignitionConfigOverride: '{"ignition":{"version":"3.2.0"},"storage":{"disks":[{"device":"/dev/vda","partitions":[{"label":"var-lib-containers","sizeMiB":0,"startMiB":100000}],"wipeTable":false}],"filesystems":[{"device":"/dev/disk/by-partlabel/var-lib-containers","format":"xfs","mountOptions":["defaults","prjquota"],"path":"/var/lib/containers","wipeFilesystem":true}]},"systemd":{"units":[{"contents":"# Generated by Butane\n[Unit]\nRequires=systemd-fsck@dev-disk-by\\x2dpartlabel-var\\x2dlib\\x2dcontainers.service\nAfter=systemd-fsck@dev-disk-by\\x2dpartlabel-var\\x2dlib\\x2dcontainers.service\n\n[Mount]\nWhere=/var/lib/containers\nWhat=/dev/disk/by-partlabel/var-lib-containers\nType=xfs\nOptions=defaults,prjquota\n\n[Install]\nRequiredBy=local-fs.target","enabled":true,"name":"var-lib-containers.mount"}]}}' nodeNetwork: interfaces: - name: enp1s0 @@ -259,13 +271,49 @@ spec: enabled: false EOF ----- +IMPORTANT: As of version 4.14 extraManifestPath is subject to a deprecation warning. While `extraManifestPath` is still supported, we recommend that you use `extraManifests.searchPaths`. It is strongly recommended that you extract the contents of `/extra-manifest` from the ztp-site-generate container and push it to the Git repository. Notice that the subdirectory names `/hub-1/extra-manifest` and `reference-manifest/` used throughout are example names only. + +In our site, we defined `clusterImageSetNameRef: "active-ocp-version"` as for the release to use to deploy our site. This reference will point to the `active` release we are deploying our sites with. Let's create the `ClusterImageSet` in the repo: + +[.console-input] +[source,bash,subs="attributes+,+macros"] +----- +cat < ~/5g-deployment-lab/ztp-repository/site-configs/resources/active-ocp-version.yaml +--- +apiVersion: hive.openshift.io/v1 +kind: ClusterImageSet +metadata: + name: active-ocp-version +spec: + releaseImage: {active-ocp-version-clusterimageset} +EOF +----- +[#reference-manifest-siteconfig] +=== Reference Manifest Configuration + +Let's add the reference RAN configuration for the version of OCP we are about to deploy. In the workstation, run the following command to extract the reference ZTP 4.16 RAN configuration. Notice that `reference-manifest/4.16/` refers to the Git subdirectory that stores the contents of the RAN configuration for a specific version . This configuration is applied during installation. Those manifests are extracted from the `/extra-manifest` folder of the ztp-site-generate container. + +WARNING: If you get `ERRO[0000] running `/usr/bin/newuidmap 51706 0 1000 1 1 100000 65536`: newuidmap: write to uid_map failed: Operation not permitted` when running podman commands, run them with sudo. + +[.console-input] +[source,bash,subs="attributes+,+macros"] +----- +podman login infra.5g-deployment.lab:8443 -u admin -p r3dh4t1! --tls-verify=false +podman run --log-driver=none --rm --tls-verify=false {ztp-sitegenerate-disconnected-image} extract /home/ztp/extra-manifest --tar | tar x -C ~/5g-deployment-lab/ztp-repository/site-configs/reference-manifest/4.16/ +----- + +Our recommendation is to always create a reference and keep the reference and user defined manifests (see next section) separately. This makes later updates to the reference based on z-stream releases significantly easier (simply replace the contents of reference-manifests with updated content) -It is strongly recommended to include crun manifests as part of the additional install-time manifests for 4.13+. So let's create proper machine configuration in the extra manifests folder: + +[#extra-manifest-siteconfig] +=== Extra Manifest Configuration + +Now, let's add the **extra** or **custom** RAN configuration to the cluster. It is strongly recommended to include crun manifests as part of the additional install-time manifests for 4.13+. So let's create proper machine configuration in the extra manifest folder: [.console-input] [source,bash,subs="attributes+,+macros"] ----- -cat < ~/5g-deployment-lab/ztp-repository/site-configs/hub-1/sno2-extra-manifest/enable-crun-master.yaml +cat < ~/5g-deployment-lab/ztp-repository/site-configs/hub-1/extra-manifest/enable-crun-master.yaml --- apiVersion: machineconfiguration.openshift.io/v1 kind: ContainerRuntimeConfig @@ -283,7 +331,7 @@ EOF [.console-input] [source,bash,subs="attributes+,+macros"] ----- -cat < ~/5g-deployment-lab/ztp-repository/site-configs/hub-1/sno2-extra-manifest/enable-crun-worker.yaml +cat < ~/5g-deployment-lab/ztp-repository/site-configs/hub-1/extra-manifest/enable-crun-worker.yaml --- apiVersion: machineconfiguration.openshift.io/v1 kind: ContainerRuntimeConfig @@ -298,21 +346,11 @@ spec: EOF ----- -In our site, we defined `clusterImageSetNameRef: "active-ocp-version"` as for the release to use to deploy our site. This reference will point to the `active` release we are deploying our sites with. Let's create the `ClusterImageSet` in the repo: +IMPORTANT: As of version 4.16 the default cgroups configuration is **cgroupsv2**. If there is a need to run cgroupsv1 instead, please add the https://github.com/openshift-kni/cnf-features-deploy/blob/release-4.15/ztp/source-crs/extra-manifest/enable-cgroups-v1.yaml[enable-cgroups-v1.yaml] extra-manifest to the same `extra-manifest` folder where crun is configured. -[.console-input] -[source,bash,subs="attributes+,+macros"] ------ -cat < ~/5g-deployment-lab/ztp-repository/site-configs/resources/active-ocp-version.yaml ---- -apiVersion: hive.openshift.io/v1 -kind: ClusterImageSet -metadata: - name: active-ocp-version -spec: - releaseImage: {active-ocp-version-clusterimageset} -EOF ------ + +[#preparing-installation] +=== Preparing for the Installation Finally, we will add the kustomizations for the SiteConfigs, we only have one site, but we will leave the repo ready to consume more than one. @@ -355,4 +393,4 @@ git add --all git commit -m 'Added SNO2 and 5GLab Site information' git push origin main cd ~ ------ +----- \ No newline at end of file diff --git a/documentation/modules/ROOT/pages/lab-environment.adoc b/documentation/modules/ROOT/pages/lab-environment.adoc index ba541ff..716d9d7 100644 --- a/documentation/modules/ROOT/pages/lab-environment.adoc +++ b/documentation/modules/ROOT/pages/lab-environment.adoc @@ -18,9 +18,9 @@ RHEL 9.X box with access to the Internet. This lab relies on KVM, so you need to IMPORTANT: The /opt directory requires a minimum of 60 GiB of storage for the disconnected registry installation and the /var directory requires a minimum of 70 GiB for the lab installation. Size the filesystems containing these directories accordingly as the default partition layout for a RHEL 9.X install does not provide enough storage on the root filesystem for the lab installation. -IMPORTANT: These instructions have been tested in a RHEL 9.3, we cannot guarantee that other operating systems (even RHEL-based) will work. We won't be providing support out of RHEL 9. +IMPORTANT: These instructions have been tested in a RHEL 9.4, we cannot guarantee that other operating systems (even RHEL-based) will work. We won't be providing support out of RHEL 9. -These are the steps to install the required packages on a RHEL 9.3 server: +These are the steps to install the required packages on a RHEL 9.4 server: [.console-input] [source,bash,subs="attributes+,+macros"] @@ -53,8 +53,7 @@ IMPORTANT: Below commands must be executed from the hypervisor host as root if n [.console-input] [source,bash,subs="attributes+,+macros"] ----- -dnf -y copr enable karmab/kcli -dnf -y install kcli bash-completion vim jq tar git ipcalc pip +dnf -y install bash-completion vim jq tar git ipcalc pip https://github.com/{repo_user}/5g-ran-deployments-on-ocp-lab/raw/lab-4.16/lab-materials/kcli-rpm/kcli-99.0.0.git.202409091407.2293cfe-0.el9.x86_64.rpm pip install pyopenssl ----- @@ -66,7 +65,7 @@ pip install pyopenssl [source,bash,subs="attributes+,+macros"] ----- kcli download oc -P version=stable -P tag='{kcli-tools-tag}' -kcli download kubectl -P version=stable -P tag='{kcli-tools-tag}' +kcli download kubectl -P version=latest -P tag='{kcli-tools-tag}' mv kubectl oc /usr/bin/ ----- @@ -80,49 +79,6 @@ kcli create network -c 192.168.125.0/24 -P dns=false -P dhcp=false --domain 5g-d kcli create network -c 192.168.100.0/24 -P dhcp=false -P dns=false --domain sriov-network.lab -i sriov-network ----- -[#update-qemu-sriov] -=== Update QEMU to support SR-IOV - -The current version of the qemu-kvm package that comes with RHEL 9.3 does not support SR-IOV virtual network interfaces. In order to enable SR-IOV support in the hypervisor we need to run a newer version. Therefore, we have to enable the CentOS 9 Stream repository, update the package and then we can safely remove the repository again. - -IMPORTANT: At some point in the near future the `qemu-kvm` package provided in the RHEL 9 repositories will move from 8.0 to 8.2. Then, this step will not be needed anymore. You can check your `qemu-kvm` version by running `qemu-img --version` or `rpm -qa qemu-kvm`. - -[.console-input] -[source,bash,subs="attributes+,+macros"] ------ -cat < /etc/yum.repos.d/centos-9-stream-appstream.repo -[centos-9-stream-appstream] -name=centos-9-stream-appstream -baseurl=https://mirror.stream.centos.org/9-stream/AppStream/x86_64/os/ -enabled=1 -gpgcheck=0 -EOF ------ - -Verify that the CentOS 9 Stream is enabled and part of your RPM repositories: - -[.console-input] -[source,bash,subs="attributes+,+macros"] ------ -dnf repolist ------ - -Then, update the `qemu-kvm` package: - -[.console-input] -[source,bash,subs="attributes+,+macros"] ------ -dnf update qemu-kvm -y ------ - -Once updated, verify by running `qemu-img --version` that you're running version 8.2 or above. Then, remove the CentOS 9 Stream repository. - -[.console-input] -[source,bash,subs="attributes+,+macros"] ------ -rm -rf /etc/yum.repos.d/centos-9-stream-appstream.repo ------ - [#configure-local-dns-dhcp-server] === Configure Local DNS/DHCP Server @@ -133,13 +89,13 @@ NOTE: If you're using MacOS and you're getting errors while running `sed -i` com ----- dnf -y install dnsmasq policycoreutils-python-utils mkdir -p /opt/dnsmasq/include.d/ -curl -sL https://raw.githubusercontent.com/RHsyseng/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/dnsmasq/dnsmasq.conf -o /opt/dnsmasq/dnsmasq.conf -curl -sL https://raw.githubusercontent.com/RHsyseng/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/dnsmasq/upstream-resolv.conf -o /opt/dnsmasq/upstream-resolv.conf -curl -sL https://raw.githubusercontent.com/RHsyseng/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/dnsmasq/hub.ipv4 -o /opt/dnsmasq/include.d/hub.ipv4 -curl -sL https://raw.githubusercontent.com/RHsyseng/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/dnsmasq/sno1.ipv4 -o /opt/dnsmasq/include.d/sno1.ipv4 -curl -sL https://raw.githubusercontent.com/RHsyseng/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/dnsmasq/sno2.ipv4 -o /opt/dnsmasq/include.d/sno2.ipv4 -curl -sL https://raw.githubusercontent.com/RHsyseng/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/dnsmasq/infrastructure-host.ipv4 -o /opt/dnsmasq/include.d/infrastructure-host.ipv4 -curl -sL https://raw.githubusercontent.com/RHsyseng/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/dnsmasq/dnsmasq-virt.service -o /etc/systemd/system/dnsmasq-virt.service +curl -sL https://raw.githubusercontent.com/{repo_user}/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/dnsmasq/dnsmasq.conf -o /opt/dnsmasq/dnsmasq.conf +curl -sL https://raw.githubusercontent.com/{repo_user}/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/dnsmasq/upstream-resolv.conf -o /opt/dnsmasq/upstream-resolv.conf +curl -sL https://raw.githubusercontent.com/{repo_user}/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/dnsmasq/hub.ipv4 -o /opt/dnsmasq/include.d/hub.ipv4 +curl -sL https://raw.githubusercontent.com/{repo_user}/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/dnsmasq/sno1.ipv4 -o /opt/dnsmasq/include.d/sno1.ipv4 +curl -sL https://raw.githubusercontent.com/{repo_user}/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/dnsmasq/sno2.ipv4 -o /opt/dnsmasq/include.d/sno2.ipv4 +curl -sL https://raw.githubusercontent.com/{repo_user}/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/dnsmasq/infrastructure-host.ipv4 -o /opt/dnsmasq/include.d/infrastructure-host.ipv4 +curl -sL https://raw.githubusercontent.com/{repo_user}/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/dnsmasq/dnsmasq-virt.service -o /etc/systemd/system/dnsmasq-virt.service touch /opt/dnsmasq/hosts.leases semanage fcontext -a -t dnsmasq_lease_t /opt/dnsmasq/hosts.leases restorecon /opt/dnsmasq/hosts.leases @@ -180,7 +136,7 @@ The default upstream DNS is set to 1.1.1.1 in `/opt/dnsmasq/upstream-resolv.conf [.console-input] [source,bash,subs="attributes+,+macros"] ----- -curl -L https://raw.githubusercontent.com/RHsyseng/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/hypervisor/forcedns -o /etc/NetworkManager/dispatcher.d/forcedns +curl -L https://raw.githubusercontent.com/{repo_user}/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/hypervisor/forcedns -o /etc/NetworkManager/dispatcher.d/forcedns chmod +x /etc/NetworkManager/dispatcher.d/forcedns systemctl restart NetworkManager /etc/NetworkManager/dispatcher.d/forcedns @@ -210,7 +166,7 @@ The webcache is basically an Apache httpd container serving the RHCOS live ISO a [.console-input] [source,bash,subs="attributes+,+macros"] ----- -curl -L https://raw.githubusercontent.com/RHsyseng/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/webcache/podman-webcache.service -o /etc/systemd/system/podman-webcache.service +curl -L https://raw.githubusercontent.com/{repo_user}/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/webcache/podman-webcache.service -o /etc/systemd/system/podman-webcache.service mkdir -p /opt/webcache/data curl -L {rhcos-rootfs-url} -o /opt/webcache/data/{rhcos-rootfs-filename} curl -L {rhcos-liveiso-url} -o /opt/webcache/data/{rhcos-liveiso-filename} @@ -245,11 +201,11 @@ Verify that the ksushy service is running. Furthermore, you can check that the p dnf -y install podman httpd-tools REGISTRY_NAME=infra.5g-deployment.lab mkdir -p /opt/registry/{auth,certs,data,conf} -curl -sL https://raw.githubusercontent.com/RHsyseng/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/registry/registry-key.pem -o /opt/registry/certs/registry-key.pem -curl -sL https://raw.githubusercontent.com/RHsyseng/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/registry/registry-cert.pem -o /opt/registry/certs/registry-cert.pem +curl -sL https://raw.githubusercontent.com/{repo_user}/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/registry/registry-key.pem -o /opt/registry/certs/registry-key.pem +curl -sL https://raw.githubusercontent.com/{repo_user}/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/registry/registry-cert.pem -o /opt/registry/certs/registry-cert.pem htpasswd -bBc /opt/registry/auth/htpasswd admin r3dh4t1! -curl -sL https://raw.githubusercontent.com/RHsyseng/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/registry/config.yml -o /opt/registry/conf/config.yml -curl -sL https://raw.githubusercontent.com/RHsyseng/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/registry/podman-registry.service -o /etc/systemd/system/podman-registry.service +curl -sL https://raw.githubusercontent.com/{repo_user}/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/registry/config.yml -o /opt/registry/conf/config.yml +curl -sL https://raw.githubusercontent.com/{repo_user}/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/registry/podman-registry.service -o /etc/systemd/system/podman-registry.service systemctl daemon-reload systemctl enable podman-registry --now cp /opt/registry/certs/registry-cert.pem /etc/pki/ca-trust/source/anchors/ @@ -268,13 +224,13 @@ NOTE: Link to additional configuration documentation of a disconnected registry: ----- mkdir -p /opt/gitea/ chown -R 1000:1000 /opt/gitea/ -curl -sL https://raw.githubusercontent.com/RHsyseng/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/gitea/podman-gitea.service -o /etc/systemd/system/podman-gitea.service +curl -sL https://raw.githubusercontent.com/{repo_user}/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/gitea/podman-gitea.service -o /etc/systemd/system/podman-gitea.service systemctl daemon-reload systemctl enable podman-gitea --now sleep 20 podman exec --user 1000 gitea /bin/sh -c 'gitea admin user create --username student --password student --email student@5g-deployment.lab --must-change-password=false --admin' -curl -u 'student:student' -H 'Content-Type: application/json' -X POST --data '{"service":"2","clone_addr":"https://github.com/RHsyseng/5g-ran-deployments-on-ocp-lab.git","uid":1,"repo_name":"5g-ran-deployments-on-ocp-lab"}' http://infra.5g-deployment.lab:3000/api/v1/repos/migrate -curl -u 'student:student' -H 'Content-Type: application/json' -X POST --data '{"service":"2","clone_addr":"https://github.com/RHsyseng/5g-ran-lab-aap-integration-tools.git","uid":1,"repo_name":"aap-integration-tools"}' http://infra.5g-deployment.lab:3000/api/v1/repos/migrate +curl -u 'student:student' -H 'Content-Type: application/json' -X POST --data '{"service":"2","clone_addr":"https://github.com/{repo_user}/5g-ran-deployments-on-ocp-lab.git","uid":1,"repo_name":"5g-ran-deployments-on-ocp-lab"}' http://infra.5g-deployment.lab:3000/api/v1/repos/migrate +curl -u 'student:student' -H 'Content-Type: application/json' -X POST --data '{"service":"2","clone_addr":"https://github.com/{repo_user}/5g-ran-lab-aap-integration-tools.git","uid":1,"repo_name":"aap-integration-tools"}' http://infra.5g-deployment.lab:3000/api/v1/repos/migrate ----- WARNING: It could be possible that the last few commands do not work at the first time since the registry container image is being pulled and then started. If that's the case, try them once again after a couple of seconds. @@ -310,7 +266,7 @@ In order to access the hub cluster we will deploy an HAProxy that will be listen ----- dnf install haproxy -y semanage port -a -t http_port_t -p tcp 6443 -curl -L https://raw.githubusercontent.com/RHsyseng/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/haproxy/haproxy.cfg -o /etc/haproxy/haproxy.cfg +curl -L https://raw.githubusercontent.com/{repo_user}/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/haproxy/haproxy.cfg -o /etc/haproxy/haproxy.cfg systemctl enable haproxy --now ----- @@ -364,8 +320,8 @@ That SSH key will allow you to connect to the VMs you are about to create: [source,bash,subs="attributes+,+macros"] ----- kcli create pool -p /var/lib/libvirt/images default -kcli create vm -P start=False -P uefi_legacy=true -P plan=hub -P memory=24000 -P numcpus=12 -P disks=[200,200] -P nets=['{"name": "5gdeploymentlab", "mac": "aa:aa:aa:aa:02:01"}','{"name":"sriov-network","type":"igb","vfio":"true","noconf":"true","numa":"0"}','{"name":"sriov-network","type":"igb","vfio":"true","noconf":"true","numa":"1"}'] -P uuid=aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaa0201 -P name=sno1 -kcli create vm -P start=False -P uefi_legacy=true -P plan=hub -P memory=24000 -P numcpus=12 -P disks=[200,200] -P nets=['{"name": "5gdeploymentlab", "mac": "aa:aa:aa:aa:03:01"}','{"name":"sriov-network","type":"igb","vfio":"true","noconf":"true","numa":"0"}','{"name":"sriov-network","type":"igb","vfio":"true","noconf":"true","numa":"1"}'] -P uuid=aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaa0301 -P name=sno2 +kcli create vm -P start=False -P uefi_legacy=true -P plan=hub -P memory=24000 -P numcpus=12 -P disks=[400] -P nets=['{"name": "5gdeploymentlab", "mac": "aa:aa:aa:aa:02:01"}','{"name":"sriov-network","type":"igb","vfio":"true","noconf":"true","numa":"0"}','{"name":"sriov-network","type":"igb","vfio":"true","noconf":"true","numa":"1"}'] -P uuid=aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaa0201 -P name=sno1 +kcli create vm -P start=False -P uefi_legacy=true -P plan=hub -P memory=24000 -P numcpus=12 -P disks=[300,100] -P nets=['{"name": "5gdeploymentlab", "mac": "aa:aa:aa:aa:03:01"}','{"name":"sriov-network","type":"igb","vfio":"true","noconf":"true","numa":"0"}','{"name":"sriov-network","type":"igb","vfio":"true","noconf":"true","numa":"1"}'] -P uuid=aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaa0301 -P name=sno2 ----- If you need or want to connect to any of the VMs, once they are started, you can do so by just executing: @@ -387,7 +343,7 @@ NOTE: If you're using MacOS and you're getting errors while running `sed -i` com [.console-input] [source,bash,subs="attributes+,+macros"] ----- -curl -sL https://raw.githubusercontent.com/RHsyseng/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/hub-cluster/hub.yml -o /root/hub.yml +curl -sL https://raw.githubusercontent.com/{repo_user}/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/hub-cluster/hub.yml -o /root/hub.yml sed -i "s/CHANGE_ADMIN_PWD/admin/" hub.yml sed -i "s/CHANGE_DEV_PWD/developer/" hub.yml cd /root/ @@ -430,7 +386,7 @@ And then create the VMs again as explained in the previous section link:lab-envi export KUBECONFIG=~/.kcli/clusters/hub/auth/kubeconfig oc -n openshift-storage wait lvmcluster lvmcluster --for=jsonpath='{.status.state}'=Ready --timeout=900s oc patch storageclass lvms-vg1 -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}' -curl https://raw.githubusercontent.com/RHsyseng/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/hub-cluster/argocd-patch.json -o /tmp/argopatch.json +curl https://raw.githubusercontent.com/{repo_user}/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/hub-cluster/argocd-patch.json -o /tmp/argopatch.json oc patch argocd openshift-gitops -n openshift-gitops --type=merge --patch-file /tmp/argopatch.json oc wait --for=condition=Ready pod -lapp.kubernetes.io/name=openshift-gitops-repo-server -n openshift-gitops oc -n openshift-gitops adm policy add-cluster-role-to-user cluster-admin -z openshift-gitops-argocd-application-controller @@ -442,7 +398,7 @@ oc -n openshift-gitops adm policy add-cluster-role-to-user cluster-admin -z open [.console-input] [source,bash,subs="attributes+,+macros"] ----- -oc apply -f https://raw.githubusercontent.com/RHsyseng/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/hub-cluster/hub-operators-argoapps.yaml +oc apply -f https://raw.githubusercontent.com/{repo_user}/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/hub-cluster/hub-operators-argoapps.yaml ----- [#deploy-sno1-cluster-without-ztp] @@ -455,7 +411,7 @@ A SNO is deployed outside the ZTP workflow so students can import it and see how ----- curl -L http://infra.5g-deployment.lab:3000/student/5g-ran-deployments-on-ocp-lab/raw/branch/{branch}/lab-materials/lab-env-data/hypervisor/ssh-key -o /root/.ssh/snokey chmod 400 /root/.ssh/snokey -oc apply -f https://raw.githubusercontent.com/RHsyseng/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/hub-cluster/sno1-argoapp.yaml +oc apply -f https://raw.githubusercontent.com/{repo_user}/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/hub-cluster/sno1-argoapp.yaml ----- Once the cluster is deployed: @@ -519,8 +475,8 @@ NOTE: Change the `aap_manifest_file_path` var value to match the path where you [.console-input] [source,bash,subs="attributes+,+macros"] ----- -curl -L https://raw.githubusercontent.com/RHsyseng/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/aap2/configure-aap.yaml -o /root/configure-aap.yaml +curl -L https://raw.githubusercontent.com/{repo_user}/5g-ran-deployments-on-ocp-lab/{branch}/lab-materials/lab-env-data/aap2/configure-aap.yaml -o /root/configure-aap.yaml ansible-playbook /root/configure-aap.yaml -e strong_student_password=yourstrongstudentpassword -e aap_manifest_file_path=/path/to/your/manifest -e ansible_python_interpreter=/usr/bin/python3.11 ----- -Once the playbook finishes we should have access to the AAP Controller at https://automation-aap.apps.hub.5g-deployment.lab with the student user and the password you configured. +Once the playbook finishes you should have access to the AAP Controller at https://automation-aap.apps.hub.5g-deployment.lab with the student user and the password you configured. diff --git a/documentation/modules/ROOT/pages/running-the-deployment.adoc b/documentation/modules/ROOT/pages/running-the-deployment.adoc index 805cc57..63e1ddc 100644 --- a/documentation/modules/ROOT/pages/running-the-deployment.adoc +++ b/documentation/modules/ROOT/pages/running-the-deployment.adoc @@ -23,9 +23,9 @@ WARNING: If you get `ERRO[0000] running `/usr/bin/newuidmap 51706 0 1000 1 1 100 [.console-input] [source,bash,subs="attributes+,+macros"] ----- -mkdir -p ~/5g-deployment-lab/ztp-pipeline/ +mkdir -p ~/5g-deployment-lab/ztp-pipeline/argocd podman login infra.5g-deployment.lab:8443 -u admin -p r3dh4t1! --tls-verify=false -podman run --log-driver=none --rm --tls-verify=false {ztp-sitegenerate-disconnected-image} extract /home/ztp --tar | tar x -C ~/5g-deployment-lab/ztp-pipeline/ +podman run --log-driver=none --rm --tls-verify=false {ztp-sitegenerate-disconnected-image} extract /home/ztp/argocd --tar | tar x -C ~/5g-deployment-lab/ztp-pipeline/argocd/ ----- Now that we extracted the pipeline content we need to get it applied to our hub cluster: diff --git a/lab-materials/hub-config/operators-config/01_ai_config.yaml b/lab-materials/hub-config/operators-config/01_ai_config.yaml index fdbbbd3..96758ce 100644 --- a/lab-materials/hub-config/operators-config/01_ai_config.yaml +++ b/lab-materials/hub-config/operators-config/01_ai_config.yaml @@ -202,25 +202,25 @@ spec: storage: 20Gi osImages: - cpuArchitecture: x86_64 - openshiftVersion: "4.15" - rootFSUrl: http://infra.5g-deployment.lab:8080/rhcos-4.15.0-x86_64-live-rootfs.x86_64.img - url: http://infra.5g-deployment.lab:8080/rhcos-4.15.0-x86_64-live.x86_64.iso - version: 415.92.202402201450-0 + openshiftVersion: "4.16" + rootFSUrl: http://infra.5g-deployment.lab:8080/rhcos-4.16.0-x86_64-live-rootfs.x86_64.img + url: http://infra.5g-deployment.lab:8080/rhcos-4.16.0-x86_64-live.x86_64.iso + version: 416.94.202406172220-0 --- apiVersion: hive.openshift.io/v1 kind: ClusterImageSet metadata: annotations: argocd.argoproj.io/sync-wave: "4" - name: openshift-v4.15.0-disconnected + name: openshift-v4.16.0-disconnected spec: - releaseImage: infra.5g-deployment.lab:8443/openshift/release-images:4.15.0-x86_64 + releaseImage: infra.5g-deployment.lab:8443/openshift/release-images:4.16.0-x86_64 --- apiVersion: hive.openshift.io/v1 kind: ClusterImageSet metadata: annotations: argocd.argoproj.io/sync-wave: "4" - name: openshift-v4.15.3-disconnected + name: openshift-v4.16.3-disconnected spec: - releaseImage: infra.5g-deployment.lab:8443/openshift/release-images:4.15.3-x86_64 + releaseImage: infra.5g-deployment.lab:8443/openshift/release-images:4.16.3-x86_64 diff --git a/lab-materials/hub-config/operators-deployment/00_rhacm_deployment.yaml b/lab-materials/hub-config/operators-deployment/00_rhacm_deployment.yaml index afe07e2..dc06825 100644 --- a/lab-materials/hub-config/operators-deployment/00_rhacm_deployment.yaml +++ b/lab-materials/hub-config/operators-deployment/00_rhacm_deployment.yaml @@ -28,7 +28,7 @@ metadata: name: advanced-cluster-management namespace: open-cluster-management spec: - channel: "release-2.10" + channel: "release-2.11" name: advanced-cluster-management source: cs-redhat-operator-index sourceNamespace: openshift-marketplace diff --git a/lab-materials/hub-config/operators-deployment/02_mce_deployment.yaml b/lab-materials/hub-config/operators-deployment/02_mce_deployment.yaml index 58cf011..62fabfd 100644 --- a/lab-materials/hub-config/operators-deployment/02_mce_deployment.yaml +++ b/lab-materials/hub-config/operators-deployment/02_mce_deployment.yaml @@ -28,7 +28,7 @@ metadata: name: multicluster-engine namespace: multicluster-engine spec: - channel: "stable-2.5" + channel: "stable-2.6" name: multicluster-engine source: cs-redhat-operator-index sourceNamespace: openshift-marketplace diff --git a/lab-materials/kcli-rpm/kcli-99.0.0.git.202404020919.bde3a19-0.el9.x86_64.rpm b/lab-materials/kcli-rpm/kcli-99.0.0.git.202404020919.bde3a19-0.el9.x86_64.rpm deleted file mode 100644 index c013c75..0000000 Binary files a/lab-materials/kcli-rpm/kcli-99.0.0.git.202404020919.bde3a19-0.el9.x86_64.rpm and /dev/null differ diff --git a/lab-materials/kcli-rpm/kcli-99.0.0.git.202409091407.2293cfe-0.el9.x86_64.rpm b/lab-materials/kcli-rpm/kcli-99.0.0.git.202409091407.2293cfe-0.el9.x86_64.rpm new file mode 100644 index 0000000..9bbb552 Binary files /dev/null and b/lab-materials/kcli-rpm/kcli-99.0.0.git.202409091407.2293cfe-0.el9.x86_64.rpm differ diff --git a/lab-materials/lab-env-data/aap2/configure-aap.yaml b/lab-materials/lab-env-data/aap2/configure-aap.yaml index 9836f07..b99cfa5 100644 --- a/lab-materials/lab-env-data/aap2/configure-aap.yaml +++ b/lab-materials/lab-env-data/aap2/configure-aap.yaml @@ -6,7 +6,7 @@ - aap2_webconsole_user: admin - hub_kubeconfig_path: /root/.kcli/clusters/hub/auth/kubeconfig - repo_user: RHsyseng - - lab_version: lab-4.15 + - lab_version: lab-4.16 - lab_registry_host: "infra.5g-deployment.lab:8443" tasks: - name: Wait for AAP Controller to come up @@ -106,6 +106,8 @@ apply: delegate_to: localhost vars: + orgs: "Acme" + dir_orgs_vars: "orgs_vars" filetree_controller_settings: "/tmp/aap2configs" filetree_controller_organizations: "/tmp/aap2configs" filetree_controller_labels: "/tmp/aap2configs" diff --git a/lab-materials/lab-env-data/deploy-scripts/clean.sh b/lab-materials/lab-env-data/deploy-scripts/clean.sh new file mode 100644 index 0000000..ce103ef --- /dev/null +++ b/lab-materials/lab-env-data/deploy-scripts/clean.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +kcli delete plan hub -y +systemctl stop podman-gitea podman-registry.service podman-webcache.service +podman rmi -f quay.io/alosadag/httpd:p8080 quay.io/mavazque/gitea:1.17.3 quay.io/mavazque/registry:2.7.1 +rm -rf /opt/gitea/ +rm -rf /opt/webcache/ +rm -rf /opt/registry +rm -rf ~/.kcli diff --git a/lab-materials/lab-env-data/hub-cluster/argocd-patch.json b/lab-materials/lab-env-data/hub-cluster/argocd-patch.json index c54b194..df663e2 100644 --- a/lab-materials/lab-env-data/hub-cluster/argocd-patch.json +++ b/lab-materials/lab-env-data/hub-cluster/argocd-patch.json @@ -41,7 +41,7 @@ } ], "terminationMessagePolicy": "File", - "image": "infra.5g-deployment.lab:8443/openshift4/ztp-site-generate-rhel8:v4.15.0-32" + "image": "infra.5g-deployment.lab:8443/openshift4/ztp-site-generate-rhel8:v4.16.1-5" } ], "volumeMounts": [ diff --git a/lab-materials/lab-env-data/hub-cluster/hub-operators-argoapps.yaml b/lab-materials/lab-env-data/hub-cluster/hub-operators-argoapps.yaml index 969a1df..bbadfb2 100644 --- a/lab-materials/lab-env-data/hub-cluster/hub-operators-argoapps.yaml +++ b/lab-materials/lab-env-data/hub-cluster/hub-operators-argoapps.yaml @@ -12,7 +12,7 @@ spec: source: path: lab-materials/hub-config/operators-deployment repoURL: 'http://infra.5g-deployment.lab:3000/student/5g-ran-deployments-on-ocp-lab.git' - targetRevision: lab-4.15 + targetRevision: lab-4.16 project: default syncPolicy: automated: @@ -38,7 +38,7 @@ spec: source: path: lab-materials/hub-config/operators-config repoURL: 'http://infra.5g-deployment.lab:3000/student/5g-ran-deployments-on-ocp-lab.git' - targetRevision: lab-4.15 + targetRevision: lab-4.16 project: default syncPolicy: automated: diff --git a/lab-materials/lab-env-data/hub-cluster/hub.yml b/lab-materials/lab-env-data/hub-cluster/hub.yml index f63f23b..b7a38a4 100644 --- a/lab-materials/lab-env-data/hub-cluster/hub.yml +++ b/lab-materials/lab-env-data/hub-cluster/hub.yml @@ -1,7 +1,7 @@ plan: hub-cluster force: false version: stable -tag: "4.15.3" +tag: "4.16.3" cluster: "hub" domain: 5g-deployment.lab api_ip: 192.168.125.10 @@ -10,14 +10,14 @@ disconnected_url: infra.5g-deployment.lab:8443 disconnected_update: true disconnected_user: admin disconnected_password: r3dh4t1! -disconnected_operators_version: v4.15-1711601986 +disconnected_operators_version: v4.16-1723045275 disconnected_operators: - name: advanced-cluster-management channels: - - name: release-2.10 + - name: release-2.11 - name: multicluster-engine channels: - - name: stable-2.5 + - name: stable-2.6 - name: topology-aware-lifecycle-manager channels: - name: stable @@ -26,7 +26,7 @@ disconnected_operators: - name: latest - name: lvms-operator channels: - - name: stable-4.15 + - name: stable-4.16 - name: ansible-automation-platform-operator channels: - name: stable-2.4-cluster-scoped @@ -34,16 +34,16 @@ disconnected_operators: channels: - name: stable disconnected_extra_images: -- registry.redhat.io/openshift4/ztp-site-generate-rhel8:v4.15.0-32 +- registry.redhat.io/openshift4/ztp-site-generate-rhel8:v4.16.1-5 - quay.io/rhsysdeseng/5granlab-ee:lab disconnected_extra_releases: -- quay.io/openshift-release-dev/ocp-release:4.15.0-x86_64 -disk_size: 200 -#disk_size: 120 -extra_disks: [200] -#extra_disks: [100] -memory: 48000 -#memory: 24000 +- quay.io/openshift-release-dev/ocp-release:4.16.0-x86_64 +#disk_size: 200 +disk_size: 120 +#extra_disks: [200] +extra_disks: [100] +#memory: 48000 +memory: 24000 numcpus: 16 ctlplanes: 3 workers: 0 diff --git a/lab-materials/lab-env-data/hub-cluster/sno1-argoapp.yaml b/lab-materials/lab-env-data/hub-cluster/sno1-argoapp.yaml index 2e274c7..300f7ea 100644 --- a/lab-materials/lab-env-data/hub-cluster/sno1-argoapp.yaml +++ b/lab-materials/lab-env-data/hub-cluster/sno1-argoapp.yaml @@ -12,7 +12,7 @@ spec: source: path: lab-materials/sno-deployment repoURL: 'http://infra.5g-deployment.lab:3000/student/5g-ran-deployments-on-ocp-lab.git' - targetRevision: lab-4.15 + targetRevision: lab-4.16 project: default syncPolicy: automated: diff --git a/lab-materials/sno-deployment/03_agentclusterinstall.yaml b/lab-materials/sno-deployment/03_agentclusterinstall.yaml index 27398a7..af80371 100644 --- a/lab-materials/sno-deployment/03_agentclusterinstall.yaml +++ b/lab-materials/sno-deployment/03_agentclusterinstall.yaml @@ -12,7 +12,7 @@ spec: clusterDeploymentRef: name: sno1 imageSetRef: - name: openshift-v4.15.0-disconnected + name: openshift-v4.16.0-disconnected networking: networkType: "OVNKubernetes" clusterNetwork: diff --git a/site.yml b/site.yml index d492b74..d5d68a9 100644 --- a/site.yml +++ b/site.yml @@ -10,12 +10,12 @@ content: sources: - url: ./ branches: - - 'lab-4.15' + - 'lab-4.16' start_path: documentation asciidoc: attributes: - release-version: 4.15 + release-version: 4.16 page-pagination: true extensions: - ./lib/tab-block.js