error loading config file “****”: no kind “Config” is registered for version “apps/v1” in scheme “k8s.io/client-go/tools/clientcmd/api/latest/latest.go:50”

原始使用kubernetesDeploy

在这里插入图片描述

stage('部署到dev环境') {
            agent none
            steps {
                kubernetesDeploy(configs: 'deploy/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID")
            }
        }

在这里插入图片描述
部署报错error loading config file “****”: no kind “Config” is registered for version “apps/v1” in scheme “k8s.io/client-go/tools/clientcmd/api/latest/latest.go:50”

现修改为shell

一、添加凭证
在这里插入图片描述

env.KUBECONFIG_CREDENTIAL_ID为凭证
environment { KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig' }

二、添加嵌套步骤

cat deploy/deploy.yml | envsubst '${REGISTRY},${ALIYUNHUB_NAMESPACE},${BUILD_NUMBER}' > deploy/deploy2.yml

将尚医通开源项目中deploy.yml中变量替换为当前变量

  stage('部署到dev环境') {
      agent none
      steps {
        container('nodejs') {
          withCredentials([kubeconfigFile(credentialsId : env.KUBECONFIG_CREDENTIAL_ID ,variable : 'KUBECONFIG' )]) {
            sh 'cat deploy/deploy.yml | envsubst \'${REGISTRY},${ALIYUNHUB_NAMESPACE},${BUILD_NUMBER}\' > deploy/deploy2.yml'
            sh 'cat deploy/deploy2.yml'
            sh '''kubectl delete -f deploy/deploy.yml 
kubectl apply -f deploy/deploy2.yml'''
          }

        }

      }
    }

完整前端pipeline

pipeline {
  agent {
    node {
      label 'nodejs'
    }

  }
  stages {
    stage('拉取代码') {
      agent none
      steps {
        container('nodejs') {
          git(url: 'https://gitee.com/leifengyang/yygh-admin.git', credentialsId: 'gitee-id', branch: 'master', changelog: true, poll: false)
          sh 'ls -al'
        }

      }
    }

    stage('项目编译') {
      agent none
      steps {
        container('nodejs') {
          sh 'npm i node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/'
          sh 'npm install --registry=https://registry.npm.taobao.org'
          sh 'npm run build'
          sh 'ls'
        }

      }
    }

    stage('构建镜像') {
      agent none
      steps {
        container('nodejs') {
          sh 'ls'
          sh 'docker build -t yygh-admin:latest -f Dockerfile  .'
        }

      }
    }

    stage('推送镜像') {
      agent none
      steps {
        container('nodejs') {
          withCredentials([usernamePassword(credentialsId : 'docker-registry' ,usernameVariable : 'DOCKER_USER_VAR' ,passwordVariable : 'DOCKER_PWD_VAR' ,)]) {
            sh 'echo "$DOCKER_PWD_VAR" | docker login $REGISTRY -u "$DOCKER_USER_VAR" --password-stdin'
            sh 'docker tag yygh-admin:latest $REGISTRY/$DOCKERHUB_NAMESPACE/yygh-admin:SNAPSHOT-$BUILD_NUMBER'
            sh 'docker push  $REGISTRY/$DOCKERHUB_NAMESPACE/yygh-admin:SNAPSHOT-$BUILD_NUMBER'
          }

        }

      }
    }

    stage('部署到dev环境') {
      agent none
      steps {
        container('nodejs') {
          withCredentials([kubeconfigFile(credentialsId : env.KUBECONFIG_CREDENTIAL_ID ,variable : 'KUBECONFIG' )]) {
            sh 'cat deploy/deploy.yml | envsubst \'${REGISTRY},${ALIYUNHUB_NAMESPACE},${BUILD_NUMBER}\' > deploy/deploy2.yml'
#将码云deploy中的deploy.yml中镜像变量替换
           sh 'cat deploy/deploy2.yml'
            sh '''kubectl delete -f deploy/deploy.yml 
kubectl apply -f deploy/deploy2.yml'''
          }

        }

      }
    }

    stage('发送确认邮件') {
      agent none
      steps {
       mail(to: 'xxx@189.cn', subject: 'yygh-admin构建结果', body: "yygh-admin构建成功了  $BUILD_NUMBER")
      }
    }

  }
  environment {
    DOCKER_CREDENTIAL_ID = 'dockerhub-id'
    #阿里云容器镜像凭证
    GITHUB_CREDENTIAL_ID = 'github-id'
    #码云凭证
    KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig'
    #kubeconfig凭证
    REGISTRY = 'registry.cn-hangzhou.aliyuncs.com'
    #阿里云容器镜像地址
    DOCKERHUB_NAMESPACE = 'zytcpt'
    ALIYUNHUB_NAMESPACE = 'zytcpt'
    #阿里云容器镜像命名空间
  }
}

在这里插入图片描述

邮件配置

在 kubesphere-devops-system项目中修改devops-jenkins
编辑YAML
在这里插入图片描述

EMAIL_FROM_PASS填写授权码而不是密码

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