diff --git a/src/test/cord-api/Dockerfile.k8s-api-tester b/src/test/cord-api/Dockerfile.k8s-api-tester
new file mode 100644
index 0000000..ded5a5d
--- /dev/null
+++ b/src/test/cord-api/Dockerfile.k8s-api-tester
@@ -0,0 +1,50 @@
+
+# Copyright 2017-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.
+
+# Manual build example:
+# docker build -f Dockerfile.k8s-api-tester -t xos-api-tester:local .
+
+FROM ubuntu:16.04
+
+RUN apt-get update  && \
+    apt-get install -y python python-pip python-setuptools && \
+    pip install robotframework robotframework-requests pexpect \
+     robotframework-httplibrary robotframework-ride pygments pyyaml && \
+    pip install -U requests && rm -rf /var/lib/apt/lists/*
+
+RUN  mkdir -p /src/cord-api
+
+COPY . /src/cord-api
+
+WORKDIR /src/cord-api/Tests
+
+ARG org_label_schema_schema_version=1.0
+ARG org_label_schema_name=xos-api-tester
+ARG org_label_schema_version=unknown
+ARG org_label_schema_vcs_url=unknown
+ARG org_label_schema_vcs_ref=unknown
+ARG org_label_schema_build_date=unknown
+ARG org_opencord_vcs_commit_date=unknown
+
+LABEL org.label-schema.schema-version=$org_label_schema_schema_version \
+      org.label-schema.name=$org_label_schema_name \
+      org.label-schema.version=$org_label_schema_version \
+      org.label-schema.vcs-url=$org_label_schema_vcs_url \
+      org.label-schema.vcs-ref=$org_label_schema_vcs_ref \
+      org.label-schema.build-date=$org_label_schema_build_date \
+      org.opencord.vcs-commit-date=$org_opencord_vcs_commit_date
+
+ENTRYPOINT ["pybot", "-L", "TRACE", "-d", "Log", "-T"]
+CMD ["Ch_ServiceTest.txt"]
diff --git a/src/test/cord-api/Framework/restApi.py b/src/test/cord-api/Framework/restApi.py
index 6e21535..a11664f 100644
--- a/src/test/cord-api/Framework/restApi.py
+++ b/src/test/cord-api/Framework/restApi.py
@@ -36,8 +36,16 @@
         '''
         Get and return values from properties file
         '''
-        rawValue = self.rp.getValueProperties(key)
-        value = rawValue.replace("'","")
+        try:
+            rawValue = self.rp.getValueProperties(key)
+            value = rawValue.replace("'","")
+        except:
+            value = None
+
+        # Allow override from environment
+        if key in os.environ:
+            value = os.environ[key]
+
         return value
 
     def getURL(self, key):
diff --git a/src/test/cord-api/Properties/K8S_RestApiProperties.py b/src/test/cord-api/Properties/K8S_RestApiProperties.py
deleted file mode 100644
index f5084d4..0000000
--- a/src/test/cord-api/Properties/K8S_RestApiProperties.py
+++ /dev/null
@@ -1,60 +0,0 @@
-
-# Copyright 2017-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.
-
-
-#!/usr/bin/env python
-
-SERVER_IP = 'xos-chameleon'
-SERVER_PORT = '9101'
-USER = 'admin@opencord.org'
-PASSWD = 'letmein'
-VOLT_SUBSCRIBER = '/xosapi/v1/rcord/cordsubscriberroots'
-VOLT_TENANT = '/xosapi/v1/volt/voltserviceinstances'
-CH_CORE_SERVICELINK = '/xosapi/v1/core/serviceinstancelinks'
-TENANT_SUBSCRIBER = '/api/tenant/cord/subscriber/'
-TENANT_VOLT = '/api/tenant/cord/volt/'
-UTILS_SYNCHRONIZER = '/api/utility/synchronizer/'
-UTILS_LOGIN = '/api/utility/login/'
-CORE_USERS = '/api/core/users/'
-CH_CORE_USERS = '/xosapi/v1/core/users'
-CORE_SERVICES = '/api/core/services/'
-CH_CORE_SERVICES = '/xosapi/v1/core/services'
-CORE_INSTANCES = '/api/core/instances/'
-CH_CORE_INSTANCES = '/xosapi/v1/core/instances'
-CORE_DEPLOYMENTS = '/api/core/deployments/'
-CH_CORE_DEPLOYMENTS = '/xosapi/v1/core/deployments'
-CORE_SANITY_INSTANCES = '/api/core/instances/?no_hyperlinks=1'
-CORE_SANITY_SLICES = '/api/core/slices/?no_hyperlinks=1'
-CORE_SLICES = '/api/core/slices/'
-CH_CORE_SLICES = '/xosapi/v1/core/slices'
-CORE_SANITY_NODES = '/api/core/nodes/?no_hyperlinks=1'
-CORE_NODES = '/api/core/nodes/'
-CH_CORE_NODES = '/xosapi/v1/core/nodes'
-CORE_FLAVORS = '/api/core/flavors/'
-CH_CORE_FLAVORS = '/xosapi/v1/core/flavors'
-CORE_SITES = '/api/core/sites/'
-CH_CORE_SITES = '/xosapi/v1/core/sites'
-CORE_IMAGES = '/api/core/images/'
-CH_CORE_IMAGES = '/xosapi/v1/core/images'
-CORE_SITEDEPLOYMENTS = '/api/core/sitedeployments'
-CH_CORE_NETWORKS = '/xosapi/v1/core/networks'
-CH_CORE_SLICES = '/xosapi/v1/core/slices'
-CH_CORE_NETWORK_SLICES = '/xosapi/v1/core/networkslices'
-CH_CORE_PORTS = '/xosapi/v1/core/ports'
-CH_CORE_SERVICES = '/xosapi/v1/core/services'
-CH_CORE_SITEDEPLOYMENTS = '/xosapi/v1/core/sitedeployments'
-CH_CORE_NETWORK_TEMPLATES = '/xosapi/v1/core/networktemplates'
-VSG_TENANT = '/xosapi/v1/vsg/vsgserviceinstances'
-VSGHW_TENANT = '/xosapi/v1/vsg-hw/vsghwserviceinstances'
