-
Notifications
You must be signed in to change notification settings - Fork 634
✨ Rosa Config implementaiton #5499
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
✨ Rosa Config implementaiton #5499
Conversation
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Hi @PanSpagetka. Thanks for your PR. I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
11dac0b
to
6056618
Compare
1587db4
to
9121ec2
Compare
07b73a3
to
097252f
Compare
Dockerfile
Outdated
# Copy the Go Modules manifests | ||
COPY go.mod go.mod | ||
COPY go.sum go.sum | ||
COPY ./rosa /workspace/rosa |
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.
why are we adding this ? what is the rosa file
Dockerfile
Outdated
--mount=type=cache,target=/go/pkg/mod \ | ||
go mod download | ||
|
||
# RUN go mod download |
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.
no need for this line
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.
can you just add the RosaRoleConfig item without changing the order of other items
config/default/tmp.yaml
Outdated
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.
why do we need this file ?
config/crd/kustomization.yaml
Outdated
- patches/webhook_in_awsmanagedcontrolplanes.yaml | ||
- patches/webhook_in_eksconfigs.yaml | ||
- patches/webhook_in_eksconfigtemplates.yaml | ||
#- patches/webhook_in_rosaroleconfigs.yaml |
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 believe you need to uncomment this line
} | ||
} | ||
|
||
if scope.RosaRoleConfig.Status.OIDCID == "" { |
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 believe you should check/set the RosaRoleConfig condition first , then get the oidc using OCM client if it is not exist then create it.
Same applied for account-roles and operator-roles
} | ||
} | ||
|
||
err = r.deleteOperatorRoles(ocmClient, awsClient, scope.RosaRoleConfig.Spec.AccountRoleConfig.Prefix) |
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.
Do we need to delete the operator roles before the oidc-provider ?
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.
Nope, a changed it so it matches reverse creation order.
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 guess the order here is not correct, deleting the operatrRoles first then oidc-provider then odic-config ?
return ocmClient.DeleteOidcConfig(oidcConfigID) | ||
} | ||
|
||
type reporter 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.
please move this to another file , better to be under pkg/.../rosa
097252f
to
0c9fa93
Compare
b3aded3
to
23fa4cb
Compare
2515be2
to
c0d0d2a
Compare
@nrb Thank you for review! I created new temporary commit with changes, so its easier to review. I will squash it when we agree that code is good enough. |
// +immutable | ||
ControlPlaneOperatorARN string `json:"controlPlaneOperatorARN"` | ||
KMSProviderARN string `json:"kmsProviderARN"` | ||
ControlPlaneOperatorARN string `json:"controlPlaneOperatorARN,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.
@PanSpagetka Not sure if I understand your comment , The case we were discussing is We have the 8 Roles ARN are created for first time so all of them exist, then one or more roles get deleted by aws admin using aws console for example (not using our CR) . when reconcile happen some of those 8 roles will not retrieved by awsClient. So we will re-create the missing roles and set the ARN. Why we you need to set it empty ? there is no chance we will have this case.
if err != nil { | ||
return r.createOIDCConfig(scope, ocmClient) | ||
} |
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.
@PanSpagetka the logic here not make sense , if there is an error we don't re-create the oidc config we return the error.
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.
Its because scope.IAMClient().GetRole
returns error when role is not found. And if the role is not found, we cant derive the OIDC id from it.
if err != nil { | ||
return r.createOIDCConfig(scope, ocmClient) | ||
} |
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.
same here.
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.
Similarly GetOIDCIDFromOperatorRole
returns error when we cant get OIDC id from the role. So we create new one
8040331
to
f17676b
Compare
a2ee9fc
to
c99f988
Compare
cc3c065
to
daeac96
Compare
47368c1
to
fe78ee9
Compare
/retest-required |
1 similar comment
/retest-required |
fe78ee9
to
fed1e9c
Compare
/hold |
/close |
@serngawy: Closed this PR. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
Based on proposal #5451
Adding RosaRoleConfig API with implementation. that should create Account/Operator roles and OIDC config/provider necessary to create ROSA cluster.
We need to move RosaMachinePoolAutoScaling definition to controlplane, because otherwise there would be circular dependency.
What type of PR is this?
/kind feature
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:
Checklist:
Release note: