получить функциональные файлы yaml от Helm - PullRequest
0 голосов
/ 08 октября 2019

Есть ли способ перехватить файлы yaml от helm после того, как он их построил, но прямо перед созданием объектов?

То, что я сейчас делаю, - это создание объектов, а затем их получение:

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

Это отлично работает. Мне нужно только предварительно создать каталог объектов, но он работает. Мне просто интересно, есть ли чистый способ сделать это.

И, кстати, причина в том, что сервисная сетка traefik (maesh) все еще в подгузниках, и единственный способ ее установитьчерез шлем. У них пока нет файлов в репо.

1 Ответ

0 голосов
/ 08 октября 2019

Вы можете сделать

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.

...