Commit Graph

303 Commits

Author SHA1 Message Date
Tim Ramlot
349aaf666b
resolve feedback
Signed-off-by: Tim Ramlot <42113979+inteon@users.noreply.github.com>
2023-04-28 15:07:28 +02:00
Tim Ramlot
29e22e3900
account for pod not yet existing
Signed-off-by: Tim Ramlot <42113979+inteon@users.noreply.github.com>
2023-04-28 13:05:18 +02:00
Tim Ramlot
42e6282d02
use cluster-wide shared Vault instance
Signed-off-by: Tim Ramlot <42113979+inteon@users.noreply.github.com>
2023-04-28 13:05:18 +02:00
Tim Ramlot
3ed79f9129
upgrade vault
Signed-off-by: Tim Ramlot <42113979+inteon@users.noreply.github.com>
2023-04-25 09:22:19 +02:00
Tim Ramlot
733d302b69
remove unnessary Wait check & remove unused function
Signed-off-by: Tim Ramlot <42113979+inteon@users.noreply.github.com>
2023-04-13 18:27:39 +02:00
Tim Ramlot
ebe39934aa
vault test code cleanliness improvements
Signed-off-by: Tim Ramlot <42113979+inteon@users.noreply.github.com>
2023-04-13 16:44:49 +02:00
Tim Ramlot
7c037f2912
optimise QPS, Burst and concurrent-workers values for faster e2e tests
Signed-off-by: Tim Ramlot <42113979+inteon@users.noreply.github.com>
2023-04-11 14:51:18 +02:00
Ashley Davis
6ce6ae839e
separate binaries/tests into separate modules with minimal dependencies
also add gomod validation in CI, along with a cmrel version bump

Signed-off-by: Ashley Davis <ashley.davis@jetstack.io>
2023-04-05 10:30:39 +01:00
Maël Valais
76eef68730 serviceAccountRef: the vault issuer can now use bound SA tokens
Previously, the Vault issuer was only able to use a Secret in order to
use the "Kubernetes authentication" method. The downside to this service
account Secret token is that it has the default JWT iss
"kubernetes/serviceaccount" (along with the fact that the token is not
bound to a particular pod and has no expiry).

With the new serviceAccountRef, cert-manager now requests the token on
behalf of the pod in order to authenticate with Vault.

Signed-off-by: Maël Valais <mael@vls.dev>
2023-02-06 18:28:49 +01:00
Maël Valais
ba0bb5d503 e2e: the vault addon was incorrectly using StdoutPipe
The documentation [1] mentions that `StdoutPipe` should not be used
along with `Run`:

"Wait will close the pipe after seeing the command exit, so most callers
need not close the pipe themselves. It is thus incorrect to call Wait
before all reads from the pipe have completed. For the same reason, it
is incorrect to call Run when using StdoutPipe. See the example for
idiomatic usage."

It seems we are using `Run`, meaning that the StdoutPipe gets closed
when `Run` returns (because `Run` calls `Wait` and closes the StdoutPipe
before returning).

To reproduce:

    git fetch fa4c2cfcad79f0a8a806b71caefbf96b049533c5
    git checkout fa4c2cfcad79f0a8a806b71caefbf96b049533c5
    go test -tags=e2e_test ./test/e2e -- -test.outputdir=$PWD/_bin/artifacts \
      -ginkgo.junit-report=junit__01.xml -ginkgo.flake-attempts=1            \
      -test.timeout=24h -ginkgo.v -test.v -ginkgo.randomize-all              \
      -ginkgo.progress -ginkgo.trace -ginkgo.slow-spec-threshold=300s        \
      --repo-root=/home/mvalais/code/cert-manager                            \
      --report-dir=/home/mvalais/code/cert-manager/_bin/artifacts            \
      --acme-dns-server=10.0.0.16 --acme-ingress-ip=10.0.0.15                \
      --acme-gateway-ip=10.0.0.14                                            \
      --ingress-controller-domain=ingress-nginx.http01.example.com           \
      --gateway-domain=gateway.http01.example.com                            \
      --feature-gates=""                                                     \
      --ginkgo.focus=".*should be ready with a valid serviceAccountRef"

Result:

  error install helm chart: cmd.Run: exit status 1: io.Copy: write /dev/stdout: copy_file_range: use of closed file

Signed-off-by: Maël Valais <mael@vls.dev>
2023-02-06 18:28:49 +01:00
Tim Ramlot
23de5240e9
move utility functions to reduce fragmentation and rename functions for consistency
Signed-off-by: Tim Ramlot <42113979+inteon@users.noreply.github.com>
2023-01-23 13:19:39 +01:00
Maël Valais
f4f72c16e6 e2e: use Vault 1.12.1 instead of the outdated 1.2.3
The main reason for bumping Vault's version is because 1.2.3 is not
compatible with the config parameter `disable_iss_validation`, which is
needed for accommodating the future tests [1] that rely on bound tokens
and static tokens.

For context, Vault 1.2.3 was released on Sep 9, 2019 [2] but
`disable_iss_validation` was only added on July 21st, 2020 in Vault
1.5.0.

