如何将 conf/swagger.yml 中的 kubernetes 环境变量用于播放应用程序

时间:2021-06-08 04:25:14

标签: kubernetes playframework yaml swagger configmap

虽然我可以使用在 deployment.yml 中定义的环境变量,但在 conf/application.conf 文件中,如 ${ping_clientid}。如果我尝试在 conf/swagger.yml 中使用相同的内容,则无法替换

要么是 yml 文件无法读取 env 变量,要么应该有其他方法在 yml 文件中定义 env 变量。

在这种情况下使用 ConfigMap 会有什么优势吗?

swagger.yml

components:
  securitySchemes:
    visibility_auth:
      type: oauth2
      flows:
        implicit:
          authorizationUrl: "${ping.authorizationurl}"
          scopes:
            openid: Access this API
  schemas:
    BrandVisibility:
      type: object
      required:
        - brandId
        - status
      properties:
        brandId:
          type: integer
          format: int64
        status:
          type: boolean
          description: status to be updated

deployment.yml

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: #{k8s.deployment.name}
    projectGroup: BMS
    project: API
  name: #{k8s.deployment.name}
  namespace: #{k8s.deployment.namespace}
spec:
  replicas: #{k8s.deployment.replicas}
  selector:
    matchLabels:
      app: #{k8s.deployment.name}
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: #{k8s.deployment.replicas}
      maxUnavailable: 0
  template:
    metadata:
      labels:
        app: #{k8s.deployment.name}
    spec:
      restartPolicy: #{k8s.deployment.restartPolicy}
      containers:
      - name: #{k8s.deployment.name}
        image: #{k8s.deployment.image}
        ports:
        - containerPort: #{k8s.container.api.port}
        imagePullPolicy: #{k8s.deployment.imagePullPolicy}
        resources:
          limits:
            cpu: #{k8s.resources.limits.cpu}
            memory: #{k8s.resources.limits.memory}
          requests:
            cpu: #{k8s.resources.requests.cpu}
            memory: #{k8s.resources.requests.memory}
        env:
        - name: vertica_db
          value: "#{vertica.db}"
        - name: vertica_host
          value: "#{vertica.host}"
        - name: vertica_jdbcUrl
          value: "#{vertica.jdbcUrl}"
        - name: vertica_password
          valueFrom:
            secretKeyRef:
              name: #{k8s.deployment.name}-secret
              key: vertica_password
        - name: vertica_port
          value: "#{vertica.port}"
        - name: vertica_schema
          value: "#{vertica.schema}"
        - name: vertica_user
          valueFrom:
            secretKeyRef:
              name: #{k8s.deployment.name}-secret
              key: vertica_user
        - name: vertica_hdfs_url
          value: "#{vertica.hdfs.url}"
        - name: vertica_web_hdfs_url
          value: "#{vertica.web.hdfs.url}"
        - name: ping_audience
          value: "#{ping.audience}"
        - name: ping_issuer
          value: "#{ping.issuer}"
        - name: ping_jwks
          value: "#{ping.jwks}"
        - name: ping_clientid
          value: "#{ping.clientid}"
        - name: ping_authorizationurl
          value: "#{ping.authorizationurl}"

0 个答案:

没有答案