| # Copyright 2019-present Open Networking Foundation |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| --- |
| {{- $root := . }} |
| apiVersion: v1 |
| data: |
| arouter.voltha.json: | |
| { |
| "servers": [ |
| { |
| "name": "grpc_command", |
| "port": 55555, |
| "address": "", |
| "type": "grpc", |
| "routers": [ |
| { |
| "_TODO": "Suport a router list, remove the package and service from the router", |
| "package": "voltha", |
| "service": "VolthaService", |
| "router": "vcore" |
| }, |
| { |
| "package": "afrouter", |
| "service": "Configuration", |
| "router": "local" |
| } |
| ] |
| } |
| ], |
| "routers": [ |
| { |
| "name": "vcore", |
| "package": "voltha", |
| "service": "VolthaService", |
| "proto_descriptor": "voltha.pb", |
| "routes": [ |
| { |
| "name": "dev_manager", |
| "proto_descriptor": "voltha.pb", |
| "type": "rpc_affinity_message", |
| "association": "round_robin", |
| "routing_field": "id", |
| "backend_cluster": "vcore", |
| "_COMMENT": "Methods here MUST be specified above, this overrides thier default beahvior", |
| "methods": [ |
| "CreateDevice", |
| "GetCoreInstance", |
| "EnableLogicalDevicePort", |
| "DisableLogicalDevicePort", |
| "EnableDevice", |
| "DisableDevice", |
| "RebootDevice", |
| "DeleteDevice", |
| "DownloadImage", |
| "CancelImageDownload", |
| "ActivateImageUpdate", |
| "RevertImageUpdate", |
| "UpdateDevicePmConfigs", |
| "CreateAlarmFilter", |
| "UpdateAlarmFilter", |
| "DeleteAlarmFilter", |
| "SelfTest" |
| ], |
| "nb_binding_methods": [ |
| "CreateDevice" |
| ], |
| "_TODO": "Overrides not implemented yet, config ignored", |
| "overrides": [ ] |
| }, |
| { |
| "name": "logger", |
| "proto_descriptor": "voltha.pb", |
| "type": "source", |
| "routing_field": "component_name", |
| "backend_cluster": "ro_vcore", |
| "methods": [ |
| "UpdateLogLevel", |
| "GetLogLevels" |
| ] |
| }, |
| { |
| "name": "read_only", |
| "type": "round_robin", |
| "association": "round_robin", |
| "backend_cluster": "ro_vcore", |
| "methods": [ |
| "ListDevicePorts", |
| "ListDevicePmConfigs", |
| "GetImages", |
| "GetImageDownloadStatus", |
| "GetImageDownload", |
| "ListImageDownloads", |
| "ListDeviceFlows", |
| "ListDeviceFlowGroups", |
| "ListLogicalDeviceFlows", |
| "ListLogicalDeviceFlowGroups", |
| "ListDevices", |
| "GetDevice", |
| "ListLogicalDevices", |
| "GetLogicalDevices", |
| "GetDeviceType", |
| "GetDeviceGroup", |
| "GetLogicalDevice", |
| "GetAlarmFilter", |
| "ListLogicalDevicePorts", |
| "GetLogicalDevicePort", |
| "ListAdapters", |
| "GetVoltha" |
| ] |
| }, |
| { |
| "name": "dev_manager_ofagent", |
| "type": "binding", |
| "_association": "round_robin", |
| "binding": { |
| "type": "header", |
| "field": "voltha_backend_name", |
| "method": "Subscribe", |
| "association": "round_robin" |
| }, |
| "backend_cluster": "vcore", |
| "methods": [ |
| "StreamPacketsOut", |
| "ReceivePacketsIn", |
| "ReceiveChangeEvents", |
| "Subscribe", |
| "UpdateLogicalDeviceFlowTable", |
| "UpdateLogicalDeviceFlowGroupTable", |
| "GetLogicalDevice", |
| "GetLogicalDevicePort", |
| "EnableLogicalDevicePort", |
| "DisableLogicalDevicePort", |
| "ListLogicalDevices", |
| "ListLogicalDeviceFlows", |
| "ListLogicalDeviceFlowGroups", |
| "ListLogicalDevicePorts", |
| "ListLogicalDeviceMeters", |
| "UpdateLogicalDeviceMeterTable" |
| ], |
| "_TODO": "Overrides not implemented yet, config ignored", |
| "overrides": [ ] |
| } |
| ] |
| }, |
| { |
| "name": "local", |
| "package": "afrouter", |
| "service": "Configuration", |
| "proto_descriptor": "voltha.pb", |
| "routes": [ |
| { |
| "name": "logger-local", |
| "proto_descriptor": "voltha.pb", |
| "type": "source", |
| "routing_field": "component_name", |
| "backend_cluster": "api_server", |
| "methods": [ |
| "UpdateLogLevel", |
| "GetLogLevels" |
| ] |
| } |
| ] |
| } |
| ], |
| "backend_clusters": [ |
| { |
| "name": "vcore", |
| "backends": [ |
| {{- /* |
| The conversion of the the recplicas.rw_core (number) to a string |
| and then back to an int is a work-a-round required for helm |
| v.2.15. It is currently considered a regression bug in helm |
| (https://github.com/helm/helm/issues/6708). The need for this |
| work-a-round should be re-checked against helm occationally and |
| removed if no longer needed. |
| */ -}} |
| {{- range $i, $e := until (int (toString .Values.replicas.rw_core)) }} |
| {{- $cluster := add1 $i }} |
| { |
| "name": "vcore{{ $cluster }}", |
| "type": "active_active", |
| "association": { |
| "strategy": "serial_number", |
| "location": "header", |
| "_TODO": "The key below needs to be implemented, currently hard coded", |
| "key": "voltha_serial_number" |
| }, |
| "connections": [ |
| { |
| "name": "vcore{{ $cluster }}1", |
| "addr": "voltha-rw-core-{{ $cluster }}1.{{ $root.Release.Namespace }}.svc.cluster.local", |
| "port": "50057" |
| }, |
| { |
| "name": "vcore{{ $cluster }}2", |
| "addr": "voltha-rw-core-{{ $cluster }}2.{{ $root.Release.Namespace }}.svc.cluster.local", |
| "port": "50057" |
| } |
| ] |
| {{- /* |
| The conversion of the the recplicas.rw_core (number) to a string |
| and then back to an int is a work-a-round required for helm |
| v.2.15. It is currently considered a regression bug in helm |
| (https://github.com/helm/helm/issues/6708). The need for this |
| work-a-round should be re-checked against helm occationally and |
| removed if no longer needed. |
| */ -}} |
| }{{ if lt $cluster (int (toString $root.Values.replicas.rw_core)) }},{{ end }} |
| {{- end}} |
| ] |
| }, |
| { |
| "name": "ro_vcore", |
| "backends": [ |
| {{- /* |
| The conversion of the the recplicas.rw_core (number) to a string |
| and then back to an int is a work-a-round required for helm |
| v.2.15. It is currently considered a regression bug in helm |
| (https://github.com/helm/helm/issues/6708). The need for this |
| work-a-round should be re-checked against helm occationally and |
| removed if no longer needed. |
| */ -}} |
| {{- range $core_idx, $e := until (int (toString .Values.replicas.rw_core)) }} |
| { |
| "name": "ro_vcore{{ $core_idx }}", |
| "type": "server", |
| "connections": [ |
| { |
| "name": "ro_vcore{{ $core_idx }}1", |
| "addr": "voltha-ro-core-{{ $core_idx }}.voltha-ro-core.{{ $root.Release.Namespace }}.svc.cluster.local", |
| "port": "50057" |
| } |
| ] |
| {{- /* |
| The conversion of the the recplicas.rw_core (number) to a string |
| and then back to an int is a work-a-round required for helm |
| v.2.15. It is currently considered a regression bug in helm |
| (https://github.com/helm/helm/issues/6708). The need for this |
| work-a-round should be re-checked against helm occationally and |
| removed if no longer needed. |
| */ -}} |
| }{{ if lt (add1 $core_idx) (int (toString $root.Values.replicas.rw_core)) }},{{ end }} |
| {{- end}} |
| ] |
| }, |
| { |
| "_COMMENT": "This allows api-server to route to its own configuration api endpoint", |
| "name": "api_server", |
| "backends": [ |
| { |
| "name": "api_server0", |
| "type": "server", |
| "connections": [ |
| { |
| "name": "api_server01", |
| "addr": "localhost", |
| "port": "55554" |
| } |
| ] |
| } |
| ] |
| } |
| ], |
| "api": { |
| "_comment": "If this isn't defined then no api is available for dynamic configuration and queries", |
| "address": "", |
| "port": 55554 |
| } |
| } |
| |
| kind: ConfigMap |
| metadata: |
| name: afrouter-config |
| serviceAccountName: {{ .Values.serviceaccount }} |