OpenShiftデプロイメント用のCloud-Native Router Helmチャートのカスタマイズ
Juniper Cloud-Native Routerは、L2、L3またはL2-L3モードで導入して運用できます。展開モードを設定するには、展開前に values.yaml ファイル内の適切な属性を編集します。
-
values.yamlファイルのfabricInterfaceキーで、次の操作を行います。-
すべてのインターフェイスに
interface_modeキーが設定されている場合、展開モードは L2 になります。 -
1 つ以上のインターフェイスで
interface_modeキーが設定され、残りのインターフェイスにinterface_modeキーがない場合、展開モードは L2-L3 になります。 -
どのインターフェイスにも
interface_modeキーが設定されていない場合、展開モードはL3になります。
-
Juniper_Cloud_Native_Router_release-number/helmchart/values.yaml ファイルを使用して Helm チャートをカスタマイズします。Helm チャートの構成キーを以下の表に示します。
| キー | 追加のキー 構成の説明 | |
|---|---|---|
| 記帳 | vRouter、cRPD、およびjcnr-cniコンテナイメージがホストされるDockerレジストリを定義します。デフォルト値は enterprise-hub.juniper.net です。 |
|
| リポジトリ | (オプション)vRouter、cRPD、およびjcnr-cniコンテナイメージのリポジトリパスを定義します。これはグローバルキーであり、「common」セクションの「repository」パスよりも優先されます。 | |
| imagePullSecret (英語) | (オプション)レジストリ認証資格情報を定義します。認証情報は、ジュニパーリポジトリまたはプライベートレジストリのいずれかに設定できます。 | |
| registryCredentials | Docker レジストリ資格情報の Base64 表現。詳細は、「 リポジトリ資格証明の構成 」トピックを参照してください。 | |
| secretName (シークレット名) | 作成されるシークレットオブジェクトの名前。 | |
| コモン | vRouter、cRPD、およびjcnr-cniコンテナイメージの応答パスとタグを定義します。プライベートレジストリを使用しない限り、defaultを使用します。 | |
| リポジトリ | リポジトリ パスを定義します。デフォルト値は atom-docker/cn2/bazel-build/dev/ です。グローバルリポジトリキーが定義されている場合、優先されます。 |
|
| タグ | イメージ タグを定義します。デフォルト値は、Cloud-Native Routerのリリースバージョンに適したタグ番号に設定されています。 | |
| レプリカ | (オプション)cRPDのレプリカの数を示します。値を指定しない場合は、デフォルト値の 1 が考慮されます。このキーの値は、マルチノードクラスターに対して指定する必要があります。 | |
| storageClass | OCP 展開には適用されません。 |
|
| awsリージョン | OCP 展開には適用されません。 | |
| noLocalSwitching | (オプション)ブリッジ ドメイン内のインターフェイスによるイーサネット フレーム コピーの送受信を防ぎます。VLAN ID に属するインターフェイスが互いにフレームを送信しないようにするために、1 つ以上の VLAN ID をカンマで区切って入力します。このキーは、L2 および L2-L3 展開に固有です。このキーを有効にすると、すべてのアクセス インターフェイスで機能が提供されます。トランク インターフェイスで機能を有効にするには、fabricInterface キーで no-local-switching キーを設定します。 | |
| ファブリックインターフェイス | DPDK にバインドするインターフェイスの一覧を指定します。インターフェイス名の代わりにサブネットを指定することもできます。インターフェイス名とサブネットの両方が指定されている場合、インターフェイス名がサブネット/ゲートウェイの組み合わせよりも優先されます。サブネット/ゲートウェイの組み合わせは、マルチノード クラスタでインターフェイス名が異なる場合に便利です。
手記:
例えば: # L2 only
- eth1:
ddp: "auto"
interface_mode: trunk
vlan-id-list: [100, 200, 300, 700-705]
storm-control-profile: rate_limit_pf1
native-vlan-id: 100
no-local-switching: true
- bond0:
ddp: "auto" # auto/on/off
interface_mode: trunk
vlan-id-list: [100, 200, 300, 700-705]
storm-control-profile: rate_limit_pf1
#native-vlan-id: 100
#no-local-switching: true # L3 only
- eth1:
ddp: "off"
- eth2:
ddp: "off" # L2L3
- eth1:
ddp: "auto"
- eth2:
ddp: "auto"
interface_mode: trunk
vlan-id-list: [100, 200, 300, 700-705]
storm-control-profile: rate_limit_pf1
native-vlan-id: 100
no-local-switching: true |
|
| サブネット | インターフェイス名を入力する代替モード。例えば: - subnet: 10.40.1.0/24 gateway: 10.40.1.1 ddp: "off"
|
|
| DDPの | (オプション)インターフェイスレベルのDDP(Dynamic Device Personalization)設定を示します。DDPは、GTPU、SCTPなどのトラフィックに対してNICでデータパス最適化を提供します。ボンディングインターフェイスの場合、DDP設定を有効にするには、すべてのスレーブインターフェイスNICがDDPをサポートしている必要があります。 設定オプションには、自動、オン、オフがあります。デフォルト設定はオフです。
手記:
サブネット/インターフェイスレベルの |
|
| interface_mode | L2インターフェイスには interface_mode: trunk |
|
| vlan-id-list | インターフェイスに関連付けられているVLAN IDのリストを提供します。 |
|
| ストーム制御プロファイル |
|
|
| ネイティブVLAN ID | ファブリックトランクモードインターフェイスの物理インターフェイスで受信したタグなしデータパケットに関連付けるために、vlan-id-list内の任意のVLAN IDで fabricInterface:
- bond0:
interface_mode: trunk
vlan-id-list: [100, 200, 300]
storm-control-profile: rate_limit_pf1
native-vlan-id: 100 |
|
| no-local-switching | no-local-switching ステートメントが設定されている場合、インターフェイスが相互に直接通信することを防ぎます。使用できる値は true または false です。 | |
| fabricワークロードインターフェイス | (オプション)さまざまなワークロードが接続されるインターフェイスを定義します。インターフェイスには、ソフトウェアベースまたはハードウェアベースのものがあります。 | |
| log_level | ログの重大度を定義します。使用可能な値オプションは、DEBUG、INFO、WARN、および ERR です。
手記:
ジュニパーサポートから変更するように指示されない限り、log_levelはデフォルトのINFOに設定したままにします。 |
|
| log_path | 定義されたディレクトリには、contrail-vrouter-agent.log、contrail-vrouter-dpdk.logなど、Cloud-Native Routerに関連するさまざまな記述ログが格納されます。デフォルト値は /var/log/jcnr/ です。 |
|
| syslog_notifications | syslog-ng で生成された通知を JSON 形式で保存するファイルへの絶対パスを示します。デフォルト値は /var/log/jcnr/jcnr_notifications.json です。 |
|
| nodeAffinity | (オプション)ノードのラベルを定義して、vRouter と Pod を配置する場所を決定します。例えば: nodeAffinity:
- key: node-role.kubernetes.io/worker
operator: Exists
- key: node-role.kubernetes.io/master
operator: DoesNotExist
手記:
このキーはグローバル設定です。 OCP設定では、ワーカー・ノードでのみCloud-Native Routerを起動するようにノード・アフィニティを設定する必要があります。 |
|
| 鍵 | ノード アフィニティを適用するために一致する必要があるノード ラベルを表すキーと値のペア。 | |
| 演算子 | ノードラベルと、ポッド仕様の matchExpression パラメーターの値のセットとの関係を定義します。この値には、In、NotIn、Exists、DoesNotExist、Lt、または Gt を指定できます。 | |
| cni_bin_dir | (オプション)デフォルトのパスは /opt/cni/bin です。デフォルトのcniパスを任意のパス(/var/opt/cni/binなど)で上書きできます。Red Hat OpenShiftの場合、デフォルトのCNIパスは/var/lib/cni/binに設定する必要があります。これはOCPデプロイメントのデフォルトパスです。パス変数 (cni_bin_dir) を空のままにすることは、OCP では実行可能なオプションではありません。 | |
| grpcTelemetryPort | (オプション)このパラメーターの値を入力して、cRPD テレメトリ gRPC サーバーのデフォルト ポート 50051 を上書きします。 |
|
| grpcVrouterPort | (オプション)このパラメータの値を入力して、vRouter gRPCサーバーのデフォルトポート50052を上書きします。 | |
| vRouterDeployerPort | (オプション)デフォルト値は 8081 です。デフォルトポートが利用できない場合に上書きするように設定します。 | |
| インターフェイスの復元 | このキーの値を true に設定すると、vRouter Pod がクラッシュまたは再起動した場合にインターフェイスが元の状態に復元されます。 | |
| bondInterfaceConfigs (ボンドインターフェイス設定) | (オプション)L2 または L2-L3 展開でのみボンディングインターフェイス設定を有効にします。 | |
| 名前 | ボンディング・インターフェースの名前。 | |
| モード | デフォルト値は 1 (Active_Backup) です | |
| スレーブインターフェイス | 集約するファブリックインターフェイス。 | |
| MTU | すべての物理インターフェイス(VFおよびPF)のMTU(最大伝送単位)値。 | |
| cpu_core_mask | vRouter フォワード コア マスクを示します。qos が有効になっている場合は、4 つの CPU コア (プライマリと兄弟) を割り当てる必要があります。 |
|
| stormControlProfiles | ファブリックインターフェイス上のBUMトラフィックのレート制限プロファイルをバイト/秒で設定します。 | |
| rate_limit_pf1 | ||
| 帯域幅 | ||
| レベル | ||
| DDPの | (オプション)グローバルな動的デバイス個人用設定 (DDP) 構成を示します。DDPは、GTPU、SCTPなどのトラフィックに対してNICでデータパス最適化を提供します。ボンディングインターフェイスの場合、DDP設定を有効にするには、すべてのスレーブインターフェイスNICがDDPをサポートしている必要があります。 設定オプションには、自動、オン、オフがあります。デフォルト設定はオフです。
手記:
インターフェイスレベル |
|
| qos有効化 | QoS を有効または無効にするには、true または false に設定します。
手記:
QoS は Intel X710 NIC ではサポートされていません。 |
|
| コアパターン | コア ファイルの生成方法を示すコア パターンを示します。この設定を空白のままにすると、Cloud-Native Routerポッドはデフォルトパターンを上書きしません。
手記:
JCNR をデプロイする前に、ホストで corePattern 値を設定します。 |
|
| coreFileパス | コア・ファイルのパスを示します。値を空白のままにすると、vRouter は /var/crashes をデフォルト値と見なします。 | |
| vrouter_dpdk_uio_driver | uio ドライバは vfio-pciです。 |
サンプル Helm チャート
Red Hat OpenShift での L2 のみのデプロイメントの Helm チャート
動作中の L2 のみの Helm チャートのサンプルを以下に示します。設定されたセクションは 太字で強調表示されます。
####################################################################
# Common Configuration (global vars) #
####################################################################
global:
registry: enterprise-hub.juniper.net/
# uncomment below if all images are available in the same path; it will
# take precedence over "repository" paths under "common" section below
repository: jcnr-container-prod/
# uncomment below if you are using a private registry that needs authentication
# registryCredentials - Base64 representation of your Docker registry credentials
# secretName - Name of the Secret object that will be created
#imagePullSecret:
#registryCredentials: <base64-encoded-credential>
#secretName: regcreds
common:
vrouter:
repository: atom-docker/cn2/bazel-build/dev/
tag: R23.3-183
crpd:
repository: junos-docker-local/warthog/
tag: 23.3R1.8
jcnrcni:
repository: junos-docker-local/warthog/
tag: 23.3-20230918-1b118ad
# Number of replicas for cRPD; this option must be used for multinode clusters
# JCNR will take 1 as default if replicas is not specified
#replicas: "3"
# storageClass: Name of the storage class for cRPD. This option is must for
# cloud deployments such as AWS where gp2 can be used
#storageClass: gp2
# Set AWS Region for AWS deployments
#awsregion: us-east-1
#noLocalSwitching: [700]
# fabricInterface: provide a list of interfaces to be bound to dpdk
# You can also provide subnets instead of interface names. Interfaces name take precedence over
# Subnet/Gateway combination if both specified (although there is no reason to specify both)
# Subnet/Gateway combination comes handy when the interface names vary in a multi-node cluster
fabricInterface:
#########################
# L2 only
- bond0:
interface_mode: trunk
vlan-id-list: [1110-1141]
- ens2f2v0:
interface_mode: trunk
vlan-id-list: [1110-1141]
- ens2f3v0:
interface_mode: trunk
vlan-id-list: [1110-1141]
- ens1f0v0:
interface_mode: trunk
vlan-id-list: [1110-1141]
ddp: "auto"
interface_mode: trunk
storm-control-profile: rate_limit_pf1
native-vlan-id: 1110
no-local-switching: true
#########################
# L3 only
#- eth11:
# ddp: "off" # ddp parameter is optional; options include auto or on or off; default: off
#- eth2:
# ddp: "off" # ddp parameter is optional; options include auto or on or off; default: off
########################
# L2L3
#- eth1:
# ddp: "auto" # ddp parameter is optional; options include auto or on or off; default: off
#- eth2:
# ddp: "auto" # ddp parameter is optional; options include auto or on or off; default: off
# interface_mode: trunk
# vlan-id-list: [100, 200, 300, 700-705]
# storm-control-profile: rate_limit_pf1
# native-vlan-id: 100
# no-local-switching: true
##################################
# Provide subnets instead of interface names
# Interfaces will be auto-detected in each subnet
# Only one of the interfaces or subnet range must
# be configured. This form of input is particularly
# helpful when the interface names vary in a multi-node
# K8s cluster
#- subnet: 10.40.1.0/24
# gateway: 10.40.1.1
# ddp: "off" # ddp parameter is optional; options include auto or on or off; default: off
#- subnet: 192.168.1.0/24
# gateway: 192.168.1.1
# ddp: "off" # ddp parameter is optional; options include auto or on or off; default: off
##################################
# fabricWorkloadInterface is applicable only for Pure L2 deployments
#
fabricWorkloadInterface:
- ens1f1v0:
interface_mode: access
vlan-id-list: [1110]
#########################
# defines the log severity. Possible options: DEBUG, INFO, WARN, ERR
log_level: "INFO"
# "log_path": this directory will contain various jcnr related descriptive logs
# such as contrail-vrouter-agent.log, contrail-vrouter-dpdk.log etc.
log_path: "/var/log/jcnr/"
# "syslog_notifications": absolute path to the file that will contain syslog-ng
# generated notifications in json format
syslog_notifications: "/var/log/jcnr/jcnr_notifications.json"
# nodeAffinity: Can be used to inject nodeAffinity for vRouter, cRPD and syslog-ng pods
# You may label the nodes where we wish to deploy JCNR and inject affinity accodingly
nodeAffinity:
- key: node-role.kubernetes.io/worker
operator: Exists
- key: node-role.kubernetes.io/master
operator: DoesNotExist
# cni_bin_dir: Path where the CNI binary will be put; default: /opt/cni/bin
# this may be overriden in distributions other than vanilla K8s
# e.g. OpenShift - you may use /var/lib/cni/bin or /etc/kubernetes/cni/net.d
cni_bin_dir: /var/lib/cni/bin
# grpcTelemetryPort: use this parameter to override cRPD telemetry gRPC server default port of 50051
#grpcTelemetryPort: 50055
# grpcVrouterPort: use this parameter to override vRouter gRPC server default port of 50052
#grpcVrouterPort: 50060
# vRouterDeployerPort: use this parameter to override vRouter deployer port default port of 8081
#vRouterDeployerPort: 8082
jcnr-vrouter:
# restoreInterfaces: setting this to true will restore the interfaces
# back to their original state in case vrouter pod crashes or restarts
restoreInterfaces: false
# Enable bond interface configurations L2 only or L2 L3 deployment
bondInterfaceConfigs:
- name: "bond0"
mode: 1 # ACTIVE_BACKUP MODE
slaveInterfaces:
- "ens2f0v0"
- "ens2f1v0"
# MTU for all physical interfaces( all VF’s and PF’s)
mtu: "9000"
# vrouter fwd core mask
# if qos is enabled, you will need to allocate 4 CPU cores (primary and siblings)
cpu_core_mask: "2,3,22,23"
# rate limit profiles for bum traffic on fabric interfaces in bytes per second
stormControlProfiles:
rate_limit_pf1:
bandwidth:
level: 0
#rate_limit_pf2:
# bandwidth:
# level: 0
# Set ddp to enable Dynamic Device Personalization (DDP)
# Provides datapath optimization at NIC for traffic like GTPU, SCTP etc.
# Options include auto or on or off; default: off
ddp: "auto"
# Set true/false to Enable or Disable QOS, note: QOS is not supported on X710 NIC.
qosEnable: false
# core pattern to denote how the core file will be generated
# if left empty, JCNR pods will not overwrite the default pattern
corePattern: ""
# path for the core file; vrouter considers /var/crashes as default value if not specified
coreFilePath: /var/crash
# uio driver will be vfio-pci
vrouter_dpdk_uio_driver: "vfio-pci"
Red Hat OpenShift での L3 のみのデプロイメントの Helm チャート
動作中の L3 のみの Helm チャートのサンプルを以下に示します。設定されたセクションは 太字で強調表示されます。
####################################################################
# Common Configuration (global vars) #
####################################################################
global:
registry: enterprise-hub.juniper.net/
# uncomment below if all images are available in the same path; it will
# take precedence over "repository" paths under "common" section below
repository: jcnr-container-prod/
# uncomment below if you are using a private registry that needs authentication
# registryCredentials - Base64 representation of your Docker registry credentials
# secretName - Name of the Secret object that will be created
#imagePullSecret:
#registryCredentials: <base64-encoded-credential>
#secretName: regcreds
common:
vrouter:
repository: atom-docker/cn2/bazel-build/dev/
tag: R23.3-183
crpd:
repository: junos-docker-local/warthog/
tag: 23.3R1.8
jcnrcni:
repository: junos-docker-local/warthog/
tag: 23.3-20230918-1b118ad
# Number of replicas for cRPD; this option must be used for multinode clusters
# JCNR will take 1 as default if replicas is not specified
#replicas: "3"
# storageClass: Name of the storage class for cRPD. This option is must for
# cloud deployments such as AWS where gp2 can be used
#storageClass: gp2
# Set AWS Region for AWS deployments
#awsregion: us-east-1
#noLocalSwitching: [700]
# fabricInterface: provide a list of interfaces to be bound to dpdk
# You can also provide subnets instead of interface names. Interfaces name take precedence over
# Subnet/Gateway combination if both specified (although there is no reason to specify both)
# Subnet/Gateway combination comes handy when the interface names vary in a multi-node cluster
fabricInterface:
#########################
# L2 only
#- eth1:
# ddp: "auto" # ddp parameter is optional; options include auto or on or off; default: off
# interface_mode: trunk
# vlan-id-list: [100, 200, 300, 700-705]
# storm-control-profile: rate_limit_pf1
# native-vlan-id: 100
# no-local-switching: true
#- eth2:
# ddp: "auto" # ddp parameter is optional; options include auto or on or off; default: off
# interface_mode: trunk
# vlan-id-list: [700]
# storm-control-profile: rate_limit_pf1
# native-vlan-id: 100
# no-local-switching: true
#- bond0:
# ddp: "auto" # auto/on/off # ddp parameter is optional; options include auto or on or off; default: off
# interface_mode: trunk
# vlan-id-list: [100, 200, 300, 700-705]
# storm-control-profile: rate_limit_pf1
# #native-vlan-id: 100
# #no-local-switching: true
#########################
# L3 only
- ens2f2:
ddp: "auto"
- ens1f1:
ddp: "auto"
########################
# L2L3
#- eth1:
# ddp: "auto" # ddp parameter is optional; options include auto or on or off; default: off
#- eth2:
# ddp: "auto" # ddp parameter is optional; options include auto or on or off; default: off
# interface_mode: trunk
# vlan-id-list: [100, 200, 300, 700-705]
# storm-control-profile: rate_limit_pf1
# native-vlan-id: 100
# no-local-switching: true
##################################
# Provide subnets instead of interface names
# Interfaces will be auto-detected in each subnet
# Only one of the interfaces or subnet range must
# be configured. This form of input is particularly
# helpful when the interface names vary in a multi-node
# K8s cluster
#- subnet: 10.40.1.0/24
# gateway: 10.40.1.1
# ddp: "off" # ddp parameter is optional; options include auto or on or off; default: off
#- subnet: 192.168.1.0/24
# gateway: 192.168.1.1
# ddp: "off" # ddp parameter is optional; options include auto or on or off; default: off
##################################
# fabricWorkloadInterface is applicable only for Pure L2 deployments
#
#fabricWorkloadInterface:
#- enp59s0f1v0:
# interface_mode: access
# vlan-id-list: [700]
#- enp59s0f1v1:
# interface_mode: trunk
# vlan-id-list: [800, 900]
#########################
# defines the log severity. Possible options: DEBUG, INFO, WARN, ERR
log_level: "INFO"
# "log_path": this directory will contain various jcnr related descriptive logs
# such as contrail-vrouter-agent.log, contrail-vrouter-dpdk.log etc.
log_path: "/var/log/jcnr/"
# "syslog_notifications": absolute path to the file that will contain syslog-ng
# generated notifications in json format
syslog_notifications: "/var/log/jcnr/jcnr_notifications.json"
# nodeAffinity: Can be used to inject nodeAffinity for vRouter, cRPD and syslog-ng pods
# You may label the nodes where we wish to deploy JCNR and inject affinity accodingly
nodeAffinity:
- key: node-role.kubernetes.io/worker
operator: Exists
- key: node-role.kubernetes.io/master
operator: DoesNotExist
# cni_bin_dir: Path where the CNI binary will be put; default: /opt/cni/bin
# this may be overriden in distributions other than vanilla K8s
# e.g. OpenShift - you may use /var/lib/cni/bin or /etc/kubernetes/cni/net.d
cni_bin_dir: /var/lib/cni/bin
# grpcTelemetryPort: use this parameter to override cRPD telemetry gRPC server default port of 50051
#grpcTelemetryPort: 50055
# grpcVrouterPort: use this parameter to override vRouter gRPC server default port of 50052
#grpcVrouterPort: 50060
# vRouterDeployerPort: use this parameter to override vRouter deployer port default port of 8081
#vRouterDeployerPort: 8082
jcnr-vrouter:
# restoreInterfaces: setting this to true will restore the interfaces
# back to their original state in case vrouter pod crashes or restarts
restoreInterfaces: false
# Enable bond interface configurations L2 only or L2 L3 deployment
#bondInterfaceConfigs:
# - name: "bond0"
# mode: 1 # ACTIVE_BACKUP MODE
# slaveInterfaces:
# - "enp59s0f0v0"
# - "enp59s0f0v1"
# MTU for all physical interfaces( all VF’s and PF’s)
mtu: "9000"
# vrouter fwd core mask
# if qos is enabled, you will need to allocate 4 CPU cores (primary and siblings)
cpu_core_mask: "2,3,22,23"
# rate limit profiles for bum traffic on fabric interfaces in bytes per second
stormControlProfiles:
rate_limit_pf1:
bandwidth:
level: 0
#rate_limit_pf2:
# bandwidth:
# level: 0
# Set ddp to enable Dynamic Device Personalization (DDP)
# Provides datapath optimization at NIC for traffic like GTPU, SCTP etc.
# Options include auto or on or off; default: off
ddp: "auto"
# Set true/false to Enable or Disable QOS, note: QOS is not supported on X710 NIC.
qosEnable: false
# core pattern to denote how the core file will be generated
# if left empty, JCNR pods will not overwrite the default pattern
corePattern: ""
# path for the core file; vrouter considers /var/crashes as default value if not specified
coreFilePath: /var/crash
# uio driver will be vfio-pci
vrouter_dpdk_uio_driver: "vfio-pci"
Red Hat OpenShift での L2-L3 デプロイメントの Helm チャート
動作中の L2-L3 Helm チャートのサンプルを以下に示します。設定されたセクションは 太字で強調表示されます。
####################################################################
# Common Configuration (global vars) #
####################################################################
global:
registry: enterprise-hub.juniper.net/
# uncomment below if all images are available in the same path; it will
# take precedence over "repository" paths under "common" section below
repository: jcnr-container-prod/
# uncomment below if you are using a private registry that needs authentication
# registryCredentials - Base64 representation of your Docker registry credentials
# secretName - Name of the Secret object that will be created
#imagePullSecret:
#registryCredentials: <base64-encoded-credential>
#secretName: regcreds
common:
vrouter:
repository: atom-docker/cn2/bazel-build/dev/
tag: R23.3-183
crpd:
repository: junos-docker-local/warthog/
tag: 23.3R1.8
jcnrcni:
repository: junos-docker-local/warthog/
tag: 23.3-20230918-1b118ad
# Number of replicas for cRPD; this option must be used for multinode clusters
# JCNR will take 1 as default if replicas is not specified
#replicas: "3"
# storageClass: Name of the storage class for cRPD. This option is must for
# cloud deployments such as AWS where gp2 can be used
#storageClass: gp2
# Set AWS Region for AWS deployments
#awsregion: us-east-1
#noLocalSwitching: [700]
# fabricInterface: provide a list of interfaces to be bound to dpdk
# You can also provide subnets instead of interface names. Interfaces name take precedence over
# Subnet/Gateway combination if both specified (although there is no reason to specify both)
# Subnet/Gateway combination comes handy when the interface names vary in a multi-node cluster
fabricInterface:
#########################
# L2 only
#- eth1:
# ddp: "auto" # ddp parameter is optional; options include auto or on or off; default: off
# interface_mode: trunk
# vlan-id-list: [100, 200, 300, 700-705]
# storm-control-profile: rate_limit_pf1
# native-vlan-id: 100
# no-local-switching: true
#- eth2:
# ddp: "auto" # ddp parameter is optional; options include auto or on or off; default: off
# interface_mode: trunk
# vlan-id-list: [700]
# storm-control-profile: rate_limit_pf1
# native-vlan-id: 100
# no-local-switching: true
#- bond0:
# ddp: "auto" # auto/on/off # ddp parameter is optional; options include auto or on or off; default: off
# interface_mode: trunk
# vlan-id-list: [100, 200, 300, 700-705]
# storm-control-profile: rate_limit_pf1
# #native-vlan-id: 100
# #no-local-switching: true
#########################
# L3 only
#- eth11:
# ddp: "off" # ddp parameter is optional; options include auto or on or off; default: off
#- eth2:
# ddp: "off" # ddp parameter is optional; options include auto or on or off; default: off
########################
# L2L3
- bond0:
interface_mode: trunk
vlan-id-list: [1110-1141]
storm-control-profile: rate_limit_pf1
ddp: "auto"
- ens2f0v1:
ddp: "auto"
- enp179s0f1v0:
interface_mode: trunk
vlan-id-list: [1110-1141]
ddp: "auto"
- enp179s0f1v1:
ddp: "auto"
##################################
# Provide subnets instead of interface names
# Interfaces will be auto-detected in each subnet
# Only one of the interfaces or subnet range must
# be configured. This form of input is particularly
# helpful when the interface names vary in a multi-node
# K8s cluster
#- subnet: 10.40.1.0/24
# gateway: 10.40.1.1
# ddp: "off" # ddp parameter is optional; options include auto or on or off; default: off
#- subnet: 192.168.1.0/24
# gateway: 192.168.1.1
# ddp: "off" # ddp parameter is optional; options include auto or on or off; default: off
##################################
# fabricWorkloadInterface is applicable only for Pure L2 deployments
#
#fabricWorkloadInterface:
#- enp59s0f1v0:
# interface_mode: access
# vlan-id-list: [700]
#- enp59s0f1v1:
# interface_mode: trunk
# vlan-id-list: [800, 900]
#########################
# defines the log severity. Possible options: DEBUG, INFO, WARN, ERR
log_level: "INFO"
# "log_path": this directory will contain various jcnr related descriptive logs
# such as contrail-vrouter-agent.log, contrail-vrouter-dpdk.log etc.
log_path: "/var/log/jcnr/"
# "syslog_notifications": absolute path to the file that will contain syslog-ng
# generated notifications in json format
syslog_notifications: "/var/log/jcnr/jcnr_notifications.json"
# nodeAffinity: Can be used to inject nodeAffinity for vRouter, cRPD and syslog-ng pods
# You may label the nodes where we wish to deploy JCNR and inject affinity accodingly
nodeAffinity:
- key: node-role.kubernetes.io/worker
operator: Exists
- key: node-role.kubernetes.io/master
operator: DoesNotExist
# cni_bin_dir: Path where the CNI binary will be put; default: /opt/cni/bin
# this may be overriden in distributions other than vanilla K8s
# e.g. OpenShift - you may use /var/lib/cni/bin or /etc/kubernetes/cni/net.d
cni_bin_dir: /var/lib/cni/bin
# grpcTelemetryPort: use this parameter to override cRPD telemetry gRPC server default port of 50051
#grpcTelemetryPort: 50055
# grpcVrouterPort: use this parameter to override vRouter gRPC server default port of 50052
#grpcVrouterPort: 50060
# vRouterDeployerPort: use this parameter to override vRouter deployer port default port of 8081
#vRouterDeployerPort: 8082
jcnr-vrouter:
# restoreInterfaces: setting this to true will restore the interfaces
# back to their original state in case vrouter pod crashes or restarts
restoreInterfaces: false
# Enable bond interface configurations L2 only or L2 L3 deployment
bondInterfaceConfigs:
- name: "bond0"
mode: 1 # ACTIVE_BACKUP MODE
slaveInterfaces:
- "ens2f0v0"
- "ens2f1v0"
# MTU for all physical interfaces( all VF’s and PF’s)
mtu: "9000"
# vrouter fwd core mask
# if qos is enabled, you will need to allocate 4 CPU cores (primary and siblings)
cpu_core_mask: "2,3,22,23"
# rate limit profiles for bum traffic on fabric interfaces in bytes per second
stormControlProfiles:
rate_limit_pf1:
bandwidth:
level: 0
#rate_limit_pf2:
# bandwidth:
# level: 0
# Set ddp to enable Dynamic Device Personalization (DDP)
# Provides datapath optimization at NIC for traffic like GTPU, SCTP etc.
# Options include auto or on or off; default: off
ddp: "auto"
# Set true/false to Enable or Disable QOS, note: QOS is not supported on X710 NIC.
qosEnable: false
# core pattern to denote how the core file will be generated
# if left empty, JCNR pods will not overwrite the default pattern
corePattern: ""
# path for the core file; vrouter considers /var/crashes as default value if not specified
coreFilePath: /var/crash
# uio driver will be vfio-pci
vrouter_dpdk_uio_driver: "vfio-pci"