-
Notifications
You must be signed in to change notification settings - Fork 37
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
RHOAIENG-11155: Better explanation of 'Authorize Access' UI #449
base: main
Are you sure you want to change the base?
Changes from 7 commits
d9fb7b7
2914a5f
55ddef2
009b144
8e285fd
3047718
c9147f7
fefa76e
b492194
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -209,6 +209,26 @@ func NewNotebookOAuthSecret(notebook *nbv1.Notebook) *corev1.Secret { | |||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
// NewNotebookOAuthClientSecret defines the desired OAuth client secret object | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
func NewNotebookOAuthClientSecret(notebook *nbv1.Notebook) *corev1.Secret { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. As we would not be utilizing, opendatahub-operator secretgenerator, please take this as reference:
and adjust this function , and for secret generation,
Suggested change
and adjust the oauth-proxy to directly pick value from this secret |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
// Generate the client secret for the OAuth proxy | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
return &corev1.Secret{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
ObjectMeta: metav1.ObjectMeta{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Name: notebook.Name + "-oauth-client", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Namespace: notebook.Namespace, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Labels: map[string]string{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
"notebook-name": notebook.Name, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Annotations: map[string]string{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
"secret-generator.opendatahub.io/name": "secret", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. FYI: This specific annotations used by rhoai-operator to create a secret |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
"secret-generator.opendatahub.io/type": "random", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
"secret-generator.opendatahub.io/complexity": "32", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
"secret-generator.opendatahub.io/oauth-client-route": notebook.Name, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
// ReconcileOAuthSecret will manage the OAuth secret reconciliation required by | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
// the notebook OAuth proxy | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
func (r *OpenshiftNotebookReconciler) ReconcileOAuthSecret(notebook *nbv1.Notebook, ctx context.Context) error { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -246,6 +266,36 @@ func (r *OpenshiftNotebookReconciler) ReconcileOAuthSecret(notebook *nbv1.Notebo | |||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
// Generate the desired OAuth client secret | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
desiredClientSecret := NewNotebookOAuthClientSecret(notebook) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
// Create the OAuth client secret if it does not already exist | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
foundClientSecret := &corev1.Secret{} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
err = r.Get(ctx, types.NamespacedName{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Name: desiredClientSecret.Name, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Namespace: notebook.Namespace, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, foundClientSecret) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
if err != nil { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
if apierrs.IsNotFound(err) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
log.Info("Creating OAuth Client Secret") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
// Add .metatada.ownerReferences to the OAuth client secret to be deleted by | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
// the Kubernetes garbage collector if the notebook is deleted | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
err = ctrl.SetControllerReference(notebook, desiredClientSecret, r.Scheme) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
if err != nil { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
log.Error(err, "Unable to add OwnerReference to the OAuth Client Secret") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
return err | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
// Create the OAuth client secret in the Openshift cluster | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
err = r.Create(ctx, desiredClientSecret) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
if err != nil && !apierrs.IsAlreadyExists(err) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
log.Error(err, "Unable to create the OAuth Client Secret") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
return err | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
} else { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
log.Error(err, "Unable to fetch the OAuth Client Secret") | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
return err | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
return nil | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
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.
@daniellutz the idea here is that the linter only runs on new code, so that's why it is not flagging the existing usages of
pointer.Int32Ptr
. What you should do here is to simply useptr.To
instead of this, and it will work just fine. The idea is that ptr.To is a better replacement for the old functions, and it could not be used before because it requires go 1.18+ features https://pkg.go.dev/k8s.io/utils/ptr#section-readme