-
Notifications
You must be signed in to change notification settings - Fork 0
/
Jenkinsfile
70 lines (68 loc) · 2.56 KB
/
Jenkinsfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/usr/bin/env groovy
pipeline {
agent any
environment {
AWS_ACCESS_KEY_ID = credentials('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = credentials('AWS_SECRET_ACCESS_KEY')
AWS_DEFAULT_REGION = "us-east-1"
NAMESPACE = "id-gen"
NAMESPACE1 = "sock-shop"
NAMESPACE2 = "monitoring"
}
stages {
// stage("Configure aws cli") {
// steps {
// script {
// dir('.') {
// sh "aws configure set aws_access_key_id "$AWS_ACCESS_KEY_ID" && aws configure set aws_secret_access_key "$AWS_SECRET_ACCESS_KEY" && aws configure set region "$AWS_DEFAULT_REGION" && aws configure set output "text""
// }
// }
// }
// }
stage("Create an EKS Cluster") {
steps {
script {
dir('terraform') {
sh "terraform init"
sh "terraform apply -auto-approve"
}
}
}
}
stage("Deploy app") {
steps {
script{
dir('miniapp/kubernetes') {
sh "aws eks update-kubeconfig --name devops-cluster --region us-east-1"
sh "kubectl get namespace $NAMESPACE || kubectl create namespace $NAMESPACE"
sh "kubectl apply -f mongo-configmap.yaml"
sh "kubectl apply -f mongo-secret.yaml"
sh "kubectl apply -f mongodb.yaml"
sh "kubectl apply -f idgen.yaml"
}
}
}
}
stage("Deploy sock monitoring") {
steps {
script{
dir('microservices-demo/') {
sh "kubectl create -f ./deploy/kubernetes/manifests-monitoring"
}
}
}
}
stage("Deploy sock app") {
steps {
script{
dir('microservices-demo/deploy/kubernetes') {
sh "kubectl get namespace $NAMESPACE1 || kubectl create namespace $NAMESPACE1"
sh "kubectl get namespace $NAMESPACE2 || kubectl create namespace $NAMESPACE2"
sh "kubectl apply -f complete-demo.yaml"
sh "kubectl apply -f ingresser.yaml"
}
}
}
}
}
}