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

Add new ephemeral package for registering and applying PodOptions changes #2874

Merged
merged 8 commits into from
May 10, 2024

Conversation

kidgilson
Copy link
Contributor

@kidgilson kidgilson commented May 8, 2024

Change Overview

This PR introduces the ephemeral package meant to handle registering and applying ephemeral pod specific fields.

The first use-case was to introduce FIPS related environment variables that need to be set on all ephemeral pods to ensure the crypto backend (OpenSSL in this case) is started with the FIPS provider enabled and fails otherwise.

The registration mechanism is made to be generic by using an Applier interface which is used to register different ways of applying changes to a *kube.PodOptions or a *corev1.Container .

For now convenience functions related to registering environment variable Applier's are added. The conditional environment variable helper is the OSEnvVar function which looks to see if the environment variable is set on the OS and applies it to the ephemeral pod if so. This usage is the main need for setting the FIPS environment variables since they're already present on the parent pod launching the ephemeral pods.

All places that used the kube.PodOptions and corev1.Container types have the ephemeral.Options.Apply() function added which adds all registered Appliers (only environment variables at this point) to the pod.

Pull request type

Please check the type of change your PR introduces:

  • 🚧 Work in Progress
  • 🌈 Refactoring (no functional changes, no api changes)
  • 🐹 Trivial/Minor
  • 🐛 Bugfix
  • 🌻 Feature
  • 🗺️ Documentation
  • 🤖 Test

Issues

Test Plan

  • 💪 Manual
  • ⚡ Unit test
  • 💚 E2E

@infraq infraq added this to In Progress in Kanister May 8, 2024
@kidgilson kidgilson changed the title Ephemeral package podoptions Add new ephemeral package for registering and applying PodOptions changes May 8, 2024
@kidgilson kidgilson force-pushed the ephemeral-package-podoptions branch from f9c1f5a to 25fd167 Compare May 8, 2024 07:28
Copy link
Contributor

@bathina2 bathina2 left a comment

Choose a reason for hiding this comment

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

LGTM

Kanister automation moved this from In Progress to Reviewer approved May 8, 2024
Copy link
Contributor

@shwetha-97 shwetha-97 left a comment

Choose a reason for hiding this comment

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

LGTM

pkg/ephemeral/envvar.go Show resolved Hide resolved
pkg/ephemeral/envvar.go Outdated Show resolved Hide resolved
pkg/ephemeral/ephemeral.go Outdated Show resolved Hide resolved
pkg/ephemeral/ephemeral.go Outdated Show resolved Hide resolved
pkg/ephemeral/ephemeral.go Outdated Show resolved Hide resolved
pkg/ephemeral/envvar.go Outdated Show resolved Hide resolved
@mergify mergify bot merged commit 7f0c993 into master May 10, 2024
15 checks passed
Kanister automation moved this from Reviewer approved to Done May 10, 2024
@mergify mergify bot deleted the ephemeral-package-podoptions branch May 10, 2024 21:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Development

Successfully merging this pull request may close these issues.

Add environment variable registration mechanism for ephemeral pods
5 participants