У меня есть манифест Kube, который нужно применить к паре кластеров kubernetes с разными настройками ресурса. Для этого мне нужно изменить раздел ресурсов этого файла на лету. Вот его содержание:
apiVersion: v1
kind: Service
metadata:
name: abc-api
labels:
app: abc-api
spec:
ports:
- name: http
port: 80
targetPort: 3000
- name: https
port: 3000
targetPort: 3000
selector:
app: abc-api
tier: frontend
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: abc-api
labels:
app: abc-api
spec:
selector:
matchLabels:
app: abc-api
tier: frontend
strategy:
type: Recreate
template:
metadata:
labels:
app: abc-api
tier: frontend
spec:
containers:
- image: ABC_IMAGE
resources:
requests:
memory: "128Mi"
cpu: .30
limits:
memory: "512Mi"
cpu: .99
Я искал и обнаружил, что yq - лучший инструмент для этого. Однако, когда я читаю значения из этого файла, он показывает его только до строки с '3 штрихами' : после этого нет значений.
# yq r worker/deployment.yaml
apiVersion: v1
kind: Service
metadata:
name: hometales-api
labels:
app: hometales-api
spec:
ports:
- name: http
port: 80
targetPort: 3000
- name: https
port: 3000
targetPort: 3000
selector:
app: hometales-api
tier: frontend
Я хочу прочитать Раздел развертывания , а также редактирование значений ресурсов.
Раздел для чтения:
---
apiVersion: apps/v1
kind: Deployment
metadata:
....
Раздел для редактирования:
resources:
requests:
memory: "128Mi"
cpu: .20
limits:
memory: "512Mi"
cpu: .99
Итак, 1-я часть Q: как читать после 2-го экземпляра 3-ти тире? 2-я часть Q: как редактировать значения ресурсов на лету?
Я могу запустить эту команду и прочитать этот раздел, но не могу читать значения памяти или процессора:
# yq r -d1 deployment.yaml "spec.template.spec.containers[0].resources.requests"
memory: "128Mi"
cpu: .20