blob: 1b57d5dabbe86e01a6fd4accd3a35f9b9d743cde [file] [log] [blame]
# 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 }}