-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add proposal for Power VS infra creation #1488
Conversation
✅ Deploy Preview for kubernetes-sigs-cluster-api-ibmcloud ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
@dharaneeshvrd please go through the flow diagram been published and see how we handle the hypershift scenario in this design |
I think it should not affect the hypershift use case as I believe hypershift sets externally managed annotation which avoids ibmpowervscluster resource reconcilation. For info: #899 |
The main difference I am seeing from hypershift flow is that, load balancer will not get created as part of infra creation. Other than that I have few comments that we need to keep in mind:
Will keep posting if something comes to my mind. |
|
c2d776d
to
9d5df15
Compare
|
||
### Cluster creation workflow | ||
|
||
![img_4.png](../images/powervs-workflow.png) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lets use tools like https://excalidraw.com which allows to save the spec file as well so that someone also can easily modify the content later
9d5df15
to
d1ab4c1
Compare
0d638a9
to
e28884d
Compare
e28884d
to
1115fe0
Compare
@Karthik-K-N lets merge this everything fixed, @Prajyot-Parab please review. |
sure, let me update the final api specs |
|
||
// vpcSubnet contains information about IBM Cloud VPC Subnet resources | ||
// +optional | ||
VPCSubnet *Subnet `json:"vpcSubnet,omitempty"` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Update
VPCSubnet *Subnet `json:"vpcSubnet,omitempty"` | |
VPCSubnets []Subnet `json:"vpcSubnets,omitempty"` |
// (https://coreos.github.io/ignition/) for bootstrapping (requires | ||
// BootstrapFormatIgnition feature flag to be enabled). | ||
// +optional | ||
CosBucket *CosBucket `json:"cosBucket,omitempty"` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CosBucket *CosBucket `json:"cosBucket,omitempty"` | |
CosInstance *CosInstance `json:"cosInstance,omitempty"` |
update the comments as well
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
vpcSubnet --> this should be list as per latest changes right? @Karthik-K-N
Zone *string `json:"zone,omitempty"` | ||
} | ||
|
||
type CosBucket struct { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Update as per latest API changes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I will update this by eod
1115fe0
to
263f08e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have updated the proposal with new api spec , Please take a look
@@ -0,0 +1,202 @@ | |||
# Dynamically create infrastructure required for Power VS cluster |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: Power VS --> PowerVS (Fix everywhere)
|
||
## Motivation | ||
Currently, inorder to create Power VS cluster using cluster api we need to create few resources in hand which includes | ||
1. Creating a Power VS workspace |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
1. Creating a Power VS workspace | |
1. Creating a PowerVS Workspace |
Along the similar line today the cluster is accessible to end user via external ip and which is loadbalanced on controlplanes using kube-vip. | ||
|
||
## Goal | ||
1. Dynamically creating required cloud resources as a part of cluster creation. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
1. Dynamically creating required cloud resources as a part of cluster creation. | |
1. Dynamically create the required cloud resources as part of the cluster creation process. |
|
||
## Goal | ||
1. Dynamically creating required cloud resources as a part of cluster creation. | ||
2. Allowing users to access the cluster via loadbalacer. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
2. Allowing users to access the cluster via loadbalacer. | |
2. Allow users to access the cluster via loadbalancer. |
|
||
// zone is the name of Power VS zone where the cluster will be created | ||
// possible values can be found here https://cloud.ibm.com/docs/power-iaas?topic=power-iaas-creating-power-virtual-server. | ||
// when omitted syd04 will be set as default zone. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
// when omitted syd04 will be set as default zone. | |
// when omitted dal10 will be set as default zone. |
(change in actual API file as well)
6. [VPC Loadbalancer](https://www.ibm.com/products/load-balancer) | ||
|
||
### Cluster creation workflow | ||
User is expected to set the annotation ```powervs.cluster.x-k8s.io/create-infra:true``` to IBMPowerVSCluser object make use of this feature. If unset the cluster creation goes through existing way. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
User is expected to set the annotation ```powervs.cluster.x-k8s.io/create-infra:true``` to IBMPowerVSCluser object make use of this feature. If unset the cluster creation goes through existing way. | |
User is expected to set the annotation ```powervs.cluster.x-k8s.io/create-infra:true``` to IBMPowerVSCluser object to make use of this feature. If not set the cluster creation will proceed with existing way. |
``` | ||
|
||
### Following resources will be created | ||
1. [Power VS workspace](https://cloud.ibm.com/docs/power-iaas?topic=power-iaas-creating-power-virtual-server) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
1. [Power VS workspace](https://cloud.ibm.com/docs/power-iaas?topic=power-iaas-creating-power-virtual-server) | |
1. [PowerVS Workspace](https://cloud.ibm.com/docs/power-iaas?topic=power-iaas-creating-power-virtual-server) |
2. [Power VS Network](https://cloud.ibm.com/docs/power-iaas?topic=power-iaas-configuring-subnet) [DHCP service] | ||
3. [VPC](https://cloud.ibm.com/docs/vpc?topic=vpc-about-vpc) | ||
4. [VPC Subnet](https://cloud.ibm.com/docs/vpc?topic=vpc-about-networking-for-vpc) | ||
5. [Transit gateway](https://www.ibm.com/products/transit-gateway) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
5. [Transit gateway](https://www.ibm.com/products/transit-gateway) | |
5. [Transit Gateway](https://www.ibm.com/products/transit-gateway) |
# Dynamically create infrastructure required for Power VS cluster | ||
|
||
## Motivation | ||
Currently, inorder to create Power VS cluster using cluster api we need to create few resources in hand which includes |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Currently, inorder to create Power VS cluster using cluster api we need to create few resources in hand which includes | |
Currently, inorder to create a PowerVS cluster using cluster api we need to create few resources as prerequisites which includes - |
2. Creating a Power VS Network | ||
3. Creating a port on network | ||
|
||
as this involves some prerequisite work which is limiting true capabilities of cluster api. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
as this involves some prerequisite work which is limiting true capabilities of cluster api. | |
As this involves some prerequisite work which is limiting the true capabilities of cluster api. |
6cd4eb4
to
b10cd0e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Prajyot-Parab Thanks for the suggestion, I have addressed all of them and they are ready for review again.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: Karthik-K-N, mkumatag, Prajyot-Parab The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
What this PR does / why we need it:
Which issue(s) this PR fixes (optional, in
fixes #<issue number>(, fixes #<issue_number>, ...)
format, will close the issue(s) when PR gets merged):Fixes #
Special notes for your reviewer:
/area provider/ibmcloud
Release note: