Commit graph

154 commits

Author SHA1 Message Date
Jean-François Roche
c45f9b997d
Enable Vault to review kube tokens when using external Vault (#392)
We want Vault to perform token reviews with Kubernetes even if we are
using an external Vault.

We need to create the ServiceAccount, Secret and ClusterRoleBinding with
the system:auth-delegator role to enable delegated authentication and
authorization checks [1].

These SA and RBAC objects are created when we deploy the Vault server.
In order to enable the creation of these objects when using an external
Vault, we remove the condition on external mode.

User might want to provide a sensible name (in global.serviceAccount.name) to the service
account such as: vault-auth.

refs #376

[1] https://www.vaultproject.io/docs/auth/kubernetes#configuring-kubernetes
2020-10-20 09:34:48 -04:00
gw0
29a77e82d1
Improve config variables (#398) 2020-10-16 10:47:31 -04:00
Ori Rawlings
5eb0ba5865
Add configurable failurePolicy for injector's webhook (#400)
Fixes #399
2020-10-13 09:20:06 -04:00
Michael Parker
1968526f0d
add ability to set pod annotations for injector (#394)
* add ability to set pod annotations for injector

* add missing unit tests
2020-10-01 11:06:53 -04:00
Jason O'Donnell
13ef8db3b5
Add configurable mountPath for audit/data storage (#393) 2020-10-01 09:32:46 -04:00
Volodymyr Stoiko
66ea34c702
Allow explicit network policy enablement (#381)
* Disable default network policy

* Make network policy configurable by explicit flag only
2020-09-15 23:40:56 -07:00
Jason O'Donnell
fc8ebfdd4e
Add configurable probe values (#387)
* Add configurable probe values

* Remove template defaults

* Update values.yaml

Co-authored-by: Tom Proctor <tomhjp@users.noreply.github.com>

* Update values.yaml

Co-authored-by: Tom Proctor <tomhjp@users.noreply.github.com>

* Update values.yaml

Co-authored-by: Theron Voran <tvoran@users.noreply.github.com>

* Switch timeout and period defaults

Co-authored-by: Tom Proctor <tomhjp@users.noreply.github.com>
Co-authored-by: Theron Voran <tvoran@users.noreply.github.com>
2020-09-15 16:24:38 -04:00
Tom Proctor
798ac9c597
Update notes template to be helm v3 compatible (#378)
`helm get {{ .Release.Name }}` is replaced by `vault get all {{ .Release.Name }}` in helm v3, but `all` doesn't exist in v2.
2020-08-27 16:34:25 +01:00
Jason O'Donnell
117fff79bc
Add vault-k8s metrics configurable (#372) 2020-08-20 19:03:12 -04:00
Yong Wen Chua
5dc29f6c84
Add configuration options for Vault UI service (#285)
* Add configuration options for Vault UI service

- Configure to select active Vault pod only
- Configure to not publish unready address

* Create active label only on HA
2020-08-20 14:39:46 -04:00
Scott Hawkins
622690e68b
Add volume claim annotations (#364)
* Add templates for annotations to apply to PV.

* Fix spacing for template injection.

* Fix template logic, add unit tests.
2020-08-20 14:02:27 -04:00
Dawson Mortenson
f40cc89467
allow server annotations with dev mode (#371) 2020-08-20 13:45:36 -04:00
Sergei Zyubin
9fbe720f6b
Make serviceAccount name a configuration option (#367)
* Make serviceAccount name a configuration option

Follow Helm Best Practices when defining serviceAccount names
https://helm.sh/docs/chart_best_practices/#using-rbac-resources

* Use enabled instead of create for consistency

* Add unit tests for user-defined service account name

* ServiceAccount under server

Co-authored-by: David Holsgrove <david@apnic.net>

* Update ServiceAccount in RoleBindings

to address https://github.com/hashicorp/vault-helm/pull/56#pullrequestreview-297856433

Co-authored-by: David Holsgrove <david@apnic.net>

* Update tests for helm template arg --show-only

Co-authored-by: David Holsgrove <david@apnic.net>

* Fix server-serviceaccount tests

* serviceAccount: rename enabled to create

* statefulSet: add tests for serviceAccount

Co-authored-by: Nick Satterly <nick@diabol.se>
Co-authored-by: David Holsgrove <david@apnic.net>
2020-08-18 19:13:02 -07:00
Sam Weston
ed0b918bf6
Add an option to set annotations on the StatefulSet (#199)
* Add tests for adding StatefulSet annotations

Signed-off-by: Sam Weston <weston.sam@gmail.com>
Co-authored-by: Theron Voran <tvoran@users.noreply.github.com>
2020-08-14 15:04:52 -07:00
Lukas Grossar
ec69e1cccb
Remove tolerate-unready-endpoints annotation (#363)
This annotation has been deprecated since Kuberneets 1.8 and the
publishNotReadyAddresses parameter replacing it has been correctly
implemented in Kubernetes 1.11 (see https://github.com/kubernetes/kubernetes/pull/63742)
2020-07-30 10:23:02 -04:00
Erik DeLamarter
f965826a66
missing enabled checks for injector-network-policy (#358) 2020-07-30 10:05:01 -04:00
georgekaz
8c741f6276
add support for more flexible volume mounts. Include example values for init container (#314)
add unit tests

add missing braces
2020-07-14 10:23:08 -04:00
Yong Wen Chua
85b52694f7
Allow overriding VAULT_API_ADDR (#290) 2020-07-14 10:09:43 -04:00
Steven Merrill
70cfec3fc8
Force caBundle to always be quoted (#352)
This fixes issues when you do not provide a value for caBundle that
causes validation issues.
2020-07-14 09:53:33 -04:00
Yong Wen Chua
adf5bf65a9
Support PodSecurityPolicy (#177)
* Add PSP for server

* Add PSP for Injector

* Allow annotations to be templated

Co-authored-by: Theron Voran <tvoran@users.noreply.github.com>
2020-06-25 23:42:52 -07:00
Omer Levi Hevroni
5a7e10cf08
allow to set extra volume mode (#321) 2020-06-11 10:50:16 -04:00
Jason O'Donnell
853cb06842
Add OpenShift beta support (#319)
* Initial commit

* Added openshift flag

* added self signed certificate for service annotation

* added OpenShift flag

* Added OpenShift flag

* cleanup

* Cleanup

* Further cleanup

* Further cleanup

* reverted security context on injector

* Extra corrections

* cleanup

* Removed Raft config for OpenShift, removed generated certs for ha and standby services

* Add openshift flag to global block, route disabled by default, condition for injector in network policy

* Added Unit tests for OpenShift

* Fixed unit test for HA statefulset for OpenShift

* Removed debug log level from stateful set

* Added port 8201 to networkpolicy

* Updated injector image

* Add openshift beta support

* Add openshift beta support

* Remove comments from configs

* Remove vault-k8s note from values

* Change route to use active service when HA

Co-authored-by: Radu Domnu <radu.domnu@sixdx.com>
Co-authored-by: Radu Domnu <radu.domnu@gmail.com>
2020-06-02 22:10:41 -04:00
ttinkr
4f81ac070b
imagePullSecrets in injector-deployment (#298)
Co-authored-by: ttinkr <thomas.fellinger@nts.eu>
2020-06-02 10:09:48 -04:00
Theron Voran
8e982a6c9d
Allow setting HA services type (#317)
Making the types for active and standby services configurable (just
like the main vault service).
2020-06-02 10:06:50 -04:00
lukemassa
78ca71d2eb
Removing namespace from yaml of non-namespaced objects (#300) 2020-05-28 22:47:41 -04:00
Jason O'Donnell
4215316818
Add postStart lifecycle hook (#315)
* Add postStart lifecycle hook

* Update values.yaml

Co-authored-by: Theron Voran <tvoran@users.noreply.github.com>

Co-authored-by: Theron Voran <tvoran@users.noreply.github.com>
2020-05-28 14:53:46 -04:00
georgekaz
d755ad1ba0
Use active service on ingress when ha (#270)
Added some logic that points the ingress at the active server
when in ha mode. There are times that pointing at the standby
pods causes problems.
2020-05-28 11:51:25 -07:00
Gorka Maiztegi
6b77840e22
Update ingress apiVersion (#310)
The apiVersion `extensions/v1beta1` for ingresses has been removed in Kubernetes 1.16 and the new `networking.k8s.io/v1beta1` has to be used now. This conditional keeps compatibility with older Kubernetes versions while using the new apiVersion when available.
2020-05-26 19:28:15 -07:00
Josh Keife
9a835c40f1
Update comment in standby service (#299) 2020-05-21 11:58:53 -04:00
Adrienne Cohea
0cc1af1876
Add init containers to support TLS certificate introduction and other dynamic configuration use cases. (#258) 2020-05-08 14:35:39 -04:00
Jason O'Donnell
08a6f929b8
Revert "Add support for priorityClassName (#165)" (#287)
This reverts commit 2af6f9b44f.
2020-05-05 11:29:09 -04:00
Brian Choy
2af6f9b44f
Add support for priorityClassName (#165)
* Add support for priorityClassName

* Add unit tests

* Remove comment

* Update comment, accidentally deleted comment

* Remove whitespace
2020-05-05 11:10:17 -04:00
Yong Wen Chua
c8b18d1876
Support setting priorityClassName on pods (#282) 2020-04-30 18:37:27 -07:00
Yong Wen Chua
8cc3fdb167
Add support for setting VAULT_RAFT_NODE_ID environment variable (#269)
* Add support for setting VAULT_RAFT_NODE_ID environment variable

* Update server-statefulset.yaml

* Update server-ha-statefulset.bats
2020-04-27 11:38:26 -04:00
Theron Voran
e09de0dc63
Allow both yaml and multi-line string annotations (#272)
Changed/added helper functions to detect if the annotations value
is a string or yaml, and apply `tpl` or `toYaml`
accordingly. Defaults are left as `{}` since yaml is more likely
to be used with helm on the command line. This means a warning
will be shown when setting an annotation to a multi-line
string (which has been the existing behavior).
2020-04-27 08:28:50 -07:00
David Moreno García
0f36ee3a5b
Change config specification (#213)
* Change config specification

As it is right now, the specification of the config is done through an
string. When using storage backends like PostgreSQL, the password for the
database has to be included in the config variable of the values file.

This change allows to specify the configuration through a map, making
the chart GitOps friendly. Now, sensitive values can be stored in a
different values file or passed on deployment time with --set.

To have a very generic specification:
- I've assumed that the combination stanza (eg. storage) name (eg. file)
is unique.
- Quoted values for all stanza parameters. I tested a generated
configuration in a vault docker image and it seems to work just fine.

* Change config format to json

* Add conditional formatting

* Add config for raft mode
2020-04-27 10:45:56 -04:00
Theron Voran
2072bf2dcd
Fix ha standby and active service annotations (#268)
* service: fix annotations for HA standby/active services

* added unit tests

Co-authored-by: yotsub <63680950+yotsub@users.noreply.github.com>
2020-04-21 08:19:17 -07:00
Javad Karabi
374ea22c02
use port names that map to vault.scheme (#223)
* use port names that map to vault.scheme

* prefix internal/replication port names with vault.scheme

* port names must be 'no more than 15 characters'

* test vault server service port names are prefixed with vault scheme

* test vault server statefulset port names are prefixed with vault scheme

* test vault ui service port names are prefixed with vault scheme

* formatting: replace double quote with single quote

* uncomment accidentally-commented lines

* always set internal port name to https-internal, since it is always https

* prefix headless service internal port name with https
2020-04-13 08:48:23 -07:00
Jared Allard
27a3a76513
fix(templates/server): ingress has default paths of / (#224)
* fix(templates/server): ingress has default paths of /

* fix: array -> list

It's been awhile since I wrote Helm templates :/
2020-04-09 12:48:42 -04:00
Petter Abrahamsson
497daa5f60
Remove IPC_LOCK capability (#198)
* Remove IPC_LOCK capability

* Remove tests for IPC_LOCK
2020-04-09 12:47:17 -04:00
Jason O'Donnell
6d5a2174d8
Add Vault Helm ent support, service discovery (#250)
* Add Vault Helm ent support, service discovery

* Fix unit test

* Update test/acceptance/server-ha-enterprise-dr.bats

Co-Authored-By: Theron Voran <tvoran@users.noreply.github.com>

* Update test/acceptance/server-ha-enterprise-dr.bats

Co-Authored-By: Theron Voran <tvoran@users.noreply.github.com>

* Update test/acceptance/server-ha-enterprise-perf.bats

Co-Authored-By: Theron Voran <tvoran@users.noreply.github.com>

* Update test/acceptance/server-ha-enterprise-perf.bats

Co-Authored-By: Theron Voran <tvoran@users.noreply.github.com>

* Update values.yaml

Co-Authored-By: Theron Voran <tvoran@users.noreply.github.com>

Co-authored-by: Theron Voran <tvoran@users.noreply.github.com>
2020-04-09 09:26:58 -04:00
Jason O'Donnell
e97f4a579f
Fix hardcoded service name in raft enfv (#240) 2020-03-26 17:19:26 -04:00
Jason O'Donnell
d57bd7cb6e
Fix bug with api server env (#237) 2020-03-23 12:10:47 -04:00
Theron Voran
0550623c21
Fix server-headless-service annotations (#236)
`Values.server.service.annotations` are now being treated as multi-line
strings, to match the other annotations in the chart, and to support
templating within the annotations.
2020-03-20 10:54:32 -07:00
Theron Voran
2a37c571d7
Making all annotations multi-line strings (#227)
Annotations for various objects were either multi-line strings or yaml
maps strings, so this is making them all multi-line strings for
consistency. Also updated the doc comment for namespaceSelector, since
it's being read as a yaml map (toYaml).
2020-03-20 08:37:40 -07:00
Theron Voran
1a8d9de511
Injector scheduler options (#234)
Adds affinity, tolerations, and nodeSelector options for the
injector deployment that are separate from those options on the vault
server statefulset.

Co-authored-by: Sergei Shishov <sergei.shishov@dubizzle.com>
2020-03-19 22:43:52 -07:00
Theron Voran
fa13c47858
Add injector.extraEnvironmentVars (#232)
Allows user-specified environment variables to be set in the injector
deployment.
2020-03-18 21:30:22 -07:00
Jason O'Donnell
58b96dbc10
Add Raft HA support (#229)
* Add raft support

* Add acceptance test

* Update templates/server-headless-service.yaml

Co-Authored-By: Theron Voran <tvoran@users.noreply.github.com>

* Add notes to raft configurables

Co-authored-by: Theron Voran <tvoran@users.noreply.github.com>
2020-03-18 15:49:14 -04:00
Jason O'Donnell
d0f89fced8
Change revoke from bool to string (#221) 2020-03-06 16:59:59 -05:00
Jason O'Donnell
9d1693ad13
Add new vault-k8s environment variables (#219)
* Add new vault-k8s envs

* update vault image

* Add default tests for envs

* Add note about supported log parameters

* Fix typo in test name
2020-03-06 15:03:58 -05:00