Добавление рабочих узлов в кластер с помощью задания Jenkins - PullRequest
0 голосов
/ 07 ноября 2019

https://github.com/spicysomtam/jenkins-deploy-eks-via-terraform

Файл Jenkins используется для создания EKS. Как автоматизировать добавление рабочих узлов в кластер в одном и том же задании Jenkins

stage('Terraform init and Plan eks') {
         if (params.action  == 'create') {


            dir("infra/terraform/eks") {

                script {
                    withCredentials([[$class: 'AmazonWebServicesCredentialsBinding', 
                    credentialsId: awsCredentialsId,
                    accessKeyVariable: 'AWS_ACCESS_KEY_ID',  
                    secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']]) {

                    sh """
                        export TF_CLI_ARGS_init='-backend-config="bucket=${awsS3}"'
                        terraform init -reconfigure
                        terraform workspace new ${plan} || true
                        terraform workspace select ${plan}
                        terraform plan   -out=${plan}   -var-file=${WORKSPACE}/environments/tf.tfvars
                        terraform apply ${plan}

                        terraform output config_map_aws_auth > ./config_map_aws_auth.yaml

                    """
                   }
                }
            }

            }
        }


 stage('add worker nodes'){
    def k8sImage = docker.image('pahud/eks-kubectl-docker')
    k8sImage.inside('-u 0:0') {
        withCredentials([[$class: 'AmazonWebServicesCredentialsBinding',
                          credentialsId: eksCredentialsId,
                          accessKeyVariable: 'AWS_ACCESS_KEY_ID',
                          secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']]) {
            sh 'AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID} AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY} AWS_DEFAULT_REGION=us-west-2  CLUSTER_NAME=my-eksctl'
            sh 'aws eks --region us-west-2 update-kubeconfig --name my-eksctl'
            sh 'kubectl apply -f config_map_aws_auth.yaml'
        }
    }

}

Как сохранить выходные данные terraform config_map_aws_auth> ./config_map_aws_auth.yaml

, чтобы на следующем этапе я мог выполнить команду kubectl, например, так: sh 'kubectl apply -f config_map_aws_auth.yaml'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...