Due to a breaking change that happened in Vault 1.5.0 [3] in which Vault
started loading the pod's token instead of using the same token (to be
reviewed) for authenticating. An alternative solution could have been to
prevent the service account from being mounted to the pod, but I figured
that having the two service accounts separated is a better practice.

[1]: https://github.com/cert-manager/cert-manager/pull/5502
[2]: https://github.com/hashicorp/vault/commit/c14bd9a2
[3]: https://github.com/hashicorp/vault/blob/main/CHANGELOG.md#150

Signed-off-by: Maël Valais <mael@vls.dev>
2022-12-02 16:36:16 +01:00
jetstack-bot
1137f9964c
Merge pull request #5478 from Git-Jiro/use_hashicorp_vault_helmchart
Migrate Vault helm chart in e2e tests from ad-hoc version to official chart from hashicorp
2022-11-04 10:34:06 +00:00
Tim Ramlot
fd6032fc45
re-order Helm parameters & move some values to constants
Signed-off-by: Tim Ramlot <42113979+inteon@users.noreply.github.com>
2022-11-04 11:02:04 +01:00
jetstack-bot
da3265115b
Merge pull request #5387 from Tolsto/vault-ca-bundle-secret-ref
Add option to load Vault CA bundle from Kubernetes Secret
2022-10-13 09:55:09 +01:00
Martin Schimandl
9071eac950 use Vault Helm Chart provied by Hashicorp
Signed-off-by: Martin Schimandl <martin.schimandl@gmail.com>
2022-10-08 09:45:52 +01:00
Nils
81e6c24293 fixup! Add option to load Vault CA bundle from Kubernetes Secret
Co-authored-by: Josh van Leeuwen <joshua.vanleeuwen@jetstack.io>
Signed-off-by: Nils Mueller <nm@impactful.it>
2022-08-21 07:41:15 +03:00
Tim Ramlot
836793e7e3 upgrade gateway api to v0.5.0
Signed-off-by: Tim Ramlot <42113979+inteon@users.noreply.github.com>
2022-08-08 08:52:59 +00:00
Tim Ramlot
a8743628a4 only print Helm install output on error
Signed-off-by: Tim Ramlot <42113979+inteon@users.noreply.github.com>
2022-08-04 10:21:27 +00:00
Tim Ramlot
9897f2355c upgrade ginkgo to v2
Signed-off-by: Tim Ramlot <42113979+inteon@users.noreply.github.com>
2022-08-04 10:16:29 +00:00
Tim Ramlot
f6a381d247 replace 'github.com/onsi/ginkgo' with 'github.com/onsi/ginkgo/v2'
Signed-off-by: Tim Ramlot <42113979+inteon@users.noreply.github.com>
2022-08-03 15:28:23 +00:00
Ashley Davis
fb231ab641
Remove bazel 🎉
This removes all .bazel and .bzl files, and a bunch of scripts relating
to bazel, now that it's been entirely replaced.

There are still a few places where traces could be removed, but this
removes the brunt of the bazel stuff that remains.

Signed-off-by: Ashley Davis <ashley.davis@jetstack.io>
2022-07-26 11:38:50 +01:00
Joakim Ahrlin
de08109be0 add VerifyCredentials to Venafi issuers setup
Signed-off-by: Joakim Ahrlin <joakim.ahrlin@gmail.com>
2022-06-14 12:26:38 +02:00
Alessandro Vermeulen
1da01211ee Feature gated support for using literal subjects in Certificates
Signed-off-by: Alessandro Vermeulen <alessandro.vermeulen@ing.com>
2022-06-08 20:50:00 +02:00
Maël Valais
2205bafef5 e2e: WaitForAllPodsRunningInNamespaceTimeout: %s missing value in logs
Signed-off-by: Maël Valais <mael@vls.dev>
2022-03-29 10:54:26 +02:00
Maël Valais
d6ebdda49c make/e2e.sh: add a backoff to the log.Logf when waiting for something
Signed-off-by: Maël Valais <mael@vls.dev>
2022-03-29 10:45:08 +02:00
Monis Khan
2a33c7a5c2
Use Kubernetes CSR spec.expirationSeconds to express cert duration
This change adds the ability to express certificate duration using
the Kubernetes CSR spec.expirationSeconds field alongside the existing
approach of using the experimental.cert-manager.io/request-duration
annotation.  Both approaches are supported as the expirationSeconds
field requires Kubernetes v1.22+.

Signed-off-by: Monis Khan <mok@vmware.com>
2022-03-21 09:40:32 -04:00
irbekrm
cdaeb0599a Removes the creation of the unused test istio GatewayClass
Signed-off-by: irbekrm <irbekrm@gmail.com>
2022-03-12 16:13:06 +00:00
Tathagata Paul
6503f4f83c e2e for issuers and cluster issuers ready state
Signed-off-by: Tathagata Paul <tathagatapaul7@gmail.com>
2022-03-03 19:15:36 +05:30
Joakim Ahrlin
eb64e6494c
update deps and BUILD files
Signed-off-by: Joakim Ahrlin <joakim.ahrlin@gmail.com>
2022-03-01 15:05:18 +00:00
Jake Sanders
c96d91d586
Update the sig-network Gateway API support to v1alpha2
Co-authored-by: Joakim Ahrlin <joakim.ahrlin@gmail.com>
Signed-off-by: Jake Sanders <i@am.so-aweso.me>
2022-03-01 15:05:17 +00:00
joshvanl
d3052a81e4 Require Gateway API feature gate for Gateway API tests. Add a helper
func

