add terraform config for kubectl config file

This commit is contained in:
Nana Janashia
2020-12-20 14:31:29 +01:00
parent 6566e1b821
commit 165bd326cb
3 changed files with 35 additions and 8 deletions

2
.gitignore vendored
View File

@@ -1,3 +1,5 @@
.idea/* .idea/*
target target
terraform/.terraform/* terraform/.terraform/*
terraform/terraform.tfstate
terraform/kubeconfig*

33
Jenkinsfile vendored
View File

@@ -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 {

View File

@@ -41,3 +41,9 @@ module "eks" {
} }
] ]
} }
resource "local_file" "kube_config_file" {
content = module.eks.kubeconfig
filename = "kubeconfig.yaml"
file_permission = "400"
}