Skip to content

Add extra environment variables to helm chart#2308

Merged
robfrank merged 1 commit intoArcadeData:mainfrom
carlos-rodrigues-8x8:feature/2307-add-extra-env-vars-helm
Jul 1, 2025
Merged

Add extra environment variables to helm chart#2308
robfrank merged 1 commit intoArcadeData:mainfrom
carlos-rodrigues-8x8:feature/2307-add-extra-env-vars-helm

Conversation

@carlos-rodrigues-8x8
Copy link
Contributor

@carlos-rodrigues-8x8 carlos-rodrigues-8x8 commented Jun 26, 2025

What does this PR do?

This PR aims to add support for extend environment variables allowing helm chart users to customise server.sh parameters.

Motivation

As user of arcadedb and identified the limitation, it is fair to share a contribution to evolve the project.

Related issues

Additional Notes

Checklist

  • I have run the build using mvn clean package command
  • My unit tests cover both failure and success scenarios

Edited statefulset to support new parameterization
Updated documentation
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Summary of Changes

Hello @carlos-rodrigues-8x8, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request enhances the ArcadeDB Helm chart by providing a new configuration option to define and inject arbitrary environment variables into the ArcadeDB container. This change aims to improve the customizability of the ArcadeDB deployment for users.

Highlights

  • New Helm Chart Parameter: I've introduced a new Helm chart parameter, arcadedb.extraEnvironment, which allows users to pass an array of additional environment variables directly to the ArcadeDB container. This provides greater flexibility for custom configurations.
  • Kubernetes Integration: The arcadedb.extraEnvironment values are now dynamically injected into the env section of the ArcadeDB container within the Kubernetes StatefulSet template (statefulset.yaml). This ensures that any specified environment variables are applied at runtime.
  • Documentation Updates: The README.md has been updated to document the new arcadedb.extraEnvironment parameter, including its description and default value. The values.yaml file also includes the new parameter with an empty array as its default, along with a corrected typo in the extraCommands description.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces the ability to extend environment variables in the helm chart, allowing users to customize server.sh parameters. I've suggested adding a check to ensure the extraEnvironment value is a list before converting it to YAML and also suggested defining environment variables as a list of name/value pairs.

@lvca lvca requested review from gramian and robfrank June 30, 2025 19:00
@gramian
Copy link
Collaborator

gramian commented Jun 30, 2025

This seems to be a useful addition. However, I have no K8s or Helm experience. As far as I can tell the changes look correct.

A question out of interest: Why are the env vars injected via the StatefulSet? I thought this was done on the Pod level, particularly since you might not want to run your DB as a stateful set. But as I said I barely know K8s/helm.

@carlos-rodrigues-8x8
Copy link
Contributor Author

This seems to be a useful addition. However, I have no K8s or Helm experience. As far as I can tell the changes look correct.

A question out of interest: Why are the env vars injected via the StatefulSet? I thought this was done on the Pod level, particularly since you might not want to run your DB as a stateful set. But as I said I barely know K8s/helm.

Well, summing it, the StatefulSet kind is typically used when we have databases, brokers, etc.. In a StatefulSet you are specifying the characteristics of the Pods k8s will create. One of most useful characteristics of this kind of manifest is the expectation of the dns name on each pod. E.g.: if we define a statefulset of 3 replicas the pods will have the names pod-0, pod-1 and pod-2, and if some of them die for any reason it will be recreated with the same name.

@carlos-rodrigues-8x8
Copy link
Contributor Author

Btw, I don't know why the tests are failing once this ticket doesn't require it.

@robfrank
Copy link
Collaborator

robfrank commented Jul 1, 2025

Btw, I don't know why the tests are failing once this ticket doesn't require it.

don't worry about the tests :)

Copy link
Collaborator

@robfrank robfrank left a comment

Choose a reason for hiding this comment

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

LGTM

@robfrank robfrank merged commit f0bb184 into ArcadeData:main Jul 1, 2025
8 of 12 checks passed
@robfrank robfrank added this to the 25.6.1 milestone Jul 1, 2025
@robfrank robfrank added the enhancement New feature or request label Jul 1, 2025
robfrank pushed a commit that referenced this pull request Jul 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants