kubernetes - 如何将 k8s yaml 转换为 helm chart
问题描述
现在我正在使用 yaml 文件在 k8s 上部署应用程序。
像下面这样一个:
apiVersion: v1
kind: Service
metadata:
name: serviceA
namespace: flow
spec:
ports:
- port: 8080
targetPort: 8080
selector:
app: serviceA
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: serviceA-ingress
namespace: flow
annotations:
nginx.ingress.kubernetes.io/use-regex: "true"
kubernetes.io/ingress.class: nginx
certmanager.k8s.io/cluster-issuer: letsencrypt-prod
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
tls:
- hosts:
- serviceA.xyz.com
secretName: letsencrypt-prod
rules:
- host: serviceA.xyz.com
http:
paths:
- path: /
backend:
serviceName: serviceA
servicePort: 8080
---
apiVersion: v1
kind: ConfigMap
metadata:
name: serviceA-config
namespace: flow
data:
application-dev.properties: |
spring.application.name=serviceA-main
server.port=8080
logging.level.org.springframework.jdbc.core=debug
lead.pg.url=serviceB.flow.svc:8080/lead
task.pg.url=serviceB.flow.svc:8080/task
---
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
name: serviceA-deployment
namespace: flow
spec:
selector:
matchLabels:
app: serviceA
replicas: 1 # tells deployment to run 2 pods matching the template
template:
metadata:
labels:
app: serviceA
spec:
containers:
- name: serviceA
image: xyzaccount.dkr.ecr.eu-west-1.amazonaws.com/flow/test:serviceA-v1
command: [ "java", "-jar", "-agentlib:jdwp=transport=dt_socket,address=9098,server=y,suspend=n", "serviceA-service.jar", "--spring.config.additional-location=/config/application-dev.properties" ]
ports:
- containerPort: 8080
volumeMounts:
- name: serviceA-application-config
mountPath: "/config"
readOnly: true
volumes:
- name: serviceA-application-config
configMap:
name: serviceA-config
items:
- key: application-dev.properties
path: application-dev.properties
restartPolicy: Always
是否有任何自动方法可以将此 yaml 转换为helm charts
.
或者我可以用来实现此目的的任何其他解决方法或示例模板。
即使没有任何通用的方式,那么我也想知道如何将这个特定的 yaml 转换为 helm chart。
还想知道我应该保持可配置的所有内容(我的意思是转换为变量),因为我不能只是将这些资源在 yaml 中放入单独的模板文件夹中并将其称为 helm chart。
解决方案
本质上,Helm 图表仍然只是 YAML,因此要制作图表,只需将该文件放在 templates/ 下并添加 Chart.yml。
推荐阅读
- python - Pushover 脚本没有得到所需的结果
- wordpress - Wordpress 编辑器字体
- javascript - Vue.js 显示流程图
- sql-server - 通过 filebeats 或 nxlog 等日志收集器读取 XEL(SQL Server 扩展事件文件)
- c++ - 转发到聚合初始化器?
- apache - Apache Tomcat 请求的资源上不存在“Access-Control-Allow-Origin”标头
- intellij-idea - 我正在尝试 start_intellij 但它立即因错误而卡住:
- c - OpenCL向量加法程序
- jquery - 尽管已经有一个 API 被键入,但谷歌没有被定义
- python - 棉花糖模式中未返回相关字段(也是烧瓶/sqlalchemy)