Skip to content

Commit d6ee7f4

Browse files
baremetal: Templating OSImage links through Tinkerbell workflow objects (#1891)
* templating the OSImageURL * update
1 parent 083c6d5 commit d6ee7f4

File tree

3 files changed

+7
-5
lines changed

3 files changed

+7
-5
lines changed

pkg/cloudprovider/provider/baremetal/plugins/tinkerbell/client/template.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ const (
6161
hardwareName = "{{.hardware_name}}"
6262
ProvisionWorkerNodeTemplate = "provision-worker-node"
6363
PartitionNumber = "{{.partition_number}}"
64+
OSImageURL = "{{.os_image}}"
6465
)
6566

6667
// TemplateClient handles interactions with the Tinkerbell Templates in the Tinkerbell cluster.
@@ -91,14 +92,14 @@ func (t *TemplateClient) Delete(ctx context.Context, namespacedName types.Namesp
9192
}
9293

9394
// CreateTemplate creates a Tinkerbell Template in the Kubernetes cluster.
94-
func (t *TemplateClient) CreateTemplate(ctx context.Context, namespace, osImageURL string) error {
95+
func (t *TemplateClient) CreateTemplate(ctx context.Context, namespace string) error {
9596
template := &tinkv1alpha1.Template{}
9697
if err := t.tinkclient.Get(ctx, types.NamespacedName{
9798
Name: ProvisionWorkerNodeTemplate,
9899
Namespace: namespace,
99100
}, template); err != nil {
100101
if kerrors.IsNotFound(err) {
101-
data, err := getTemplate(osImageURL)
102+
data, err := getTemplate(OSImageURL)
102103
if err != nil {
103104
return err
104105
}

pkg/cloudprovider/provider/baremetal/plugins/tinkerbell/client/workflow.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ func NewWorkflowClient(k8sClient client.Client) *WorkflowClient {
5050
}
5151

5252
// CreateWorkflow creates a new Tinkerbell Workflow resource in the cluster.
53-
func (w *WorkflowClient) CreateWorkflow(ctx context.Context, userData, templateRef string, hardware tink.Hardware) error {
53+
func (w *WorkflowClient) CreateWorkflow(ctx context.Context, userData, templateRef, osImageURL string, hardware tink.Hardware) error {
5454
// Construct the Workflow object
5555
ifaceConfig := hardware.Spec.Interfaces[0].DHCP
5656
dnsNameservers := "1.1.1.1"
@@ -80,6 +80,7 @@ func (w *WorkflowClient) CreateWorkflow(ctx context.Context, userData, templateR
8080
"ns": dnsNameservers,
8181
"default_route": ifaceConfig.IP.Gateway,
8282
"partition_number": w.getPartitionNumber(hardware),
83+
"os_image": osImageURL,
8384
},
8485
},
8586
}

pkg/cloudprovider/provider/baremetal/plugins/tinkerbell/driver.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,14 +123,14 @@ func (d *driver) ProvisionServer(ctx context.Context, _ *zap.SugaredLogger, meta
123123
}
124124

125125
// Create template if it doesn't exist
126-
err = d.TemplateClient.CreateTemplate(ctx, d.HardwareRef.Namespace, d.OSImageURL)
126+
err = d.TemplateClient.CreateTemplate(ctx, d.HardwareRef.Namespace)
127127
if err != nil {
128128
return nil, err
129129
}
130130

131131
// Create Workflow to match the template and server
132132
server := tinktypes.Hardware{Hardware: hardware}
133-
if err = d.WorkflowClient.CreateWorkflow(ctx, userdata, client.ProvisionWorkerNodeTemplate, server); err != nil {
133+
if err = d.WorkflowClient.CreateWorkflow(ctx, userdata, client.ProvisionWorkerNodeTemplate, d.OSImageURL, server); err != nil {
134134
return nil, err
135135
}
136136

0 commit comments

Comments
 (0)