Add k8s ingress and metallb features

- enable ingress-nginx and metallb features
  for the configurations:
  - cookiecutter-context-k8s-sl
  - cookied-cicd-k8s-genie
  - cookied-bm-k8s-contrail

- add 'external' network on cfg, ctl, cmp and prx nodes

- enable DHCP in 'external' network for auto configuration
  of the external interfaces

- get the status of the ingress and metallb features from
  the salt pillar instead of environment variables to
  run the tests on the existing deployments

Related-Task: PROD-22687
Closes-Bug: PROD-24580

Change-Id: Ifee60814718abc604008af5e2058a6db1bf92d6d
diff --git a/tcp_tests/managers/sl_manager.py b/tcp_tests/managers/sl_manager.py
index 3bb0a1f..f3ccef8 100644
--- a/tcp_tests/managers/sl_manager.py
+++ b/tcp_tests/managers/sl_manager.py
@@ -41,7 +41,6 @@
     def install(self, commands, label='Install SL services'):
         self.execute_commands(commands, label=label)
         self.__config.stack_light.stacklight_installed = True
-        self.__config.stack_light.sl_vip_host = self.get_sl_vip()
 
     def get_sl_vip(self):
         tgt = 'I@prometheus:server:enabled:True'
@@ -76,6 +75,7 @@
     @property
     def api(self):
         if self._p_client is None:
+            self.__config.stack_light.sl_vip_host = self.get_sl_vip()
             self._p_client = prometheus_client.PrometheusClient(
                 host=self.__config.stack_light.sl_vip_host,
                 port=self.__config.stack_light.sl_prometheus_port,