আমি কুবেরনেটস এজেন্টের সাথে স্ক্রিপ্ট করা থেকে সম্প্রতি ডিক্লেয়ারেশনটিতে স্যুইচ করেছি। জুলাই '18 অবধি ঘোষণামূলক পাইপলাইনগুলিতে কুবারনেট পোড নির্দিষ্ট করার সম্পূর্ণ ক্ষমতা ছিল না। তবে yamlFile
পদক্ষেপটি যুক্ত করার সাথে সাথে আপনি এখন আপনার রেপোর একটি ইয়ামল ফাইল থেকে আপনার পড টেম্পলেটটি পড়তে পারেন।
এরপরে এটি আপনাকে আপনার পোড টেমপ্লেটটি যাচাই করতে উদাহরণস্বরূপ vscode- র দুর্দান্ত কুবারনেটস প্লাগইন ব্যবহার করতে দেয়, তারপরে এটি আপনার জেনকিনসফাইলে পড়ুন এবং আপনার পছন্দমতো পদক্ষেপে পাত্রে ব্যবহার করুন।
pipeline {
agent {
kubernetes {
label 'jenkins-pod'
yamlFile 'jenkinsPodTemplate.yml'
}
}
stages {
stage('Checkout code and parse Jenkinsfile.json') {
steps {
container('jnlp'){
script{
inputFile = readFile('Jenkinsfile.json')
config = new groovy.json.JsonSlurperClassic().parseText(inputFile)
containerTag = env.BRANCH_NAME + '-' + env.GIT_COMMIT.substring(0, 7)
println "pipeline config ==> ${config}"
} // script
} // container('jnlp')
} // steps
} // stage
উপরে উল্লিখিত হিসাবে আপনি স্ক্রিপ্ট ব্লক যোগ করতে পারেন। কাস্টম jnlp এবং ডকার সহ পড টেম্পলেট উদাহরণ।
apiVersion: v1
kind: Pod
metadata:
name: jenkins-pod
spec:
containers:
- name: jnlp
image: jenkins/jnlp-slave:3.23-1
imagePullPolicy: IfNotPresent
tty: true
- name: rsync
image: mrsixw/concourse-rsync-resource
imagePullPolicy: IfNotPresent
tty: true
volumeMounts:
- name: nfs
mountPath: /dags
- name: docker
image: docker:17.03
imagePullPolicy: IfNotPresent
command:
- cat
tty: true
volumeMounts:
- name: docker
mountPath: /var/run/docker.sock
volumes:
- name: docker
hostPath:
path: /var/run/docker.sock
- name: nfs
nfs:
server: 10.154.0.3
path: /airflow/dags