Cloud-Native Router Default Helm Chart
Default Helm Chart
This is the Cloud-Native Router release 26.2 default Helm chart values.yaml from the Juniper Networks Software Download site.
Note:
This is not a working sample. Customize it for your deployment.
####################################################################
# Common Configuration (global vars) #
####################################################################
global:
installSyslog: true
# uncomment below to set jcnrDeploymentMode to singlePod; in this mode all jcnr components
# (vRouter, cRPD, config-controller, syslog-ng, contrail-tools, etc) will be
# deployed in a single pod
#jcnrDeploymentMode: singlePod
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: path/to/allimages/
# 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: regcred
#Specific to kubevirt deployments and kubevirt must me installed in the cluster
#kubevirt:
#repository: atom-docker/cn2/
#tag: v1
contrail-tools:
#set contrail-tools.install explicitly (no default). Example:
install: true
common:
vrouter:
repository: jcnr-container-prod/
tag: R26.2-160
crpd:
repository: jcnr-container-prod/
tag: 26.2R1.3
jcnrcni:
repository: jcnr-container-prod/
tag: 26.2-20260529-0596187
telemetryExporter:
repository: jcnr-container-prod/
tag: R26.2-160
tools:
repository: jcnr-container-prod/
tag: R26.2-160
jcnrinit:
repository: jcnr-container-prod/
tag: R26.2-160
readinessChecks:
repository: jcnr-container-prod/
tag: R26.2-160
syslog:
repository: jcnr-container-prod/
tag: v6
# Set true/false to Enable or Disable readiness checks (Pre / Post Flight tasks)
# Pre-requisite - A configMap in the default namespace with the final deployer manifests
# Enable only for DPDK deployments
readinessCheck: true
# 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"
# Set AWS IAM Role for EKS PAYG deployments
#iamrole: arn:aws:iam::298183613488:role/jcnr-payg-metering-role
# 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]
# native-vlan-id: 100
#- eth2:
# ddp: "auto" # ddp parameter is optional; options include auto or on or off; default: off
# interface_mode: trunk
# vlan-id-list: [700]
# native-vlan-id: 100
#- 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]
# #native-vlan-id: 100
#########################
# L3 only
#- eth1:
# ddp: "off" # ddp parameter is optional; options include auto or on or off; default: off
# qosSchedulerProfileName: "sched_profile_1"
#- eth2:
# ddp: "off" # ddp parameter is optional; options include auto or on or off; default: off
# qosSchedulerProfileName: "sched_profile_1"
########################
# L2L3
#- eth1:
# ddp: "auto" # ddp parameter is optional; options include auto or on or off; default: off
# qosSchedulerProfileName: "sched_profile_1"
#- 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]
# native-vlan-id: 100
##################################
# 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
# qosSchedulerProfileName: "sched_profile_1"
#- 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
# qosSchedulerProfileName: "sched_profile_1"
##################################
# fabricWorkloadInterface section is applicable only for OAM interfaces
#
#fabricWorkloadInterface:
#- enp59s0f1v0:
# ddp: "off"
#########################
# 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"
# core pattern to denote how the core file will be generated
# if left empty, JCNR pods will not overwrite the default pattern
#corePattern: "core.%e.%h.%t"
# path for the core file; vrouter considers /var/crash as default value
#coreFilePath: /var/crash
# 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
# Toleration allows the jcnr related pods to tolerate nodes with specific taints
#tolerations:
#- key: "jcnr"
# operator: "Equal"
# value: "yes"
# effect: "NoSchedule"
# 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 50053
#grpcTelemetryPort: 50053
# grpcVrouterPort: use this parameter to override vRouter gRPC server default port of 50052
#grpcVrouterPort: 50060
# agentRestServerPort: use this parameter to override vRouter agent REST server default port of 9091.
# Recommended range [9091-9100] to avoid conflict with other services; default port is 9091
#agentRestServerPort: 9095
# dpdkHealthCheckPort: use this parameter to override vRouter DPDK health check default port of 9092
# Recommended range [9091-9100] to avoid conflict with other services; default port is 9092
#dpdkHealthCheckPort: 9096
# vRouterDeployerPort: use this parameter to override vRouter deployer port default port of 8081
#vRouterDeployerPort: 8082
jcnr-vrouter:
# do not configure cpu_core_mask if you wish to use Kubernetes CPU manager static policy (pod with Guaranteed QoS) for vRouter DPDK
# cpu_core_mask is the vRouter forward core mask i.e. if specified, vRouter will be run using the mentioned cores
cpu_core_mask: "2,3,22,23"
# configure guaranteedVrouterCpus if you wish to use CPU manager static policy (pod with Guaranteed QoS) for vRouter DPDK
# or can be used to assign cpu using cpu pooler in single pod deployment
#guaranteedVrouterCpus: 4
# configurable parameter for dpdk control threads
#dpdkCtrlThreadMask: "2,3"
# configurable parameter for service core mask
#serviceCoreMask: "2,3"
# no of cpus to be assigned to service and control threads if serviceCoreMask, dpdkCtrlThreadMask and cpuCoreMask are not provided
#numServiceCtrlThreadCPU: 1
# Set no of cores to be used for schedulerLcores if CPU is not provided in the QOS scheduler profile
#numberOfSchedulerLcores: 2
# 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"
# primaryInterface: "enp59s0f0v0"
# slaveNetworkDetails: # This section only applies, when network attachment definition is used as the input
# - name: srif0net0
# namespace: default
# MTU for all physical interfaces( all VF’s and PF’s)
mtu: "9000"
# define the QoS scheduler profiles for fabric interfaces
#qosSchedulerProfiles:
# sched_profile_1:
# bandwidth: 10 #Gbps
# sched_profile_2:
# cpu: 14
# bandwidth: 25 #Gbps
dpdkCommandAdditionalArgs: "--yield_option 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"
# Hugepage size for DPDK vrouter. Values can be 1G or 2MB
# Default is 1G
#hugepage_sz: "1G"
# Set TWAMP port for vrouter dpdk, allowed ports 862, 49152 – 65535
#twampPort: 862
# uio driver will be vfio-pci or uio_pci_generic. For azure, the driver is uio_hv_generic
vrouter_dpdk_uio_driver: "vfio-pci"
# agentModeType will be dpdk or xdp. set agentModeType dpdk will bringup dpdk datapath. set agentModeType to xdp to use ebpf.
agentModeType: 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
#fabricRpfCheckDisable: false
#telemetry:
# disable: false
# metricsPort: 8072
# logLevel: info #Possible options: warn, warning, info, debug, trace, or verbose
# gnmi:
# enable: true
# port: 8076
#vrouter:
# telemetry:
# metricsPort: 8070
# logLevel: info #Possible options: warn, warning, info, debug, trace, or verbose
# gnmi:
# enable: true
# port: 8075
# persistConfig: set this flag to true if you wish jcnr-operator generated pod configuration to persist even after uninstallation
# use this option only in case of l2 mode
# default value is false if not specied
# to enable persist config
#persistConfig: true
# enableLocalPersistence: set this flag to true if you wish to persist the configuration which is pushed through CLI or netConf.
# enableLocalPersistence: true retains configurations locally, even after node restart and JCNR upgrade
#enableLocalPersistence: false
# terminationGracePeriodSeconds sets the timeout for vrouter to clean up and bind/unbind drivers
# default terminationGracePeriodSeconds is 60 seconds
#terminationGracePeriodSeconds: 90
################### jcnr-operator/windriver/rhocp section ###################
# Interface bound type (0 - unbound interface, 1 - sriov pre-bound interface)
# For WRCP/RHOCP deployment with pre-bound interface please set the field (interfaceBoundType: 1)
#interfaceBoundType: 1
# NetworkDetails - list of network attachment definition
#networkDetails:
# - ddp: "off" # ddp parameter is optional; options include on or off; default: off
# name: srif0net0 # network attachment definition name
# namespace: default # namespace name where the network attachment definition is created
# type: fabric # can be fabric or workload type of interface, default is fabric
# interface_mode: trunk
# vlan-id-list: [100, 200, 300, 700-705]
# native-vlan-id: 100
# - ddp: "on"
# name: srif1net1
# namespace: default
# type: fabric
# interface_mode: trunk
# vlan-id-list: [100, 200, 300, 700-705]
# native-vlan-id: 100
# NetworkDeviceResources
#networkResources:
# limits:
# intel.com/pci_sriov_net_datanet0: "1"
# intel.com/pci_sriov_net_datanet1: "1"
# requests:
# intel.com/pci_sriov_net_datanet0: "1"
# intel.com/pci_sriov_net_datanet1: "1"
#
################### SinglePod JCNR mode section ###################
# To run JCNR in singlePod mode, uncomment jcnrDeploymentMode: singlePod in the global section above.
# NetworkDetails - list of network attachment definition
#networkDetails:
# - name: sriovifnet1 # network attachment definition name
# namespace: default # namespace name where the network attachment definition is created
# type: fabric # fabric or workload, default is fabric (workload type is specifically for OAM interface and it should be a VF)
# - name: sriovifnet2 # network attachment definition name
# namespace: default # namespace name where the network attachment definition is created
# type: fabric # fabric or workload, default is fabric (workload type is specifically for OAM interface and it should be a VF)
# - name: hostdevnet1 # network attachment definition name
# namespace: default # namespace name where the network attachment definition is created
# type: fabric # fabric (should not be workload type as that is specifically for OAM interface)
#Limits and requests should be defined based on the number of SR-IOV VFs used in the network attachment definitions.
# NetworkDeviceResources
#networkResources:
# limits:
# intel.com/intel_sriov_netdevice: "2"
# requests:
# intel.com/intel_sriov_netdevice: "2"
#
#ports that need to be expose as a service for single pod deployment
#default service creation is disabled and will not be created until enableService flag is set to true
enableService: false
service:
type: NodePort
labels: {}
annotations: {}
clusterIP: ""
externalIPs: []
# Only use if service.type is "LoadBalancer"
loadBalancerIP: ""
# Ports to expose on each node
# Only used if service.type is "NodePort"
nodePort:
crpdMetricsPort: 30070
vrouterMetricsPort: 30072
agentIntrospectPort: 30085
#crpdGnmiPort: 30077
#vrouterGnmiPort: 30079