Skip to content

Add frank-gateway Helm chart wrapping the official apisix chart - #39

Open
jjansenvr wants to merge 16 commits into
mainfrom
add-frank-gateway-chart
Open

Add frank-gateway Helm chart wrapping the official apisix chart#39
jjansenvr wants to merge 16 commits into
mainfrom
add-frank-gateway-chart

Conversation

@jjansenvr

Copy link
Copy Markdown
Contributor

Wraps apache/apisix-helm-chart 2.14.0 as a dependency with our own defaults: standalone/yaml deployment mode, no etcd/ingress-controller, custom GHCR image. Includes a weekly GH Action that checks for new apisix chart releases and opens a PR to bump the dependency.

Wraps apache/apisix-helm-chart 2.14.0 as a dependency with our own
defaults: standalone/yaml deployment mode, no etcd/ingress-controller,
custom GHCR image. Includes a weekly GH Action that checks for new
apisix chart releases and opens a PR to bump the dependency.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Adds a new frank-gateway Helm chart that wraps the upstream apache/apisix-helm-chart as a dependency and provides opinionated defaults for running APISIX in standalone/YAML mode, plus automation to detect and propose dependency bumps.

Changes:

  • Introduces charts/frank-gateway as a wrapper chart depending on apisix chart 2.14.0.
  • Sets default subchart overrides for standalone/YAML mode, disables etcd and ingress-controller, and configures a custom GHCR image.
  • Adds a scheduled GitHub Actions workflow to check for new APISIX chart releases and open an automated bump PR.

Reviewed changes

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

Show a summary per file
File Description
charts/frank-gateway/values.yaml Adds default apisix subchart overrides (standalone/YAML mode, no etcd/ingress-controller, custom image).
charts/frank-gateway/readme.md Documents dependency-update troubleshooting and value nesting gotchas.
charts/frank-gateway/Chart.yaml Defines the new wrapper chart and pins the apisix chart dependency.
charts/frank-gateway/Chart.lock Locks the dependency resolution for the pinned apisix chart.
.github/workflows/check-apisix-update.yaml Adds weekly automation to detect new apisix chart versions and open a bump PR.
Suppressed comments (1)

charts/frank-gateway/readme.md:17

  • De README verwijst naar ./scripts/update-deps.sh, maar dat script bestaat nergens in deze repository. Dat maakt de troubleshooting-instructie onbruikbaar/verwarrend; ofwel het script toevoegen, of de verwijzing verwijderen.
Of draai `./scripts/update-deps.sh`, die dit automatisch afhandelt.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread charts/frank-gateway/README.md Outdated
Comment thread .github/workflows/check-apisix-update.yaml
Comment thread charts/frank-gateway/Chart.yaml Outdated
Comment thread .github/workflows/check-apisix-update.yaml
@jjansenvr jjansenvr assigned jjansenvr and philipsens and unassigned jjansenvr Aug 6, 2026
- Rename readme.md -> README.md to match this repo's chart convention.
- Drop dead reference to a non-existent ./scripts/update-deps.sh.
- Pin azure/setup-helm and yq to specific versions instead of latest,
  avoiding unreviewed breaking changes in the weekly update workflow.
- Make charts.apiseven.com the primary apisix dependency repo instead of
  apache.github.io: the shared release.yml runs `helm dependency update`
  for every chart with no fallback logic, so DNS flakiness on the ASF
  domain could block releases for the whole repo, not just this chart.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
working-directory: charts/frank-gateway
steps:
- name: Checkout
uses: actions/checkout@v4

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.

All GitHub actions should be pinned on commit hash instead of tag. This is to harden against supply-chain attacks. Tags can be overwritten with malicious code; Commit hashes are immutable.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

added

@philipsens
philipsens self-requested a review August 7, 2026 08:57
@philipsens philipsens removed their assignment Aug 7, 2026

@philipsens philipsens left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The chart looks fine. It sets few default so people can configure it further themselves.

For documentation we use the readme-generator-for-helm, which will add the documentation to the README that is visible on GitHub and the GitHub Pages. You could look at Frank2Example values.yaml for an example.

@jjansenvr
jjansenvr requested a review from philipsens August 10, 2026 08:59
@MLenterman

MLenterman commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Copy/Paste of relevant part of values.yaml. I think the Kustomize examples can be in there as comments, but the chart should not rely on using this method as default.

