blob: 566ce68192bc8b6180a1b42e88e8feda932c9da1 [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.
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"
}
]
}
],
"routers": [
{
"name": "vcore",
"package": "voltha",
"service": "VolthaService",
"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": [
{
"methods": [
"abc",
"def"
],
"routing_field": "id"
},
{
"methods": [
"ghi",
"jkl"
]
},
{
"method": "mno",
"routing_field": "id"
},
{
"method": "pqr"
}
]
},
{
"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"
]
},
{
"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"
],
"_TODO": "Overrides not implemented yet, config ignored",
"overrides": [
{
"methods": [
"abc",
"def"
],
"routing_field": "id"
},
{
"methods": [
"ghi",
"jkl"
]
},
{
"method": "mno",
"routing_field": "id"
},
{
"method": "pqr"
}
]
}
]
}
],
"backend_clusters": [
{
"name": "vcore",
"backends": [
{
"name": "vcore1",
"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": "vcore11",
"addr": "",
"port": ""
},
{
"name": "vcore12",
"addr": "",
"port": ""
}
]
},
{
"name": "vcore2",
"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": "vcore21",
"addr": "",
"port": ""
},
{
"name": "vcore22",
"addr": "",
"port": ""
}
]
},
{
"name": "vcore3",
"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": "vcore31",
"addr": "",
"port": ""
},
{
"name": "vcore32",
"addr": "",
"port": ""
}
]
}
]
},
{
"name": "ro_vcore",
"backends": [
{
"name": "ro_vcore1",
"type": "server",
"connections": [
{
"name": "ro_vcore11",
"addr": "",
"port": ""
}
]
},
{
"name": "ro_vcore2",
"type": "server",
"connections": [
{
"name": "ro_vcore21",
"addr": "",
"port": ""
}
]
},
{
"name": "ro_vcore3",
"type": "server",
"connections": [
{
"name": "ro_vcore31",
"addr": "",
"port": ""
}
]
}
]
}
],
"api": {
"_comment": "If this isn't defined then no api is available for dynamic configuration and queries",
"address": "",
"port": 55554
}
}
voltha-envoy-config.json: |
{
"listeners": [
{
"address": "tcp://0.0.0.0:8192",
"filters": [
{
"type": "read",
"name": "http_connection_manager",
"config": {
"codec_type": "http1",
"stat_prefix": "ingress_http1",
"access_log": [
{
"path": "/envoy/voltha_access1_log.log"
}
],
"route_config": {
"virtual_hosts": [
{
"name": "backend3",
"domains": [
"*"
],
"routes": [
{
"timeout_ms": 0,
"prefix": "/voltha.VolthaGlobalService/CreateDevice",
"cluster": "voltha-grpc"
},
{
"timeout_ms": 0,
"prefix": "/voltha.VolthaGlobalService",
"cluster": "voltha-grpc"
},
{
"timeout_ms": 0,
"prefix": "/voltha.HealthService",
"cluster": "voltha-grpc"
},
{
"timeout_ms": 0,
"prefix": "/voltha.",
"cluster": "voltha-grpc"
},
{
"timeout_ms": 0,
"prefix": "/schema.SchemaService",
"cluster": "voltha-grpc"
}
]
}
]
},
"filters": [
{
"type": "both",
"name": "grpc_json_transcoder",
"config": {
"proto_descriptor": "/envoy/voltha.pb",
"services": [
"voltha.VolthaService",
"voltha.HealthService",
"schema.SchemaService"
],
"print_options": {
"add_whitespace": false,
"always_print_primitive_fields": true,
"always_print_enums_as_ints": false,
"preserve_proto_field_names": true
}
}
},
{
"type": "decoder",
"name": "router",
"config": {}
}
]
}
}
]
},
{
"address": "tcp://0.0.0.0:50555",
"filters": [
{
"type": "read",
"name": "http_connection_manager",
"config": {
"codec_type": "http2",
"stat_prefix": "ingress_http2",
"access_log": [
{
"path": "/envoy/voltha_access2_log.log"
}
],
"route_config": {
"virtual_hosts": [
{
"name": "backend",
"domains": [
"*"
],
"routes": [
{
"timeout_ms": 0,
"prefix": "/voltha.VolthaGlobalService/CreateDevice",
"cluster": "voltha-grpc"
},
{
"timeout_ms": 0,
"prefix": "/voltha.VolthaGlobalService",
"cluster": "voltha-grpc"
},
{
"timeout_ms": 0,
"prefix": "/voltha.HealthService",
"cluster": "voltha-grpc"
},
{
"timeout_ms": 0,
"prefix": "/voltha.",
"cluster": "voltha-grpc"
},
{
"timeout_ms": 0,
"prefix": "/schema.SchemaService",
"cluster": "voltha-grpc"
}
]
}
]
},
"filters": [
{
"type": "decoder",
"name": "router",
"config": {}
}
]
}
}
]
}
],
"admin": {
"access_log_path": "/envoy/access.log",
"address": "tcp://0.0.0.0:8001"
},
"cluster_manager": {
"clusters": [
{
"name": "voltha-grpc",
"connect_timeout_ms": 250,
"type": "static",
"lb_type": "round_robin",
"features": "http2",
"hosts": [
{
"url": "tcp://127.0.0.1:55555"
}
]
}
]
}
}
kind: ConfigMap
metadata:
name: afrouter-config
namespace: voltha