Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(fetchenv): allow label selectors on key lookups #293

Merged
merged 2 commits into from
Feb 18, 2022

Conversation

esatterwhite
Copy link
Contributor

Allow matchLabels on key ref lookups. This is primarily to enable
config map discovery when merging JSON keys. Allowing lable selectors
means a single mtp doesn't have to add a key lookup for every configmap
it wishes to source from.

fixes: razee-io/MustacheTemplate#296

@esatterwhite
Copy link
Contributor Author

accompanying pull request for the template controller
razee-io/MustacheTemplate#359

@esatterwhite esatterwhite force-pushed the esatterwhite/env-label-selectors branch 2 times, most recently from 11379ea to c6726a5 Compare February 7, 2022 20:45
lib/FetchEnvs.js Outdated Show resolved Hide resolved
lib/FetchEnvs.js Outdated Show resolved Hide resolved
lib/FetchEnvs.js Outdated Show resolved Hide resolved
lib/FetchEnvs.js Outdated Show resolved Hide resolved
@esatterwhite esatterwhite force-pushed the esatterwhite/env-label-selectors branch 2 times, most recently from f1eed1d to f366bec Compare February 7, 2022 20:57
lib/FetchEnvs.js Outdated Show resolved Hide resolved
@esatterwhite esatterwhite force-pushed the esatterwhite/env-label-selectors branch from f366bec to c9c70e8 Compare February 8, 2022 15:57
.travis.yml Outdated Show resolved Hide resolved
lib/FetchEnvs.js Outdated Show resolved Hide resolved
@esatterwhite esatterwhite force-pushed the esatterwhite/env-label-selectors branch from c9c70e8 to d48e1f0 Compare February 8, 2022 18:20
lib/FetchEnvs.js Outdated Show resolved Hide resolved
@esatterwhite esatterwhite force-pushed the esatterwhite/env-label-selectors branch from d48e1f0 to 4b55c57 Compare February 8, 2022 23:34
lib/FetchEnvs.js Outdated Show resolved Hide resolved
@esatterwhite esatterwhite force-pushed the esatterwhite/env-label-selectors branch 2 times, most recently from 27be244 to a72f5c9 Compare February 11, 2022 17:59
@esatterwhite esatterwhite force-pushed the esatterwhite/env-label-selectors branch from a72f5c9 to 834e486 Compare February 11, 2022 18:02
lib/FetchEnvs.js Outdated Show resolved Hide resolved
@esatterwhite
Copy link
Contributor Author

This was the template I was testing against

---
apiVersion: 'deploy.razee.io/v1alpha2'
kind: MustacheTemplate
metadata:
  name: mergedconfig
  namespace: default
  labels:
    app: ingress-kong
    razee/watch-resource: "debug"
spec:
  templateEngine: handlebars
  envFrom:
  - configMapRef:
      name: four
      namespace: default
  - secretMapRef:
      name: one
      namespace: default
  - genericMapRef:
      apiVersion: v1
      kind: ConfigMap
      name: two
      namespace: default
  env:
  - name: foobar
    valueFrom:
      configMapKeyRef:
        name: two
        namespace: default
        key: sample
        type: json

  - name: missing
    optional: true
    valueFrom:
      configMapKeyRef:
        name: two
        namespace: default
        key: missing
        type: number

  - name: sample
    overrideStrategy: merge
    optional: true
    valueFrom:
      genericKeyRef:
        namespace: default
        apiVersion: v1
        kind: ConfigMap
        matchLabels:
          app: core
        key: sample
        type: json
    default: |
      {}

  - name: extra
    overrideStrategy: merge
    valueFrom:
      secretKeyRef:
        namespace: default
        name: one
        key: extra

  strTemplates:
  - |
    apiVersion: v1
    kind: List
    items:
    - apiVersion: v1
      kind: ConfigMap
      metadata:
        name: merged
        namespace: default
        labels:
          app: "merged"
          razee/watch-resource: "debug"
      data:
        extra: "{{{extra}}}"
        red: "{{{red}}}"
        generic: "{{{foobar.test.generic}}}"
        a: "{{{a}}}"
    {{#each sample}}
      {{#each this}}
        {{{@key}}}: "{{{this}}}"
      {{/each}}
    {{/each}}

@esatterwhite esatterwhite force-pushed the esatterwhite/env-label-selectors branch from 834e486 to 114d029 Compare February 11, 2022 18:18
lib/FetchEnvs.js Outdated Show resolved Hide resolved
lib/FetchEnvs.js Outdated Show resolved Hide resolved
lib/FetchEnvs.js Outdated Show resolved Hide resolved
lib/FetchEnvs.js Outdated Show resolved Hide resolved
lib/FetchEnvs.js Outdated Show resolved Hide resolved
lib/FetchEnvs.js Outdated Show resolved Hide resolved
lib/FetchEnvs.js Outdated Show resolved Hide resolved
lib/FetchEnvs.js Show resolved Hide resolved
lib/FetchEnvs.js Outdated Show resolved Hide resolved
lib/FetchEnvs.js Outdated Show resolved Hide resolved
lib/FetchEnvs.js Outdated Show resolved Hide resolved
lib/FetchEnvs.js Outdated Show resolved Hide resolved
lib/FetchEnvs.js Outdated Show resolved Hide resolved
lib/FetchEnvs.js Outdated Show resolved Hide resolved
@esatterwhite esatterwhite force-pushed the esatterwhite/env-label-selectors branch from a5dbe82 to d344be1 Compare February 17, 2022 18:42
@esatterwhite esatterwhite force-pushed the esatterwhite/env-label-selectors branch 3 times, most recently from 9c5a9f4 to f0d8fcd Compare February 18, 2022 15:24
lib/FetchEnvs.js Outdated Show resolved Hide resolved
lib/FetchEnvs.js Show resolved Hide resolved
Allow `matchLabels` on key ref lookups. This is primarily to enable
config map discovery when merging JSON keys. Allowing lable selectors
means a single mtp doesn't have to add a key lookup for every configmap
it wishes to source from.

fixes: razee-io/MustacheTemplate#296
remove unused dependency that was failing audit scans
@esatterwhite esatterwhite force-pushed the esatterwhite/env-label-selectors branch from eb08a2c to 88cf0f8 Compare February 18, 2022 16:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Single env that uses Label Selector to find N number of config
2 participants