Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CNF-15663: Full DU profile example #313

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 14 additions & 1 deletion docs/cluster-configuration.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,24 @@
# Cluster Configuration

## Preparation
TO DO
For a proper cluster configuration, the ACM PolicyGenerator CRs have to be prepared in git.
The namespace of the parent policies will be `ztp-<cluster-template-namespace>` (see [here](./samples/git-setup/policytemplates/version_4.Y.Z/sno-ran-du/ns.yaml)). This is generally created through ArgoCD and Kustomize.

The source-crs need to be extracted.

For details about setting up the Git repo, please refer to the the Gitops setup [README.md](./samples/git-setup/README.md).

**Note:** Make sure all the value used in hub templates in the PGs are exposed in the corresponding ClusterTemplate, under `spec.templateParameterSchema.policyTemplateParameters` and are present either in the `spec.templates.policyTemplateDefaults` ConfigMap or are specified through the ProvisioningRequest (`spec.templateParameters.policyTemplateParameters`).

## Initial install and configuration
TO DO

## Full DU profile
For configuring an SNO with a full DU profile according to the [4.17 RAN RDS](https://docs.openshift.com/container-platform/4.17/scalability_and_performance/telco_ref_design_specs/ran/telco-ran-ref-du-crs.html), the following main samples can be used as a starting example:
* [ClusterInstance defaults ConfigMap](./samples/git-setup/clustertemplates/version_4.Y.Z/sno-ran-du/clusterinstance-defaults-v5-full-DU.yaml)
* [PolicyTemplate defaults ConfigMap](./samples/git-setup/clustertemplates/version_4.Y.Z/sno-ran-du/policytemplates-defaults-v3-full-DU.yaml)
* [ClusterTemplate](./samples/git-setup/clustertemplates/version_4.Y.Z/sno-ran-du/sno-ran-du-v4-Y-Z-5-full-DU.yaml)
* [ACM Policy Generator](./samples/git-setup/policytemplates/version_4.Y.Z/sno-ran-du/sno-ran-du-pg-v4-Y-Z-v4.yaml)
## Day 2 configuration

### Updates to the clusterInstanceParameters field under ProvisioningRequest spec.templateParameters
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,12 @@ resources:
# sno-ran-du.v4-Y-Z-4 ClusterTemplate:
- sno-ran-du/sno-ran-du-v4-Y-Z-4.yaml
- sno-ran-du/clusterinstance-defaults-v4.yaml
- sno-ran-du/policytemplates-defaults-v2.yaml
# sno-ran-du.v4-Y-Z-1-no-hwtemplate ClusterTemplate:
- sno-ran-du/sno-ran-du-v4-Y-Z-1-no-hwtemplate.yaml
# sno-ran-du.v4-Y-Z-5 ClusterTemplate:
- sno-ran-du/sno-ran-du-v4-Y-Z-5-full-DU.yaml
# sno-ran-du.v4-Y-Z-6 ClusterTemplate:
- sno-ran-du/sno-ran-du-v4-Y-Z-6-full-DU.yaml
- sno-ran-du/clusterinstance-defaults-v5-full-DU.yaml
- sno-ran-du/policytemplates-defaults-v3-full-DU.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: clusterinstance-defaults-v5
namespace: sno-ran-du-v4-Y-Z
data:
# clusterProvisioningTimeout is optional.
# The value should be a duration string
# (e.g., "80m" for 80 minutes)
clusterProvisioningTimeout: "80m"
clusterinstance-defaults: |
baseDomain: example.com
extraLabels:
ManagedCluster:
cluster-version: "v4-Y-Z"
sno-ran-du-policy: "v4"
extraAnnotations:
ManagedCluster:
test-annotation: test
clusterType: SNO
clusterImageSetNameRef: "4.Y.Z"
pullSecretRef:
name: pull-secret
networkType: OVNKubernetes
sshPublicKey: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDTca4Qyu5AYBmZbSl74cNTKuNINJ7d+ceBRzKUrhHcQpMbl8UnAYhjh/ffTyVCsgwzm1RjTAm6/tPj9euEa+YX4U78Sx+ioLHmjDvACYsti4DekIR+opFwfIw+JTDXoyVv06lOPaTOa/vtgpe+gDEL364j47f3p9H/tGhsLmpjeG3DVAhbqSh3s0IHpd4OzF/r6g6mbPyHadvedkBZp/qeUX054Gc2QqJeg/s/eddPlQDJbmL8yRVkZu+SsFTOEOAtrdA3czeaEaA8s+aWP9PN3X539Ddw3qahyOSCXpCE2eJXPh8DJCBWVEcFFYgmIFVvCQ+o9cjEmIYg6drGGvRV
installConfigOverrides: '{"capabilities": {"baselineCapabilitySet": "None", "additionalEnabledCapabilities": ["NodeTuning", "OperatorLifecycleManager", "Ingress"]}}'
ignitionConfigOverride: '{"ignition": {"version": "3.2.0"}, "storage": {"files": [{"overwrite": true, "path": "/etc/containers/policy.json", "contents": {"source":"data:text/plain;base64,ewogICAgImRlZmF1bHQiOiBbCiAgICAgICAgewogICAgICAgICAgICAidHlwZSI6ICJpbnNlY3VyZUFjY2VwdEFueXRoaW5nIgogICAgICAgIH0KICAgIF0sCiAgICAidHJhbnNwb3J0cyI6CiAgICAgICAgewogICAgICAgICAgICAiZG9ja2VyLWRhZW1vbiI6CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIiI6IFt7InR5cGUiOiJpbnNlY3VyZUFjY2VwdEFueXRoaW5nIn1dCiAgICAgICAgICAgICAgICB9CiAgICAgICAgfQp9Cgo="}}]}}'
clusterNetwork:
- cidr: 203.0.113.0/24
hostPrefix: 23
machineNetwork:
- cidr: 192.0.2.0/24
serviceNetwork:
- cidr: 233.252.0.0/24
additionalNTPSources:
- 1.pool.ntp.org
templateRefs:
- name: ai-cluster-templates-v1
namespace: siteconfig-operator
cpuPartitioningMode: AllNodes
extraManifestsRefs:
- name: clustertemplate-sample.v1.0.0-extramanifests
nodes:
- role: master
bootMode: UEFI
nodeNetwork:
interfaces:
- name: eno1
label: bootable-interface
- name: eth0
label: base-interface
- name: eth1
label: data-interface
config:
routes:
config:
- destination: 0.0.0.0/0
next-hop-interface: eno1
table-id: 254
interfaces:
- ipv6:
enabled: false
ipv4:
enabled: true
name: eno1
state: up
type: ethernet
- ipv6:
enabled: false
ipv4:
enabled: false
name: bond99
state: up
type: bond
templateRefs:
- name: ai-node-templates-v1
namespace: siteconfig-operator
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: policytemplate-defaults-v3
namespace: sno-ran-du-v4-Y-Z
data:
# clusterConfigurationTimeout is optional.
# The value should be a duration string
# (e.g., "40m" for 40 minutes)
clusterConfigurationTimeout: "40m"
policytemplate-defaults: |
cluster-log-fwd-filters: '[{"name":"test-labels", "type": "openshiftLabels", "openshiftLabels": {"label1": "test1", "label2": "test2"}}]'
cluster-log-fwd-outputs: '[{"type":"kafka","name":"kafka-open", "kafka": {"url":"tcp://10.46.55.190:9092/test"}}]'
cluster-log-fwd-pipelines: '[{"name":"all-to-default","inputRefs":["audit","infrastructure"],"outputRefs":["kafka-open"], "filterRefs":["test-labels"]}]'
cpu-isolated: 0-1,64-65
cpu-reserved: 2-10
hugepages-count: "32"
hugepages-default: 1G
hugepages-size: 1G
machine-config-storage-source-1: /etc/crio/crio.conf.d/01-workload-partitioning
machine-config-storage-source-2: /etc/kubernetes/openshift-workload-pinning
oadp-s3url: http://s3storage.example.com:9000
ptpcfgslave-profile-interface: ens15f1
sriov-fec-bbDevConfig: '{"acc100": {"pfMode": false, "numVfBundles": 16, "maxQueueSize": 1024, "uplink5G": {"numQueueGroups": 4, "numAqsPerGroups": 16, "aqDepthLog2": 4}, "downlink5G": {"numQueueGroups": 4, "numAqsPerGroups": 1, "aqDepthLog2": 4}, "uplink4G": {"numQueueGroups": 0, "numAqsPerGroups": 1, "aqDepthLog2": 4}, "downlink4G": {"numQueueGroups": 0, "numAqsPerGroups": 1, "aqDepthLog2": 4}}}'
sriov-fec-pciAddress: 0000:b4:00.1
sriov-fec-pfDriver: pci-pf-stub
sriov-fec-vfDriver: vfio-pci
sriov-network-pfNames-1: '["ens4f1"]'
sriov-network-pfNames-2: '["ens4f2"]'
sriov-network-vlan-1: "114"
sriov-network-vlan-2: "111"
storage-lv-devicePaths-1: /dev/disk/by-path/pci-0000:62:00.0-scsi-0:2:8:0
install-plan-approval: Automatic
Loading