Skip to content

chore(chart-deps): update external-secrets to version 2.8.0 - #3450

Draft
svcAPLBot wants to merge 24 commits into
mainfrom
ci-update-external-secrets-to-2.8.0
Draft

chore(chart-deps): update external-secrets to version 2.8.0#3450
svcAPLBot wants to merge 24 commits into
mainfrom
ci-update-external-secrets-to-2.8.0

Conversation

@svcAPLBot

Copy link
Copy Markdown
Contributor

This PR updates the dependency external-secrets to version 2.8.0.
TODO: Update app version in apps.yaml.

@svcAPLBot svcAPLBot added the chart-deps Auto generated helm chart dependencies label Jul 19, 2026
Copilot AI lite review requested due to automatic review settings July 29, 2026 13:15

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the vendored/wrapper external-secrets Helm chart to v2.8.0, syncing chart metadata, values/schema, templates, and CRDs to match the upstream release.

Changes:

  • Bump chart version/appVersion to 2.8.0 and update the chart-index dependency reference.
  • Add new configurable options (leader election timings, startupProbe for webhook, NetworkPolicies for controller/webhook/certController, RBAC aggregation toggle).
  • Refresh CRDs/templates to include new generators/providers and updated schema validations.

Reviewed changes

Copilot reviewed 27 out of 27 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
charts/external-secrets/values.yaml Adds new values for leader election, startup probes, and NetworkPolicy configuration.
charts/external-secrets/values.schema.json Extends values JSON schema to cover new options (networkPolicy, leader election timing, startupProbe fields, RBAC toggle).
charts/external-secrets/templates/webhook-networkpolicy.yaml New webhook NetworkPolicy template.
charts/external-secrets/templates/webhook-deployment.yaml Adds optional startupProbe for webhook deployment.
charts/external-secrets/templates/rbac.yaml Adds gitlabdeploytokens generator RBAC and gates aggregate-to-admin on a values flag.
charts/external-secrets/templates/networkpolicy.yaml New controller NetworkPolicy template.
charts/external-secrets/templates/deployment.yaml Adds leader election timing CLI flags.
charts/external-secrets/templates/crds/secretstore.yaml Updates templated SecretStore CRD schema (new fields/providers/validations).
charts/external-secrets/templates/crds/pushsecret.yaml Updates templated PushSecret CRD generator enums.
charts/external-secrets/templates/crds/grafana.yaml Updates templated Grafana generator CRD schema.
charts/external-secrets/templates/crds/gitlabdeploytoken.yaml Adds templated GitLab deploy token generator CRD.
charts/external-secrets/templates/crds/externalsecret.yaml Updates templated ExternalSecret CRD enums/policies.
charts/external-secrets/templates/crds/clustersecretstore.yaml Updates templated ClusterSecretStore CRD schema (new fields/providers/validations).
charts/external-secrets/templates/crds/clusterpushsecret.yaml Updates templated ClusterPushSecret CRD generator enums.
charts/external-secrets/templates/crds/clustergenerator.yaml Updates templated ClusterGenerator CRD schema (adds GitLab deploy token + Grafana TTL).
charts/external-secrets/templates/crds/clusterexternalsecret.yaml Updates templated ClusterExternalSecret CRD enums/policies.
charts/external-secrets/templates/cert-controller-networkpolicy.yaml New cert-controller NetworkPolicy template.
charts/external-secrets/templates/cert-controller-deployment.yaml Simplifies cert-controller startupProbe port wiring; uses new timing fields.
charts/external-secrets/README.md Regenerated chart README reflecting new options and version bump.
charts/external-secrets/crds/secretstore.yaml Updates packaged SecretStore CRD YAML.
charts/external-secrets/crds/pushsecret.yaml Updates packaged PushSecret CRD YAML.
charts/external-secrets/crds/grafana.yaml Updates packaged Grafana generator CRD YAML.
charts/external-secrets/crds/gitlabdeploytoken.yaml Adds packaged GitLab deploy token generator CRD YAML.
charts/external-secrets/crds/externalsecret.yaml Updates packaged ExternalSecret CRD YAML.
charts/external-secrets/crds/clustersecretstore.yaml Updates packaged ClusterSecretStore CRD YAML.
charts/external-secrets/Chart.yaml Bumps chart version and appVersion to 2.8.0.
chart/chart-index/Chart.yaml Updates the external-secrets dependency version reference to 2.8.0.

Comment on lines +13 to +27
spec:
egress:
{{- with .Values.networkPolicy.egress }}
{{- toYaml . | nindent 4 }}
{{- end }}
ingress:
{{- with .Values.networkPolicy.ingress }}
{{- toYaml . | nindent 4 }}
{{- end }}
podSelector:
matchLabels:
{{- include "external-secrets.selectorLabels" . | nindent 6 }}
policyTypes:
- Egress
- Ingress
Comment on lines +13 to +27
spec:
egress:
{{- with .Values.certController.networkPolicy.egress }}
{{- toYaml . | nindent 4 }}
{{- end }}
ingress:
{{- with .Values.certController.networkPolicy.ingress }}
{{- toYaml . | nindent 4 }}
{{- end }}
podSelector:
matchLabels:
{{- include "external-secrets-cert-controller.selectorLabels" . | nindent 6 }}
policyTypes:
- Egress
- Ingress
Comment on lines +823 to 826
egress: []

# -- Pod priority class name.
priorityClassName: ""
Comment on lines +13 to +27
spec:
egress:
{{- with .Values.webhook.networkPolicy.egress }}
{{- toYaml . | nindent 4 }}
{{- end }}
ingress:
{{- with .Values.webhook.networkPolicy.ingress }}
{{- toYaml . | nindent 4 }}
{{- end }}
podSelector:
matchLabels:
{{- include "external-secrets-webhook.selectorLabels" . | nindent 6 }}
policyTypes:
- Egress
- Ingress
Copilot AI review requested due to automatic review settings July 29, 2026 14:19

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 27 out of 27 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (3)

