# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You 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.

{{- if eq .Values.deployment "full" }}
apiVersion: apps/v1
kind: Deployment
metadata:
  name: jobmanager
spec:
  selector:
    matchLabels:
      app: jobmanager
  replicas: 1
  template:
    metadata:
      labels:
        app: jobmanager
    spec:
      containers:
        - name: jobmanager
          image: fogsyio/flink:{{ .Values.external.flinkVersion }}
          imagePullPolicy: {{ .Values.pullPolicy }}
          args: ["jobmanager"]
          ports:
            - containerPort: 8081
              name: webui
            - containerPort: 6123
              name: rpc
            - containerPort: 6124
              name: blob-server
          env:
            - name: JOB_MANAGER_RPC_ADDRESS
              value: jobmanager
{{- end }}
