[Feature Request]: Support Kubernetes authentication for HashiCorp Vault variable resolver
- Dominant language
- Java
- Stars
- 1.5k
- Forks
- 476
- Avg merge
- 18h 32m
- Merged PRs (30d)
- 216
Description
### What would you like to happen?
### Problem
Apache Hop's HashiCorp Vault variable resolver currently supports authentication using long-lived Vault tokens.
While this works, using long-lived tokens is not ideal in Kubernetes environments, where workloads can authenticate using short-lived, automatically managed credentials.
We are currently implementing the HashiCorp Vault variable resolver in a Kubernetes-based environment, and would like to avoid having to provision and manage long-lived Vault tokens for Hop.
### Proposed solution
Add support for the Kubernetes authentication method to the HashiCorp Vault variable resolver.
The resolver should be able to authenticate against Vault using a Kubernetes ServiceAccount token, allowing Vault to validate the workload identity through its Kubernetes authentication backend.
The expected flow would be roughly:
- Apache Hop is running inside a Kubernetes pod.
- The pod has a Kubernetes ServiceAccount assigned to it.
- Hop reads the ServiceAccount JWT/token available inside the pod.
- Hop authenticates against Vault using the Kubernetes auth method.
- Vault returns a short-lived Vault token.
- The resolver uses that token to retrieve the requested secrets.
- The Vault token can be renewed or re-authenticated as appropriate, without requiring a long-lived token to be configured in Hop.
-
### Motivation
Using Kubernetes authentication would provide several advantages:
- Avoids storing long-lived Vault tokens in Hop configuration.
- Uses short-lived credentials managed by Kubernetes.
- Better aligns with Vault's recommended authentication mechanisms for workloads running in Kubernetes.
- Reduces the risk associated with leaked or compromised long-lived Vault tokens.
- Makes the HashiCorp Vault variable resolver easier to deploy in cloud-native environments.
### Issue Priority
Priority: 2
### Issue Component
Component: Hop Server
Contributor guide
Research direction
The issue names no files, tests, or resolver entry point. Start by locating Apache Hop's HashiCorp Vault variable resolver and its existing long-lived token authentication path, then compare it with the Kubernetes authentication flow described here. Done means the resolver can authenticate with a Kubernetes ServiceAccount token and retrieve secrets using the resulting short-lived Vault token.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, kubernetes
- Domain
- authentication, backend, security
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100