charts/external-secrets/templates/networkpolicy.yaml:21

  • If networkPolicy.enabled is set to true while networkPolicy.egress is left as the default empty list ([]), the with block does not render and this template outputs an egress: key with no value, producing invalid YAML. Same issue can occur for ingress when it is empty. Render egress/ingress unconditionally so empty lists become [].
  egress:
    {{- with .Values.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}
  ingress:
    {{- with .Values.networkPolicy.ingress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}

charts/external-secrets/templates/webhook-networkpolicy.yaml:21

  • If webhook.networkPolicy.enabled is set to true while webhook.networkPolicy.egress is left as the default empty list ([]), the with block does not render and this template outputs an egress: key with no value, producing invalid YAML. Same issue can occur for ingress when it is empty. Render egress/ingress unconditionally so empty lists become [].
  egress:
    {{- with .Values.webhook.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}
  ingress:
    {{- with .Values.webhook.networkPolicy.ingress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}

charts/external-secrets/templates/cert-controller-networkpolicy.yaml:21

  • If certController.networkPolicy.enabled is set to true while certController.networkPolicy.egress is left as the default empty list ([]), the with block does not render and this template outputs an egress: key with no value, producing invalid YAML. Same issue can occur for ingress when it is empty. Render egress/ingress unconditionally so empty lists become [].
  egress:
    {{- with .Values.certController.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}
  ingress:
    {{- with .Values.certController.networkPolicy.ingress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}

Copilot AI review requested due to automatic review settings July 30, 2026 13:40

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Not ready to approve

The newly added NetworkPolicy templates can render invalid YAML when ingress/egress are configured as empty lists, which can break Helm installs/upgrades when the feature is enabled.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

This review doesn't count toward merge requirements. Sign up for the private preview to control whether Copilot approvals count.

Review details

Comments suppressed due to low confidence (5)

charts/external-secrets/templates/networkpolicy.yaml:21

  • This template can render invalid YAML when networkPolicy.egress or networkPolicy.ingress is set to an empty list (the default use-case for "deny all"), because the key is always emitted but the with block renders nothing, resulting in egress: / ingress: being null instead of an array. Kubernetes NetworkPolicy requires these fields to be arrays when present.
  egress:
    {{- with .Values.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}
  ingress:
    {{- with .Values.networkPolicy.ingress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}

charts/external-secrets/templates/webhook-networkpolicy.yaml:21

  • This template can render invalid YAML when webhook.networkPolicy.egress or webhook.networkPolicy.ingress is set to an empty list, because the key is always emitted but the with block renders nothing, resulting in egress: / ingress: being null instead of an array.
  egress:
    {{- with .Values.webhook.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}
  ingress:
    {{- with .Values.webhook.networkPolicy.ingress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}

charts/external-secrets/templates/cert-controller-networkpolicy.yaml:21

  • This template can render invalid YAML when certController.networkPolicy.egress or certController.networkPolicy.ingress is set to an empty list, because the key is always emitted but the with block renders nothing, resulting in egress: / ingress: being null instead of an array.
  egress:
    {{- with .Values.certController.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}
  ingress:
    {{- with .Values.certController.networkPolicy.ingress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}

charts/external-secrets/values.yaml:826

  • The # -- Pod priority class name. comment is indented under certController.networkPolicy, but the priorityClassName value is a sibling of networkPolicy. This makes the comment apply to the wrong key and also causes the generated README entry for certController.priorityClassName to lose its description.
    egress: []

    # -- Pod priority class name.
  priorityClassName: ""

charts/external-secrets/README.md:82

  • The generated values table entry for certController.priorityClassName has an empty description, which makes the README less useful (it previously documented this as the pod priority class name). This is likely a side-effect of the mis-indented comment in values.yaml; after fixing that, please regenerate the README so this row includes the correct description.
| certController.priorityClassName | string | `""` |  |
  • Files reviewed: 27/27 changed files
  • Comments generated: 0 new
  • Review effort level: Low

We're testing this review assessment. Please use 👍 or 👎 to tell us if it's correct.

Copilot AI review requested due to automatic review settings July 31, 2026 11:45

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Not ready to approve

The newly added NetworkPolicy templates can render invalid Kubernetes manifests when ingress/egress lists are empty (null instead of array), which would break deployments when enabled.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

This review doesn't count toward merge requirements. Sign up for the private preview to control whether Copilot approvals count.

Review details

Suppressed comments (4)

charts/external-secrets/templates/networkpolicy.yaml:17

  • The NetworkPolicy template always renders egress:/ingress: keys, but the content is wrapped in with. If a user sets networkPolicy.egress (or ingress) to an empty list, Helm will render the key with a null value (e.g. egress: <null>), which fails Kubernetes schema validation (these fields must be arrays when present). Render an explicit array (defaulting to []) instead of conditionally omitting the value.
spec:
  egress:
    {{- with .Values.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}

charts/external-secrets/templates/webhook-networkpolicy.yaml:17

  • Same issue as the controller NetworkPolicy: egress:/ingress: are always emitted, but the values are wrapped in with. An empty list will render as a null value and the NetworkPolicy will be rejected by the API server. Default these lists to [] (or omit the keys entirely) so the rendered manifest is valid for empty rulesets.
spec:
  egress:
    {{- with .Values.webhook.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}

charts/external-secrets/templates/cert-controller-networkpolicy.yaml:17

  • Same issue as the other NetworkPolicy templates: egress:/ingress: are always present, but the content is conditional. When the configured list is empty, the field becomes null in the rendered manifest and will fail validation. Default to an empty list ([]) so enabling the NetworkPolicy produces a valid resource even with no rules.
spec:
  egress:
    {{- with .Values.certController.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}

charts/external-secrets/values.yaml:826

  • priorityClassName's description comment is indented as if it were part of certController.networkPolicy, which causes the generated README to lose the description for certController.priorityClassName. Align the comment indentation with the priorityClassName key so doc generation can associate the description correctly.
    # -- Pod priority class name.
  priorityClassName: ""
  • Files reviewed: 27/27 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

We're testing this review assessment. Please use 👍 or 👎 to tell us if it's correct.

Copilot AI review requested due to automatic review settings August 3, 2026 14:26

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Not ready to approve

The new NetworkPolicy templates render invalid YAML (egress: null) when enabled=true with default empty egress lists, which can cause failed installs/upgrades.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

This review doesn't count toward merge requirements. Sign up for the private preview to control whether Copilot approvals count.

Review details

Suppressed comments (3)

charts/external-secrets/templates/networkpolicy.yaml:17

  • spec.egress/spec.ingress are always emitted, but the body is only rendered inside a with. When the value is an empty list (default egress: []), with does not execute and the manifest renders as egress: null, which fails NetworkPolicy schema validation (expects an array). Render the arrays unconditionally so empty lists become [].
  egress:
    {{- with .Values.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}

charts/external-secrets/templates/webhook-networkpolicy.yaml:17

  • spec.egress/spec.ingress are always emitted, but the body is only rendered inside a with. When the value is an empty list (default egress: []), with does not execute and the manifest renders as egress: null, which fails NetworkPolicy schema validation (expects an array). Render the arrays unconditionally so empty lists become [].
  egress:
    {{- with .Values.webhook.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}

charts/external-secrets/templates/cert-controller-networkpolicy.yaml:17

  • spec.egress/spec.ingress are always emitted, but the body is only rendered inside a with. When the value is an empty list (default egress: []), with does not execute and the manifest renders as egress: null, which fails NetworkPolicy schema validation (expects an array). Render the arrays unconditionally so empty lists become [].
  egress:
    {{- with .Values.certController.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}
  • Files reviewed: 27/27 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

We're testing this review assessment. Please use 👍 or 👎 to tell us if it's correct.

Copilot AI review requested due to automatic review settings August 3, 2026 14:36

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Not ready to approve

The newly added NetworkPolicy templates can render invalid manifests when enabled with default empty egress/ingress arrays, which could break installs.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

This review doesn't count toward merge requirements. Sign up for the private preview to control whether Copilot approvals count.

Review details

Suppressed comments (5)

charts/external-secrets/templates/networkpolicy.yaml:18

  • If networkPolicy.enabled is set to true while egress/ingress remain the default empty arrays, the current with blocks render egress: / ingress: with no value (null). That produces invalid NetworkPolicy YAML/JSON for many API servers and can break chart installs. Render the arrays directly (so empty arrays become []) or omit the fields entirely when empty.
  egress:
    {{- with .Values.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}
  ingress:

charts/external-secrets/templates/webhook-networkpolicy.yaml:18

  • If webhook.networkPolicy.enabled is set to true while egress/ingress remain empty arrays, the current with blocks render egress: / ingress: with no value (null). This can produce an invalid NetworkPolicy manifest and break installs. Render the arrays directly (so empty arrays become []) or omit the fields when empty.
  egress:
    {{- with .Values.webhook.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}
  ingress:

charts/external-secrets/values.yaml:826

  • The # -- Pod priority class name. doc comment is currently indented as if it belongs to certController.networkPolicy (it comes right after networkPolicy.egress). This causes generated docs (README) to lose the description for certController.priorityClassName. Dedent the comment to align with priorityClassName.
    egress: []

    # -- Pod priority class name.
  priorityClassName: ""

charts/external-secrets/templates/cert-controller-networkpolicy.yaml:18

  • If certController.networkPolicy.enabled is set to true while egress/ingress remain empty arrays, the current with blocks render egress: / ingress: with no value (null). This can yield an invalid NetworkPolicy manifest and break installs. Render the arrays directly (so empty arrays become []) or omit the fields when empty.
  egress:
    {{- with .Values.certController.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}
  ingress:

charts/external-secrets/Chart.yaml:2

  • The PR description says "TODO: Update app version in apps.yaml", but this change set doesn't update apps.yaml (and apps.yaml currently has no external-secrets entry). Either update apps.yaml to track external-secrets' appVersion or remove/clarify the TODO so version sources of truth are consistent.
apiVersion: v2
appVersion: v2.8.0
  • Files reviewed: 27/27 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

We're testing this review assessment. Please use 👍 or 👎 to tell us if it's correct.

Copilot AI review requested due to automatic review settings August 4, 2026 07:10

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Not ready to approve

The new NetworkPolicy templates can render invalid YAML/manifests when egress/ingress values are empty lists (default), which would break installs when users enable these policies.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

This review doesn't count toward merge requirements. Sign up for the private preview to control whether Copilot approvals count.

Review details

Suppressed comments (4)

charts/external-secrets/templates/networkpolicy.yaml:17

  • When .Values.networkPolicy.egress (or ingress) is an empty list (the default in values.yaml), the template still renders the egress: key with no list items, which becomes egress: null in YAML. Kubernetes expects egress/ingress to be an array when present, so enabling the NetworkPolicy with default values will produce an invalid manifest.
spec:
  egress:
    {{- with .Values.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}

charts/external-secrets/templates/cert-controller-networkpolicy.yaml:17

  • When .Values.certController.networkPolicy.egress (or ingress) is an empty list (the default in values.yaml), the template still renders the egress: key with no list items, which becomes egress: null in YAML. Kubernetes expects egress/ingress to be an array when present, so enabling this NetworkPolicy with default values will produce an invalid manifest.
spec:
  egress:
    {{- with .Values.certController.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}

charts/external-secrets/templates/webhook-networkpolicy.yaml:17

  • When .Values.webhook.networkPolicy.egress (or ingress) is an empty list (the default in values.yaml), the template still renders the egress: key with no list items, which becomes egress: null in YAML. Kubernetes expects egress/ingress to be an array when present, so enabling this NetworkPolicy with default values will produce an invalid manifest.
spec:
  egress:
    {{- with .Values.webhook.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}

charts/external-secrets/values.yaml:826

  • The # -- Pod priority class name. comment is mis-indented under certController.networkPolicy, while priorityClassName is a sibling field of networkPolicy. This breaks readability and also causes generated docs (README) to lose the description for certController.priorityClassName.
    egress: []

    # -- Pod priority class name.
  priorityClassName: ""
  • Files reviewed: 27/27 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

We're testing this review assessment. Please use 👍 or 👎 to tell us if it's correct.

Copilot AI review requested due to automatic review settings August 4, 2026 07:15

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Not ready to approve

The newly added NetworkPolicy templates can render egress:/ingress: as null for empty lists (invalid for array fields) and there is a values.yaml indentation issue that breaks documentation generation for certController.priorityClassName.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

This review doesn't count toward merge requirements. Sign up for the private preview to control whether Copilot approvals count.

Review details

Suppressed comments (4)

charts/external-secrets/templates/networkpolicy.yaml:18

  • The networkPolicy.egress/ingress blocks are wrapped in with, so when a user sets either value to an empty list ([]) Helm renders egress:/ingress: as null (no list), which is invalid for the NetworkPolicy array fields and can fail Kubernetes schema validation. Render an explicit empty list (or always render the list) instead of omitting the value.
  egress:
    {{- with .Values.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}
  ingress:

charts/external-secrets/templates/webhook-networkpolicy.yaml:18

  • The webhook.networkPolicy.egress/ingress blocks are wrapped in with, so setting either value to an empty list ([]) renders egress:/ingress: as null (no list), which is invalid for the NetworkPolicy array fields and can fail Kubernetes schema validation. Render an explicit empty list (or always render the list) instead of omitting the value.
  egress:
    {{- with .Values.webhook.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}
  ingress:

charts/external-secrets/templates/cert-controller-networkpolicy.yaml:18

  • The certController.networkPolicy.egress/ingress blocks are wrapped in with, so setting either value to an empty list ([]) renders egress:/ingress: as null (no list), which is invalid for the NetworkPolicy array fields and can fail Kubernetes schema validation. Render an explicit empty list (or always render the list) instead of omitting the value.
  egress:
    {{- with .Values.certController.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}
  ingress:

charts/external-secrets/values.yaml:826

  • The priorityClassName comment is indented under certController.networkPolicy, so it no longer documents certController.priorityClassName and causes generated docs (README) to lose the description. Unindent the comment to align with priorityClassName.
    # -- Pod priority class name.
  priorityClassName: ""
  • Files reviewed: 27/27 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

We're testing this review assessment. Please use 👍 or 👎 to tell us if it's correct.

Copilot AI review requested due to automatic review settings August 4, 2026 07:41

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Not ready to approve

The newly added NetworkPolicy templates can render invalid YAML (egress:/ingress: as null) when enabled with default empty lists.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

This review doesn't count toward merge requirements. Sign up for the private preview to control whether Copilot approvals count.

Review details

Suppressed comments (3)

charts/external-secrets/templates/networkpolicy.yaml:18

  • When the NetworkPolicy is enabled and *.networkPolicy.egress (or ingress) is an empty list (the chart default), the current with block renders egress: / ingress: with a null value, which is not a valid NetworkPolicy spec. Render the arrays directly so empty lists become [] rather than null.
  egress:
    {{- with .Values.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}
  ingress:

charts/external-secrets/templates/webhook-networkpolicy.yaml:18

  • When the webhook NetworkPolicy is enabled and webhook.networkPolicy.egress (or ingress) is an empty list (the chart default), the current with block renders egress: / ingress: with a null value, which is not a valid NetworkPolicy spec. Render the arrays directly so empty lists become [] rather than null.
  egress:
    {{- with .Values.webhook.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}
  ingress:

charts/external-secrets/templates/cert-controller-networkpolicy.yaml:18

  • When the cert-controller NetworkPolicy is enabled and certController.networkPolicy.egress (or ingress) is an empty list (the chart default), the current with block renders egress: / ingress: with a null value, which is not a valid NetworkPolicy spec. Render the arrays directly so empty lists become [] rather than null.
  egress:
    {{- with .Values.certController.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}
  ingress:
  • Files reviewed: 27/27 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

We're testing this review assessment. Please use 👍 or 👎 to tell us if it's correct.

Copilot AI review requested due to automatic review settings August 4, 2026 09:25

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Not ready to approve

The new NetworkPolicy templates can render egress/ingress as null when lists are empty (risking API validation errors), and there’s a values.yaml indentation issue that breaks/misleads generated documentation.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

This review doesn't count toward merge requirements. Sign up for the private preview to control whether Copilot approvals count.

Review details

Suppressed comments (4)

charts/external-secrets/templates/networkpolicy.yaml:18

  • The egress/ingress blocks render egress: / ingress: unconditionally, but the content is gated by a with. With the default networkPolicy.egress: [], Helm will output egress: with a null value, which can fail Kubernetes schema validation (expects an array) when networkPolicy is enabled. Render an explicit empty list ([]) or always render the list value via toYaml so the field is always an array.
  egress:
    {{- with .Values.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}
  ingress:

charts/external-secrets/templates/webhook-networkpolicy.yaml:18

  • Same issue as the controller NetworkPolicy template: egress: / ingress: are always emitted, but list rendering is inside a with. If either list is empty, the manifest will contain a null value instead of an array, which can be rejected by the API server. Render an explicit empty list ([]) or always render the list via toYaml.
  egress:
    {{- with .Values.webhook.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}
  ingress:

charts/external-secrets/templates/cert-controller-networkpolicy.yaml:18

  • Same issue as the other NetworkPolicy templates: the egress: / ingress: fields are emitted unconditionally but may end up null if the corresponding list is empty due to the with. This can lead to schema validation errors when enabling the NetworkPolicy. Render explicit empty lists or always render the list value via toYaml.
  egress:
    {{- with .Values.certController.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}
  ingress:

charts/external-secrets/values.yaml:826

  • The "Pod priority class name" comment is indented as if it were part of certController.networkPolicy, but priorityClassName is a sibling field. This makes the values file misleading for users editing networkPolicy settings.

    # -- Pod priority class name.
  priorityClassName: ""
  • Files reviewed: 27/27 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

We're testing this review assessment. Please use 👍 or 👎 to tell us if it's correct.

Copilot AI review requested due to automatic review settings August 5, 2026 10:31

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The newly added NetworkPolicy templates can render invalid YAML when ingress/egress values are empty lists (the default for egress), which can break installs when NetworkPolicies are enabled.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

This review doesn't count toward merge requirements. Sign up for the private preview to control whether Copilot approvals count.

Review details

Suppressed comments (4)

charts/external-secrets/templates/networkpolicy.yaml:21

  • egress: / ingress: are always emitted, but the contents are wrapped in with. When the value is an empty list (the default for egress), Helm treats it as falsey so nothing is rendered, leaving egress: with no value (invalid YAML) and breaking installs when networkPolicy.enabled is true. Render [] for empty lists (or omit the key entirely) instead of leaving it null.
  egress:
    {{- with .Values.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}
  ingress:
    {{- with .Values.networkPolicy.ingress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}

charts/external-secrets/templates/webhook-networkpolicy.yaml:21

  • Same issue as templates/networkpolicy.yaml: egress: and ingress: keys are always emitted, but empty lists are falsey inside with, producing egress: with no value (invalid YAML) when webhook.networkPolicy.egress is [] (the default).
  egress:
    {{- with .Values.webhook.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}
  ingress:
    {{- with .Values.webhook.networkPolicy.ingress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}

charts/external-secrets/templates/cert-controller-networkpolicy.yaml:21

  • Same issue as the other NetworkPolicy templates: if certController.networkPolicy.egress or ingress is set to an empty list, the with block renders nothing and the YAML ends up with a key that has no value (egress:/ingress:), which is invalid.
  egress:
    {{- with .Values.certController.networkPolicy.egress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}
  ingress:
    {{- with .Values.certController.networkPolicy.ingress }}
      {{- toYaml . | nindent 4 }}
    {{- end }}

charts/external-secrets/values.yaml:826

  • The certController.priorityClassName description comment is indented under certController.networkPolicy, so doc generation treats it as belonging to the wrong key (and the README row loses its description). Align the # -- comment indentation with priorityClassName.
    # -- Pod priority class name.
  priorityClassName: ""
  • Files reviewed: 27/27 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

We're testing this review assessment. Please use 👍 or 👎 to tell us if it's correct.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chart-deps Auto generated helm chart dependencies

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants