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

apiVersion: apps/v1
kind: Deployment
metadata:
  name: ssh-server-deployment
  labels:
    app.kubernetes.io/name: camel-quarkus-examples-file-bindy-ftp
    app.kubernetes.io/version: 2.8.0
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/name: camel-quarkus-examples-file-bindy-ftp
      app.kubernetes.io/version: 2.8.0
  template:
    metadata:
      labels:
        app.kubernetes.io/name: camel-quarkus-examples-file-bindy-ftp
        app.kubernetes.io/version: 2.8.0
    spec:
      containers:
        - name: openssh-server
          # Use a simple SFTP server implementation based on Apache Mina SSHD. Purely for testing only, NOT for production use
          image: quay.io/jamesnetherton/sftp-server:0.1.0
          ports:
            - containerPort: 2222
          env:
            - name: FTP_USER
              valueFrom:
                secretKeyRef:
                  name: ftp-credentials
                  key: FTP_USER
            - name: FTP_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: ftp-credentials
                  key: FTP_PASSWORD
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app.kubernetes.io/name: camel-quarkus-examples-file-bindy-ftp
    app.kubernetes.io/version: 2.8.0
  name: ftp-server
spec:
  ports:
    - name: sftp
      port: 2222
      targetPort: 2222
  selector:
    app.kubernetes.io/name: camel-quarkus-examples-file-bindy-ftp
    app.kubernetes.io/version: 2.8.0
  type: ClusterIP
---
apiVersion: v1
data:
  FTP_PASSWORD: ZnRwcGFzc3dvcmQ=
  FTP_USER: ZnRwdXNlcg==
kind: Secret
metadata:
  labels:
    app.kubernetes.io/name: camel-quarkus-examples-file-bindy-ftp
    app.kubernetes.io/version: 2.8.0
  name: ftp-credentials
type: Opaque
---
