---
# 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: extensions/v1beta1
kind: Deployment
metadata:
  name: xos-gui
  labels:
    {{- include "xos-core.release_labels" . | indent 4 }}
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: xos-gui
    spec:
      containers:
        - name: xos-gui
          image: {{ .Values.xos_guiImage | quote }}
          imagePullPolicy: {{ .Values.imagePullPolicy }}
          ports:
            - containerPort: 4000
              port: 4000
              protocol: TCP
          volumeMounts:
            - name: style-config
              mountPath: /var/www/dist/style.config.js
              subPath: style/style.config.js
            - name: app-config
              mountPath: /var/www/dist/app.config.js
              subPath: app/app.config.js
            - name: extensions-volume
              mountPath: /var/www/dist/extensions
      volumes:
        - name: style-config
          configMap:
            name: gui-style-config
            items:
              - key: config
                path: style/style.config.js
        - name: app-config
          configMap:
            name: gui-app-config
            items:
              - key: config
                path: app/app.config.js
        - name: extensions-volume
          emptyDir: {}