Signed-off-by: joshvanl <vleeuwenjoshua@gmail.com>
2022-02-14 11:51:15 +00:00
Ashley Davis
3a055cc2f5
rename all uses of github.com/jetstack/cert-manager
This was done by running the following command twice:

 ```bash
 grep -Ri "github.com/jetstack/cert-manager" . | \
 cut -d":" -f1 | \
 sort | \
 uniq | \
 xargs sed -i
 "s/github.com\/jetstack\/cert-manager/github.com\/cert-manager\/cert-manager/"
 ```

Signed-off-by: Ashley Davis <ashley.davis@jetstack.io>
2022-02-02 09:08:31 +00:00
joshvanl
c18571a78d Remove json tags from internal API types.
Signed-off-by: joshvanl <vleeuwenjoshua@gmail.com>
2022-01-18 14:04:53 +00:00
joshvanl
685dd79c0c Makes some minor API naming changes, and clears up some docs around the
Certifcate's additional output formats.

Signed-off-by: joshvanl <vleeuwenjoshua@gmail.com>
2022-01-14 20:00:26 +00:00
Thierry Sallé
d0094ce277 [e2e] Add more e2e test for additional output formats
Signed-off-by: Thierry Sallé <seuf76@gmail.com>
2022-01-14 11:10:32 +01:00
Thierry Sallé
7f8641dd94 [additionalOutputFormats] Update comments and add more tests
Signed-off-by: Thierry Sallé <seuf76@gmail.com>
2022-01-14 11:10:32 +01:00
Thierry
81f308221b Add certifcate additionalOutputFormats parameter
DER Format to create key.der binary format of the private key.

CombinedPEM Format to create tls-combined.pem containing tls.key + tls.crt.

Added Unit and e2e tests for secret with Additional output format.

Feature flag AdditionalCertificateOutputFormats to enable feature.

Signed-off-by: Thierry Sallé <seuf76@gmail.com>
2022-01-14 11:10:32 +01:00
jetstack-bot
59c0b40721
Merge pull request #4703 from JoshVanL/test-e2e-feature-gate-piping
Pipes in the feature gates from environment to e2e binary
2022-01-05 10:44:44 +00:00
Ashley Davis
727e29a747
three small goimports fixes against current HEAD
rather than using the default suggested `v1` names for some imports, we
use more descriptive names

Signed-off-by: Ashley Davis <ashley.davis@jetstack.io>
2022-01-04 16:05:42 +00:00
joshvanl
c600ba07a0 Pipes in the feature gates from environment to e2e binary. Test for
shared feature gate existence within CertificateSigningRequest suite
test

Signed-off-by: joshvanl <vleeuwenjoshua@gmail.com>
2022-01-04 13:17:06 +00:00
Igor Zibarev
f9ceb8a73e Fix some lint issues regarding comments
References issue #4457

Signed-off-by: Igor Zibarev <zibarev.i@gmail.com>
2021-11-02 13:57:20 +03:00
Eng Zer Jun
54e70d2cc4
refactor: move from io/ioutil to io and os package
The io/ioutil package has been deprecated in Go 1.16. This commit
replaces the existing io/ioutil functions with their new definitions in
io and os packages.

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2021-08-23 19:50:42 +08:00
irbekrm
831b87898f Explicitly set Venafi Cloud e2e tests to use v2 endpoint
Signed-off-by: irbekrm <irbekrm@gmail.com>
2021-08-18 12:52:05 +01:00
Inteon
ef31a2ea08
cleanup & better error debug printing
Signed-off-by: Inteon <42113979+inteon@users.noreply.github.com>
2021-08-06 17:31:58 +02:00
jetstack-bot
8d0c228a1f
Merge pull request #4298 from inteon/fix_test_flake
Improve certificate condition checking and error logging
2021-08-05 09:43:39 +01:00
Inteon
66820ed03e
resolve bugs
Signed-off-by: Inteon <42113979+inteon@users.noreply.github.com>
2021-08-04 18:50:29 +02:00
Inteon
7bf6bf93bf
cleanup test functions
Signed-off-by: Inteon <42113979+inteon@users.noreply.github.com>
2021-08-04 15:11:30 +02:00
Inteon
2d2bde57c0
improved certificate condition checking and error logging
Signed-off-by: Inteon <42113979+inteon@users.noreply.github.com>
2021-08-03 23:00:42 +02:00
Jake Sanders
b19bdff66b
Tidy certificate test suites
Signed-off-by: Jake Sanders <i@am.so-aweso.me>
2021-08-02 14:53:15 +01:00