[CI] Add stating environment #6
					 5 changed files with 85 additions and 12 deletions
				
			
		
							
								
								
									
										57
									
								
								.drone.yml
									
									
									
									
									
								
							
							
						
						
									
										57
									
								
								.drone.yml
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -57,6 +57,44 @@ steps:
 | 
			
		|||
depends_on:
 | 
			
		||||
- unit tests
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
kind: pipeline
 | 
			
		||||
name: staging
 | 
			
		||||
 | 
			
		||||
steps:
 | 
			
		||||
- name: deploy
 | 
			
		||||
  image: sinlead/drone-kubectl
 | 
			
		||||
  settings:
 | 
			
		||||
    kubernetes_server:
 | 
			
		||||
      from_secret: kubectl_uri
 | 
			
		||||
    kubernetes_cert:
 | 
			
		||||
      from_secret: kubectl_cert
 | 
			
		||||
    kubernetes_token:
 | 
			
		||||
      from_secret: kubectl_token
 | 
			
		||||
  environment:
 | 
			
		||||
    IMAGE_TAG: ${DRONE_COMMIT_SHA:0:8}
 | 
			
		||||
    NAMESPACE: beer
 | 
			
		||||
    LEVEL: staging
 | 
			
		||||
  commands:
 | 
			
		||||
  - echo "== pre deploy ($${LEVEL}) status:"
 | 
			
		||||
  - kubectl get pods --namespace=beer
 | 
			
		||||
  - kubectl get deployments --namespace=beer
 | 
			
		||||
  - sed "s/__LEVEL__/$${LEVEL}/g" kube/beer-deployment.yaml > kube/beer-deployment-$${LEVEL}.yaml
 | 
			
		||||
  - sed "s/__NAMESPACE__/$${NAMESPACE}/g" kube/beer-deployment-$${LEVEL}.yaml > kube/beer-deployment-$${NAMESPACE}-$${LEVEL}.yaml
 | 
			
		||||
  - sed "s/__IMAGE_TAG__/$${IMAGE_TAG}/g" kube/beer-deployment-$${NAMESPACE}-$${LEVEL}.yaml > kube/beer-deployment-$${NAMESPACE}-$${LEVEL}2.yaml
 | 
			
		||||
  - echo "applying"
 | 
			
		||||
  - kubectl apply -f kube/beer-deployment-$${NAMESPACE}-$${LEVEL}2.yaml --namespace=beer
 | 
			
		||||
  - echo "== post deploy ($${LEVEL}) status:"
 | 
			
		||||
  - kubectl get deployments --namespace=beer
 | 
			
		||||
  - kubectl get pods --namespace=beer
 | 
			
		||||
  when:
 | 
			
		||||
    branch:
 | 
			
		||||
      exclude:
 | 
			
		||||
      - master
 | 
			
		||||
 | 
			
		||||
depends_on:
 | 
			
		||||
- build
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
kind: pipeline
 | 
			
		||||
name: deploy
 | 
			
		||||
| 
						 | 
				
			
			@ -74,22 +112,23 @@ steps:
 | 
			
		|||
  environment:
 | 
			
		||||
    IMAGE_TAG: ${DRONE_COMMIT_SHA:0:8}
 | 
			
		||||
    NAMESPACE: beer
 | 
			
		||||
    LEVEL: prod
 | 
			
		||||
  commands:
 | 
			
		||||
  - echo "== pre deploy status:"
 | 
			
		||||
  - echo "== pre deploy ($${LEVEL}) status:"
 | 
			
		||||
  - kubectl get pods --namespace=beer
 | 
			
		||||
  - kubectl get deployments --namespace=beer
 | 
			
		||||
  - sed "s/__NAMESPACE__/$${NAMESPACE}/g" kube/beer-deployment.yaml > kube/beer-deployment-prod.yaml
 | 
			
		||||
  - sed "s/__IMAGE_TAG__/$${IMAGE_TAG}/g" kube/beer-deployment-prod.yaml > kube/beer-deployment-prod2.yaml
 | 
			
		||||
  - sed "s/__LEVEL__/$${LEVEL}/g" kube/beer-deployment.yaml > kube/beer-deployment-$${LEVEL}.yaml
 | 
			
		||||
  - sed "s/__NAMESPACE__/$${NAMESPACE}/g" kube/beer-deployment-$${LEVEL}.yaml > kube/beer-deployment-$${NAMESPACE}-$${LEVEL}.yaml
 | 
			
		||||
  - sed "s/__IMAGE_TAG__/$${IMAGE_TAG}/g" kube/beer-deployment-$${NAMESPACE}-$${LEVEL}.yaml > kube/beer-deployment-$${NAMESPACE}-$${LEVEL}2.yaml
 | 
			
		||||
  - echo "applying"
 | 
			
		||||
  - kubectl apply -f kube/beer-deployment-prod2.yaml --namespace=beer
 | 
			
		||||
  - echo "== post deploy status:"
 | 
			
		||||
  - kubectl apply -f kube/beer-deployment-$${NAMESPACE}-$${LEVEL}2.yaml --namespace=beer
 | 
			
		||||
  - echo "== post deploy ($${LEVEL}) status:"
 | 
			
		||||
  - kubectl get deployments --namespace=beer
 | 
			
		||||
  - kubectl get pods --namespace=beer
 | 
			
		||||
 | 
			
		||||
