ベアメタルサーバーのJCNR Helmチャートのカスタマイズ
ベアメタルサーバー上のL2、L3、またはL2-L3モードでJuniper Cloud-Native Routerを導入して運用できます。配置モードを設定するには、配置前にファイル内の values.yaml
適切な属性を編集します。
-
fabricInterface
ファイルのキーvalues.yaml
で:-
すべてのインターフェイス
interface_mode
にキーが設定されている場合、導入モードはL2になります。 -
1つ以上のインターフェイスに
interface_mode
キーが設定されていて、残りのインターフェイスにはキーが設定されinterface_mode
ていない場合、導入モードはL2-L3になります。 -
どのインターフェイスにもキーが設定されていない場合
interface_mode
、導入モードはL3になります。
-
Helm チャートの属性と説明
Juniper_Cloud_Native_Router_release-number/helmchart/values.yaml
。helm チャートの構成キーを次の表に示します。
キー | 追加キー構成 | の説明 |
---|---|---|
レジストリ | vRouter、cRPD、jcnr-cniコンテナイメージのDockerレジストリを定義します。デフォルト値 enterprise-hub.juniper.net は です。tarball で提供されるイメージは、既定のレジストリ名でタグ付けされます。コンテナー イメージをプライベート レジストリにホストする場合は、既定値をレジストリ URL に置き換えます。 |
|
リポジトリ | (オプション)vRouter、cRPD、jcnr-cniコンテナイメージのリポジトリパスを定義します。これはグローバルキーであり、「共通」セクションの下の「リポジトリ」パスよりも優先されます。デフォルト値 jcnr-container-prod/ は です。 |
|
imagePullSecret | (オプション)レジストリ認証資格情報を定義します。資格情報は、ジュニパーリポジトリまたはプライベートレジストリのいずれかに設定できます。 | |
レジストリ資格情報 | Docker レジストリの資格情報の Base64 表現。詳細については、「 リポジトリ資格情報の構成」 トピックを参照してください。 | |
シークレット名 | 作成されるシークレット オブジェクトの名前。 | |
共通 | vRouter、cRPD、jcnr-cniコンテナイメージの返信パスとタグを定義します。プライベート・レジストリーを使用しない限り、デフォルトを使用します。 | |
リポジトリ | リポジトリ パスを定義します。デフォルト値 atom-docker/cn2/bazel-build/dev/ は です。定義されている場合は、グローバルリポジトリキーが優先されます。 |
|
タグ | イメージ タグを定義します。デフォルト値は、JCNR リリース・バージョンの適切なタグ番号に設定されます。 | |
レプリカ | (オプション)cRPDのレプリカの数を示します。値が指定されていない場合は、デフォルト値の 1 が考慮されます。このキーの値は、マルチノードクラスターに対して指定する必要があります。この値は、JCNR をデプロイする必要があるノードの数と等しくなければなりません。 | |
ストレージクラス | クラウド以外の展開には適用されません。 | |
AWSリージョン | EKS 以外の展開には適用されません。 | |
いいえローカルスイッチング | (オプション)ブリッジ ドメイン内のインターフェイスがイーサネット フレーム コピーを送受信できないようにします。VLAN ID に属するインターフェイスが相互にフレームを送信しないように、1 つ以上のカンマ区切り VLAN ID を入力します。このキーは、L2 および L2-L3 導入に固有のものです。このキーを有効にすると、すべてのアクセス インターフェイスで機能が提供されます。トランク インターフェイスで機能を有効にするには、ファブリック インターフェイス キーで 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 # L3 only - eth1: 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)設定を示します。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 ステートメントが設定されている場合、インターフェイスが互いに直接通信することを防止します。使用できる値は真または偽です。 | |
ファブリックワークロードインターフェイス | (オプション)異なるワークロードを接続するインターフェイスを定義します。ソフトウェアベースまたはハードウェアベースのインターフェイスにすることができます。 | |
log_level | ログの重大度を定義します。使用可能な値のオプションは、DEBUG、INFO、WARN、ERR です。
メモ:
log_levelは、ジュニパーサポートから変更の指示がない限り、デフォルトのINFOのままにしておきます。 |
|
log_path | 定義されたディレクトリには、contrail-vrouter-agent.log、contrail-vrouter-dpdk.logなど、JCNRに関連するさまざまな記述ログが格納されます。デフォルト値は /var/log/jcnr/ です。 |
|
syslog_notifications | syslog-ng で生成された通知を JSON 形式で格納するファイルへの絶対パスを示します。デフォルト値は /var/log/jcnr/jcnr_notifications.json です。 |
|
ノードアフィニティ | (オプション)ノードのラベルを定義して、vRouter ポッドを配置する場所を決定します。 デフォルトでは、vRouter ポッドはクラスターのすべてのワーカーノードにデプロイされます。 次の例では、ノード アフィニティ ラベルは "key1=jcnr" として定義されています。このラベルは、JCNR をデプロイする必要がある各ノードに適用する必要があります。 nodeAffinity: - key: key1 operator: In values: - jcnr
メモ:
このキーはグローバル設定です。 |
|
キー | ノード アフィニティを適用するために一致する必要があるノード ラベルを表すキーと値のペア。 | |
演算子 | ノード ラベルとポッド仕様の matchExpression パラメーターの値のセットとの関係を定義します。この値は、In、NotIn、Exists、DoesNotExist、Lt、または gt にすることができます。 | |
cni_bin_dir | (オプション)デフォルトのパスは /opt/cni/bin です。デフォルトの cni パスをディストリビューション内のパスで上書きできます (例: /var/opt/cni/bin)。 | |
grpcTelemetryPort | (オプション)このパラメーターの値を入力して、cRPD テレメトリ gRPC サーバーの既定のポートである 50051 をオーバーライドします。 |
|
grpcVrouterPort | (オプション)このパラメーターの値を入力して、vRouter gRPC サーバーのデフォルト ポートである 50052 を上書きします。 | |
vRouterDeployerPort | (オプション)デフォルト値は 8081 です。デフォルトポートが使用できない場合に上書きするように設定します。 | |
復元インターフェイス | このキーの値を true に設定すると、vRouter ポッドがクラッシュまたは再起動した場合にインターフェイスが元の状態に戻ります。 | |
bondInterfaceConfigs | (オプション)L2またはL2-L3展開に対してのみボンドインターフェイス設定を有効にします。 | |
名前 | ボンドインターフェイスの名前。 | |
モード | 既定値は 1 (Active_Backup) です。 | |
スレーブインターフェイス | 集約するファブリック インターフェイス。 | |
Mtu | すべての物理インターフェイス(VFおよびPF)の最大送信単位(MTU)値。デフォルト値は 9000 です。 | |
cpu_core_mask | vRouter フォワード コア マスクを示します。QoS が有効になっている場合は、4 つの CPU コア (プライマリと兄弟) を割り当てる必要があります。 |
|
ストームコントロールプロファイル | ファブリックインターフェイス上のBUMトラフィックのレート制限プロファイルをバイト/秒で設定します。 | |
Ddp | (オプション)グローバル動的デバイスパーソナライゼーション(DDP)構成を示します。DDPは、GTPU、SCTPなどのトラフィックに対してNICでデータパスを最適化します。ボンドインターフェイスの場合、DDP設定を有効にするには、すべてのスレーブインターフェイスNICがDDPをサポートしている必要があります。 設定オプションには、自動、オン、またはオフが含まれます。デフォルト設定はオフです。
メモ:
インターフェイスレベル |
|
qosEnable | QoS を有効または無効にするには、true または false に設定します。
メモ:
QoS はインテル X710 NIC ではサポートされていません。 |
|
コアパターン | コア ファイルの生成方法を示すコア パターンを示します。この設定を空白のままにすると、JCNR ポッドはデフォルトパターンを上書きしません。
メモ:
JCNR を展開する前に、ホストで corePattern 値を設定します。の値は |
|
コアファイルパス | コア ファイルのパスを示します。値を空白のままにすると、vRouter は /var/crashs をデフォルト値と見なします。 | |
vrouter_dpdk_uio_driver | uio ドライバーは vfio-pci です。 |
Helm チャートのサンプル
L2のみの展開のHelmチャート
動作するL2のみのヘルムチャートのサンプルを以下に示します。設定されたセクションは 太字で強調表示されています。
#################################################################### # 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 #- key: kubernetes.io/hostname # operator: In # values: # - example-host-1 # 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"
L3のみの展開のHelmチャート
動作するL3のみのヘルムチャートのサンプルを以下に示します。設定されたセクションは 太字で強調表示されています。
#################################################################### # 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 #- key: kubernetes.io/hostname # operator: In # values: # - example-host-1 # 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"
L2-L3導入のHelmチャート
動作するL2-L3ヘルムチャートのサンプルを以下に示します。設定されたセクションは 太字で強調表示されています。
#################################################################### # 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 #- key: kubernetes.io/hostname # operator: In # values: # - example-host-1 # 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"