Skip to content

Commit b07338f

Browse files
committed
feat: provide machine config document to update trusted CA roots
Fixes #8867 Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
1 parent f14c479 commit b07338f

File tree

29 files changed

+4325
-21
lines changed

29 files changed

+4325
-21
lines changed

Dockerfile

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,7 @@ COPY --from=go-generate /src/pkg/machinery/nethelpers/ /pkg/machinery/nethelpers
332332
COPY --from=go-generate /src/pkg/machinery/extensions/ /pkg/machinery/extensions/
333333
COPY --from=ipxe-generate / /pkg/provision/providers/vm/internal/ipxe/data/ipxe/
334334
COPY --from=embed-abbrev / /
335+
COPY --from=pkg-ca-certificates /etc/ssl/certs/ca-certificates /internal/app/machined/pkg/controllers/secrets/data/
335336

336337
# The base target provides a container that can be used to build all Talos
337338
# assets.
@@ -343,6 +344,7 @@ COPY ./internal ./internal
343344
COPY --from=generate /pkg/flannel/ ./pkg/flannel/
344345
COPY --from=generate /pkg/imager/ ./pkg/imager/
345346
COPY --from=generate /pkg/machinery/ ./pkg/machinery/
347+
COPY --from=generate /internal/app/machined/pkg/controllers/secrets/data/ ./internal/app/machined/pkg/controllers/secrets/data/
346348
COPY --from=embed / ./
347349
RUN --mount=type=cache,target=/.cache go list all >/dev/null
348350
WORKDIR /src/pkg/machinery
@@ -561,7 +563,6 @@ COPY --from=depmod-arm64 /build/lib/modules /lib/modules
561563
# The rootfs target provides the Talos rootfs.
562564
FROM build AS rootfs-base-amd64
563565
COPY --link --from=pkg-fhs / /rootfs
564-
COPY --link --from=pkg-ca-certificates / /rootfs
565566
COPY --link --from=pkg-apparmor-amd64 / /rootfs
566567
COPY --link --from=pkg-cryptsetup-amd64 / /rootfs
567568
COPY --link --from=pkg-containerd-amd64 / /rootfs
@@ -604,7 +605,7 @@ COPY ./hack/cleanup.sh /toolchain/bin/cleanup.sh
604605
RUN <<END
605606
cleanup.sh /rootfs
606607
mkdir -pv /rootfs/{boot/EFI,etc/cri/conf.d/hosts,lib/firmware,usr/local/share,usr/share/zoneinfo/Etc,mnt,system,opt,.extra}
607-
mkdir -pv /rootfs/{etc/kubernetes/manifests,etc/cni/net.d,usr/libexec/kubernetes,/usr/local/lib/kubelet/credentialproviders}
608+
mkdir -pv /rootfs/{etc/kubernetes/manifests,etc/cni/net.d,etc/ssl/certs,usr/libexec/kubernetes,/usr/local/lib/kubelet/credentialproviders}
608609
mkdir -pv /rootfs/opt/{containerd/bin,containerd/lib}
609610
END
610611
COPY --chmod=0644 hack/zoneinfo/Etc/UTC /rootfs/usr/share/zoneinfo/Etc/UTC
@@ -616,7 +617,7 @@ COPY --chmod=0644 hack/udevd/80-net-name-slot.rules /rootfs/usr/lib/udev/rules.d
616617
COPY --chmod=0644 hack/lvm.conf /rootfs/etc/lvm/lvm.conf
617618
RUN <<END
618619
ln -s /usr/share/zoneinfo/Etc/UTC /rootfs/etc/localtime
619-
touch /rootfs/etc/{extensions.yaml,resolv.conf,hosts,os-release,machine-id,cri/conf.d/cri.toml,cri/conf.d/01-registries.part,cri/conf.d/20-customization.part}
620+
touch /rootfs/etc/{extensions.yaml,resolv.conf,hosts,os-release,machine-id,cri/conf.d/cri.toml,cri/conf.d/01-registries.part,cri/conf.d/20-customization.part,ssl/certs/ca-certificates}
620621
ln -s ca-certificates /rootfs/etc/ssl/certs/ca-certificates.crt
621622
ln -s /etc/ssl /rootfs/etc/pki
622623
ln -s /etc/ssl /rootfs/usr/share/ca-certificates
@@ -626,7 +627,6 @@ END
626627

627628
FROM build AS rootfs-base-arm64
628629
COPY --link --from=pkg-fhs / /rootfs
629-
COPY --link --from=pkg-ca-certificates / /rootfs
630630
COPY --link --from=pkg-apparmor-arm64 / /rootfs
631631
COPY --link --from=pkg-cryptsetup-arm64 / /rootfs
632632
COPY --link --from=pkg-containerd-arm64 / /rootfs
@@ -669,7 +669,7 @@ COPY ./hack/cleanup.sh /toolchain/bin/cleanup.sh
669669
RUN <<END
670670
cleanup.sh /rootfs
671671
mkdir -pv /rootfs/{boot/EFI,etc/cri/conf.d/hosts,lib/firmware,usr/local/share,usr/share/zoneinfo/Etc,mnt,system,opt,.extra}
672-
mkdir -pv /rootfs/{etc/kubernetes/manifests,etc/cni/net.d,usr/libexec/kubernetes,/usr/local/lib/kubelet/credentialproviders}
672+
mkdir -pv /rootfs/{etc/kubernetes/manifests,etc/cni/net.d,etc/ssl/certs,usr/libexec/kubernetes,/usr/local/lib/kubelet/credentialproviders}
673673
mkdir -pv /rootfs/opt/{containerd/bin,containerd/lib}
674674
END
675675
COPY --chmod=0644 hack/zoneinfo/Etc/UTC /rootfs/usr/share/zoneinfo/Etc/UTC
@@ -681,7 +681,7 @@ COPY --chmod=0644 hack/udevd/80-net-name-slot.rules /rootfs/usr/lib/udev/rules.d
681681
COPY --chmod=0644 hack/lvm.conf /rootfs/etc/lvm/lvm.conf
682682
RUN <<END
683683
ln -s /usr/share/zoneinfo/Etc/UTC /rootfs/etc/localtime
684-
touch /rootfs/etc/{extensions.yaml,resolv.conf,hosts,os-release,machine-id,cri/conf.d/cri.toml,cri/conf.d/01-registries.part,cri/conf.d/20-customization.part}
684+
touch /rootfs/etc/{extensions.yaml,resolv.conf,hosts,os-release,machine-id,cri/conf.d/cri.toml,cri/conf.d/01-registries.part,cri/conf.d/20-customization.part,ssl/certs/ca-certificates}
685685
ln -s /etc/ssl /rootfs/etc/pki
686686
ln -s ca-certificates /rootfs/etc/ssl/certs/ca-certificates.crt
687687
ln -s /etc/ssl /rootfs/usr/share/ca-certificates
@@ -867,6 +867,7 @@ FROM --platform=${BUILDPLATFORM} iso-${TARGETARCH} AS iso
867867
FROM base AS unit-tests-runner
868868
RUN unlink /etc/ssl
869869
COPY --from=rootfs / /
870+
COPY --from=pkg-ca-certificates / /
870871
ARG TESTPKGS
871872
ENV PLATFORM=container
872873
ARG GO_LDFLAGS
@@ -881,6 +882,7 @@ COPY --from=unit-tests-runner /src/coverage.txt /coverage.txt
881882
FROM base AS unit-tests-race
882883
RUN unlink /etc/ssl
883884
COPY --from=rootfs / /
885+
COPY --from=pkg-ca-certificates / /
884886
ARG TESTPKGS
885887
ENV PLATFORM=container
886888
ENV CGO_ENABLED=1

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ ARTIFACTS := _out
2020
TOOLS ?= ghcr.io/siderolabs/tools:v1.8.0-alpha.0-6-g31ad71b
2121

2222
PKGS_PREFIX ?= ghcr.io/siderolabs
23-
PKGS ?= v1.8.0-alpha.0-34-gce49757
23+
PKGS ?= v1.8.0-alpha.0-36-g25f3a99
2424
EXTRAS ?= v1.8.0-alpha.0-3-gcab51d8
2525

2626
KRES_IMAGE ?= ghcr.io/siderolabs/kres:latest

cmd/talosctl/cmd/docs.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"github.com/siderolabs/talos/pkg/machinery/config/types/network"
2323
"github.com/siderolabs/talos/pkg/machinery/config/types/runtime"
2424
"github.com/siderolabs/talos/pkg/machinery/config/types/runtime/extensions"
25+
"github.com/siderolabs/talos/pkg/machinery/config/types/security"
2526
"github.com/siderolabs/talos/pkg/machinery/config/types/siderolink"
2627
v1alpha1 "github.com/siderolabs/talos/pkg/machinery/config/types/v1alpha1"
2728
)
@@ -125,6 +126,10 @@ var docsCmd = &cobra.Command{
125126
name: "extensions",
126127
fileDoc: extensions.GetFileDoc(),
127128
},
129+
{
130+
name: "security",
131+
fileDoc: security.GetFileDoc(),
132+
},
128133
} {
129134
path := filepath.Join(dir, pkg.name)
130135

hack/release.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,12 @@ Talos Linux now support configuring 'vlan_filtering' for bridge interfaces.
8989
title = "kube-proxy"
9090
description = """\
9191
Talos Linux configures kube-proxy >= v1.31.0 to use 'nftables' backend by default.
92+
"""
93+
94+
[notes.trusted-roots]
95+
title = "Custom Trusted Roots"
96+
description = """\
97+
Talos Linux now supports adding [custom trusted roots](https://www.talos.dev/v1.8/talos-guides/configuration/certificate-authorities/) (CA certificates) via `TrustedRootsConfig` configuration documents.
9298
"""
9399

94100
[make_deps]

0 commit comments

Comments
 (0)