stackabletech / stackabletech/issues
Make authentication less dependent on cluster wide objects
Nobody has claimed this yet.
- Dominant language
- No language data
- Stars
- 2
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
Description
Part of https://github.com/stackabletech/issues/issues/807
Authentication in SDP involves managing AuthenticationClass and SecretClass objects, among other things.
These are cluster wide objects that can usually only be created by cluster administators.
Users must reference secret/authentication classes in product manifests and are therefore dependent RBAC permissions that are not available to them on most organizational policies.
To resolve this dependency, we propose two backward compatible changes that, taken togehther would make it sufficient to implement authentication with namespaced objects only.
The changes:
- The first change is to add a new field to
AuthenticationClassmanifests. The field would be a reference to aSecret(namespaced) that can be used instead of the reference to the existingSecretClasses(cluster wide).
Example:
kind: AuthenticationClass
spec:
provider:
ldap:
hostname: my.ldap.server
port: 389
searchBase: ou=users,dc=example,dc=org
bindCredentials:
secretClass: openldap-bind-credentials
# OR # <<< NEW COMPLEX ENUM
secretName: openldap-bind-credentials # <<<< NEW FIELD
- The second change is to allow product manifests to inline authentication manifests instead of referncing cluster wide objects.
apiVersion: trino.stackable.tech/v1alpha1
kind: TrinoCluster
metadata:
name: simple-trino
spec:
clusterConfig:
authentication:
- authenticationClass: simple-trino-users
- authenticationClass: my-openldap
# OR <<< NEW COMPLEX ENUM
- experimentalInlinedAuthenticationClass: # or maybe inlinedAuthenticationClass
provider:
static:
userCredentialsSecret:
name: trino-users
- experimentalInlinedAuthenticationClass:
provider:
ldap: # ...
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the related issue 807, then review the AuthenticationClass and SecretClass manifest concepts and the TrinoCluster authentication examples in this issue. Map the affected product manifests and decide how both namespaced Secret references and inline authentication manifests can be added backward compatibly; done means the proposed authentication flows no longer require cluster-wide objects.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kubernetes
- Domain
- authentication
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100