Skip to content
This repository was archived by the owner on Dec 10, 2024. It is now read-only.

Commit e7d7466

Browse files
calinghesyedfarazalishahjanbenexjfialaxjiangrenzhi1226
committed
Reference Architecture 23.02
New Components/Features: - Media Analytics Libraries Intel Deep Learning Streamer (Intel DL Streamer), GStreamer, OpenVINO toolkit OpenCL software, Level zero GPU, DPC++, and VAAPI from the IntelPU toolkit - FlexRAN software running as a Docker container (now available without NDA) - Rook/Ceph as a storage-related component - Rocky Linux 9.1 as base operating system (with some limitations mentioned below) - Non-root user deployment of Virtual Machine Reference System Architecture (VMRA) - Custom cluster naming in VMRA - Support for using Amazon Web Services (AWS) and Azure 'Cloud' CLIs as an alternative to Terraform - Azure Kubernetes Service (AKS) support for static CPU Management Policy and IntelPU Control Plane Plugin for Kubernetes - Intel Software Guard Extensions (Intel SGX) on AKS Updates/Changes: - Software versions upgraded for the majority of RA components (See User Guide for complete BOM and versions) Notable updates: Kubernetes to v1.26.1 MinIO to v4.5.8 DPDK to v22.11.1 Service Mesh to v1.17.1 VPP to v2302 KMRA to v2.3 - Eliminated the BMRA for Object Storage Setup deployment model. The storage-related features (MinIO, LPVSP, and Rook/Ceph) are now provided as optional components in select configuration profiles - Support of geo-specific mirrors for Kubespray (for example, in the People.s Republic of China) - Supported Kubernetes versions updated for AKS and Amazon EKS - Ubuntu images updated for AKS and Amazon EKS - Ability to deploy more RA software components on Azure and AWS Elasticsearch Kibana New Hardware (Platforms/CPUs/GPUs/Accelerators): - N/A Removed Support: - full_nfv profile - Ubuntu 20.04 as base operating system - Rocky Linux 9.0 as base operating system Known Limitations/Restrictions: - When using the Cilium CNI, secondary interfaces are not supported - Intelynamic Load Balancer (Intel) is not fully supported on Rocky Linux 9.1 - FlexRAN container support is limited to FlexRAN v22.07, Ubuntu 22.04 base operating system, and only on 3rd Gen Intel Xeon Scalable processors - Media Analytics is supported only with Docker runtime - MinIO is supported only with CRI-O runtime - VMRA cluster expansion with additional VM nodes might fail - Trusted Certificate Attestation (TCA) is not fully functional in VMRA Co-authored-by: Ali Shah, Syed Faraz <[email protected]> Co-authored-by: Benedikt, Jan <[email protected]> Co-authored-by: Fiala, Jiri <[email protected]> Co-authored-by: Gherghe, Calin <[email protected]> Co-authored-by: Jiang, Renzhi <[email protected]> Co-authored-by: Kasanic, Denis <[email protected]> Co-authored-by: Liu, Mark <[email protected]> Co-authored-by: MacGillivray, Mac <[email protected]> Co-authored-by: Mlynek, Krystian <[email protected]> Co-authored-by: Musial, Michal <[email protected]> Co-authored-by: Park, Seungweon <[email protected]> Co-authored-by: Pedersen, Michael <[email protected]> Co-authored-by: Prokes, Jiri <[email protected]> Co-authored-by: Vrana, Roman <[email protected]> Co-authored-by: Zenov, Mykyta <[email protected]>
1 parent 486c979 commit e7d7466

File tree

687 files changed

+10951
-5650
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

687 files changed

+10951
-5650
lines changed

Makefile

+7-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
CEK_DIRECTORIES_WITH_SHELL_FILES ?= roles/ examples/ playbooks/infra/ playbooks/intel/
22
ARCH ?= 'icx'
33
NIC ?= 'cvl'
4+
MIRRORS ?= false
45
PLAYBOOKS_DIRS = playbooks playbooks/infra playbooks/intel
56
PLAYBOOK_NAMES = access basic full_nfv on_prem regional_dc remote_fp storage build_your_own
67

@@ -40,7 +41,8 @@ k8s-profile: clean-playbooks
4041
--mode k8s \
4142
-p $(PROFILE) \
4243
-a $(ARCH) \
43-
-n ${NIC}
44+
-n ${NIC} \
45+
-m ${MIRRORS}
4446

4547
vm-profile: clean-playbooks
4648
python3 generate/render.py \
@@ -53,7 +55,8 @@ vm-profile: clean-playbooks
5355
--mode vm \
5456
-p $(PROFILE) \
5557
-a $(ARCH) \
56-
-n ${NIC}
58+
-n ${NIC} \
59+
-m ${MIRRORS}
5760

5861
cloud-profile: clean-playbooks
5962
python3 generate/render.py \
@@ -65,7 +68,8 @@ cloud-profile: clean-playbooks
6568
--mode cloud \
6669
-p $(PROFILE) \
6770
-a $(ARCH) \
68-
-n ${NIC}
71+
-n ${NIC} \
72+
-m ${MIRRORS}
6973

7074
clean: clean-playbooks clean-project-root-dir
7175

Pipfile

+6-5
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,20 @@ name = "pypi"
66
[packages]
77
ansible = "~=5.7.1"
88
"ansible-core" = "~=2.12"
9-
cryptography = "~=3.3"
10-
jinja2 = "~=2.11"
9+
cryptography = "~=39.0"
10+
jinja2 = "~=3.1"
1111
netaddr = "~=0.7.19"
1212
pbr = "~=5.4"
1313
jmespath = "~=0.9.5"
14-
"ruamel.yaml" = "~=0.16.10"
14+
"ruamel.yaml" = "~=0.17.21"
1515
"ruamel.yaml.clib" = "~=0.2.6"
16-
MarkupSafe = "~=1.1"
16+
MarkupSafe = "~=2.1"
1717
ipaddr = "*"
1818

1919
[dev-packages]
20-
ansible-lint = "~=5.4.0"
20+
ansible-lint = "~=6.12.1"
2121
pylint = "~=2.15.4"
22+
bandit = "~=1.7.4"
2223

2324
[requires]
2425
python_version = "3"

README.md

+58-20
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ The software provided here is for reference only and not intended for production
66

77
## Quickstart guide
88

9+
**_NOTE:_** Instruction provided bellow are prepared for deployment done under root user by default. If you want to do deployment under non-root user then read [this](docs/rootless_deployment.md) file first and then continue with following steps under that non-root user.
10+
911
1. Initialize git submodules to download Kubespray code.
1012

1113
```bash
@@ -32,7 +34,7 @@ The software provided here is for reference only and not intended for production
3234
export PROFILE=regional_dc
3335
```
3436

35-
- For **Kubernetes Remote Forwarding Platform Infrastructure** deployment:
37+
- For **Kubernetes Remote Central Office-Forwarding Configuration** deployment:
3638

3739
```bash
3840
export PROFILE=remote_fp
@@ -44,27 +46,15 @@ The software provided here is for reference only and not intended for production
4446
export PROFILE=on_prem
4547
```
4648

47-
- For **Kubernetes Full NFV Infrastructure** deployment:
48-
49-
```bash
50-
export PROFILE=full_nfv
51-
```
52-
53-
- For **Kubernetes Storage Infrastructure** deployment:
54-
55-
```bash
56-
export PROFILE=storage
57-
```
58-
5949
- For **Kubernetes Build-Your-Own Infrastructure** deployment:
6050

6151
```bash
6252
export PROFILE=build_your_own
6353
```
6454

65-
3. Install dependencies using a) or b)
55+
3. Install dependencies using one of the following methods
6656

67-
a) Non-invasive virtual environment method
57+
a) Non-invasive virtual environment using pipenv
6858

6959
```bash
7060
pip3 install pipenv
@@ -73,11 +63,21 @@ The software provided here is for reference only and not intended for production
7363
pipenv shell
7464
```
7565

76-
b) System wide installation method
66+
b) Non-invasive virtual environment using venv
7767

78-
```bash
79-
pip3 install -r requirements.txt
80-
```
68+
```bash
69+
python3 -m venv venv
70+
# Then to activate new virtual environment
71+
source venv/bin/activate
72+
# Install dependencies in venv
73+
pip3 install -r requirements.txt
74+
```
75+
76+
c) System wide environment (not recommended)
77+
78+
```bash
79+
pip3 install -r requirements.txt
80+
```
8181

8282
4. Generate example host_vars, group_vars and inventory files for Intel Container Experience Kits profiles.
8383

