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

Spin App: Support ServiceAccountName for underlying Pods #226

Open
ThorstenHans opened this issue May 6, 2024 · 5 comments · May be fixed by #228
Open

Spin App: Support ServiceAccountName for underlying Pods #226

ThorstenHans opened this issue May 6, 2024 · 5 comments · May be fixed by #228

Comments

@ThorstenHans
Copy link
Collaborator

Being able to specify the ServiceAccountName for underlying Pods is necessary to unlock capabilities - such as Azure Workload Identity - provided by managed Kubernetes distros (e.g. AKS).

Obviously, the underlying runtime (containerd-shim-spin) must pick up the specified ServiceAccountName and run the Wasm workload using the identity.

ThorstenHans added a commit to ThorstenHans/spin-operator that referenced this issue May 6, 2024
closes spinkube#226

Signed-off-by: Thorsten Hans <thorsten.hans@fermyon.com>
@ThorstenHans ThorstenHans linked a pull request May 6, 2024 that will close this issue
@radu-matei
Copy link
Member

Is it worth considering this as a executor-level configuration?

@ThorstenHans
Copy link
Collaborator Author

That's a fair question.

I was thinking about those scenarios:

  • Only a sub-set of your Spin Apps specify PodServiceAccountName at all
  • Multiple Spin Apps may provide the same value for PodServiceAccountName

A great argument for putting it on the executor would be that it slightly moves the responsibility away from the developer towards Ops.

If we move PodServiceAccountName to the executor, people should also be able to inject Pod Labels on the scope of the executor, because Azure Workload Identity requires both Pod Labels and ServiceAccountName to work.

@endocrimes
Copy link
Contributor

@ThorstenHans Do you know what the labels are used for? - In GKE you just need the serviceAccountName (and a iam.gke.io/gke-metadata-server-enabled: "true" nodeSelector in the runtime class)

@ThorstenHans
Copy link
Collaborator Author

Azure Workload Identity needs the following label azure.workload.identity/use: "true"

I can lookup what it's actually used for tomorrow morning

@ThorstenHans
Copy link
Collaborator Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants