Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Customize JCNR Helm Chart for Azure Deployment

SUMMARY Read this topic to learn about the deployment configuration available for the Juniper Cloud-Native Router when deployed on Microsoft Azure Cloud Platform.

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 Attributes and Descriptions

Customize the helm charts using the Juniper_Cloud_Native_Router_release-number/helmchart/values.yaml file. The configuration keys of the heml chart are shown in the table below.

Table 1: Helm Chart Attributes and Descriptions
Key Additional Key Configuration Description
registry   Defines the docker registry where the vRouter, cRPD and jcnr-cni container images are hosted. The default value is enterprise-hub.juniper.net.
repository   (Optional) Defines the repository path for the vRouter, cRPD and jcnr-cni container images. This is a global key and takes precedence over "repository" paths under "common" section. The default value is jcnr-container-prod/.
imagePullSecret   (Optional) Defines the registry authentication credentials. You can configure credentials to either the Juniper repository or your private registry.
  registryCredentials Base64 representation of your Docker registry credentials. View the Configure Repository Credentials topic for more information.
  secretName Name of the Secret object that will be created.
common   Defines repository paths and tags for the vRouter, cRPD and jcnr-cni container images.
  repository Defines the repository path. The default value is atom-docker/cn2/bazel-build/dev/. 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 JCNR release version.
replicas (Optional) Indicates the number of replicas for cRPD. If the value is not specified, then the default value 1 is considered.

The value for this key must be specified for multi-node clusters and must match the number of nodes to which JCNR must be deployed.

storageClass

Not applicable for Azure deployments.

awsregion   Not applicable for Azure deployments.
noLocalSwitching Not applicable for Azure deployments.
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.

For example:

  # L3  only
  - eth1:
      ddp: "off"                 
  - eth2:
      ddp: "off"                
  subnet Not applicable for Azure deployments.
  ddp

Not applicable for Azure deployments.

  interface_mode Not applicable for Azure deployments.
  vlan-id-list

Not applicable for Azure deployments.

  storm-control-profile

Not applicable for Azure deployments.

  native-vlan-id Not applicable for Azure deployments.
  no-local-switching Not applicable for Azure deployments.
fabricWorkloadInterface Not applicable for Azure deployments.
log_level Defines the log severity. Available value options are: DEBUG, INFO, WARN, and ERR.
Note:

Leave the log_level set to INFO unless instructed to change it by Juniper support.

log_path

The defined directory stores various JCNR related descriptive logs such as contrail-vrouter-agent.log, contrail-vrouter-dpdk.log, etc.

syslog_notifications

Indicates the absolute path to the file that stores syslog-ng generated notifications in JSON format.

corePattern

Indicates the core pattern to denote how the core file is generated. If this configuration is left blank, then JCNR pods will not overwrite the default pattern.

Note:

Set the corePattern value on host before deploying JCNR. You may change the value in /etc/sysctl.conf. For example, kernel.core_pattern=/var/crash/core_%e_%p_%i_%s_%h_%t.gz

coreFilePath Indicates the path for the core file. If the value is left blank, then vRouter considers /var/crashes as the default value.
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 "key1=jcnr". You must apply this label to each node where JCNR must be deployed:

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 cni path with a path of used by your distribution e.g. /var/opt/cni/bin.
grpcTelemetryPort

(Optional) Enter a value for this parameter to override cRPD telemetry gRPC server default port of 50051.

grpcVrouterPort (Optional) Enter a value for this parameter to override vRouter gRPC server default port of 50052.
restoreInterfaces Set the value of this key to true to restore the interfaces back to their original state in case the vRouter pod crashes or restarts.
vRouterDeployerPort   (Optional) Default value is 8081. Configure to override if the default port is unavailable.
bondInterfaceConfigs Not applicable for Azure deployments.
mtu Maximum Transmission Unit (MTU) value for all physical interfaces (VFs and PFs). Default value is 9000.
cpu_core_mask

Indicates the vRouter forward core mask. If qos is enabled, you will need to allocate 4 CPU cores (primary and siblings).

stormControlProfiles Not applicable for Azure deployments.

dpdkCommandAdditionalArgs

Pass any additional dpdk cmd line parameters. The --yield_option 0 is set by default and it implies the dpdk forwarding cores will not yield the cpu cores it is assigned to. Additional common parameters that can be added are tx and rx descriptors and mempool. For example:

dpdkCommandAdditionalArgs: "--yield_option 0 --dpdk_txd_sz 2048 --dpdk_rxd_sz 2048 --vr_mempool_sz 131072"
ddp Not applicable for Azure deployments.
qosEnable

Set to false for Azure deployments.

vrouter_dpdk_uio_driver The uio driver is uio_hv_generic.

agentModeType

Can be dpdk or xdp. Setting agentModeType to dpdk will bringup dpdk datapath. Setting agentModeType to xdp uses ebpf. The default value is dpdk.

fabricRpfCheckDisable

Set this flag to false to enable the RPF check on all the fabric interfaces of the JNCR. By default RPF check is disabled.

persistConfig

Set this flag to true if you wish jcnr-cni generated pod configuration to persist even after uninstallation. The option must be set only for L2 mode. The default value is false.

Helm Chart for Azure Deployment

A working L3 only helm chart sample is shown below. The configured sections are highlighted in bold: