diff --git a/data/data/install.openshift.io_installconfigs.yaml b/data/data/install.openshift.io_installconfigs.yaml index ac834ce5166..22827317b52 100644 --- a/data/data/install.openshift.io_installconfigs.yaml +++ b/data/data/install.openshift.io_installconfigs.yaml @@ -672,6 +672,10 @@ spec: - source type: object type: array + installType: + description: InstallType provides signal to the cluster that the installation + will not follow the default installer workflow. + type: string kind: description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client diff --git a/docs/user/customization.md b/docs/user/customization.md index 4090ecbcf11..7458ab12c33 100644 --- a/docs/user/customization.md +++ b/docs/user/customization.md @@ -62,6 +62,7 @@ The following `install-config.yaml` properties are available: * `noProxy` (optional string): A comma-separated list of domains and [CIDRs][cidr-notation] for which the proxy should not be used. * `pullSecret` (required string): The secret to use when pulling images. * `sshKey` (optional string): The public Secure Shell (SSH) key to provide access to instances. +* `installType` (optional string): The name of the non standard installation type used to bootstrap the cluster. ### IP networks @@ -154,6 +155,22 @@ pullSecret: '{"auths": ...}' sshKey: ssh-ed25519 AAAA... ``` +### Custom installation type + +An example install config with custom install type: + +```yaml +apiVersion: v1 +baseDomain: example.com +controlPlane: + name: master + replicas: 2 +metadata: + name: test-cluster +platform: ... +installType: assisted +``` + ### Image content sources An example install config with custom image content sources: diff --git a/pkg/explain/printer_test.go b/pkg/explain/printer_test.go index 432d84b67a0..99cf1925147 100644 --- a/pkg/explain/printer_test.go +++ b/pkg/explain/printer_test.go @@ -50,6 +50,9 @@ func Test_PrintFields(t *testing.T) { ImageContentSources lists sources/repositories for the release-image content. ImageContentSource defines a list of sources/repositories that can be used to pull content. + installType + InstallType provides signal to the cluster that the installation will not follow the default installer workflow. + kind Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds diff --git a/pkg/types/installconfig.go b/pkg/types/installconfig.go index 77a8c807ca7..efc504ea8b5 100644 --- a/pkg/types/installconfig.go +++ b/pkg/types/installconfig.go @@ -120,6 +120,11 @@ type InstallConfig struct { // +optional FIPS bool `json:"fips,omitempty"` + // InstallType provides signal to the cluster that the installation will not follow the default installer workflow. + // + // +optional + InstallType string `json:"installType,omitempty"` + // 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