Commit Graph

41 Commits

Author SHA1 Message Date
Mark Rossetti
ecd543be04 Remove out-of-support Windows 20H2 images
Signed-off-by: Mark Rossetti <marosset@microsoft.com>
2022-10-12 14:43:51 -07:00
Claudiu Belu
14708f23b5 agnhost: Check symlink target's permissions for Windows
We're not interested in checking the file permissions of the
symlink itself, but it's target's permissions.
2022-06-29 09:15:47 -07:00
Antonio Ojea
2b822161f0 agnhost: fix sigterm shutdown 2022-05-25 12:50:23 +02:00
David Eads
566394467e add readyz handling to netexec 2022-05-23 14:26:09 -04:00
ahrtr
584d994133 replace all the deprecated ioutil with io and os 2022-05-09 15:27:13 +08:00
Andrew Sy Kim
9b5b77ac81 test/images/agnhost: bump agnhost to v2.36
Signed-off-by: Andrew Sy Kim <andrewsy@google.com>
2022-03-17 11:47:04 -04:00
Sergey Kanzhelev
2012358e39 add the grpc-health-checking to agnhost 2022-03-04 21:29:55 +00:00
Antonio Ojea
2bf38ed86b agnhost: allow to disable udp listener on netexec
There are some tests that doesn't need the UDP listener, so they
can disable it.
This is specially needed for tests that use hostNetwork pods, if 2
pods try to bind to the same port, the test will fail because one
of the pod can't be scheduled because of the port conflict.

To keep backwards compatibility, we can add an option to disable
the UDP listener by setting the port number to -1, that is consistent
with the SCTP implementation.
2021-09-20 09:44:20 +02:00
Claudiu Belu
94ac896269 test images: Simplifies the agnhost binary version
Currently, whenever agnhost/VERSION is bumped, the version in
agnhost/agnhost.go has to be bumped as well. This is also verified
on presubmit (build/dependencies.yaml).

This means that whenever we need to bump the agnhost image version,
someone has to approve the build/dependencies.yaml, which is not as
easy.

This commit removes the need for this check by automatically setting
the Version inside agnhost.go at build time, simplifying the process.
2021-08-11 09:12:03 +00:00
Michael Taufen
0b3b99c096 Try both in-cluster and external discovery
The conformance test for ServiceAccountIssuerDiscovery is currently
configured with --in-cluster-discovery, which only supports token
validation against in-cluster endpoints. Many cloud providers provide
their own, external endpoints for OIDC discovery, and because the iss
claim in tokens will point to these endpoints, but the client in this
test only trusts the Cluster CA, it will fail to connect to the external
discovery endpoints when validating the token.

To ensure that the conformance test at least supports scenario where
both the discovery doc endpoint and JWKS endpoint are cluster-local and
the scenario where both endpoints are cluster-external, this PR has the
test try both and requires at least one to pass.

Caveat: The test still won't support a configuration where one
endpoint is cluster-local and the other is external. We don't yet have
evidence that this is a configuration that is used in practice, so this
initial hotfix will at least fix the conformance test for the "both
external" configuration we know providers already use. Note that if one
endpoint is cluster-local, and the other is cluster-external, tokens can
still only be validated in-cluster, because both endpoints must be
accessible to Relying Parties that validate tokens.
2021-04-29 08:56:02 -07:00
Andrey Smirnov
f9aaf71ccb test/e2e: fix the OIDC discovery test with ECDSA service account key
By default oidc library enables only `RS256` signature validation
method.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2021-03-30 22:58:50 +03:00
Ernest Wong
573535691b agnhost: resolve service account issuer URL before invoking oidc.NewProvider
Signed-off-by: Ernest Wong <chuwon@microsoft.com>
2021-03-15 19:14:14 -07:00
Federico Paolinelli
f6451c93b1 Bump up agnhost version to 2.29
This is to consume the changes for binding the udp listeners of netexec
to specific addresses.

Signed-off-by: Federico Paolinelli <fpaoline@redhat.com>
2021-03-05 10:49:09 +01:00
Amim Knabben
f1da11078a UDP protocol on connect agnhost command 2021-02-07 15:29:58 -05:00
Claudiu Belu
bdaf849c0f test images: Remove busybox-helper image
We cannot have any RUN commands in the Windows stage when using docker buildx,
which is why we were using the busybox-helper image. The purpose of the image
was to contain a few things that we would obtain by running a few commands:

- symlinks for the busybox binary
- run vcredist_x64.exe which would also give us the vcruntime140.dll which is
  necessary for dig or httpd.

There are alternatives to the commands above that can be achieved in a Linux stage
as well:

