apiVersion: apps/v1
kind: Deployment
metadata:
name: wsi-product-deployment
namespace: skills
labels:
app: product
spec:
replicas: 2
selector:
matchLabels:
app: product
template:
metadata:
labels:
app: product
wsi: skills
spec:
containers:
- name: product-cnt
image: IMAGE
ports:
- containerPort: 8080
env:
- name: MYSQL_USER
valueFrom:
secretKeyRef:
name: db-credentials
key: MYSQL_USER
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
name: db-credentials
key: MYSQL_PASSWORD
- name: MYSQL_HOST
valueFrom:
secretKeyRef:
name: db-credentials
key: MYSQL_HOST
- name: MYSQL_PORT
valueFrom:
secretKeyRef:
name: db-credentials
key: MYSQL_PORT
- name: MYSQL_DBNAME
valueFrom:
secretKeyRef:
name: db-credentials
key: MYSQL_DBNAME
nodeSelector:
wsi/node: app
IMAGE_URL=$(aws ecr describe-repositories --repository-name wsi-product-ecr --query "repositories[].repositoryUri" --output text)
IMAGE_TAG=$(aws ecr describe-images --repository-name wsi-product-ecr --query "imageDetails[].imageTags" --output text)
IMAGE="$IMAGE_URL:$IMAGE_TAG"
sed -i "s|IMAGE|$IMAGE|g" deployment.yaml
kubectl apply -f deployment.yaml
apiVersion: v1
kind: Service
metadata:
name: wsi-product-service
namespace: skills
spec:
selector:
app: product
ports:
- protocol: TCP
port: 8080
targetPort: 8080
kubectl apply -f service.yaml