Making pipeline (and entrypoint
) FIPS complitant
#8531
Labels
help wanted
Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.
kind/cleanup
Categorizes issue or PR as related to cleaning up code, process, or technical debt.
Some users (customers of Red Hat and users of
tektoncd/pipeline
) may require their software to be FIPS compliant.In short, to be FIPS compliant, you need to compile the project with a Go FIPS compliant compiler (see
golang-fips
and use dynamic linking.This works for most binaries in
tektoncd/pipeline
except theentrypoint
which is required to be build statically to be able to run in any environment (where libs would be at different places, different versions, …). To be able to mark a statically compiled binary as FIPS compliant, we need to ensure there is no crypto symbols in it (crypto/*
,golang.org/x/crypto
, …).This issue aims to track the work that would help making the
entrypoint
FIPS compliant.github.com/tektoncd/pipeline/pkg/spire
and some metrics packagespkg/credentials
into 2 pieces :cmd/entrypoint
and that doesn't importcorev1 "k8s.io/api/core/v1"
. This is theWrite
part.MachingAnnotations
part, that usescorev1
for Secretsapis
package for just constantsgo.uber.org/zap
inentrypoint
's dependent packages (can rely onlog
orlog/slog
if need be)Some imports are effectively bringing a lot of dependencies, such as
corev1 "k8s.io/api/core/v1"
.Quick note on this work : it will also come with the benefit of reducing the size of the binary 👼🏼 so, imo, it's a net gain.
A
patch
is exists showcasing some of these approach, but in a very rough way.cc @jkhelil @afrittoli
The text was updated successfully, but these errors were encountered: