34 lines
906 B
Groovy
34 lines
906 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'
|
|
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"
|
|
}
|
|
}
|