Skip to content
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

User Preferences-Adding External Accounts #17954

Open
parvathyvr opened this issue Sep 24, 2020 · 5 comments
Open

User Preferences-Adding External Accounts #17954

parvathyvr opened this issue Sep 24, 2020 · 5 comments
Labels
area/dashboard kind/enhancement A feature request - must adhere to the feature request template. kind/epic A long-lived, PM-driven feature request. Must include a checklist of items that must be completed. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. roadmap/6-months Epics that are planned to complete in the medium term (within 6 months) severity/P2 Has a minor but important impact to the usage or development of the system.

Comments

@parvathyvr
Copy link

parvathyvr commented Sep 24, 2020

Is your enhancement related to a problem? Please describe.

The users should be able to set up the various external accounts they want to link to Che using User Preferences. This currently includes:

  • GitHub account
  • External Image Registries
  • SSH Key Pairs
  • Git credentials
  • Maven settings
  • Generic secret file
  • Generic secret environment variable

Describe the solution you'd like

The user can add various external account types under 'User Preferences'.

Step 1
Could be similar to oc login display token where we expose the cmd for them to copy/paste into a terminal to add a secret. We should also explain how to query for created secrets
#20469

Step 2
Would add a YAML editor where a user could add content and apply. A quick way that we could provide additional help/value would be to pre-fill the form with a skeleton secret structure which includes the following:

apiVersion: v1
kind: Secret
metadata:
  generatedName: che-user-secret-
  labels:
    app.kubernetes.io/part-of: che.eclipse.org
    app.kubernetes.io/component: workspace-secret

At this stage we should also provide a table(?) of created secrets which the user would be able to view/edit/delete. This should update after a new secret has been added through the above form.

Creation / deletion of secrets should provide feedback inc. timeout error message.

Step 3

would start to add basic validation as described below:

We should check for these labels and show an error message if they are not there (error message should include these so they can be easily added):

    app.kubernetes.io/part-of: che.eclipse.org
    app.kubernetes.io/component: workspace-secret 

And we should check if the annotation “che.eclipse.org/mount-as” and we should show an error message if it’s not there and if the value is neither “file” or “env”

che.eclipse.org/mount-as: file | env

If it’s a file then we should also check that the annotation che.eclipse.org/mount-path is there

che.eclipse.org/mount-path: ...

If it’s an env we should check that at least one annotation with the suffix env-name is there:

che.eclipse.org/*env-name:...

Step 4

Would add the ability to select the type of secret that is being created (i.e. drop down menu of type, or + button then menu. Which asks for specific information they would already know about or know how to retrieve, and automatically create the full secret for them:

Describe alternatives you've considered

Additional context

An exploratory design concept is attached below

Che-User preferences Ext accounts Design concept

@parvathyvr parvathyvr added the kind/enhancement A feature request - must adhere to the feature request template. label Sep 24, 2020
@che-bot che-bot added the status/need-triage An issue that needs to be prioritized by the curator responsible for the triage. See https://github. label Sep 24, 2020
@themr0c themr0c added area/dashboard severity/P2 Has a minor but important impact to the usage or development of the system. and removed status/need-triage An issue that needs to be prioritized by the curator responsible for the triage. See https://github. labels Sep 25, 2020
@l0rd
Copy link
Contributor

l0rd commented Sep 28, 2020

@parvathyvr I would update the table like that:

Type Details Action
Git Credential Store Secret :
Maven Settings Secret :
SSH Key Pair Secret :
Docker Registry Credential Secret :
Generic Secret File Secret :
Generic Secret Env Variable Secret :

and instead of "Add External Account" button I would have "Add Workspaces Secret".

And for a first iteration I would only support Generic Secret File and Generic Secret Env Variable.
And I would iterate sprint after sprint with the others types. Every type should come with a different input form (i.e. git credentials is a list of hostname/username/password lines, maven settings is an xml file and a path...).

@sympatheticmoose
Copy link

sympatheticmoose commented Feb 5, 2021

@l0rd I'm wondering about "Add Workspaces Secret". Which whilst accurate, offers little abstraction to the user from the mechanism we're using in kubernetes - which they shouldn't have to understand. It isn't necessarily a clear 'action' they would want to take to achieve (for example) connecting their Github account.

@l0rd
Copy link
Contributor

l0rd commented Feb 5, 2021

@sympatheticmoose agreed. I haven't found anything better though. "Add External Account" doesn't work for tools settings that doesn't involve an external service (settings or git settings for example)

@che-bot
Copy link
Contributor

che-bot commented Aug 9, 2021

Issues go stale after 180 days of inactivity. lifecycle/stale issues rot after an additional 7 days of inactivity and eventually close.

Mark the issue as fresh with /remove-lifecycle stale in a new comment.

If this issue is safe to close now please do so.

Moderators: Add lifecycle/frozen label to avoid stale mode.

@che-bot che-bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Aug 9, 2021
@benoitf benoitf added lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Aug 18, 2021
@themr0c
Copy link
Contributor

themr0c commented Sep 13, 2021

Is it possible to reconsider the priority to P1?

In the documentation currently have several procedures for the end-user containing some steps for "adding {orch-name} Secret containing ".
It implies a major context change for the user: switching from the Dashboard, to CLI tools to convert the secret to base64, and to configure Kubernetes/OpenShift.
This change of context is a major drawback for the end-user.

For the naming: what about simply: "Secrets".

For reference, the list of all pages containing a mention to provisioning a Secret:

End-user Guide

For all procedures, the user needs to expose secrets in a workspace.

Installation guide

Mostly unavoidable steps during installation, except for the last in the list, related to the actions in the End-user Guide.

Administration guide:

@l0rd l0rd added the kind/epic A long-lived, PM-driven feature request. Must include a checklist of items that must be completed. label Sep 13, 2021
@l0rd l0rd added roadmap/3-months Epics that are planned to complete in the short term (within 3 months) roadmap/6-months Epics that are planned to complete in the medium term (within 6 months) and removed roadmap/3-months Epics that are planned to complete in the short term (within 3 months) labels Oct 4, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/dashboard kind/enhancement A feature request - must adhere to the feature request template. kind/epic A long-lived, PM-driven feature request. Must include a checklist of items that must be completed. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. roadmap/6-months Epics that are planned to complete in the medium term (within 6 months) severity/P2 Has a minor but important impact to the usage or development of the system.
Development

No branches or pull requests

6 participants