Skip to content

Commit 9e90321

Browse files
committed
AGENT-910: node-joiner multi-arch support
Allow the CPU architecture to be specified in nodes-config.yaml.
1 parent 1067870 commit 9e90321

File tree

2 files changed

+18
-9
lines changed

2 files changed

+18
-9
lines changed

pkg/asset/agent/joiner/addnodesconfig.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ type Config struct {
3535
metav1.TypeMeta `json:",inline"`
3636
metav1.ObjectMeta `json:"metadata,omitempty"`
3737

38-
Hosts []agent.Host `json:"hosts,omitempty"`
38+
CPUArchitecture string `json:"cpuArchitecture,omitempty"`
39+
Hosts []agent.Host `json:"hosts,omitempty"`
3940
}
4041

4142
// Params is used to store the command line parameters.

pkg/asset/agent/joiner/clusterinfo.go

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77

88
"github.com/coreos/stream-metadata-go/arch"
99
"github.com/coreos/stream-metadata-go/stream"
10+
"github.com/sirupsen/logrus"
1011
"k8s.io/apimachinery/pkg/api/errors"
1112
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1213
"k8s.io/client-go/kubernetes"
@@ -94,10 +95,12 @@ func (ci *ClusterInfo) Generate(dependencies asset.Parents) error {
9495
if err != nil {
9596
return err
9697
}
97-
err = ci.retrieveArchitecture()
98+
99+
err = ci.retrieveArchitecture(addNodesConfig)
98100
if err != nil {
99101
return err
100102
}
103+
101104
err = ci.retrieveInstallConfigData()
102105
if err != nil {
103106
return err
@@ -192,14 +195,19 @@ func (ci *ClusterInfo) retrieveUserTrustBundle() error {
192195
return nil
193196
}
194197

195-
func (ci *ClusterInfo) retrieveArchitecture() error {
196-
nodes, err := ci.Client.CoreV1().Nodes().List(context.Background(), metav1.ListOptions{
197-
LabelSelector: "node-role.kubernetes.io/master",
198-
})
199-
if err != nil {
200-
return err
198+
func (ci *ClusterInfo) retrieveArchitecture(addNodesConfig *AddNodesConfig) error {
199+
if addNodesConfig.Config.CPUArchitecture != "" {
200+
logrus.Infof("CPU architecture set to: %v", addNodesConfig.Config.CPUArchitecture)
201+
ci.Architecture = addNodesConfig.Config.CPUArchitecture
202+
} else {
203+
nodes, err := ci.Client.CoreV1().Nodes().List(context.Background(), metav1.ListOptions{
204+
LabelSelector: "node-role.kubernetes.io/master",
205+
})
206+
if err != nil {
207+
return err
208+
}
209+
ci.Architecture = nodes.Items[0].Status.NodeInfo.Architecture
201210
}
202-
ci.Architecture = nodes.Items[0].Status.NodeInfo.Architecture
203211

204212
return nil
205213
}

0 commit comments

Comments
 (0)