Skip to content

Commit a924cb1

Browse files
committed
MULTIARCH-4515: Add new files for agent-based installer (LPAR support for s390x)staller
Add LPAR support for agend-based installer and bump version. Signed-off-by: Amadeus Podvratnik <[email protected]>
1 parent 3a7f60a commit a924cb1

File tree

6 files changed

+179
-6
lines changed

6 files changed

+179
-6
lines changed
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
skip # Verify a default configuration for the SNO topology for s390x architecture
2+
3+
exec openshift-install agent create pxe-files --dir $WORK
4+
5+
stderr 'Created boot artefacts for s390x'
6+
7+
exists $WORK/boot-artifacts/agent.s390x-initrd.img
8+
exists $WORK/boot-artifacts/agent.s390x-rootfs.img
9+
exists $WORK/boot-artifacts/agent.s390x-kernel.img
10+
exists $WORK/boot-artifacts/agent.s390x-generic.ins
11+
exists $WORK/boot-artifacts/agent.s390x-initrd.addrsize
12+
exists $WORK/auth/kubeconfig
13+
exists $WORK/auth/kubeadmin-password
14+
15+
# no ipxe file in case of s390x
16+
17+
-- install-config.yaml --
18+
apiVersion: v1
19+
baseDomain: test.metalkube.org
20+
controlPlane:
21+
name: master
22+
replicas: 1
23+
architecture: s390x
24+
compute:
25+
- name: worker
26+
replicas: 0
27+
architecture: s390x
28+
metadata:
29+
namespace: cluster0
30+
name: ostest
31+
networking:
32+
clusterNetwork:
33+
- cidr: 10.128.0.0/14
34+
hostPrefix: 23
35+
networkType: OVNKubernetes
36+
machineNetwork:
37+
- cidr: 192.168.111.0/24
38+
serviceNetwork:
39+
- 172.30.0.0/16
40+
platform:
41+
none: {}
42+
sshKey: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDK6UTEydcEKzuNdPaofn8Z2DwgHqdcionLZBiPf/zIRNco++etLsat7Avv7yt04DINQd5zjxIFgG8jblaUB5E5C9ClUcMwb52GO0ay2Y9v1uBv1a4WhI3peKktAzYNk0EBMQlJtXPjRMrC9ylBPh+DsBHMu+KmDnfk7PIwyN4efC8k5kSRuPWoNdme1rz2+umU8FSmaWTHIajrbspf4GQbsntA5kuKEtDbfoNCU97o2KrRnUbeg3a8hwSjfh3u6MhlnGcg5K2Ij+zivEsWGCLKYUtE1ErqwfIzwWmJ6jnV66XCQGHf4Q1iIxqF7s2a1q24cgG2Z/iDXfqXrCIfy4P7b/Ztak3bdT9jfAdVZtdO5/r7I+O5hYhF86ayFlDWzZWP/ByiSb+q4CQbfVgK3BMmiAv2MqLHdhesmD/SmIcoOWUF6rFmRKZVFFpKpt5ATNTgUJ3JRowoXrrDruVXClUGRiCS6Zabd1rZ3VmTchaPJwtzQMdfIWISXj+Ig+C4UK0=
43+
pullSecret: '{"auths": {"quay.io": {"auth": "c3VwZXItc2VjcmV0Cg=="}}}'
44+
45+
-- agent-config.yaml --
46+
apiVersion: v1alpha1
47+
metadata:
48+
name: ostest
49+
namespace: cluster0
50+
rendezvousIP: 192.168.111.20
51+
hosts:
52+
- hostname: master-1
53+
role: master
54+
interfaces:
55+
- name: eth0
56+
macAddress: 02:ec:01:00:00:89
57+
networkConfig:
58+
interfaces:
59+
- name: eth0
60+
type: ethernet
61+
state: up
62+
mac-address: 02:ec:01:00:00:89
63+
ipv4:
64+
enabled: true
65+
address:
66+
- ip: 172.23.236.86
67+
prefix-length: 24
68+
dhcp: false
69+
dns-resolver:
70+
config:
71+
server:
72+
- 172.23.236.86
73+
routes:
74+
config:
75+
- destination: 0.0.0.0/0
76+
next-hop-address: 172.23.236.86
77+
next-hop-interface: eth0
78+
table-id: 254

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ require (
6666
github.com/nutanix-cloud-native/prism-go-client v0.3.4
6767
github.com/onsi/gomega v1.33.0
6868
github.com/openshift/api v0.0.0-20240517002838-931fa9860c01
69-
github.com/openshift/assisted-image-service v0.0.0-20240506123319-82517255ca17
69+
github.com/openshift/assisted-image-service v0.0.0-20240607085136-02df2e56dde6
7070
github.com/openshift/assisted-service/api v0.0.0
7171
github.com/openshift/assisted-service/client v0.0.0
7272
github.com/openshift/assisted-service/models v0.0.0

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1973,8 +1973,8 @@ github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b h1
19731973
github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ=
19741974
github.com/openshift/api v0.0.0-20240517002838-931fa9860c01 h1:X3PJCyGHG5aM9yUTb8yaLjR43Qp1lvsT2rMlcdl4G+c=
19751975
github.com/openshift/api v0.0.0-20240517002838-931fa9860c01/go.mod h1:CxgbWAlvu2iQB0UmKTtRu1YfepRg1/vJ64n2DlIEVz4=
1976-
github.com/openshift/assisted-image-service v0.0.0-20240506123319-82517255ca17 h1:rsTD5h6S3dCgAClbwWi/6AIo2twckeJEf+j4EZYkwII=
1977-
github.com/openshift/assisted-image-service v0.0.0-20240506123319-82517255ca17/go.mod h1:o2H5VwQhUD8P6XsK6dRmKpCCJqVvv12KJQZBXmcCXCU=
1976+
github.com/openshift/assisted-image-service v0.0.0-20240607085136-02df2e56dde6 h1:U6ve+dnHlHhAELoxX+rdFOHVhoaYl0l9qtxwYtsO6C0=
1977+
github.com/openshift/assisted-image-service v0.0.0-20240607085136-02df2e56dde6/go.mod h1:o2H5VwQhUD8P6XsK6dRmKpCCJqVvv12KJQZBXmcCXCU=
19781978
github.com/openshift/assisted-service/api v0.0.0-20230831114549-1922eda29cf8 h1:+fZLKbycDo4JeLwPGVSAgf2XPaJGLM341l9ZfrrlxG0=
19791979
github.com/openshift/assisted-service/api v0.0.0-20230831114549-1922eda29cf8/go.mod h1:PmMnbVno5ocinfELDdKOaatvT5ucJLrau+fjHQNeCiY=
19801980
github.com/openshift/assisted-service/client v0.0.0-20230831114549-1922eda29cf8 h1:9NpCGby6O44BlWqWCbd8wcN4QwBebR8McQGrjTwhlzQ=

pkg/asset/agent/image/agentpxefiles.go

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ func (a *AgentPXEFiles) Generate(dependencies asset.Parents) error {
6868

6969
// PersistToFile writes the PXE assets in the assets folder named pxe.
7070
func (a *AgentPXEFiles) PersistToFile(directory string) error {
71+
var kernelFileType string
7172
// If the imageReader is not set then it means that either one of the AgentPXEFiles
7273
// dependencies or the asset itself failed for some reason
7374
if a.imageReader == nil {
@@ -92,10 +93,20 @@ func (a *AgentPXEFiles) PersistToFile(directory string) error {
9293
if err != nil {
9394
return err
9495
}
95-
kernelFileType := "vmlinuz"
96-
if a.cpuArch == arch.RpmArch(types.ArchitectureS390X) {
96+
97+
switch a.cpuArch {
98+
case arch.RpmArch(types.ArchitectureS390X):
99+
97100
kernelFileType = "kernel.img"
101+
102+
err = a.handleAdditionals390xArtifacts(bootArtifactsFullPath)
103+
if err != nil {
104+
return err
105+
}
106+
default:
107+
kernelFileType = "vmlinuz"
98108
}
109+
99110
agentVmlinuzFile := filepath.Join(bootArtifactsFullPath, fmt.Sprintf("agent.%s-%s", a.cpuArch, kernelFileType))
100111
kernelReader, err := os.Open(filepath.Join(a.tmpPath, "images", "pxeboot", kernelFileType))
101112
if err != nil {
@@ -212,3 +223,37 @@ func getKernelArgs(filepath string) (string, error) {
212223
kernelArgs := liveISOArgMatch.ReplaceAllString(args.DefaultKernelArgs, "")
213224
return kernelArgs, nil
214225
}
226+
227+
func (a *AgentPXEFiles) handleAdditionals390xArtifacts(bootArtifactsFullPath string) error {
228+
// initrd is already copied and file pointer is at EOF so move it to start again.
229+
_, err := a.imageReader.Seek(0, io.SeekStart)
230+
if err != nil {
231+
return err
232+
}
233+
234+
agentInitrdAddrFilePath := filepath.Join(a.tmpPath, "images", "initrd.addrsize")
235+
addrsizeFile, err := isoeditor.NewInitrdAddrsizeReader(agentInitrdAddrFilePath, a.imageReader)
236+
if err != nil {
237+
return err
238+
}
239+
240+
agentInitrdAddrFile := filepath.Join(bootArtifactsFullPath, fmt.Sprintf("agent.%s-initrd.addrsize", a.cpuArch))
241+
err = copyfile(agentInitrdAddrFile, addrsizeFile)
242+
if err != nil {
243+
return err
244+
}
245+
246+
agentINSFile := filepath.Join(bootArtifactsFullPath, fmt.Sprintf("agent.%s-generic.ins", a.cpuArch))
247+
genericReader, err := os.Open(filepath.Join(a.tmpPath, "generic.ins"))
248+
if err != nil {
249+
return err
250+
}
251+
defer genericReader.Close()
252+
253+
err = copyfile(agentINSFile, genericReader)
254+
if err != nil {
255+
return err
256+
}
257+
258+
return nil
259+
}

vendor/github.com/openshift/assisted-image-service/pkg/isoeditor/initrd_addrsize.go

Lines changed: 50 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/modules.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -990,7 +990,7 @@ github.com/openshift/api/machineconfiguration/v1
990990
github.com/openshift/api/operator/v1
991991
github.com/openshift/api/operator/v1alpha1
992992
github.com/openshift/api/route/v1
993-
# github.com/openshift/assisted-image-service v0.0.0-20240506123319-82517255ca17
993+
# github.com/openshift/assisted-image-service v0.0.0-20240607085136-02df2e56dde6
994994
## explicit; go 1.21
995995
github.com/openshift/assisted-image-service/pkg/isoeditor
996996
github.com/openshift/assisted-image-service/pkg/overlay

0 commit comments

Comments
 (0)