kubernetes-helm - 从 Helm 获取功能性 yaml 文件
问题描述
有没有办法在构建它们之后从 helm 拦截 yaml 文件,但在创建对象之前?
我现在正在做的是创建对象然后让它们通过:
for file in $(kubectl get OBJECT -n maesh -oname); do kubectl get $i -n maesh --export -oyaml > $file.yaml; done
这工作正常。我只需要事先创建对象目录,但可以工作。我只是想知道是否有一种干净的方法可以做到这一点。
而且,顺便说一句,原因是因为traefik(maesh)的服务网格还在纸尿裤中,安装它的唯一方法是通过helm。他们的仓库中还没有这些文件。
解决方案
你可以做
helm template .
这将输出类似
---
# Source: my-app/templates/service.yaml
apiVersion: v1
kind: Service
metadata:
name: release-name-my-app
annotations:
kubernetes.io/ingress.class: nginx
kubernetes.io/tls-acme: "true"
labels:
app.kubernetes.io/name: my-app
helm.sh/chart: my-app-0.1.0
app.kubernetes.io/instance: release-name
app.kubernetes.io/version: "1.0"
app.kubernetes.io/managed-by: Tiller
spec:
type: ClusterIP
ports:
- port: 80
targetPort: http
protocol: TCP
name: http
selector:
app.kubernetes.io/name: my-app
app.kubernetes.io/instance: release-name
---
# Source: my-app/templates/tests/test-connection.yaml
apiVersion: v1
kind: Pod
metadata:
name: "release-name-my-app-test-connection"
labels:
app.kubernetes.io/name: my-app
helm.sh/chart: my-app-0.1.0
app.kubernetes.io/instance: release-name
app.kubernetes.io/version: "1.0"
app.kubernetes.io/managed-by: Tiller
annotations:
"helm.sh/hook": test-success
spec:
containers:
- name: wget
image: busybox
command: ['wget']
args: ['release-name-my-app:80']
restartPolicy: Never
---
# Source: my-app/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: release-name-my-app
labels:
app.kubernetes.io/name: my-app
helm.sh/chart: my-app-0.1.0
app.kubernetes.io/instance: release-name
app.kubernetes.io/version: "1.0"
app.kubernetes.io/managed-by: Tiller
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: my-app
app.kubernetes.io/instance: release-name
template:
metadata:
labels:
app.kubernetes.io/name: my-app
app.kubernetes.io/instance: release-name
spec:
containers:
- name: my-app
image: "nginx:stable"
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 80
protocol: TCP
livenessProbe:
httpGet:
path: /
port: http
readinessProbe:
httpGet:
path: /
port: http
resources:
{}
---
# Source: my-app/templates/ingress.yaml
那是带有 k8s 对象的有效文件。
推荐阅读
- python - 在python中拆分字符串
- macos - 如何在 10.11 上安装 OS X 10.12 命令行工具?
- python - 为自定义图像数据创建类似于 mnist.train.next_batch(128) 的函数
- windows - 如何在powershell中自动对多个提示回答是
- wireshark - USB Pcap Wireshark - ''1.1.3'' 这个地址是什么意思?
- c# - ObservableCollection 类型的属性在设计器中生成错误
- ionic-framework - Phaser 3 游戏内购物界面
- ruby - 如何将 openssl key/iv 保存到文件中然后恢复它?
- python - 试图在 Numpy 数组中获取项目的索引
- ajax - 需要有关如何使用服务器端 Ajax 查询填充 DIV 的指导,然后使用 @foreach 进行迭代。当前出现“未定义变量”错误