# Idface server with ingress.
The following is an example of a idface-server Deployment. It creates a Deployment, Service and Ingress.
```
---
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
name: idface-server-deployment
spec:
selector:
matchLabels:
app: idface-server
replicas: 1 # tells deployment to run 2 pods matching the template
template:
metadata:
labels:
app: idface-server
spec:
containers:
- name: idface-server
image: 367672406076.dkr.ecr.eu-central-1.amazonaws.com/facesdk/idface-server:1.13.0
ports:
- containerPort: 8080
env:
- name: "S3_TOKEN"
value: "*************************"
- name: "S3_SECRET"
value: "************************************"
- name: "S3_REGION"
value: "us-east-1"
- name: "S3_BUCKET"
value: "myawesomebucket"
- name: "S3_PATH"
value: "idface-server"
- name: "LOGSTASH_HOST"
value: "elk.example.org"
- name: "LOGSTASH_PORT"
value: "5959"
- name: "SERVER_ALLOW_CORS"
value: "true"
---
apiVersion: v1
kind: Service
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"name":"idface-server-deployment","namespace":"default"},"spec":{"ports":[{"nodePort":31502,"port":8080,"protocol":"TCP","targetPort":8080}],"selector":{"app":"idface-server"},"sessionAffinity":"None","type":"LoadBalancer"}}
creationTimestamp: null
finalizers:
- service.kubernetes.io/load-balancer-cleanup
name: idface-server
selfLink: /api/v1/namespaces/default/services/idface-server-deployment
spec:
externalTrafficPolicy: Cluster
ports:
- nodePort: 31502
port: 8080
protocol: TCP
targetPort: 8080
selector:
app: idface-server
sessionAffinity: None
type: LoadBalancer
status:
loadBalancer: {}
--- ###### Ingress configuration #######
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: idface-server-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: idface-server-example.idrnd.net
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: idface-server
port:
number: 8080
```
Apply it:
```
kubectl apply -f idface-server-deployment.yml -n idface-server
```
After that you can access idface-server endpoint using Service:
```
#kubectl get svc -n idface-server
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
idface-server LoadBalancer 172.20.55.109 a306ce489931845e78315a29b56a740d-1569925746.us-west-1.elb.amazonaws.com 8080:31502/TCP 19m
# Test it:
#curl a306ce489931845e78315a29b56a740d-1569925746.us-west-1.elb.amazonaws.com:8080/api_version
{"product":"IDFace-Server","version":"1.13.0"}%
```
And using Ingress:
```
#kubectl get ing -n idface-server
NAME CLASS HOSTS ADDRESS PORTS AGE
idface-server-ingress <none> idface-server-example.idrnd.net a27b30748c9144b55a1861ba451f74f1-518158292.us-west-1.elb.amazonaws.com 80 36s
# Test it:
# curl -H "Host: idface-server-example.idrnd.net" a27b30748c9144b55a1861ba451f74f1-518158292.us-west-1.elb.amazonaws.com/api_version
{"product":"IDFace-Server","version":"1.13.0"}%
```