#
# 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.16.0
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/name: camel-quarkus-examples-file-bindy-ftp
      app.kubernetes.io/version: 2.16.0
  template:
    metadata:
      labels:
        app.kubernetes.io/name: camel-quarkus-examples-file-bindy-ftp
        app.kubernetes.io/version: 2.16.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.2.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.16.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.16.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.16.0
  name: ftp-credentials
type: Opaque
---
