Customize Cloud-Native Router Helm Chart for Azure Deployment
You can deploy and operate Juniper Cloud-Native Router in L3 mode on Azure. You configure
the deployment mode by editing the appropriate attributes in the values.yaml
file prior to deployment.
Helm Chart Description for Azure Deployment
Customize the Helm chart using the Juniper_Cloud_Native_Router_<release>/helmchart/jcnr/values.yaml file. We provide a copy of the default values.yaml in Cloud-Native Router Default Helm Chart.
Table 1 contains a description of the configurable attributes in values.yaml for an Azure deployment.
Key | Description | ||||||
---|---|---|---|---|---|---|---|
global | |||||||
installSyslog | Set to true to install syslog-ng. | ||||||
registry | Defines the Docker registry for the Cloud-Native Router container
images. The default value is
enterprise-hub.juniper.net . The images provided
in the tarball are tagged with the default registry name. If you
choose to host the container images to a private registry, replace
the default value with your registry URL. |
||||||
repository | (Optional) Defines the repository path for the Cloud-Native
Router container images. This is a global key that takes precedence
over the repository paths under the
common section. Default is
jcnr-container-prod/ . |
||||||
imagePullSecret | (Optional) Defines the Docker registry authentication credentials. You can configure credentials to either the Juniper Networks enterprise-hub.juniper.net registry or your private registry. | ||||||
registryCredentials | Base64 representation of your Docker registry credentials. See Configure Repository Credentials for more information. | ||||||
secretName | Name of the secret object that will be created. | ||||||
common | Defines repository paths and tags for the Cloud-Native Router container images. Use defaults unless using a private registry. | ||||||
repository | Defines the repository path. The default value is
jcnr-container-prod/ . The global repository key
takes precedence if defined. |
||||||
tag | Defines the image tag. The default value is configured to the appropriate tag number for the Cloud-Native Router release version. | ||||||
readinessCheck |
Set to true to enable Cloud-Native Router Readiness preflight and postflight checks during installation. Comment this out or set to false to disable Cloud-Native Router Readiness preflight and postflight checks. Preflight checks verify that your infrastructure can support JCNR. Preflight checks take place before Cloud-Native Router is installed. Postflight checks verify that your Cloud-Native Router installation is working properly. Postflight checks take place after Cloud-Native Router is installed. |
||||||
replicas | (Optional) Indicates the number of replicas for cRPD. Default is 1. The value for this key must be specified for multi-node clusters. The value is equal to the number of nodes running JCNR. | ||||||
noLocalSwitching | Not applicable. | ||||||
iamRole | Not applicable. | ||||||
fabricInterface |
Provide a list of interfaces to be bound to the DPDK. Note:
Use the L3 only section to configure fabric interfaces for
Azure. The L2 only and L2-L3 sections are not applicable for
Azure deployments. Do not configure
For example: # L3 only - eth1: ddp: "off" - eth2: ddp: "off" See Cloud-Native Router Interfaces Overview for more information. |
||||||
subnet | Not applicable. | ||||||
ddp | Not applicable. | ||||||
interface_mode | Not applicable. | ||||||
vlan-id-list | Not applicable. | ||||||
storm-control-profile | Not applicable. | ||||||
native-vlan-id | Not applicable. | ||||||
no-local-switching | Not applicable. | ||||||
qosSchedulerProfileName |
Specifies the QoS scheduler profile applicable to this interface.
See the If you don't specify a profile, then the QoS scheduler is disabled for this interface, which means that packets are scheduled with no regard to traffic class. |
||||||
fabricWorkloadInterface | Not applicable. | ||||||
log_level | Defines the log severity. Available value options are: DEBUG,
INFO, WARN, and ERR. Note:
Leave it set to the default INFO unless instructed to change it by Juniper Networks support. |
||||||
log_path |
The defined directory stores various JCNR-related descriptive logs such as contrail-vrouter-agent.log, contrail-vrouter-dpdk.log, etc. Default is /var/log/jcnr/. |
||||||
syslog_notifications |
Indicates the absolute path to the file that stores
|
||||||
corePattern |
Indicates the Note:
Set the |
||||||
coreFilePath | Indicates the path to the core file. Default is
/var/crash. |
||||||
nodeAffinity |
(Optional) Defines labels on nodes to determine where to place the vRouter pods. By default the vRouter pods are deployed to all nodes of a cluster. In the example below, the node affinity label is defined as
nodeAffinity: - key: key1 operator: In values: - jcnr Note:
This key is a global setting. |
||||||
key | Key-value pair that represents a node label that must be matched to apply the node affinity. | ||||||
operator | Defines the relationship between the node label and the set of values in the matchExpression parameters in the pod specification. This value can be In, NotIn, Exists, DoesNotExist, Lt, or Gt. | ||||||
cni_bin_dir | (Optional) The default path is /opt/cni/bin. You can override the default path with the path in your distribution (for example, /var/opt/cni/bin). | ||||||
grpcTelemetryPort |
(Optional) Enter a value for this parameter to override cRPD telemetry gRPC server default port of 50053. |
||||||
grpcVrouterPort | (Optional) Default is 50052. Configure to override. | ||||||
vRouterDeployerPort | (Optional) Default is 8081. Configure to override. | ||||||
jcnr-vrouter | |||||||
cpu_core_mask |
If present, this indicates that you want to use static CPU allocation to allocate cores to the forwarding plane. This value should be a comma-delimited list of isolated CPU cores
that you want to statically allocate to the forwarding plane
(for example, Comment this out if you want to use Kubernetes CPU Manager to allocate cores to the forwarding plane. Note:
You cannot use static CPU allocation and Kubernetes CPU Manager at the same time. Cloud-Native Router Readiness preflight checks, if enabled, will fail the installation if you specify both. |
||||||
guaranteedVrouterCpus |
If present, this indicates that you want to use the Kubernetes CPU Manager to allocate CPU cores to the forwarding plane. This value should be the number of guaranteed CPU cores that you want the Kubernetes CPU Manager to allocate to the forwarding plane. You should set this value to at least one more than the number of forwarding cores. Comment this out if you want to use static CPU allocation to allocate cores to the forwarding plane. Note:
You cannot use static CPU allocation and Kubernetes CPU Manager at the same time. Using both can lead to unpredictable behavior. |
||||||
dpdkCtrlThreadMask |
Specifies the CPU core(s) to allocate to vRouter DPDK control
threads when using static CPU allocation. This list should be a
subset of the cores listed in CPU cores listed in Comment this out if you want to use Kubernetes CPU Manager to allocate cores to the forwarding plane. |
||||||
serviceCoreMask |
Specifies the CPU core(s) to allocate to vRouter DPDK service
threads when using static CPU allocation. This list should be a
subset of the cores listed in CPU cores listed in Comment this out if you want to use Kubernetes CPU Manager to allocate cores to the forwarding plane. |
||||||
numServiceCtrlThreadCPU |
Specifies the number of CPU cores to allocate to vRouter DPDK service/control traffic when using the Kubernetes CPU Manager. This number should be smaller than the number of
Comment this out if you want to use static CPU allocation to allocate cores to the forwarding plane. |
||||||
numberOfSchedulerLcores | The number of CPU cores that you want Kubernetes CPU Manager to dedicate to your QoS schedulers. Comment this out if you want to use static CPU allocation to allocate cores to the forwarding plane. | ||||||
restoreInterfaces | Set to true to restore the interfaces back to their original state in case the vRouter pod crashes or restarts or if Cloud-Native Router is uninstalled. | ||||||
bondInterfaceConfigs | Not applicable. | ||||||
mtu | Maximum Transmission Unit (MTU) value for all physical interfaces (VFs and PFs). Default is 9000. | ||||||
qosSchedulerProfiles | Defines the QoS scheduler profiles that are referenced from the
fabricInterface section. |
||||||
sched_profile_1 | The name of the QoS scheduler profile. | ||||||
|
|||||||
stormControlProfiles | Not applicable. | ||||||
dpdkCommandAdditionalArgs |
Pass any additional DPDK command line parameters. The
dpdkCommandAdditionalArgs: "--yield_option 0 --dpdk_txd_sz 2048 --dpdk_rxd_sz 2048 --vr_mempool_sz 131072" Note:
Changing the number of See Configure Huge Pages for information on how to configure huge pages. |
||||||
dpdk_monitoring_thread_config | (Optional) Enables a monitoring thread for the vRouter DPDK
container. Every loggingInterval seconds, a log
containing the information indicated by loggingMask
is generated. |
||||||
loggingMask | Specifies the information to be generated. Represented by a
bitmask with bit positions as follows:
|
||||||
loggingInterval | Specifies the log generation interval in seconds. | ||||||
ddp | Not applicable. | ||||||
twampPort |
(Optional) The TWAMP session reflector port (if you want TWAMP sessions to use vRouter timestamps). The vRouter listens to TWAMP test messages on this port and inserts/overwrites timestamps in TWAMP test messages. Timestamping TWAMP messages at the vRouter (instead of at cRPD) leads to more accurate measurements. Valid values are 862 and 49152 through 65535. If this parameter is absent, then the vRouter does not insert or overwrite timestamps in the TWAMP session. Timestamps are taken and inserted by cRPD instead. |
||||||
vrouter_dpdk_uio_driver | The uio driver is uio_hv_generic . |
||||||
agentModeType |
Set to dpdk. |
||||||
fabricRpfCheckDisable | Set to false to enable the RPF check on all Cloud-Native Router fabric interfaces. By default, RPF check is disabled. | ||||||
telemetry |
(Optional) Configures cRPD telemetry settings. To learn more about telemetry, see Telemetry Capabilities . |
||||||
disable |
Set to true to disable cRPD telemetry. Default is false, which means that cRPD telemetry is enabled by default. |
||||||
metricsPort |
The port that the cRPD telemetry exporter is listening to Prometheus queries on. Default is 8072. |
||||||
logLevel |
One of warn, warning, info, debug, trace, or verbose. Default is info. |
||||||
gnmi |
(Optional) Configures cRPD gNMI settings. |
||||||
|
|||||||
vrouter | |||||||
telemetry |
(Optional) Configures vRouter telemetry settings. To learn more about telemetry, see Telemetry Capabilities . |
||||||
|
|||||||
|
|||||||
|
|||||||
persistConfig | Set to true if you want Cloud-Native Router pod configuration to persist even after uninstallation. This option can only be set for L2 mode deployments. Default is false. | ||||||
enableLocalPersistence | Set to true if you're using the cRPD CLI or NETCONF to configure JCNR. When set to true, the cRPD CLI and NETCONF configuration persists through node reboots, cRPD pod restarts, and Cloud-Native Router upgrades. Default is false. | ||||||
interfaceBoundType | Not applicable. | ||||||
networkDetails | Not applicable. | ||||||
networkResources | Not applicable. | ||||||
contrail-tools | |||||||
install | Set to true to install contrail-tools (used for debugging). |