Skip to content
This repository has been archived by the owner on Jul 16, 2019. It is now read-only.

Add Azure KeyVault integration #24

Open
jjcollinge opened this issue Dec 18, 2017 · 7 comments
Open

Add Azure KeyVault integration #24

jjcollinge opened this issue Dec 18, 2017 · 7 comments
Labels
enhancement issues relating to enhancements help wanted / up for grabs issues available to claim size/medium medium tasks

Comments

@jjcollinge
Copy link
Owner

jjcollinge commented Dec 18, 2017

  • Add support for KeyVault provider configuration
  • Fetch certificate from KeyVault
  • Provid certificate to provider for client authentication

@askw @flmader

@jjcollinge jjcollinge changed the title Azure KeyVault integration Add Azure KeyVault integration Dec 18, 2017
@lawrencegripper lawrencegripper added size/medium medium tasks help wanted / up for grabs issues available to claim enhancement issues relating to enhancements labels Dec 18, 2017
@clausndk
Copy link

How to get started with this, if I wanted to help? I have no Go experience, so I would prefer some guidance as to where to start and how you see a design for this?

@jjcollinge
Copy link
Owner Author

Hey @clausndk - things have changed a little since I first proposed this issue. As the TLS config is pulled straight from the traefik.toml configuration file - it probably makes sense to handle the Key Vault piece outside of Traefik.

[serviceFabric.tls]
   cert = "certs/servicefabric.crt"
   key = "certs/servicefabric.key"
   insecureskipverify = true

You could use a SetupEntryPoint script that pulls the Azure credentials it needs to talk to Key Vault from environment variables and then grabs the certificates stored as base64encoded Key Vault secrets, decodes it and then injects them into the traefik.toml before the Traefik process is started. According to the Traefik TLS config code // CA, Cert and Key can be either path or file contents - so you could inject it directly into the treafik.toml as a string or write them to files and inject the file paths. The SetupEntryPoint script can be written as a batch file that kicks off a Powershell script so you won't have to deal with Go :) this pattern is shown here.

Hope that makes sense - I'll have a think if there's a better option. @lawrencegripper thoughts?

@lawrencegripper
Copy link
Collaborator

Yeah this makes sense for me, unless we can find a way to roll this up into traefik but I'd expect the scope of the changes to be too large

@RamjotSingh
Copy link
Contributor

I have opened a PR which solves this (for windows only as I don't have Linux environment right now)

#65

@paul-mcgrath
Copy link
Contributor

Has there been progress made on this feature, or is it still up for grabs?

@jjcollinge
Copy link
Owner Author

hi @paul-mcgrath, we now link on the main README to @RamjotSingh's work available at the following repo: https://github.com/jjcollinge/traefik-on-service-fabric#multi-environment-support-and-automated-management-of-certificates. This works for Windows only, we haven't added anything additional on the Linux side.

@paul-mcgrath
Copy link
Contributor

Hey that's fantastic, thank you! This is exactly what we were looking to solve right now. Very much appreciated 👍

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement issues relating to enhancements help wanted / up for grabs issues available to claim size/medium medium tasks
Projects
None yet
Development

No branches or pull requests

5 participants