add terraform config for kubectl config file
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,3 +1,5 @@
|
|||||||
.idea/*
|
.idea/*
|
||||||
target
|
target
|
||||||
terraform/.terraform/*
|
terraform/.terraform/*
|
||||||
|
terraform/terraform.tfstate
|
||||||
|
terraform/kubeconfig*
|
||||||
33
Jenkinsfile
vendored
33
Jenkinsfile
vendored
@@ -6,10 +6,31 @@ pipeline {
|
|||||||
maven 'Maven'
|
maven 'Maven'
|
||||||
}
|
}
|
||||||
environment {
|
environment {
|
||||||
DOCKER_REPO_SERVER = '664574038682.dkr.ecr.eu-west-3.amazonaws.com'
|
AWS_ACCESS_KEY_ID = credentials('jenkins_aws_access_key_id')
|
||||||
DOCKER_REPO = "${DOCKER_REPO_SERVER}/java-maven-app"
|
AWS_SECRET_ACCESS_KEY = credentials('jenkins_aws_secret_access_key')
|
||||||
}
|
}
|
||||||
stages {
|
stages {
|
||||||
|
stage('provision cluster') {
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
dir('terraform') {
|
||||||
|
echo "creating ECR repository and EKS cluster"
|
||||||
|
sh "terraform init"
|
||||||
|
sh "terraform apply --auto-approve"
|
||||||
|
env.DOCKER_REPO_URL = sh(
|
||||||
|
script: "terraform output repo_url",
|
||||||
|
returnStdout: true
|
||||||
|
)
|
||||||
|
env.K8S_CLUSTER_URL = sh(
|
||||||
|
script: "terraform output cluster_url",
|
||||||
|
returnStdout: true
|
||||||
|
)
|
||||||
|
env.KUBECONFIG=kubeconfig.yaml
|
||||||
|
sh "kubectl get node"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
stage('increment version') {
|
stage('increment version') {
|
||||||
steps {
|
steps {
|
||||||
script {
|
script {
|
||||||
@@ -36,17 +57,15 @@ pipeline {
|
|||||||
script {
|
script {
|
||||||
echo "building the docker image..."
|
echo "building the docker image..."
|
||||||
withCredentials([usernamePassword(credentialsId: 'ecr-credentials', passwordVariable: 'PASS', usernameVariable: 'USER')]) {
|
withCredentials([usernamePassword(credentialsId: 'ecr-credentials', passwordVariable: 'PASS', usernameVariable: 'USER')]) {
|
||||||
sh "docker build -t ${DOCKER_REPO}:${IMAGE_NAME} ."
|
sh "docker build -t ${DOCKER_REPO_URL}:${IMAGE_NAME} ."
|
||||||
sh "echo $PASS | docker login -u $USER --password-stdin ${DOCKER_REPO_SERVER}"
|
sh "echo $PASS | docker login -u $USER --password-stdin ${DOCKER_REPO_URL}"
|
||||||
sh "docker push ${DOCKER_REPO}:${IMAGE_NAME}"
|
sh "docker push ${DOCKER_REPO_URL}:${IMAGE_NAME}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage('deploy') {
|
stage('deploy') {
|
||||||
environment {
|
environment {
|
||||||
AWS_ACCESS_KEY_ID = credentials('jenkins_aws_access_key_id')
|
|
||||||
AWS_SECRET_ACCESS_KEY = credentials('jenkins_aws_secret_access_key')
|
|
||||||
APP_NAME = 'java-maven-app'
|
APP_NAME = 'java-maven-app'
|
||||||
}
|
}
|
||||||
steps {
|
steps {
|
||||||
|
|||||||
@@ -41,3 +41,9 @@ module "eks" {
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
resource "local_file" "kube_config_file" {
|
||||||
|
content = module.eks.kubeconfig
|
||||||
|
filename = "kubeconfig.yaml"
|
||||||
|
file_permission = "400"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user