# 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
