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

kafka: SCRAM secret association #1451

Closed
chlunde opened this issue Aug 25, 2022 · 4 comments
Closed

kafka: SCRAM secret association #1451

chlunde opened this issue Aug 25, 2022 · 4 comments
Assignees

Comments

@chlunde
Copy link
Collaborator

chlunde commented Aug 25, 2022

What resource do you need?

ScramSecretAssociation.kafka

What is your use case?

Provision users with access to kafka

Would you be willing to contribute it using code generator?

Yes

I started looking at adding support for attaching secretsmanager secrets to kafka clusters in provider-aws / kafka. The MSK API for SCRAM secrets has List/BatchAssociate/BatchDisassociate, but no Get (or filter for List).

So it would be fairly expensive to create a model where each user is a distinct object (i.e. for 100 users, one would call List 100 times every 5 minutes).

So I wonder if we should have one object containing the list of all secrets that should be associated with the resource.

Using referencers, one can easily select any amount of secrets that should be attached to the cluster.

Design 1 - one ScramSecretAssociation per cluster

apiVersion: kafka.aws.crossplane.io/v1alpha1
kind: ScramSecretAssociation
metadata:
  name: example-assoc
spec:
  forProvider:
    region: eu-north-1
    clusterARN: arn:aws:kafka:eu-north-1:...:cluster/a50...aug/84bb3593-ab64-1234-1234-061e115a4eeb-4
    secretARNListSelector:
      matchLabels:
        for-cluster: foo
  providerConfigRef:
    name: example

Design 2 - one ScramSecretAssociation per user, multiple ScramSecretAssociation per cluster

apiVersion: kafka.aws.crossplane.io/v1alpha1
kind: ScramSecretAssociation
metadata:
  name: example-assoc
spec:
  forProvider:
    region: eu-north-1
    clusterARN: arn:aws:kafka:eu-north-1:...:cluster/a50...aug/84bb3593-ab64-1234-1234-061e115a4eeb-4
    secretARN: arn:..kms..foo
  providerConfigRef:
    name: example

In this case, we would call the List API endpoint (returning 1000 users) 1000 times per minute, if we have a reconcile interval of one minute and 1000 users in the cluster (the current limit)

@chlunde chlunde self-assigned this Sep 12, 2022
@davidcurrie
Copy link

@chlunde - did you make any headway on this? I fear its absence is going to make Crossplane a non-starter for us...

@github-actions
Copy link

Crossplane does not currently have enough maintainers to address every issue and pull request. This issue has been automatically marked as stale because it has had no activity in the last 90 days. It will be closed in 14 days if no further activity occurs. Leaving a comment starting with /fresh will mark this issue as not stale.

@github-actions github-actions bot added the stale label Sep 22, 2023
@davidcurrie
Copy link

/fresh This is certainly still an issue - we currently have our Crossplane usage wrapped up with some bash scripting to do the association which is fairly unpleasant.

@github-actions github-actions bot removed the stale label Sep 23, 2023
Copy link

Crossplane does not currently have enough maintainers to address every issue and pull request. This issue has been automatically marked as stale because it has had no activity in the last 90 days. It will be closed in 14 days if no further activity occurs. Leaving a comment starting with /fresh will mark this issue as not stale.

@github-actions github-actions bot added the stale label Dec 22, 2023
@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Jan 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants