首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从ConfigMap填充AWS Alb Ingress注释

从ConfigMap填充AWS Alb Ingress注释
EN

Stack Overflow用户
提问于 2020-12-09 13:43:57
回答 1查看 151关注 0票数 1

我正在创建一个“alb.ingress”资源,作为我的Helm图表的一部分。

代码语言:javascript
复制
apiVersion: extenstions/v1beta1
kind: Ingress
metadate:
  annotation:
    alb.ingress.kubernetes.io/certification-arn: $cert_arn
    alb.ingress.kubernetes.io/security-group: $sg
    ...

my ConfigMap中提供了'alb.ingress‘资源注释部分中所需的值。

代码语言:javascript
复制
 env:
   - name: cert_arn
     valueFrom: 
       configMapKeyRef: 
         name: environmental-variables
         key: certification_arn
   - name: sg
     valueFrom: 
       configMapKeyRef: 
         name: environmental-variables
         key: security-groups
    ...

有没有办法使用config-map来填充注释?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-11 13:09:38

我解决这一挑战的方法是使用Helm和我在创建资源之前拥有的变量来创建入口资源,例如应用程序的名称、名称空间等。

代码语言:javascript
复制
apiVersion: extenstions/v1beta1
kind: Ingress
metadata:
name: "{{ .Values.application.name }}-ingress"
namespace: "{{ .Values.env.name }}"
labels:
  app: "{{ .Values.application.name  }}"
specs:
  rules:
    - host: "{{ .Values.environment.name }}.{{ .Values.application.name }}.{{ .Values.domain.name }}"
      https: 
       ....

我使用pod (作业也是一个选项)来注释新创建的入口资源(使用configmap中的环境值)。

代码语言:javascript
复制
apiVersion: extenstions/v1beta1
kind: Ingress
metadate:
  name: annotate-ingress-alb
spec:
  serviceAccountName: internal-kubectl
containers:
   - name: modify-alb-ingress-controller
     image: "{{ .Values.images.varion }}"
  command: ["sh", "-c"]
  args:
    - '...
       kubectl annotate ingress -n {{ .Values.env.name }} {{ .Values.application.name }}-ingress alb.ingress.kubernetes.io/certificate-arn=$CERT_ARN;
 env:
  - name: cert_arn
    valueFrom: 
    configMapKeyRef: 
     name: environmental-variables
     key: certification_arn

请注意,pod应该具有正确的服务帐户,并且附加了正确的权限角色。例如,在本例中,为了让pod能够注释ALB,它必须在权限列表中包含extensions apiGroup和入口资源(我还没有限制该措辞)。

代码语言:javascript
复制
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: service-account-role
rules:
  - apiGroups:
  - ""
  - extensions
resources:
  - ingresses
verbs: ["*"]

希望这对将来的人有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65211284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档