# 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.

apiVersion: v1
kind: Pod
metadata:
  name: "{{ .Release.Name }}-api-test"
  annotations:
    "helm.sh/hook": test-success
spec:
  containers:
  - name: {{ .Release.Name }}-api-test
    image: {{ .Values.images.api_tester.repository }}:{{ .Values.images.api_tester.tag }}
    imagePullPolicy: {{ .Values.images.api_tester.pullPolicy }}
    env:
      - name: SERVER_IP
        value: 'xos-chameleon'
      - name: SERVER_PORT
        value: '9101'
      - name: USER
        value: '{{ .Values.xosAdminUser }}'
      - name: PASSWD
        value: '{{ .Values.xosAdminPassword }}'
    command: [ "pybot", "-L", "TRACE", "-d", "Log", "-T", "Ch_DeploymentTest.txt", "Ch_SiteTest.txt", "Ch_UsersTest.txt", "Ch_SliceTest.txt", "Ch_ServiceTest.txt" ]
  restartPolicy: Never
