Version: v1.2

数据绑定

本节将介绍 service-binding 运维特征的用法,它能将数据从 Kubernetes Secret 绑定到应用程序所在容器的 ENV 上。

字段说明

  1. $ vela show service-binding
  2. # Properties
  3. +-------------+------------------------------------------------+------------------+----------+---------+
  4. | NAME | DESCRIPTION | TYPE | REQUIRED | DEFAULT |
  5. +-------------+------------------------------------------------+------------------+----------+---------+
  6. | envMappings | The mapping of environment variables to secret | map[string]{...} | true | |
  7. +-------------+------------------------------------------------+------------------+----------+---------+

如何使用

  1. 创建一个 Secret
  1. $ kubectl create secret generic db-conn-example --from-literal=password=123 --from-literal=endpoint=https://xxx.com --from-literal=username=myname
  2. secret/db-conn-example created
  1. 将 Secret 绑定到工作负载的环境变量中
  1. apiVersion: core.oam.dev/v1beta1
  2. kind: Application
  3. metadata:
  4. name: webapp
  5. spec:
  6. components:
  7. - name: binding-test-comp
  8. type: webservice
  9. properties:
  10. image: zzxwill/flask-web-application:v0.3.1-crossplane
  11. ports: 80
  12. traits:
  13. - type: service-binding
  14. properties:
  15. envMappings:
  16. # environments refer to db-conn secret
  17. DB_PASSWORD:
  18. secret: db-conn-example
  19. key: password # 1) 如果 ENV 和 Secret 不一致,则 Secret 必须被设置
  20. endpoint:
  21. secret: db-conn-example # 2) 如果 ENV 和 Secret 一致,则 Secret 可以缺省不写
  22. username:
  23. secret: db-conn-example

部署这个 YAML,数据绑定的运维特征会读取名为 db-conn-example 的 Kubernetes Secret 对象, 并注入 binding-test-comp 的这个组件的环境变量 ENV 中。