From 8a5e7a0434b85a93c964079f74f8f5c7f3164d84 Mon Sep 17 00:00:00 2001 From: Bob Fournier Date: Wed, 12 Mar 2025 12:57:02 -0400 Subject: [PATCH] AGENT-537: Add agent command to generate certificates Add a new hidden agent-based-installer command to generate tls certificates. This will be used by the agent UI. --- cmd/openshift-install/agent.go | 19 ++++++++++++++++++- .../agent/image/assets/tls_assets.txt | 12 ++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 cmd/openshift-install/testdata/agent/image/assets/tls_assets.txt diff --git a/cmd/openshift-install/agent.go b/cmd/openshift-install/agent.go index f3f857f48b7..513432616c0 100644 --- a/cmd/openshift-install/agent.go +++ b/cmd/openshift-install/agent.go @@ -14,6 +14,7 @@ import ( "github.com/openshift/installer/pkg/asset/agent/mirror" "github.com/openshift/installer/pkg/asset/kubeconfig" "github.com/openshift/installer/pkg/asset/password" + "github.com/openshift/installer/pkg/asset/tls" ) func newAgentCmd(ctx context.Context) *cobra.Command { @@ -114,7 +115,23 @@ var ( }, } - agentTargets = []target{agentConfigTarget, agentManifestsTarget, agentImageTarget, agentPXEFilesTarget, agentConfigImageTarget, agentUnconfiguredIgnitionTarget} + agentCertificatesTarget = target{ + name: "Agent create certificates", + command: &cobra.Command{ + Use: "certificates", + Short: "Generates the tls certificates that can be used to create kubeconfig", + Args: cobra.ExactArgs(0), + Hidden: true, + }, + assets: []asset.WritableAsset{ + &tls.KubeAPIServerLBSignerCertKey{}, + &tls.KubeAPIServerLocalhostSignerCertKey{}, + &tls.KubeAPIServerServiceNetworkSignerCertKey{}, + &tls.AdminKubeConfigSignerCertKey{}, + }, + } + + agentTargets = []target{agentConfigTarget, agentManifestsTarget, agentImageTarget, agentPXEFilesTarget, agentConfigImageTarget, agentUnconfiguredIgnitionTarget, agentCertificatesTarget} ) func newAgentCreateCmd(ctx context.Context) *cobra.Command { diff --git a/cmd/openshift-install/testdata/agent/image/assets/tls_assets.txt b/cmd/openshift-install/testdata/agent/image/assets/tls_assets.txt new file mode 100644 index 00000000000..47f7bcc4af3 --- /dev/null +++ b/cmd/openshift-install/testdata/agent/image/assets/tls_assets.txt @@ -0,0 +1,12 @@ +# Verify that the create certificates command generates the tls assets + +exec openshift-install agent create certificates --dir $WORK + +exists $WORK/tls/admin-kubeconfig-signer.crt +exists $WORK/tls/kube-apiserver-lb-signer.crt +exists $WORK/tls/kube-apiserver-localhost-signer.crt +exists $WORK/tls/kube-apiserver-service-network-signer.crt +exists $WORK/tls/admin-kubeconfig-signer.key +exists $WORK/tls/kube-apiserver-lb-signer.key +exists $WORK/tls/kube-apiserver-localhost-signer.key +exists $WORK/tls/kube-apiserver-service-network-signer.key