Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions data/data/rhcos-ppc64le.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
{
"baseURI": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.5-ppc64le/45.81.202005020554-0/ppc64le/",
"buildid": "45.81.202005020554-0",
"images": {
"initramfs": {
"path": "rhcos-45.81.202005020554-0-installer-initramfs.ppc64le.img",
"sha256": "bd6cdddbeb3b4f2b83c0e732904c59d44158ba9483d9c64f48ce5bd242d1d575"
},
"iso": {
"path": "rhcos-45.81.202005020554-0-installer.ppc64le.iso",
"sha256": "ccdc994528a6fab5d287be90f7cf8314a0626aa0af5d0a7248cd72fe458b2481"
},
"kernel": {
"path": "rhcos-45.81.202005020554-0-installer-kernel-ppc64le",
"sha256": "7053afc2194c998be0ec06b041d7fecc5056390a8a423981a917c5bd1b863ab1"
},
"metal": {
"path": "rhcos-45.81.202005020554-0-metal.ppc64le.raw.gz",
"sha256": "4ec68661e9f373b3132ba853a710662d53726fa4e92fbba4aec8774dc74eb127",
"size": 869348949,
"uncompressed-sha256": "cc87c1d1bbaf2228b47270cafdff39d545d6b53515fb53d9f4f78dd2c581c8fb",
"uncompressed-size": 3913285632
},
"openstack": {
"path": "rhcos-45.81.202005020554-0-openstack.ppc64le.qcow2.gz",
"sha256": "df7597999ea65a09761a8bce6b51df2a9c1e9ad75b04769446ba6a3e146214d7",
"size": 868110506,
"uncompressed-sha256": "15a535c3f7f9cd8578d7f229176b334c912bf688d3d26c034aa17501fdfd64ec",
"uncompressed-size": 2514747392
},
"ostree": {
"path": "rhcos-45.81.202005020554-0-ostree.ppc64le.tar",
"sha256": "95065abe4d183654b55422610e9ef8479ea20dabea060d24f37f471323d429ad",
"size": 797818880
},
"qemu": {
"path": "rhcos-45.81.202005020554-0-qemu.ppc64le.qcow2.gz",
"sha256": "93f75e4ec3150cd26ba695a65c570ab24778c378f0bced5e66fce7454562fb87",
"size": 869589011,
"uncompressed-sha256": "44ec37eea65d3d91e74d8ec10e560cb774629c4f1908e0c098d439586a9bc79a",
"uncompressed-size": 2563309568
}
},
"oscontainer": {
"digest": "sha256:e2594573932c6b98fd46e0d6abad6ad99d2067619e7401c98af034b7a9e0252e",
"image": "quay.io/openshift-release-dev/ocp-v4.0-art-dev"
},
"ostree-commit": "522dc146f92258f311dcbb5bfea5816a199cb4175c3f4f7eb6550981c2a924b1",
"ostree-version": "45.81.202005020554-0"
}
57 changes: 57 additions & 0 deletions data/data/rhcos-s390x.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
{
"baseURI": "https://releases-art-rhcos.svc.ci.openshift.org/art/storage/releases/rhcos-4.5-s390x/45.81.202005020555-0/s390x/",
"buildid": "45.81.202005020555-0",
"images": {
"dasd": {
"path": "rhcos-45.81.202005020555-0-dasd.s390x.raw.gz",
"sha256": "69b972efb6c26fadb4e65d3186361b012894afe33412b338de796a27b7db20ee",
"size": 797188604,
"uncompressed-sha256": "ca83c51de424fa1803117b2759b65c6e92316dd5acaa6102fac79ec834b48208",
"uncompressed-size": 3568304128
},
"initramfs": {
"path": "rhcos-45.81.202005020555-0-installer-initramfs.s390x.img",
"sha256": "d9cce833b56ad3444892d99a9d5386dae3c1fec91fdd35c3d2c1b55a520b4a60"
},
"iso": {
"path": "rhcos-45.81.202005020555-0-installer.s390x.iso",
"sha256": "1f2103b9ec3ac42de396ceb02c0f31e4cfd8d1e502df09f2c6a5b92d99b2a4f3"
},
"kernel": {
"path": "rhcos-45.81.202005020555-0-installer-kernel-s390x",
"sha256": "08906e6d627688378be7c26c614ef39430f3b837a8fa9fda698d361116d65abb"
},
"metal": {
"path": "rhcos-45.81.202005020555-0-metal.s390x.raw.gz",
"sha256": "0ebbd895d2b56cb3fbf17e6779e29d19ec13b0c2fb2c4757b90370110db5c99e",
"size": 797100175,
"uncompressed-sha256": "83e3e251307f3cb45350a64fbea09465174cffdfb6856b70779a29b3a80d5646",
"uncompressed-size": 3568304128
},
"openstack": {
"path": "rhcos-45.81.202005020555-0-openstack.s390x.qcow2.gz",
"sha256": "f0b7237cbcae8cc4fee3503f158e03cd7e2e55ce557c6ab6313365f8da6f3242",
"size": 795947849,
"uncompressed-sha256": "a1aa568e92a1f28b49ad8fc394f7154687e8c54ecbfa45deca739146fadd0f6b",
"uncompressed-size": 2224816128
},
"ostree": {
"path": "rhcos-45.81.202005020555-0-ostree.s390x.tar",
"sha256": "3102b3d526430cc73da11494765029bf9b54fc8151b5d14cdb00df2eddb6b5f9",
"size": 745584640
},
"qemu": {
"path": "rhcos-45.81.202005020555-0-qemu.s390x.qcow2.gz",
"sha256": "d6e523879c7e10e0547dffdd06c12c7748c6b598d3bef43ab2a46c04217aae41",
"size": 797517829,
"uncompressed-sha256": "9e4f4a9b46ca90cb4da2b2611592ec62ade470c812e5545642ffea2bd4308315",
"uncompressed-size": 2272002048
}
},
"oscontainer": {
"digest": "sha256:0a05c9f97e6f08383078329634ff29dbf32700547d42e601d6156e7af0f10039",
"image": "quay.io/openshift-release-dev/ocp-v4.0-art-dev"
},
"ostree-commit": "ae47674eca7dffb4d179b9f61589ed5c05566d9a20d4345715c3195938b693b7",
"ostree-version": "45.81.202005020555-0"
}
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ require (
github.com/coreos/etcd v3.3.18+incompatible // indirect
github.com/coreos/go-systemd v0.0.0 // indirect
github.com/coreos/ignition v0.35.0
github.com/dmacvicar/terraform-provider-libvirt v0.6.1-0.20191216113711-1a01934a7d20
github.com/dmacvicar/terraform-provider-libvirt v0.6.2
github.com/frankban/quicktest v1.7.2 // indirect
github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32
github.com/go-logr/zapr v0.1.1 // indirect
Expand Down
3 changes: 3 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -431,6 +431,8 @@ github.com/djherbis/buffer v1.0.0/go.mod h1:VwN8VdFkMY0DCALdY8o00d3IZ6Amz/UNVMWc
github.com/djherbis/nio v2.0.3+incompatible/go.mod h1:v74owXPROGWsr1y28T13rlXf5Hn/bWJ1bbX8M+BqyPo=
github.com/dmacvicar/terraform-provider-libvirt v0.6.1-0.20191216113711-1a01934a7d20 h1:Img6/bWq48uGHkmG4Eq2pf9HTBx6dQ9BcfRE1SVaU88=
github.com/dmacvicar/terraform-provider-libvirt v0.6.1-0.20191216113711-1a01934a7d20/go.mod h1:rUzijwUJHukJWZKi6PJXo9aJqGLXeUX6NDEy6O0UATg=
github.com/dmacvicar/terraform-provider-libvirt v0.6.2 h1:jXhlKg24SNsG3EYWq45BbCocO5kNlTEOpZgpYLVhPYw=
github.com/dmacvicar/terraform-provider-libvirt v0.6.2/go.mod h1:rUzijwUJHukJWZKi6PJXo9aJqGLXeUX6NDEy6O0UATg=
github.com/dnaeon/go-vcr v0.0.0-20180920040454-5637cf3d8a31/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E=
github.com/dnaeon/go-vcr v1.0.1 h1:r8L/HqC0Hje5AXMu1ooW8oyQyOFv4GxqpL0nRP7SLLY=
github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E=
Expand Down Expand Up @@ -1619,6 +1621,7 @@ github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsO
github.com/mattn/go-tty v0.0.0-20180907095812-13ff1204f104/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE=
github.com/mattn/go-zglob v0.0.0-20171230104132-4959821b4817/go.mod h1:9fxibJccNxU2cnpIKLRRFA7zX7qhkJIQWBb449FYHOo=
github.com/mattn/go-zglob v0.0.0-20180803001819-2ea3427bfa53/go.mod h1:9fxibJccNxU2cnpIKLRRFA7zX7qhkJIQWBb449FYHOo=
github.com/mattn/goveralls v0.0.2 h1:7eJB6EqsPhRVxvwEXGnqdO2sJI0PTsrWoTMXEk9/OQc=
github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw=
github.com/matttproud/golang_protobuf_extensions v1.0.0/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
Expand Down
16 changes: 9 additions & 7 deletions hack/update-rhcos-bootimage.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

parser = argparse.ArgumentParser()
parser.add_argument("meta", action='store')
parser.add_argument("arch", action='store', choices=['amd64'])
parser.add_argument("arch", action='store', choices=['amd64', 's390x', 'ppc64le'])
args = parser.parse_args()

metadata_dir = os.path.join(os.path.dirname(sys.argv[0]), "../data/data")
Expand All @@ -25,13 +25,15 @@
for k in ['images', 'buildid', 'oscontainer',
'ostree-commit', 'ostree-version',
'azure', 'gcp']:
newmeta[k] = meta[k]
newmeta['amis'] = {
entry['name']: {
'hvm': entry['hvm'],
if meta.get(k):
newmeta[k] = meta[k]
if meta.get(k):
newmeta['amis'] = {
entry['name']: {
'hvm': entry['hvm'],
}
for entry in meta['amis']
}
for entry in meta['amis']
}
newmeta['baseURI'] = urllib.parse.urljoin(args.meta, '.')

with open(os.path.join(metadata_dir, 'rhcos-{}.json'.format(args.arch)), 'w') as f:
Expand Down
4 changes: 1 addition & 3 deletions pkg/tfvars/libvirt/libvirt.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,7 @@ func TFVars(masterConfig *v1beta1.LibvirtMachineProviderConfig, osImage string,
MasterVcpu: strconv.Itoa(masterConfig.DomainVcpu),
}

// Power PC systems typically require more memory because the page size is 64K and not the default 4K
// TODO: need to make ppc64le a supported architecture - https://bugzilla.redhat.com/show_bug.cgi?id=1821392
if architecture == "ppc64le" {
if architecture == types.ArchitecturePPC64LE {
cfg.BootstrapMemory = 5120
}

Expand Down
4 changes: 4 additions & 0 deletions pkg/types/machinepools.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ type Architecture string
const (
// ArchitectureAMD64 indicates AMD64 (x86_64).
ArchitectureAMD64 = "amd64"
// ArchitectureS390X indicates s390x (IBM System Z).
ArchitectureS390X = "s390x"
// ArchitecturePPC64LE indicates ppc64 little endian (Power PC)
ArchitecturePPC64LE = "ppc64le"
)

// MachinePool is a pool of machines to be installed.
Expand Down
19 changes: 18 additions & 1 deletion pkg/types/validation/installconfig_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -925,7 +925,24 @@ func TestValidateInstallConfig(t *testing.T) {
return c
}(),
},
// TODO(crawford): add a test to validate that homogeneous clusters are enforced once an additional architecture is added
{
name: "cluster is not heteregenous",
installConfig: func() *types.InstallConfig {
c := validInstallConfig()
c.Compute[0].Architecture = types.ArchitectureS390X
return c
}(),
expectedError: `^compute\[0\].architecture: Invalid value: "s390x": heteregeneous multi-arch is not supported; compute pool architecture must match control plane$`,
},
{
name: "cluster is not heteregenous",
installConfig: func() *types.InstallConfig {
c := validInstallConfig()
c.Compute[0].Architecture = types.ArchitecturePPC64LE
return c
}(),
expectedError: `^compute\[0\].architecture: Invalid value: "ppc64le": heteregeneous multi-arch is not supported; compute pool architecture must match control plane$`,
},
}
for _, tc := range cases {
t.Run(tc.name, func(t *testing.T) {
Expand Down
4 changes: 3 additions & 1 deletion pkg/types/validation/machinepools.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,9 @@ var (
}()

validArchitectures = map[types.Architecture]bool{
types.ArchitectureAMD64: true,
types.ArchitectureAMD64: true,
types.ArchitectureS390X: true,
types.ArchitecturePPC64LE: true,
}

validArchitectureValues = func() []string {
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading