-
Notifications
You must be signed in to change notification settings - Fork 4
non-interactive "jsctl clusters connect" flow is broken #92
Description
The standard behaviour is that the user dances around a browser connected to TLSPK to complete the auth. This is not appropriate in non-interactive sessions where we'd like the sequence to be automatable. To this aim the jsctl auth login --credentials ${creds_file} syntax was introduced. To obtain a creds file, the user needs to create a TLSPK service account from here (https://platform.jetstack.io/org/<ORG_NAME>/manage/service_accounts) which looks something like this:
{
"user_id": "[email protected]",
"user_secret": "S5wF+IP......o@7g1\\Ty/"
}
So far so good, but we (@inteon) believe the service accounts are insufficiently privileged because the following happens:
$ jsctl auth login --credentials creds.json
Login succeeded
$ jsctl config set organization gallant-wright
Your organization has been changed to gallant-wright
$ jsctl clusters connect kind_2302201811
failed to create service account: missing some roles in organization "gallant-wright": admin (403)
Perhaps, what we really want is the ability to download equivalent credentials file for an org "Member", rather than a "Service Account".
I can see no reason why this shouldn't be possible since this is no different to how, for example, an AWS user obtains their AccessKeyID/SecretAccessKey pair. NOTE that AWS provides two such pairs per user at any time to enable safe credential rotation which might be a requirement.