- we can create the symlinks in a Linux stage with ln -s. Copying them over to
Windows will allow them to work just as well as if they were being copied over
from a Windows image. The 'Files\' prefix issue to the symlink target still persists.
- we can download the vcruntime140.dll directly, allowing us to skip the vcredist_x64.exe
  installation.
2021-01-27 04:22:38 -08:00
Rajas Kakodkar
7a82831255 bump VERSION
Signed-off-by: Rajas Kakodkar <rajas.kakodkar@ibm.com>
2020-12-16 07:35:59 +00:00
Stephen Heywood
f005b3a5f7 Add json-response flag to porter
Provides a response that includes a body and a method. This response
will enable a client (e2e test) to confirm that a proxy did not alter
the http method.
2020-10-30 14:48:16 +13:00
Valerii Ponomarov
c55b6cdbb4 agnhost image: use actual DNS domain instead of hardcoded cluster.local
'agnhost' image uses hardcoded 'cluster.local' value for DNS domain.
It leads to failure of a bunch of HPA tests when test cluster is
configured to use custom DNS domain and there is no alias for
default 'cluster.local' one.
So, fix it by reusing it's own function for reading DNS domain suffixes.

Signed-off-by: Valerii Ponomarov <kiparis.kh@gmail.com>
2020-09-24 14:24:16 +03:00
Claudiu Belu
46c820e793 test images: uses nanoserver
Using Windows nanoserver container images as a base instead of the current
Windows servercore image will reduce the image size by about ~10x.

However, the nanoserver image lacks several things we need:
- netapi32.dll
- powershell
- certain powershell commands
- chocolatey cannot be used

When building the nanoserver images, we are going to use a Windows servercore helper,
in which we are going to install the necessary dependencies, and then copy them over
to our nanoserver image, including necessary DLLs.

Other notable changes include:
- switch from wget to curl (wget was a powershell alias).
- implement in code getting the DNS suffix list and DNS server list.
- reimplement getting file permissions for mounttest.
2020-09-21 04:53:44 -07:00
Benjamin Elder
3e2cb2922b synchronize agnhost image / app version 2020-08-20 17:00:41 -07:00
Federico Paolinelli
7ff930b6c8 Bump up the agnhost version to reflect changes in https://github.com/kubernetes/kubernetes/pull/90797
There was an un-noticied conflict with 279ce5d89e (diff-75312865ef706f08787bf2987d761c13)

Signed-off-by: Federico Paolinelli <fpaoline@redhat.com>
2020-06-24 17:37:41 +02:00
Benjamin Elder
279ce5d89e s/master/primary in agnhost guestbook test references & agnhost code
to do in follow-up: update the agnhost deployments and references to those when the new image is pushed
2020-06-19 12:23:16 -07:00
Benjamin Elder
c57e39f664 bump agnhost version to match fully 2020-06-12 15:44:15 -07:00
Benjamin Elder
c8dce6d4b3 bump agnhost version 2020-06-08 16:38:09 -07:00
hasheddan
0cacc44fc9 Retry resolving TCP address in agnhost/guestbook
Currently the guestbook application will fail if unable
to resolve TCP address on first attempt. If pod networking
is not setup when the application starts then it will be
unable to resolve, leading to frequent failures. This moves
the address resolution into the retry block so it will try
again if unsuccessful on first attempt.

Signed-off-by: hasheddan <georgedanielmangum@gmail.com>
2020-05-11 13:45:28 -05:00
Clayton Coleman
3c9959a5d4 netexec: Allow graceful shutdown testing from netexec
The current /exit method is not sufficient to test graceful shutdown
behaviors within Kube that allow services to remain available during
rolling restarts. Add support for `wait=DURATION` and
`timeout=DURATION` to the exit handler and wire that to the Go http
server's graceful termination.

With these methods netexec can be used in a pod to simulate graceful
shutdown by adding a preStop handler that hits the exit endpoint with
a timeout and wait period.
2020-05-07 09:18:27 -04:00
Jason Simmons
d0f19815d2 Updates agnhost image VERSION and README 2020-04-21 09:43:58 -04:00
Claudiu Belu
94ffe582e9 Image promoter: Reenable Windows test image building
The build times are a bit high for the image builder (~50 minutes), and it will a bit more
when Windows support will be added to the other test images. This commit changes the
machineType to N1_HIGHCPU_8.

Reenables Windows test image building. Added DOCKER_CERT_BASE_PATH (default value: $HOME),
which will contain the path where the certificates needed for Remote Docker Connection can
be found.

