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 oVirt and manila to CSO #65
Add oVirt and manila to CSO #65
Conversation
/test e2e-ovirt |
2aa8d22
to
2798b19
Compare
/test e2e-ovirt |
labels: | ||
name: ovirt-csi-driver-operator | ||
spec: | ||
serviceAccountName: ovirt-csi-driver-operator |
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.
07_deployment.yaml was just updated, please pull it 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.
Updated. And added CredentialRequest sync for oVirt to CSO.
a5b8516
to
f06cd58
Compare
/test e2e-ovirt |
f06cd58
to
d31232e
Compare
/test e2e-ovirt |
1 similar comment
/test e2e-ovirt |
operator: Exists | ||
args: | ||
- start | ||
- "--node=$(KUBE_NODE_NAME)" |
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.
What about adding ${LOG_LEVEL}?
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.
Fixed
And make Manila driver optional.
d31232e
to
7f1f9b9
Compare
/test e2e-ovirt |
2 similar comments
/test e2e-ovirt |
/test e2e-ovirt |
@jsafrane: The following test failed, say
Full PR test history. Your PR dashboard. 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/test-infra repository. I understand the commands that are listed here. |
degradedCnd.Type = c.crConditionName(operatorapi.OperatorStatusTypeDegraded) | ||
if degradedCnd.Status == operatorapi.ConditionUnknown { | ||
degradedCnd.Status = operatorapi.ConditionFalse | ||
} |
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 we have an operator that's disabled&optional but is also progressing or degraded?
Doesn't sound like we want to handle that, but just checking...
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.
Disabled & degraded can happen:
- Manila operator checks there is no Manila in OpenStack and sets
Disabled: true
- On regular re-sync, Manila fails to talk to OpenStack and reports
Degraded: true
. This keepsDisabled: true
(at least I think so)
With the current code, CSO will report Degraded: true
.
Disabled & Progressing is IMO impossible, but CSO should be robust enough to handle that.
DeploymentAsset: "csidriveroperators/ovirt/07_deployment.yaml", | ||
ImageReplacer: strings.NewReplacer(pairs...), | ||
ExtraControllers: []factory.Controller{ | ||
newOVirtCredentialsRequest(clients, recorder), |
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 creating the credentials request in CSO for oVirt?
oVirt operator creates it as well: https://github.com/openshift/ovirt-csi-driver-operator/blob/master/pkg/operator/starter.go#L86
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.
oVirt operator needs to check name of storage domain from oVirt to create the default storage class.
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.
Ack.
@rgolangh does that mean the oVirt operator doesn't need to create the credentialsrequestcontroller [1]?
[1] https://github.com/openshift/ovirt-csi-driver-operator/blob/master/pkg/operator/starter.go#L86
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.
Maybe we could fix oVirt operator to reuse secret provided by CSO's CredentialRequest.
@@ -240,6 +221,61 @@ func (c *CSIDriverOperatorCRController) applyClusterCSIDriver(requiredOriginal * | |||
return actual, true, err | |||
} | |||
|
|||
func (c *CSIDriverOperatorCRController) syncConditions(conditions []operatorapi.OperatorCondition, updatefn v1helpers.UpdateStatusFunc) 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.
Do you think it would be more readable to split this into 2 functions: one to handle optional operators and the other to handle non-optional ones? Or have a big if-else clause (if c.optional)?
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 tried and it looks even worse - two functions that look like copies, with only small differences.
/hold cancel |
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: bertinatto, jsafrane 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 |
The last ovirt tests almost succeeded. Only this one failed:
|
Before we had the CSI driver for ovirt [1] we needed to patch the image registry to use emptyDir storage. This patch removes the call for update_image_registry function on 4.6 and above. [1] openshift/cluster-image-registry-operator#583 openshift/cluster-storage-operator#65 Signed-off-by: Gal-Zaidman <gzaidman@redhat.com>
When the csi driver for ovirt was merged into the storage operator[1] there is no "standard" StorageClass in the cluster, but there is a ovirt-csi-sc storage class which is the default storage class. This cause the installer to fail due to image registry not being ready, since it was panding due to the pending pvc. Instead the default storageclass should be used, see thread on forum-storage[2], not specifing the storage class[3] catches the default storage class. [1] openshift/cluster-storage-operator#65 [2] https://coreos.slack.com/archives/CBQHQFU0N/p1596452181198600 [3] https://kubernetes.io/docs/concepts/storage/persistent-volumes/#class-1 Signed-off-by: Gal-Zaidman <gzaidman@redhat.com>
Disabled: true
. CSO then consumes it and reportsAvailable: true
(because there is nothing wrong in the cluster). User can get details about Manila inStorage
CR.@openshift/storage
/hold
requires openshift/csi-driver-manila-operator#44 merged first