k8s cicd (jenkins + gitops)
2238 ワード
ci:jenkins cd:gitops image repository:harbor
1 jenkinsfile構成例
2 jenkins slaveカスタムミラーの使用
10.1.53.65:5000/aosom-pop/jnlp-slave:1.0.0
3jnlp-slave:1.0.0 dockerfile
FROM jenkins/jnlp-slave:3.27-1
MAINTAINER HXP
USER root #ADD apache-maven-3.6.2-bin.tar.gz/opt/#RUN echo -e "">>~/.bash_profile && echo -e "export M2_HOME=/opt/apache-maven-3.6.2">> ~/.bash_profile\# && echo "export PATH=$PATH:$M2_HOME/bin">>~/.bash_profile && . ~/.bash_profile && ln -s/opt/apache-maven-3.6.2/bin/mvn/usr/bin/mvn RUN apt-get update && apt-get -y install maven ADD config.json/root/.docker/ADD config/root/.kube/ADD kubectl/usr/bin/RUN chmod 777/usr/bin/kubectl USER root
ENTRYPOINT ["jenkins-slave"]
3 jenkins導入方式
/var/jenkins_ホームはpvcに掛けられています
helm方式で導入
4 gitops導入方式
helm方式でfluxを導入
1 jenkinsfile構成例
environment {
K8S_CONFIG = credentials('jenkins-k8s-config')
GIT_TAG = "1.0.0-SNAPSHOT"
}
parameters {
string(name: 'HARBOR_HOST', defaultValue: '10.1.53.65:5000', description: 'harbor ')
string(name: 'DOCKER_IMAGE', defaultValue: 'aosom-pop/stock', description: 'docker ')
string(name: 'APP_NAME', defaultValue: 'stock', description: 'k8s ')
string(name: 'K8S_NAMESPACE', defaultValue: 'dev', description: 'k8s namespace ')
}
def label = "jenkins2-jenkins-slave"
podTemplate(label: label, cloud: 'kubernetes') {
node ('jenkins2-jenkins-slave'){
stage('maven build'){
container('jnlp') {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'gitsshkey', url: 'ssh://[email protected]:8899/aosom/pop_products.git']]])
sh "docker login 10.1.53.65:5000 -u admin -p Harbor12345 "
sh 'mvn clean package -Dfile.encoding=UTF-8 -DskipTests=true'
}
}
}
}
2 jenkins slaveカスタムミラーの使用
10.1.53.65:5000/aosom-pop/jnlp-slave:1.0.0
3jnlp-slave:1.0.0 dockerfile
FROM jenkins/jnlp-slave:3.27-1
MAINTAINER HXP
USER root #ADD apache-maven-3.6.2-bin.tar.gz/opt/#RUN echo -e "">>~/.bash_profile && echo -e "export M2_HOME=/opt/apache-maven-3.6.2">> ~/.bash_profile\# && echo "export PATH=$PATH:$M2_HOME/bin">>~/.bash_profile && . ~/.bash_profile && ln -s/opt/apache-maven-3.6.2/bin/mvn/usr/bin/mvn RUN apt-get update && apt-get -y install maven ADD config.json/root/.docker/ADD config/root/.kube/ADD kubectl/usr/bin/RUN chmod 777/usr/bin/kubectl USER root
ENTRYPOINT ["jenkins-slave"]
3 jenkins導入方式
/var/jenkins_ホームはpvcに掛けられています
helm方式で導入
4 gitops導入方式
helm方式でfluxを導入