If a REMOTE_DOCKER_URL was not set for a particular OS version, exclude that image from the
manifest list. This fixes an issue where, if REMOTE_DOCKER_URL was not set for Windows Server 1909,
the Windows were completely excluded from the manifest list, including for Windows Server 1809
and 1903 which could have been built and pushed.

Sets "test-webserver" as the default CMD for kitten and nautilus. Since they are now based on
agnhost, they should be set to run test-webserver to maintain previous behaviour.

Bumps the agnhost version to 2.13, as 2.12 has already been promoted. 2.13 will contain
Windows support.

Adds Windows support for the kitten and nautilus images, so they can promoted together
with agnhost (they were not previously promoted).

Adds OWNERS files to: agnhost, busybox, kitten, nautilus.
2020-04-14 05:12:46 -07:00
Federico Paolinelli
e31f72e3a4 Bump agnhost version to 2.13, and bump up depending images.
Kitten / nautilus depend on agnhost.

Signed-off-by: Federico Paolinelli <fpaoline@redhat.com>
2020-04-03 13:00:23 -04:00
Charles Eckman
5ceecd3ba3 Update agnhost to test OIDC validation of JWT tokens
Extends agnhost with the capability to validate a mounted token against
the API server's OIDC endpoints.

Co-authored-by: Michael Taufen <mtaufen@google.com>
2020-03-03 15:27:47 -08:00
Claudiu Belu
22a5fbcfa9 test images: Bumps image versions
The way the images are built is going to be changed, and in order to avoid
overwritting and breaking the current images, the image versions are bumped.
2020-02-21 02:09:49 -08:00
Krzysztof Siedlecki
3593fc69ab bumping agnhost version to 2.10 2020-01-27 11:59:03 +01:00
Claudiu Belu
8f099010a5 Centralizes images into agnhost (part 4)
Centralizes the following images into agnhost:

- dnsutils
- mounttest
- resource-consumer-controller
- test-webserver

Adds CoreDNS to agnhost image, which can be used in some DNS related tests (dnsmasq is Linux-only).

Adds Windows support to mounttest.

Bumps agnhost version to 2.9.
Bumps kitten version to 1.1.
Bumps nautilus version to 1.1.
2019-10-24 15:02:40 -07:00
Claudiu Belu
9dd79321e0 tests: Adds guestbook app subcommand in agnhost
The redis version has been bumped to version 5.0.5, but the maximum version supported on
Windows is 3.2. This can lead to failing tests, the output and behaviour can be different
(see #80516). In order to prevent such failures, the amount of times the Redis image is
used can be reduced.

This commit adds the guestbook subcommand to agnhost, which can be used to emulate the
Guestbook application created by the test "should create and stop a working application".

Bumps agnhost image VERSION.
2019-10-24 07:51:28 -07:00
Claudiu Belu
8880a4f74f tests: Extends agnhost netexec udp buffers
Currently, the UDP buffer sizes are set to 1024 bytes. Larger requests will not be
read entirely by the UDP handlers, which can lead to tests relying on this to fail.
2019-10-16 04:21:45 -07:00
Jordan Liggitt
0558e83867 Add /readyz endpoints to converter/webhook test image 2019-08-30 12:52:52 -04:00
Joe Betz
4f7543e42a Upgrade AdmissionReview e2e test image to also support v1 2019-08-14 14:57:55 -07:00
Dan Winship
66b9611945 agnhost: add connect subcommand
This can be used by networking tests that need to distinguish
different connect errors.
2019-06-29 08:55:59 -04:00
Claudiu Belu
af5c0c9e09 Centralizes images into agnhost (part 3)
Centralizes the following images into agnhost:

- audit-proxy
- crd-conversion-webhook
- entrypoint-tester
- inclusterclient
- iperf
- porter
- serve-hostname
2019-06-26 22:14:28 -07:00
Claudiu Belu
8fc07ea929 Centralizes images into agnhost (part 2)
Centralizes the following images into agnhost:

- net
- netexec
- nettest
- webhook

Adds logging persistent flags, which are used by some tests.
2019-06-12 21:31:37 -07:00
Claudiu Belu
625a9d98a8 tests: Adds agnhost image
The new image is meant to be used for testing purposes, whenever there
are significant differences between Linux and Windows in the way
something is obtained or tested. For example, the DNS suffix list can
be found in ``/etc/resolv.conf`` on Linux, but on Windows, such file
does not exist, and one way to obtain the mentioned list would be
through some powershell commands.

The image contains an extendable CLI as the entrypoint, the tests
only having to add the necessary arguments. For the previous example,
passing the ``dns-suffix`` argument will print out the comma separated
DNS suffix list, on both Linux and Windows.

The image name means that it should behave the same way on any host,
no matter the host OS.
2019-03-30 06:04:56 -07:00