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
9 changes: 9 additions & 0 deletions OWNERS_ALIASES
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,15 @@ aliases:
- mdbooth
- pierreprinetti
- stephenfin
powervs-approvers:
- clnperez
- mkumatag
- Prashanth684
powervs-reviewers:
- clnperez
- mkumatag
- Prashanth684
- mjturek
vsphere-approvers:
- dav1x
- jcpowermac
Expand Down
148 changes: 147 additions & 1 deletion data/data/install.openshift.io_installconfigs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -469,6 +469,36 @@ spec:
- high_performance
type: string
type: object
powervs:
description: PowerVS is the configuration used when installing
Comment thread
clnperez marked this conversation as resolved.
Outdated
on IBM Power VS.
properties:
memory:
description: Memory defines the memory in GB for the instance.
type: string
procType:
description: ProcType defines the processor sharing model
for the instance. Must be one of {capped, dedicated, shared}.
enum:
- ""
- capped
- dedicated
- shared
type: string
processors:
description: Processors defines the processing units for
the instance.
type: string
sysType:
description: SysType defines the system type for instance.
type: string
volumeIDs:
description: VolumeIDs is the list of volumes attached to
the instance.
items:
type: string
type: array
type: object
vsphere:
description: VSphere is the configuration used when installing
on vSphere.
Expand Down Expand Up @@ -929,6 +959,36 @@ spec:
- high_performance
type: string
type: object
powervs:
description: PowerVS is the configuration used when installing
on IBM Power VS.
properties:
memory:
description: Memory defines the memory in GB for the instance.
type: string
procType:
description: ProcType defines the processor sharing model
for the instance. Must be one of {capped, dedicated, shared}.
enum:
- ""
- capped
- dedicated
- shared
type: string
processors:
description: Processors defines the processing units for the
instance.
type: string
sysType:
description: SysType defines the system type for instance.
type: string
volumeIDs:
description: VolumeIDs is the list of volumes attached to
the instance.
items:
type: string
type: array
type: object
vsphere:
description: VSphere is the configuration used when installing
on vSphere.
Expand Down Expand Up @@ -981,7 +1041,7 @@ spec:
values. For all other platforms, the field must not be set. AWS: \"Mint\",
\"Passthrough\", \"Manual\" Azure: \"Mint\", \"Passthrough\", \"Manual\"
AzureStack: \"Manual\" GCP: \"Mint\", \"Passthrough\", \"Manual\" IBMCloud:
\"Manual\" AlibabaCloud: \"Manual\""
\"Manual\" AlibabaCloud: \"Manual\" PowerVS: \"Manual\""
enum:
- ""
- Mint
Expand Down Expand Up @@ -2159,6 +2219,92 @@ spec:
- ovirt_cluster_id
- ovirt_storage_domain_id
type: object
powervs:
description: PowerVS is the configuration used when installing on
Power VS.
properties:
clusterOSImage:
description: ClusterOSImage is a pre-created Power VS boot image
that overrides the default image for cluster nodes.
type: string
defaultMachinePlatform:
description: DefaultMachinePlatform is the default configuration
used when installing on Power VS for machine pools which do
not define their own platform configuration.
properties:
memory:
description: Memory defines the memory in GB for the instance.
type: string
procType:
description: ProcType defines the processor sharing model
for the instance. Must be one of {capped, dedicated, shared}.
enum:
- ""
- capped
- dedicated
- shared
type: string
processors:
description: Processors defines the processing units for the
instance.
type: string
sysType:
description: SysType defines the system type for instance.
type: string
volumeIDs:
description: VolumeIDs is the list of volumes attached to
the instance.
items:
type: string
type: array
type: object
powervsResourceGroup:
description: PowerVSResourceGroup is the resource group in which
Power VS resources will be created.
type: string
pvsNetworkName:
description: PVSNetworkName specifies an existing network within
the Power VS Service Instance.
type: string
region:
description: Region specifies the IBM Cloud colo region where
the cluster will be created.
type: string
serviceInstanceID:
description: ServiceInstanceID is the ID of the Power IAAS instance
created from the IBM Cloud Catalog
type: string
subnets:
description: Subnets specifies existing subnets (by ID) where
cluster resources will be created. Leave unset to have the
installer create subnets in a new VPC on your behalf.
items:
type: string
type: array
userID:
description: UserID is the login for the user's IBM Cloud account.
type: string
vpc:
description: VPC is a VPC inside IBM Cloud. Needed in order to
create VPC Load Balancers.
type: string
vpcRegion:
description: VPCRegion specifies the IBM Cloud region in which
to create VPC resources. Leave unset to allow installer to select
the closest VPC region.
type: string
zone:
description: Zone specifies the IBM Cloud colo region where the
cluster will be created. At this time, only single-zone clusters
are supported.
type: string
required:
- powervsResourceGroup
- region
- serviceInstanceID
- userID
- zone
type: object
vsphere:
description: VSphere is the configuration used when installing on
vSphere.
Expand Down
5 changes: 4 additions & 1 deletion pkg/explain/printer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ func Test_PrintFields(t *testing.T) {
CredentialsMode is used to explicitly set the mode with which CredentialRequests are satisfied.
If this field is set, then the installer will not attempt to query the cloud permissions before attempting installation. If the field is not set or empty, then the installer will perform its normal verification that the credentials provided are sufficient to perform an installation.
There are three possible values for this field, but the valid values are dependent upon the platform being used. "Mint": create new credentials with a subset of the overall permissions for each CredentialsRequest "Passthrough": copy the credentials with all of the overall permissions for each CredentialsRequest "Manual": CredentialsRequests must be handled manually by the user
For each of the following platforms, the field can set to the specified values. For all other platforms, the field must not be set. AWS: "Mint", "Passthrough", "Manual" Azure: "Mint", "Passthrough", "Manual" AzureStack: "Manual" GCP: "Mint", "Passthrough", "Manual" IBMCloud: "Manual" AlibabaCloud: "Manual"
For each of the following platforms, the field can set to the specified values. For all other platforms, the field must not be set. AWS: "Mint", "Passthrough", "Manual" Azure: "Mint", "Passthrough", "Manual" AzureStack: "Manual" GCP: "Mint", "Passthrough", "Manual" IBMCloud: "Manual" AlibabaCloud: "Manual" PowerVS: "Manual"

fips <boolean>
Default: false
Expand Down Expand Up @@ -114,6 +114,9 @@ func Test_PrintFields(t *testing.T) {
ovirt <object>
Ovirt is the configuration used when installing on oVirt.

powervs <object>
PowerVS is the configuration used when installing on Power VS.

vsphere <object>
VSphere is the configuration used when installing on vSphere.`,
}, {
Expand Down
5 changes: 5 additions & 0 deletions pkg/types/clustermetadata.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
"github.com/openshift/installer/pkg/types/libvirt"
"github.com/openshift/installer/pkg/types/openstack"
"github.com/openshift/installer/pkg/types/ovirt"
"github.com/openshift/installer/pkg/types/powervs"
"github.com/openshift/installer/pkg/types/vsphere"
)

Expand All @@ -36,6 +37,7 @@ type ClusterPlatformMetadata struct {
IBMCloud *ibmcloud.Metadata `json:"ibmcloud,omitempty"`
BareMetal *baremetal.Metadata `json:"baremetal,omitempty"`
Ovirt *ovirt.Metadata `json:"ovirt,omitempty"`
PowerVS *powervs.Metadata `json:"powervs,omitempty"`
VSphere *vsphere.Metadata `json:"vsphere,omitempty"`
}

Expand Down Expand Up @@ -73,6 +75,9 @@ func (cpm *ClusterPlatformMetadata) Platform() string {
if cpm.Ovirt != nil {
return ovirt.Name
}
if cpm.PowerVS != nil {
return powervs.Name
}
if cpm.VSphere != nil {
return vsphere.Name
}
Expand Down
3 changes: 3 additions & 0 deletions pkg/types/defaults/installconfig.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import (
nonedefaults "github.com/openshift/installer/pkg/types/none/defaults"
openstackdefaults "github.com/openshift/installer/pkg/types/openstack/defaults"
ovirtdefaults "github.com/openshift/installer/pkg/types/ovirt/defaults"
powervsdefaults "github.com/openshift/installer/pkg/types/powervs/defaults"
vspheredefaults "github.com/openshift/installer/pkg/types/vsphere/defaults"
)

Expand Down Expand Up @@ -105,6 +106,8 @@ func SetInstallConfigDefaults(c *types.InstallConfig) {
for i := range c.Compute {
ovirtdefaults.SetComputeDefaults(c.Platform.Ovirt, &c.Compute[i])
}
case c.Platform.PowerVS != nil:
powervsdefaults.SetPlatformDefaults(c.Platform.PowerVS)
case c.Platform.None != nil:
nonedefaults.SetPlatformDefaults(c.Platform.None)
}
Expand Down
9 changes: 9 additions & 0 deletions pkg/types/installconfig.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import (
"github.com/openshift/installer/pkg/types/none"
"github.com/openshift/installer/pkg/types/openstack"
"github.com/openshift/installer/pkg/types/ovirt"
"github.com/openshift/installer/pkg/types/powervs"
"github.com/openshift/installer/pkg/types/vsphere"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
Expand All @@ -39,6 +40,7 @@ var (
ibmcloud.Name,
openstack.Name,
ovirt.Name,
powervs.Name,
vsphere.Name,
}
// HiddenPlatformNames is a slice with all the
Expand Down Expand Up @@ -148,6 +150,7 @@ type InstallConfig struct {
// GCP: "Mint", "Passthrough", "Manual"
// IBMCloud: "Manual"
// AlibabaCloud: "Manual"
// PowerVS: "Manual"
// +optional
CredentialsMode CredentialsMode `json:"credentialsMode,omitempty"`

Expand Down Expand Up @@ -205,6 +208,10 @@ type Platform struct {
// +optional
OpenStack *openstack.Platform `json:"openstack,omitempty"`

// PowerVS is the configuration used when installing on Power VS.
// +optional
PowerVS *powervs.Platform `json:"powervs,omitempty"`

// VSphere is the configuration used when installing on vSphere.
// +optional
VSphere *vsphere.Platform `json:"vsphere,omitempty"`
Expand Down Expand Up @@ -243,6 +250,8 @@ func (p *Platform) Name() string {
return vsphere.Name
case p.Ovirt != nil:
return ovirt.Name
case p.PowerVS != nil:
return powervs.Name
default:
return ""
}
Expand Down
6 changes: 6 additions & 0 deletions pkg/types/machinepools.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
"github.com/openshift/installer/pkg/types/libvirt"
"github.com/openshift/installer/pkg/types/openstack"
"github.com/openshift/installer/pkg/types/ovirt"
"github.com/openshift/installer/pkg/types/powervs"
"github.com/openshift/installer/pkg/types/vsphere"
)

Expand Down Expand Up @@ -100,6 +101,9 @@ type MachinePoolPlatform struct {

// Ovirt is the configuration used when installing on oVirt.
Ovirt *ovirt.MachinePool `json:"ovirt,omitempty"`

// PowerVS is the configuration used when installing on IBM Power VS.
PowerVS *powervs.MachinePool `json:"powervs,omitempty"`
}

// Name returns a string representation of the platform (e.g. "aws" if
Expand Down Expand Up @@ -129,6 +133,8 @@ func (p *MachinePoolPlatform) Name() string {
return vsphere.Name
case p.Ovirt != nil:
return ovirt.Name
case p.PowerVS != nil:
return powervs.Name
default:
return ""
}
Expand Down
7 changes: 7 additions & 0 deletions pkg/types/powervs/OWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# See the OWNERS docs: https://git.k8s.io/community/contributors/guide/owners.md
# This file just uses aliases defined in OWNERS_ALIASES.

approvers:
- powervs-approvers
reviewers:
- powervs-reviewers
9 changes: 9 additions & 0 deletions pkg/types/powervs/defaults/platform.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package defaults

import (
"github.com/openshift/installer/pkg/types/powervs"
)

// SetPlatformDefaults sets the defaults for the platform.
func SetPlatformDefaults(p *powervs.Platform) {
}
6 changes: 6 additions & 0 deletions pkg/types/powervs/doc.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
// Package powervs contains Power VS-specific structures for installer
// configuration and management.
package powervs

// Name is name for the Power VS platform.
const Name string = "powervs"
Loading