Files
jenkins-shared-library/vars/deployToK3s.groovy
T
2026-09-30 14:42:12 +00:00

36 lines
979 B
Groovy

#!/usr/bin/env groovy
// Deploy a Deployment to k3s.
// Usage: deployToK3s(name: 'demo', image: 'nginx', replicas: 2)
def call(Map config = [:]) {
def name = config.name ?: error('deployToK3s: "name" is required')
def image = config.image ?: error('deployToK3s: "image" is required')
def replicas = config.replicas ?: 1
def namespace = config.namespace ?: 'default'
container('kubectl') {
stage("Deploy ${name}") {
writeFile file: 'deploy.yaml', text: """
apiVersion: apps/v1
kind: Deployment
metadata:
name: ${name}
namespace: ${namespace}
spec:
replicas: ${replicas}
selector:
matchLabels:
app: ${name}
template:
metadata:
labels:
app: ${name}
spec:
containers:
- name: ${name}
image: ${image}
"""
sh 'kubectl apply -f deploy.yaml'
sh "kubectl rollout status deployment/${name} -n ${namespace} --timeout=90s"
}
}
}