@@ -139,7 +139,9 @@ The software provided here is for reference only and not intended for production
139139
- update details relevant for vm_host (e.g.: datalane_interfaces, ...)
140140
- update VMs definition in host_vars/host-for-vms-1.yml - use that template for the first vm_host
141141
- update VMs definition in host_vars/host-for-vms-2.yml - use that template for the second and all other vm_hosts
142-
- update/create host_vars for all defined VMs (e.g.: host_vars/vm-ctrl-1.yml and host_vars/vm-work-1.yml)
142+
- update/create host_vars for all defined VMs (e.g.: host_vars/vm-ctrl-1.cluster1.local.yml and host_vars/vm-work-1.cluster1.local.yml)
143+
In case that vm_cluster_name is not defined or is empty, short host_vars file names should be used for VMs
144+
(e.g.: host_vars/vm-ctrl-1.yml and host_vars/vm-work-1.yml)
143145
Needed details are at least dataplane_interfaces
144146
For more details see [VM case configuration guide](docs/vm_config_guide.md)
145147
@@ -175,6 +177,7 @@ Refer to the documentation linked below to see configuration details for selecte
175177
- [VM case configuration guide](docs/vm_config_guide.md)
176178
- [VM multinode setup guide](docs/vm_multinode_setup_guide.md)
177179
- [VM cluster expansion guide](docs/vm_cluster_expansion_guide.md)
180+
- [Non-root deployment guide](docs/rootless_deployment.md)
178181
## Prerequisites and Requirements
179182
180183
- Required packages on the target servers: **Python3**.
@@ -200,3 +203,38 @@ Contributors, beside basic set of packages, should also install developer packag
200203
```bash
201204
pipenv install --dev
202205
```
206+
207+
or
208+
209+
```bash
210+
pip install -r ci-requirements.txt
211+
```
212+
213+
### Run lint checks locally
214+
215+
Several lint checks are configured for the repository. All of them can be run on local environment using prepared bash scripts or by leveraging pre-commit hooks.
216+
217+
Prerequisite packages:
218+
219+
- developer python packages (ci-requirements.txt/Pipfile)
220+
- shellcheck
221+
- pre-commit python package
222+
223+
Required checks in CI:
224+
225+
- ansible-lint
226+
- bandit
227+
- pylint
228+
- shellcheck
229+
230+
Check can be run by following command:
231+
232+
```bash
233+
./scrits/run_<linter_name>.sh
234+
```
235+
236+
or alternatively:
237+
238+
```bash
239+
pre-commit run <linter_name> --all-files
240+
```

SECURITY.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Security Policy
2+
Intel is committed to rapidly addressing security vulnerabilities affecting our customers and providing clear guidance on the solution, impact, severity and mitigation.
3+
4+
## Reporting a Vulnerability
5+
Please report any security vulnerabilities in this project [utilizing the guidelines here](https://www.intel.com/content/www/us/en/security-center/vulnerability-handling-guidelines.html).

action_plugins/cpupin.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/usr/bin/python
22
#
3-
# Copyright (c) 2020-2022 Intel Corporation.
3+
# Copyright (c) 2020-2023 Intel Corporation.
44
#
55
# Licensed under the Apache License, Version 2.0 (the "License");
66
# you may not use this file except in compliance with the License.
@@ -485,7 +485,7 @@ def _allocate_cpus(self, task_vars):
485485

486486
# Select random NUMA
487487
if not self.numa:
488-
self.numa = random.choice(self.numa_nodes)
488+
self.numa = random.choice(self.numa_nodes) # nosec B311 # pseudo random is not used for security purposes
489489

490490
if not self.cpus:
491491
self.cpu_list = self._select_cpus(task_vars['numa_nodes_cpus'], self.number, self.numa)

action_plugins/validate_cpusets.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2020-2022 Intel Corporation.
2+
# Copyright (c) 2020-2023 Intel Corporation.
33
#
44
# Licensed under the Apache License, Version 2.0 (the "License");
55
# you may not use this file except in compliance with the License.

action_plugins/validate_isolcpus.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2020-2022 Intel Corporation.
2+
# Copyright (c) 2020-2023 Intel Corporation.
33
#
44
# Licensed under the Apache License, Version 2.0 (the "License");
55
# you may not use this file except in compliance with the License.

ansible.cfg

+3
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,6 @@ fact_caching_timeout = 7200
1616

1717
action_plugins = ./action_plugins:~/.ansible/plugins/action:/usr/share/ansible/plugins/action
1818
library = ./library
19+
20+
log_path = ./.ansible_last_run.log
21+
display_args_to_stdout = False

0 commit comments

Comments
 (0)