# Copyright 2020-2023 Open Networking Foundation (ONF) and the ONF Contributors
#
# 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: Service
metadata:
  name: bbsim-sadis-server
spec:
  ports:
    - name: http
      port: 58080
      targetPort: 8080
  selector:
    app: bbsim-sadis-server-dev
---
apiVersion: v1
kind: Pod
metadata:
  name: bbsim-sadis-server
  labels:
    app: bbsim-sadis-server-dev
spec:
  containers:
    - name: server
      image:  matteoscandolo/bbsim-sadis-server:master
      imagePullPolicy: "Always"
      command: [ "/app/bbsim-sadis-server" ]
      args: [
          "-kubeconfig", "/etc/kube/kube_config",
          "-log_level", "INFO",
          "-log_format", "console",
      ]
      env:
        - name: SLEEP_TIME
          value: 5s
      volumeMounts:
        - name: kube-config-volume
          mountPath: /etc/kube
  volumes:
    - name: kube-config-volume
      configMap:
        # Provide the name of the ConfigMap containing the files you want
        # to add to the container
        name: kube-config
  restartPolicy: Never