apisix:
  # Do not return the APISIX version in the response header for security reasons.
  enableServerTokens: false
  deployment:
    mode: standalone
    role: data_plane
    standalone:
      # Recommended to create apisix.yaml configmap via Kustomize. Helps with readability and allows for syntax validation in IDEs.
      # Recommended to also not use "apisix.yaml" as the name of the configmap, as it can be confused with the default configmap name used by APISIX.
      # Example of how to create the configmap via Kustomize:
      # kustomization.yaml:
      # ```yaml
      # configMapGenerator:
      #   - name: apisix-yaml
      #     files:
      #       - apisix.yaml=./apisix.yaml
      #
      # generatorOptions:
      #   disableNameSuffixHash: true
      # ````
      existingConfigMap: apisix-yaml
  nginx:
    logs:
      errorLogLevel: info
    luaSharedDicts:
      - name: prometheus-cache
        size: 10m
    customLuaSharedDicts:
      - name: openid-connect-client-cache
        size: 1m
  ssl:
    enabled: true
    sslProtocols: "TLSv1.2 TLSv1.3"
    # Smaller list of supported TLSv1.2 ciphers that are still considered secure. The default list will trip security scanners and is not recommended for production use.
    sslCiphers: "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256"
  prometheus:
    enabled: true
  enableIPv6: false
  admin:
    enabled: false
  plugins:
    - basic-auth
    - key-auth
    - consumer-restriction
    - proxy-rewrite
    - openid-connect-client
    - cors
    - openid-connect
    - cert-auth
    - ip-restriction
  customPlugins:
    enabled: true
    luaPath: "/usr/local/apisix/custom-plugins/?.lua"
    plugins:
      - name: plugin-name
        attrs: {}
        configMap:
          # Needs a dummy configmap to be able to mount the configmap volume, otherwise the pod will not start
          # Example of how to create to create a dummy configmap via Kustomize:
          # kustomization.yaml:
          # ```yaml
          # configMapGenerator:
          #   - name: custom-plugins-dummy
          #     literals: []
          #     files: []
          #
          # generatorOptions:
          #   disableNameSuffixHash: true
          # ```
          name: custom-plugins-dummy

Comment thread charts/frank-gateway/values.yaml
Comment thread charts/frank-gateway/README.md Outdated
Comment on lines +38 to +42
| `apisix.ingress-controller.enabled` | Enable the bundled APISIX ingress-controller subchart | `false` |

## Troubleshooting: `helm dependency update` faalt

De chart hangt af van de officiële `apisix` chart via `https://apache.github.io/apisix-helm-chart`.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The documentation is both in Dutch and English. Why is it the way it is?
I'd rather only have it in English.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

fixed

Comment thread charts/frank-gateway/values.yaml Outdated
Comment on lines +202 to +204
## @section etcd
## We use standalone/yaml mode and don't talk to etcd at all (internal or external).
##

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think this needs the @descriptionStart and end.

Comment thread charts/frank-gateway/values.yaml Outdated
mounts: []

## @param apisix.apisix.plugins Enabled APISIX plugin list; custom plugins (see `customPlugins.plugins` above) must also be listed here, or APISIX won't load them
# Custom plugins currently are required to be listed here as well

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This comment is not used in the generated readme, is that intended?

Comment thread charts/frank-gateway/values.yaml Outdated
Comment on lines +48 to +54
# Plugin code is baked into the Frank Gateway image under:
# /usr/local/apisix/custom-plugins/apisix/plugins
luaPath: "/usr/local/apisix/custom-plugins/?.lua"
## @skip apisix.apisix.customPlugins.plugins
# Custom plugin definitions: each entry has `name` (must match its Lua module name),
# `attrs` (passed through to the APISIX plugin config), and an optional `configMap`
# (`name`/`mounts`) to mount plugin config from an existing ConfigMap.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

These comment is not used in the generated readme, is that intended?

Comment thread charts/frank-gateway/values.yaml Outdated
Comment on lines +48 to +49
# Plugin code is baked into the Frank Gateway image under:
# /usr/local/apisix/custom-plugins/apisix/plugins

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This could be moved to the section or the the property with @extra

Comment thread charts/frank-gateway/values.yaml Outdated
Comment on lines +1 to +10
# Let op: dit zijn allemaal overrides voor de `apisix` subchart-dependency, dus
# alles moet genest staan onder de `apisix:` key (anders komt het nooit aan bij
# de subchart, zie apache/apisix-helm-chart values.yaml). Er is in chart-versie
# 2.14.0 geen aparte dashboard-subchart/dependency (meer), dus daar is geen key voor.
#
# Extra addertje: de subchart heeft zelf ook weer een top-level `apisix:` key
# (een 1-op-1 spiegel van de APISIX config.yaml `apisix:`-sectie, met daaronder
# o.a. `deployment:`). Om daar iets in te overriden moet je dus `apisix.apisix.*`
# gebruiken vanuit onze values.yaml — de eerste `apisix:` is de dependency, de
# tweede is hun eigen config-sectie.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Shouldn't this be a section too?

@philipsens philipsens left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Except for the one comment I, think it's all good!

Thank for contributing to the Charts repository!

Comment on lines +10 to +17
# Primaire repo: door API7.ai gehoste mirror, stabieler dan het ASF-officiele
# apache.github.io (dat af en toe DNS-resolutieproblemen heeft, zie README
# §Troubleshooting en apache/apisix-helm-chart#959). Onze release.yml draait
# `helm dependency update` zonder fallback-logica, dus een flaky primaire repo
# kan releases voor alle charts in deze repo blokkeren.
repository: "https://charts.apiseven.com"
# Fallback/alternatief: het ASF-officiele adres (1-op-1 met apache/apisix-helm-chart source):
# repository: "https://apache.github.io/apisix-helm-chart" No newline at end of file

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Here is some Dutch too

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.

4 participants