从Helm获取功能性Yaml文件

问题描述 投票:0回答:1

是否有一种方法可以在构建Yaml文件之后,就在对象创建之前,从Yaml文件中截取它们?

我现在要做的是创建对象,然后使它们通过:

for file in $(kubectl get OBJECT -n maesh -oname); do kubectl get $i -n maesh --export -oyaml > $file.yaml; done

这很好。我只需要以前创建对象目录即可,但是可以。我只是想知道是否有一种干净的方法。

并且,顺便说一句,原因是traefik(网格)的服务网格仍在尿布中,并且唯一的安装方法是通过头盔。他们的存储库中还没有文件。

kubernetes-helm
1个回答
0
投票

您可以做

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对象的有效文件。

© www.soinside.com 2019 - 2024. All rights reserved.