depends_on:
 | 
			
		||||
- build
 | 
			
		||||
 | 
			
		||||
  when:
 | 
			
		||||
    branch:
 | 
			
		||||
      include:
 | 
			
		||||
      - master
 | 
			
		||||
 | 
			
		||||
depends_on:
 | 
			
		||||
- build
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,17 +2,19 @@
 | 
			
		|||
apiVersion: apps/v1
 | 
			
		||||
kind: Deployment
 | 
			
		||||
metadata:
 | 
			
		||||
  name: beer-deployment
 | 
			
		||||
  name: beer-deployment-__LEVEL__
 | 
			
		||||
  namespace: __NAMESPACE__
 | 
			
		||||
spec:
 | 
			
		||||
  selector:
 | 
			
		||||
    matchLabels:
 | 
			
		||||
      app: beer
 | 
			
		||||
      level: __LEVEL__
 | 
			
		||||
  replicas: 1
 | 
			
		||||
  template:
 | 
			
		||||
    metadata:
 | 
			
		||||
      labels:
 | 
			
		||||
        app: beer
 | 
			
		||||
        level: __LEVEL__
 | 
			
		||||
    spec:
 | 
			
		||||
      containers:
 | 
			
		||||
      - name: beer
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,10 +3,11 @@ apiVersion: v1
 | 
			
		|||
kind: Service
 | 
			
		||||
metadata:
 | 
			
		||||
  name: beer
 | 
			
		||||
  namespace: beer
 | 
			
		||||
  namespace: __NAMESPACE__
 | 
			
		||||
spec:
 | 
			
		||||
  selector:
 | 
			
		||||
    app: beer
 | 
			
		||||
    level: __LEVEL__
 | 
			
		||||
  ports:
 | 
			
		||||
    - protocol: TCP
 | 
			
		||||
      port: 80
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										17
									
								
								kube/staging/beer-ingress.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								kube/staging/beer-ingress.yaml
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,17 @@
 | 
			
		|||
---
 | 
			
		||||
apiVersion: networking.k8s.io/v1beta1
 | 
			
		||||
kind: Ingress
 | 
			
		||||
metadata:
 | 
			
		||||
  name: beer-ingress-staging
 | 
			
		||||
  namespace: beer
 | 
			
		||||
  annotations:
 | 
			
		||||
    nginx.ingress.kubernetes.io/rewrite-target: /
 | 
			
		||||
spec:
 | 
			
		||||
  rules:
 | 
			
		||||
  - host: staging.beer.k3s.kleph.eu
 | 
			
		||||
    http:
 | 
			
		||||
      paths:
 | 
			
		||||
      - path: /
 | 
			
		||||
        backend:
 | 
			
		||||
          serviceName: beer-staging
 | 
			
		||||
          servicePort: 80
 | 
			
		||||
							
								
								
									
										14
									
								
								kube/staging/beer-service.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								kube/staging/beer-service.yaml
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,14 @@
 | 
			
		|||
---
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: Service
 | 
			
		||||
metadata:
 | 
			
		||||
  name: beer-staging
 | 
			
		||||
  namespace: __NAMESPACE__
 | 
			
		||||
spec:
 | 
			
		||||
  selector:
 | 
			
		||||
    app: beer
 | 
			
		||||
    level: __LEVEL__
 | 
			
		||||
  ports:
 | 
			
		||||
    - protocol: TCP
 | 
			
		||||
      port: 80
 | 
			
		||||
      targetPort: 5000
 | 
			
		||||
		Loading…
	
		Reference in a new issue