Я пытаюсь добавить значение image_tag и региона внутри подшаблона, но это не работает.
Ошибка failed to add image information to the policy rule context: invalid image 'aws-cli:${image_version}' (bad image: docker.io/aws-cli:${image_version}, defaultRegistry: docker.io, enableDefaultRegistryMutation: true: invalid reference format)
Я использую этот плагин https://plugins.jenkins.io/kubernetes/
image_version = '2.15.40'
region = 'us-east-1'
podTemplate(yaml: '''
apiVersion: v1
kind: Pod
metadata:
labels:
label: label
spec:
containers:
- name: aws-cli:${image_version}
image:
env:
- name: AWS_REGION
value: ${region}
resources:
requests:
cpu: "2"
memory: "3Gi"
limits:
cpu: "2"
memory: "3Gi"
alwaysPullImage: true
tty: true
securityContext:
privileged: true
''')
Вы используете строку с тройными одинарными кавычками '''
, которая не выполняет интерполяцию переменных. Вместо этого вам нужно использовать строки в тройных двойных кавычках """
. См. отличную документацию.
Сценарий Groovy допускает интерполяцию строк только внутри двойных кавычек ("). Содержимое будет восприниматься как текст без какой-либо оценки переменных, если вы используете одинарные кавычки (') для сценария. В вашем случае вам нужно использовать три двойные кавычки («»») для интерполяции переменных. В то же время вам необходимо использовать одинарную кавычку(') для блока запроса ресурсов. Взгляните на пример ниже, чтобы понять правильно.
podTemplate(yaml: """
apiVersion: v1
kind: Pod
metadata:
labels:
label: label
spec:
containers:
- name: aws-cli-container
image: aws-cli:${image_version}
env:
- name: AWS_REGION
value: ${region}
resources:
requests:
cpu: '2'
memory: '3Gi'
limits:
cpu: '2'
memory: '3Gi'
alwaysPullImage: true
tty: true
securityContext:
privileged: true
""")
Ознакомьтесь с этим документом для получения более подробной информации об интерполяции переменных Groovy.