Я пытаюсь создать шаблон JSON для службы в Openshift.Мне нужно установить скрипт Groovy, который будет циклически проходить по текстовому файлу, содержащему несколько портов, для создания раздела портов шаблона JSON.
Вот как выглядит файл, содержащий порты.
cat ports.txt
9000
8090
7010
6012
Вот мой отличный скрипт для создания шаблона.Сценарий содержит жестко закодированный текст для порта 9000.
def builder = new groovy.json.JsonBuilder()
builder.apiVersion {
apiVersion 'v1'
kind 'Service'
metadata {
name 'apache'
labels {
app "apache"
name "apache"
}
}
spec {
selector {
app 'apache'
}
ports {
name "9000-tcp"
protocol "TCP"
port "9000"
targetPort "9000"
}
}
}
println builder.toPrettyString()
При запуске сценария отображается следующее:
{
"apiVersion": {
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "apache",
"labels": {
"app": "apache",
"name": "apache"
}
},
"spec": {
"selector": {
"app": "apache"
},
"ports": {
"name": "80-tcp",
"protocol": "TCP",
"port": "8081"
}
}
}
}
Я бы хотел, чтобы конечный продукт выгляделкак это
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "apache",
"labels": {
"app": "apache",
"name": "apache"
}
},
"spec": {
"selector": {
"app": "apache"
},
"ports": {
"name": "80-tcp",
"protocol": "TCP",
"port": "8081"
}
"ports": {
"name": "8090-tcp",
"protocol": "TCP",
"port": "8090",
"targetPort": "8090"
}
"ports": {
"name": "7010-tcp",
"protocol": "TCP",
"port": "7010",
"targetPort": "7010"
}
"ports": {
"name": "6012-tcp",
"protocol": "TCP",
"port": "6012",
"targetPort": "6012"
}
}
}
}
Как я могу встроить цикл в этот шаблон, чтобы добавить создать столько портов, сколько есть в файле file.txt
.