ContainerImage.Pinniped/test/integration
Matt Moyer 58bbffded4
Switch to a slimmer distroless base image.
At a high level, it switches us to a distroless base container image, but that also includes several related bits:

- Add a writable /tmp but make the rest of our filesystems read-only at runtime.

- Condense our main server binaries into a single pinniped-server binary. This saves a bunch of space in
  the image due to duplicated library code. The correct behavior is dispatched based on `os.Args[0]`, and
  the `pinniped-server` binary is symlinked to `pinniped-concierge` and `pinniped-supervisor`.

- Strip debug symbols from our binaries. These aren't really useful in a distroless image anyway and all the
  normal stuff you'd expect to work, such as stack traces, still does.

- Add a separate `pinniped-concierge-kube-cert-agent` binary with "sleep" and "print" functionality instead of
  using builtin /bin/sleep and /bin/cat for the kube-cert-agent. This is split from the main server binary
  because the loading/init time of the main server binary was too large for the tiny resource footprint we
  established in our kube-cert-agent PodSpec. Using a separate binary eliminates this issue and the extra
  binary adds only around 1.5MiB of image size.

- Switch the kube-cert-agent code to use a JSON `{"tls.crt": "<b64 cert>", "tls.key": "<b64 key>"}` format.
  This is more robust to unexpected input formatting than the old code, which simply concatenated the files
  with some extra newlines and split on whitespace.

- Update integration tests that made now-invalid assumptions about the `pinniped-server` image.

Signed-off-by: Matt Moyer <moyerm@vmware.com>
2021-08-09 15:05:13 -04:00
..
category_test.go Fix bad test package name 2021-06-22 11:23:19 -04:00
cli_test.go Fix TestCLILoginOIDC when running directly against Okta. 2021-07-09 16:29:42 -05:00
concierge_api_serving_certs_test.go Make TestAPIServingCertificateAutoCreationAndRotation less flaky. 2021-07-09 11:29:02 -05:00
concierge_availability_test.go Fix bad test package name 2021-06-22 11:23:19 -04:00
concierge_client_test.go Fix bad test package name 2021-06-22 11:23:19 -04:00
concierge_credentialissuer_test.go Fix bad test package name 2021-06-22 11:23:19 -04:00
concierge_credentialrequest_test.go Fix bad test package name 2021-06-22 11:23:19 -04:00
concierge_impersonation_proxy_test.go Switch to a slimmer distroless base image. 2021-08-09 15:05:13 -04:00
concierge_kubecertagent_test.go Relax the timeout for TestLegacyPodCleaner a bit. 2021-07-28 13:08:57 -05:00
concierge_kubectl_test.go Fix bad test package name 2021-06-22 11:23:19 -04:00
e2e_test.go Fix broken TTY after manual auth code prompt. 2021-07-30 12:45:44 -05:00
formposthtml_test.go Extend TestE2EFullIntegration to test manual OIDC flow. 2021-07-09 12:08:45 -05:00
kube_api_discovery_test.go Fix bad test package name 2021-06-22 11:23:19 -04:00
kubeclient_test.go Fix bad test package name 2021-06-22 11:23:19 -04:00
ldap_client_test.go Run the LDAP client's integration tests only on Kind 2021-07-08 11:10:53 -07:00
rbac_test.go Fix bad test package name 2021-06-22 11:23:19 -04:00
supervisor_discovery_test.go Add "response_modes_supported" to Supervisor discovery response. 2021-07-09 12:08:43 -05:00
supervisor_healthz_test.go Fix bad test package name 2021-06-22 11:23:19 -04:00
supervisor_login_test.go Fix bad test package name 2021-06-22 11:23:19 -04:00
supervisor_secrets_test.go Fix bad test package name 2021-06-22 11:23:19 -04:00
supervisor_storage_garbage_collection_test.go Fix bad test package name 2021-06-22 11:23:19 -04:00
supervisor_storage_test.go Fix bad test package name 2021-06-22 11:23:19 -04:00
supervisor_upstream_test.go Fix bad test package name 2021-06-22 11:23:19 -04:00
whoami_test.go Fix bad test package name 2021-06-22 11:23:19 -04:00