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
1 change: 1 addition & 0 deletions libs/locales/lib/en/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -970,6 +970,7 @@
"ai:Unable to SSH into your hosts through the network?": "Unable to SSH into your hosts through the network?",
"ai:Unique hostname": "Unique hostname",
"ai:Unknown": "Unknown",
"ai:Unmonitored": "Unmonitored",
"ai:Unreachable": "Unreachable",
"ai:Update": "Update",
"ai:Upload": "Upload",
Expand Down
162 changes: 133 additions & 29 deletions libs/types/assisted-installer-service.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ export interface Cluster {
/**
* Indicates the type of this object. Will be 'Cluster' if this is a complete object,
* 'AddHostsCluster' for cluster that add hosts to existing OCP cluster,
* 'DisconnectedCluster' for clusters with embedded ignition for offline installation,
*
*/
kind: 'Cluster' | 'AddHostsCluster' | 'DisconnectedCluster';
Expand Down Expand Up @@ -215,7 +216,8 @@ export interface Cluster {
| 'installed'
| 'adding-hosts'
| 'cancelled'
| 'installing-pending-user-action';
| 'installing-pending-user-action'
| 'unmonitored';
Comment thread
LiorSoffer marked this conversation as resolved.
/**
* Additional information pertaining to the status of the OpenShift cluster.
*/
Expand Down Expand Up @@ -357,8 +359,15 @@ export interface Cluster {
featureUsage?: string;
/**
* The desired network type used.
* - OVNKubernetes: Default CNI for OpenShift (recommended)
* - OpenShiftSDN: Legacy SDN (deprecated in newer versions)
* - CiscoACI: Cisco ACI CNI (requires custom manifests)
* - Cilium: Isovalent Cilium CNI (requires custom manifests)
* - Calico: Tigera Calico CNI (requires custom manifests)
* - None: No CNI - user must provide custom CNI manifests
*
*/
networkType?: 'OpenShiftSDN' | 'OVNKubernetes';
networkType?: 'OpenShiftSDN' | 'OVNKubernetes' | 'CiscoACI' | 'Cilium' | 'Calico' | 'None';
/**
* Cluster networks that are associated with this cluster.
*/
Expand Down Expand Up @@ -505,8 +514,17 @@ export interface ClusterCreateParams {
| 'all';
/**
* The desired network type used.
* - OVNKubernetes: Default CNI for OpenShift (recommended)
* - OpenShiftSDN: Legacy SDN (deprecated in newer versions)
* - CiscoACI: Cisco ACI CNI (requires custom manifests)
* - Cilium: Isovalent Cilium CNI (requires custom manifests)
* - Calico: Tigera Calico CNI (requires custom manifests)
* - None: No CNI - user must provide custom CNI manifests
* Note: Third-party CNIs (CiscoACI, Cilium, Calico, None) require uploading
* CNI manifests via the custom manifests API before installation.
*
*/
networkType?: 'OpenShiftSDN' | 'OVNKubernetes';
networkType?: 'OpenShiftSDN' | 'OVNKubernetes' | 'CiscoACI' | 'Cilium' | 'Calico' | 'None';
/**
* Schedule workloads on masters
*/
Expand Down Expand Up @@ -666,6 +684,7 @@ export type ClusterValidationId =
| 'mtv-requirements-satisfied'
| 'osc-requirements-satisfied'
| 'network-type-valid'
| 'custom-manifests-requirements-satisfied'
| 'platform-requirements-satisfied'
| 'node-feature-discovery-requirements-satisfied'
| 'nvidia-gpu-requirements-satisfied'
Expand Down Expand Up @@ -823,6 +842,16 @@ export interface DhcpAllocationResponse {
*/
ingressVipLease?: string;
}
export interface DisconnectedClusterCreateParams {
/**
* Name of the OpenShift cluster.
*/
name: string;
/**
* Version of the OpenShift cluster.
*/
openshiftVersion: string;
}
export interface Disk {
/**
* Determine the disk's unique identifier which is the by-id field if it exists and fallback to the by-path field otherwise
Expand Down Expand Up @@ -1053,9 +1082,16 @@ export interface Event {
props?: string;
}
export type EventList = Event[];
export interface Feature {
'feature-support-level-id': FeatureSupportLevelId;
supportLevel: SupportLevel;
reason?: IncompatibilityReason;
incompatibilities: FeatureSupportLevelId[];
}
export type FeatureSupportLevelId =
| 'SNO'
| 'TNA'
| 'TNF'
| 'VIP_AUTO_ALLOC'
| 'CUSTOM_MANIFEST'
| 'SINGLE_NODE_EXPANSION'
Expand All @@ -1081,6 +1117,10 @@ export type FeatureSupportLevelId =
| 'EXTERNAL_PLATFORM'
| 'OVN_NETWORK_TYPE'
| 'SDN_NETWORK_TYPE'
| 'CILIUM_NETWORK_TYPE'
| 'CALICO_NETWORK_TYPE'
| 'CISCO_ACI_NETWORK_TYPE'
| 'NONE_NETWORK_TYPE'
| 'NODE_FEATURE_DISCOVERY'
| 'NVIDIA_GPU'
| 'PIPELINES'
Expand All @@ -1102,8 +1142,27 @@ export type FeatureSupportLevelId =
| 'NUMA_RESOURCES'
| 'OADP'
| 'METALLB'
| 'DUAL_STACK_PRIMARY_IPV6'
| 'LOKI'
| 'OPENSHIFT_LOGGING';
export interface FencingCredentialsParams {
/**
* The URL of the host's BMC, for example https://bmc1.example.com.
*/
address: string;
/**
* The username to connect to the host's BMC.
*/
username: string;
/**
* The password to connect to the host's BMC.
*/
password: string;
/**
* Whether to enable or disable certificate verification when connecting to the host's BMC.
*/
certificateVerification?: 'Enabled' | 'Disabled';
}
/**
* Cluster finalizing stage managed by controller
*/
Expand Down Expand Up @@ -1318,6 +1377,10 @@ export interface Host {
* formatting.
*/
skipFormattingDisks?: string;
/**
* The host's BMC credentials that will be used in TNF.
*/
fencingCredentials?: string;
Comment thread
coderabbitai[bot] marked this conversation as resolved.
}
export interface HostCreateParams {
hostId: string; // uuid
Expand Down Expand Up @@ -1525,6 +1588,10 @@ export interface HostRegistrationResponse {
* formatting.
*/
skipFormattingDisks?: string;
/**
* The host's BMC credentials that will be used in TNF.
*/
fencingCredentials?: string;
/**
* Command for starting the next step runner
*/
Expand All @@ -1546,6 +1613,7 @@ export type HostStage =
| 'Waiting for controller'
| 'Installing'
| 'Writing image to disk'
| 'Copying registry data to disk'
| 'Rebooting'
| 'Waiting for ignition'
| 'Configuring'
Expand Down Expand Up @@ -1603,6 +1671,10 @@ export interface HostUpdateParams {
* Labels to be added to the corresponding node.
*/
nodeLabels?: NodeLabelParams[];
/**
* The host's BMC credentials that will be used in TNF.
*/
fencingCredentials?: FencingCredentialsParams;
}
export type HostValidationId =
| 'connected'
Expand Down Expand Up @@ -1753,6 +1825,11 @@ export interface ImportClusterParams {
*/
openshiftClusterId: string; // uuid
}
export type IncompatibilityReason =
| 'cpuArchitecture'
| 'platform'
| 'openshiftVersion'
| 'ociExternalIntegrationDisabled';
export interface InfraEnv {
/**
* Indicates the type of this object.
Expand Down Expand Up @@ -1794,6 +1871,12 @@ export interface InfraEnv {
* static network configuration string in the format expected by discovery ignition generation.
*/
staticNetworkConfig?: string;
/**
* The IP address of the host that will act as the rendezvous (bootstrap) node for agent-based installations.
* This is optional for disconnected-iso image type and specifies which host will run the assisted service
* during the bootstrap phase. All other hosts will connect to this IP to coordinate the installation.
*/
rendezvousIp?: string; // ^(?:$|(?:(?:(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])|(?:([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:(:[0-9a-fA-F]{1,4}){1,6}|:(:[0-9a-fA-F]{1,4}){1,7}|:|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1?[0-9])?[0-9])\.){3}(25[0-5]|(2[0-4]|1?[0-9])?[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1?[0-9])?[0-9])\.){3}(25[0-5]|(2[0-4]|1?[0-9])?[0-9]))))$
type: ImageType;
/**
* Json formatted string containing the user overrides for the initial ignition config.
Expand Down Expand Up @@ -1830,14 +1913,6 @@ export interface InfraEnv {
* certificates in this bundle.
*/
additionalTrustBundle?: string;
/**
* The IP address that hosts will use to communicate with the bootstrap node during installation.
*/
rendezvousIp?: string;
/**
* The type of network configuration for hosts: 'dhcp' for DHCP only, 'static' for static IP configuration.
*/
hostsNetworkConfigurationType?: 'dhcp' | 'static';
/**
* The pull secret obtained from Red Hat OpenShift Cluster Manager at console.redhat.com/openshift/install/pull-secret.
*/
Expand All @@ -1862,6 +1937,12 @@ export interface InfraEnvCreateParams {
*/
pullSecret: string;
staticNetworkConfig?: HostStaticNetworkConfig[];
/**
* The IP address of the host that will act as the rendezvous (bootstrap) node for agent-based installations.
* This is optional for disconnected-iso image type and specifies which host will run the assisted service
* during the bootstrap phase. All other hosts will connect to this IP to coordinate the installation.
*/
rendezvousIp?: string; // ^(?:$|(?:(?:(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])|(?:([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:(:[0-9a-fA-F]{1,4}){1,6}|:(:[0-9a-fA-F]{1,4}){1,7}|:|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1?[0-9])?[0-9])\.){3}(25[0-5]|(2[0-4]|1?[0-9])?[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1?[0-9])?[0-9])\.){3}(25[0-5]|(2[0-4]|1?[0-9])?[0-9]))))$
imageType?: ImageType;
/**
* JSON formatted string containing the user overrides for the initial ignition config.
Expand All @@ -1887,14 +1968,6 @@ export interface InfraEnvCreateParams {
* certificates in this bundle.
*/
additionalTrustBundle?: string;
/**
* The IP address that hosts will use to communicate with the bootstrap node during installation.
*/
rendezvousIp?: string;
/**
* The type of network configuration for hosts: 'dhcp' for DHCP only, 'static' for static IP configuration.
*/
hostsNetworkConfigurationType?: 'dhcp' | 'static';
}
export type InfraEnvList = InfraEnv[];
export interface InfraEnvUpdateParams {
Expand All @@ -1912,6 +1985,12 @@ export interface InfraEnvUpdateParams {
*/
pullSecret?: string;
staticNetworkConfig?: HostStaticNetworkConfig[];
/**
* The IP address of the host that will act as the rendezvous (bootstrap) node for agent-based installations.
* This is optional for disconnected-iso image type and specifies which host will run the assisted service
* during the bootstrap phase. All other hosts will connect to this IP to coordinate the installation.
*/
rendezvousIp?: string; // ^(?:$|(?:(?:(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])|(?:([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:(:[0-9a-fA-F]{1,4}){1,6}|:(:[0-9a-fA-F]{1,4}){1,7}|:|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1?[0-9])?[0-9])\.){3}(25[0-5]|(2[0-4]|1?[0-9])?[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1?[0-9])?[0-9])\.){3}(25[0-5]|(2[0-4]|1?[0-9])?[0-9]))))$
imageType?: ImageType;
/**
* JSON formatted string containing the user overrides for the initial ignition config.
Expand All @@ -1926,14 +2005,6 @@ export interface InfraEnvUpdateParams {
* Version of the OS image
*/
openshiftVersion?: string;
/**
* The IP address that hosts will use to communicate with the bootstrap node during installation.
*/
rendezvousIp?: string;
/**
* The type of network configuration for hosts: 'dhcp' for DHCP only, 'static' for static IP configuration.
*/
hostsNetworkConfigurationType?: 'dhcp' | 'static';
}
export interface InfraError {
/**
Expand Down Expand Up @@ -2204,7 +2275,7 @@ export type MacInterfaceMap = {
/**
* mac address present on the host
*/
macAddress?: string; // ^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$
macAddress: string; // ^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$
/**
* nic name used in the yaml, which relates 1:1 to the mac address
*/
Expand Down Expand Up @@ -2368,6 +2439,17 @@ export interface OpenshiftVersion {
export interface OpenshiftVersions {
[name: string]: OpenshiftVersion;
}
export interface Operator {
'feature-support-level-id': FeatureSupportLevelId;
supportLevel: SupportLevel;
reason?: IncompatibilityReason;
incompatibilities: FeatureSupportLevelId[];
/**
* Name of the operator
*/
name: string;
dependencies: FeatureSupportLevelId[];
}
export interface OperatorCreateParams {
name?: string;
/**
Expand Down Expand Up @@ -2875,8 +2957,17 @@ export interface V2ClusterUpdateParams {
| 'all';
/**
* The desired network type used.
* - OVNKubernetes: Default CNI for OpenShift (recommended)
* - OpenShiftSDN: Legacy SDN (deprecated in newer versions)
* - CiscoACI: Cisco ACI CNI (requires custom manifests)
* - Cilium: Isovalent Cilium CNI (requires custom manifests)
* - Calico: Tigera Calico CNI (requires custom manifests)
* - None: No CNI - user must provide custom CNI manifests
* Note: Third-party CNIs (CiscoACI, Cilium, Calico, None) require uploading
* CNI manifests via the custom manifests API before installation.
*
*/
networkType?: 'OpenShiftSDN' | 'OVNKubernetes';
networkType?: 'OpenShiftSDN' | 'OVNKubernetes' | 'CiscoACI' | 'Cilium' | 'Calico' | 'None';
/**
* Schedule workloads on masters
*/
Expand Down Expand Up @@ -2933,6 +3024,13 @@ export interface V2OpenshiftVersions {
version?: string;
onlyLatest?: boolean;
}
export interface V2OperatorsBundles {
openshiftVersion?: string;
cpuArchitecture?: 'x86_64' | 'aarch64' | 'arm64' | 'ppc64le' | 's390x' | 'multi';
platformType?: 'baremetal' | 'none' | 'nutanix' | 'vsphere' | 'external';
externalPlatformName?: string;
featureIds?: 'SNO'[];
}
export interface V2SupportLevelsArchitectures {
openshiftVersion: string;
}
Expand All @@ -2942,6 +3040,12 @@ export interface V2SupportLevelsFeatures {
platformType?: 'baremetal' | 'none' | 'nutanix' | 'vsphere' | 'external';
externalPlatformName?: string;
}
export interface V2SupportLevelsFeaturesDetailed {
openshiftVersion: string;
cpuArchitecture?: 'x86_64' | 'arm64' | 'ppc64le' | 's390x' | 'multi';
platformType?: 'baremetal' | 'none' | 'nutanix' | 'vsphere' | 'external';
externalPlatformName?: string;
}
Comment thread
coderabbitai[bot] marked this conversation as resolved.
/**
* Single VIP verification result.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ const customManifestsCluster = {
// We're adding this field to easily debug which mock is returning the response
feature_usage: JSON.stringify(featureUsage),
control_plane_count: 3,
network_type: 'OpenShiftSDN',
network_type: 'Cilium',
Comment thread
LiorSoffer marked this conversation as resolved.
user_managed_networking: false,
vip_dhcp_allocation: true,
e2e_mock_source: '5-cluster-ready',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,7 @@ describe(`Assisted Installer Multinode Networking`, () => {

it('Should have the correct default network type', () => {
networkingPage.getAdvancedNetwork().click();
networkingPage.getSdnNetworkingField().should('be.enabled').and('not.be.checked');
networkingPage.getOvnNetworkingField().should('be.enabled').and('be.checked');
networkingPage.getNetworkTypeToggle().should('contain.text', 'Open Virtual Networking (OVN)');
});
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,7 @@ describe(`Assisted Installer SNO Networking`, () => {

it('Should have the correct default network type', () => {
networkingPage.getAdvancedNetwork().click();
networkingPage.getSdnNetworkingField().should('not.be.enabled').and('not.be.checked');
networkingPage.getOvnNetworkingField().should('not.be.enabled').and('be.checked');
networkingPage.getNetworkTypeToggle().should('contain.text', 'Open Virtual Networking (OVN)');
});
});
});
Loading
Loading