Kubesphere devops镜像部署报error loading config file “****“: no kind “Config“ is registered for version “
devops正式部署报错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”
·
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填写授权码而不是密码
更多推荐
已为社区贡献1条内容
所有评论(0)