-
Spike
-
Resolution: Done
-
Normal
-
None
-
None
-
None
Goal
- Integrate the hypershift cli with the MCE credentials, this credential includes Cloud Provider connectivity details, base-domain, SSH Key and Pull-secret
Use cases
- Existing MCE and ACM users that are provisioning AWS and Azure clusters, already have a number of parameters you otherwise have to pass to the CLI available, allow the cli for the `hypershift create clusters aws` and `hypershift create cluster azure` leverage the exist credential
- For a new user that will create more then one cluster and wants to re-use their cloud credential, pull-secret, ssh-pubkey, and base-domain
- Support a GitOps flow with basic infrastructure. You can use the credential secret and a tekton task, kube job, etc... to call hypershift install, and leverage the secret. This is key for these types of flows as users will not store their credentials in Git. This offers a quick introduction/approach to deploying hypershift with GitOps from scratch.
- If the MCE/ACM AWS console shows a page with the hypershift cli command, this would allow the command to be more likely to be successful, as the user does not need to have a pull-secret, provider credential and ssh-key in their env.
Scope (implementation chunks)
1st spike
- Implement `hypershift create cluster aws --secret-creds <name> --name...`
- Implement `hypershift destroy cluster aws --secret-creds <name> --name...`
2nd spike
- Implement `hypershift create cluster azure --secret-creds <name> --name...`
- Impelment `hypershift destroy cluster azure --secret-creds <name> --name...`
3rd spike
- hypershift infra create <Platform>?? Since this command does not require an OCP connection, we will wait to see if there is a request for enhancement from the field.
Assumptions and overrides
Assumptions:
- All existing error messages and require flags will be maintained when `--credential-secret` is not present.
- Credential secret will exist in the `hypershift --namespace` location (default: clusters)
- When `--credential-secret` is used, we always pull the Platform credentials
- We will use all available values unless they are overridden:
- Platform credential
- base-domain
- pull-secret
- ssh-key (TBD)
Overrides
- In first implementation `
base-domain` will override `-secret-creds` value - SPIKE: override with `--pull-secret`, & `ssh-key`
Parameter name
MCE's console refers to the the secret as a Credential, and the platforms are referred to as "Credential types", this is the reason for calling the param --secret-creds