通常k8s的yaml会有多个kind块,分别用"---"分隔,yq --doc 0没有这个参数,如果需要修改下面文档,HPA中minReplicas的值,那我们要如何处理呢?
yq -i 'select(di == 1).spec.minReplicas = "3"' depleyment.yaml
select(di == 1),这个就是yaml中的第二个kind块,如果需要改svc,就把di的值改成2就可以了
# Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: apigateway
namespace: basic
spec:
replicas: 1
selector:
matchLabels:
app: apigateway
version: v1
template:
metadata:
labels:
app: apigateway
version: v1
spec:
imagePullSecrets:
- name: harbor.vhsoft.cn
containers:
- image: apigateway:V1.0
imagePullPolicy: IfNotPresent
name: apigateway
---
# HPA
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: apigateway
namespace: basic
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: apigateway
minReplicas: 1
maxReplicas: 3
---
# SVC
apiVersion: v1
kind: Service
metadata:
name: apigateway
namespace: basic
spec:
ports:
- name: http
port: 8080 # SVC 暴露的端口
selector: # pod 选择器
app: apigateway