Skip to content

Conversation

@simoncaron
Copy link
Contributor

Contributor's Note

  • I have added / updated documentation in /docs for any user-facing features or additions.
  • I have added / updated acceptance tests in /fwprovider/tests for any new or updated resources / data sources.
  • I have ran make example to verify that the change works as expected.

Add support for env variables in LXC Containers Configuration. These variables are used by the container init Process, for example when using NVIDIA passthrough:

lxc.environment: NVIDIA_VISIBLE_DEVICES=all
lxc.environment: NVIDIA_DRIVER_CAPABILITIES=compute,utility,video

I added a new CustomEnvironmentVariables type to handle key/values, added custom logic to handle the value from and to the Proxmox API since the field is NUL-separated string that contains all environment variables.

Proof of Work

Config (through a module in this case)

Capture d’écran du 2025-11-29 15-01-08

Change preview and apply

Capture d’écran du 2025-11-29 15-03-06

In the container

Capture d’écran du 2025-11-29 15-09-10

Community Note

  • Please vote on this pull request by adding a 👍 reaction to the original pull request comment to help the community and maintainers prioritize this request
  • Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for pull request followers and do not help prioritize the request

Closes #2382 | Relates #2382

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @simoncaron, 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 Proxmox Terraform provider by adding support for configuring environment variables within LXC containers. This new functionality allows users to specify key-value pairs that will be passed to the container's init process, enabling advanced configurations such as NVIDIA passthrough. The implementation includes a new Go type for environment variables and custom marshaling/unmarshaling logic to seamlessly integrate with the Proxmox API's unique NUL-separated string format for these variables.

Highlights

  • Environment Variable Support: Introduced the ability to define runtime environment variables for LXC containers.
  • Custom Type Implementation: Developed a CustomEnvironmentVariables Go type to manage key-value pairs for environment variables.
  • Proxmox API Integration: Implemented custom serialization and deserialization logic to correctly handle the Proxmox API's NUL-separated string format for environment variables.
  • Documentation Update: Added comprehensive documentation for the new environment_variables parameter in the virtual_environment_container resource.
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 by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

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 pull request 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 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. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

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 adds support for setting environment variables in LXC containers. The changes include updating the API types to handle a NUL-separated string for environment variables, modifying the Terraform resource to expose this new environment_variables map attribute, and adding corresponding documentation and tests. The implementation is solid, but I have a few suggestions to improve robustness by handling empty environment variable keys and to refactor a small piece of code for better maintainability.

@simoncaron simoncaron force-pushed the feature/implement-lxc-env branch from 2b7a3f3 to 2bc8346 Compare November 30, 2025 21:59
@bpg bpg changed the title feat(lxc): Add env parameter support feat(lxc): add env parameter support Dec 6, 2025
Copy link
Owner

@bpg bpg left a comment

Choose a reason for hiding this comment

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

@simoncaron Thank you for another good feature! ❤️

I've added a test, and also fixed consistent ordering of the env keys.

LGTM! 🚀

@bpg bpg merged commit ef134fc into bpg:main Dec 6, 2025
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add support for env parameter in the proxmox_virtual_environment_container resource

2 participants