mirror of
https://github.com/cert-manager/webhook-example.git
synced 2025-07-03 23:25:49 +02:00
rename funcs
This commit is contained in:
parent
67bcf8b172
commit
0efd9b74ea
2 changed files with 18 additions and 20 deletions
36
main.go
36
main.go
|
@ -26,15 +26,15 @@ func main() {
|
||||||
// webhook, where the Name() method will be used to disambiguate between
|
// webhook, where the Name() method will be used to disambiguate between
|
||||||
// the different implementations.
|
// the different implementations.
|
||||||
cmd.RunWebhookServer(GroupName,
|
cmd.RunWebhookServer(GroupName,
|
||||||
&customDNSProviderSolver{},
|
&bluecatDNSProviderSolver{},
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// customDNSProviderSolver implements the provider-specific logic needed to
|
// bluecatDNSProviderSolver implements the provider-specific logic needed to
|
||||||
// 'present' an ACME challenge TXT record for your own DNS provider.
|
// 'present' an ACME challenge TXT record for your own DNS provider.
|
||||||
// To do so, it must implement the `github.com/jetstack/cert-manager/pkg/acme/webhook.Solver`
|
// To do so, it must implement the `github.com/jetstack/cert-manager/pkg/acme/webhook.Solver`
|
||||||
// interface.
|
// interface.
|
||||||
type customDNSProviderSolver struct {
|
type bluecatDNSProviderSolver struct {
|
||||||
// If a Kubernetes 'clientset' is needed, you must:
|
// If a Kubernetes 'clientset' is needed, you must:
|
||||||
// 1. uncomment the additional `client` field in this structure below
|
// 1. uncomment the additional `client` field in this structure below
|
||||||
// 2. uncomment the "k8s.io/client-go/kubernetes" import at the top of the file
|
// 2. uncomment the "k8s.io/client-go/kubernetes" import at the top of the file
|
||||||
|
@ -44,7 +44,7 @@ type customDNSProviderSolver struct {
|
||||||
//client kubernetes.Clientset
|
//client kubernetes.Clientset
|
||||||
}
|
}
|
||||||
|
|
||||||
// customDNSProviderConfig is a structure that is used to decode into when
|
// bluecatDNSProviderConfig is a structure that is used to decode into when
|
||||||
// solving a DNS01 challenge.
|
// solving a DNS01 challenge.
|
||||||
// This information is provided by cert-manager, and may be a reference to
|
// This information is provided by cert-manager, and may be a reference to
|
||||||
// additional configuration that's needed to solve the challenge for this
|
// additional configuration that's needed to solve the challenge for this
|
||||||
|
@ -58,14 +58,12 @@ type customDNSProviderSolver struct {
|
||||||
// You should not include sensitive information here. If credentials need to
|
// You should not include sensitive information here. If credentials need to
|
||||||
// be used by your provider here, you should reference a Kubernetes Secret
|
// be used by your provider here, you should reference a Kubernetes Secret
|
||||||
// resource and fetch these credentials using a Kubernetes clientset.
|
// resource and fetch these credentials using a Kubernetes clientset.
|
||||||
type customDNSProviderConfig struct {
|
type bluecatDNSProviderConfig struct {
|
||||||
// Change the two fields below according to the format of the configuration
|
Username string `json:"username"`
|
||||||
// to be decoded.
|
Password string `json:"password"`
|
||||||
// These fields will be set by users in the
|
ServerURL string `json:"server_url"`
|
||||||
// `issuer.spec.acme.dns01.providers.webhook.config` field.
|
ConfigName string `json:"config_name"`
|
||||||
|
DNSView string `json:"dns_view"`
|
||||||
//Email string `json:"email"`
|
|
||||||
//APIKeySecretRef v1alpha1.SecretKeySelector `json:"apiKeySecretRef"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Name is used as the name for this DNS solver when referencing it on the ACME
|
// Name is used as the name for this DNS solver when referencing it on the ACME
|
||||||
|
@ -74,8 +72,8 @@ type customDNSProviderConfig struct {
|
||||||
// solvers configured with the same Name() **so long as they do not co-exist
|
// solvers configured with the same Name() **so long as they do not co-exist
|
||||||
// within a single webhook deployment**.
|
// within a single webhook deployment**.
|
||||||
// For example, `cloudflare` may be used as the name of a solver.
|
// For example, `cloudflare` may be used as the name of a solver.
|
||||||
func (c *customDNSProviderSolver) Name() string {
|
func (c *bluecatDNSProviderSolver) Name() string {
|
||||||
return "my-custom-solver"
|
return "bluecat"
|
||||||
}
|
}
|
||||||
|
|
||||||
// Present is responsible for actually presenting the DNS record with the
|
// Present is responsible for actually presenting the DNS record with the
|
||||||
|
@ -83,7 +81,7 @@ func (c *customDNSProviderSolver) Name() string {
|
||||||
// This method should tolerate being called multiple times with the same value.
|
// This method should tolerate being called multiple times with the same value.
|
||||||
// cert-manager itself will later perform a self check to ensure that the
|
// cert-manager itself will later perform a self check to ensure that the
|
||||||
// solver has correctly configured the DNS provider.
|
// solver has correctly configured the DNS provider.
|
||||||
func (c *customDNSProviderSolver) Present(ch *v1alpha1.ChallengeRequest) error {
|
func (c *bluecatDNSProviderSolver) Present(ch *v1alpha1.ChallengeRequest) error {
|
||||||
cfg, err := loadConfig(ch.Config)
|
cfg, err := loadConfig(ch.Config)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -102,7 +100,7 @@ func (c *customDNSProviderSolver) Present(ch *v1alpha1.ChallengeRequest) error {
|
||||||
// value provided on the ChallengeRequest should be cleaned up.
|
// value provided on the ChallengeRequest should be cleaned up.
|
||||||
// This is in order to facilitate multiple DNS validations for the same domain
|
// This is in order to facilitate multiple DNS validations for the same domain
|
||||||
// concurrently.
|
// concurrently.
|
||||||
func (c *customDNSProviderSolver) CleanUp(ch *v1alpha1.ChallengeRequest) error {
|
func (c *bluecatDNSProviderSolver) CleanUp(ch *v1alpha1.ChallengeRequest) error {
|
||||||
// TODO: add code that deletes a record from the DNS provider's console
|
// TODO: add code that deletes a record from the DNS provider's console
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -116,7 +114,7 @@ func (c *customDNSProviderSolver) CleanUp(ch *v1alpha1.ChallengeRequest) error {
|
||||||
// provider accounts.
|
// provider accounts.
|
||||||
// The stopCh can be used to handle early termination of the webhook, in cases
|
// The stopCh can be used to handle early termination of the webhook, in cases
|
||||||
// where a SIGTERM or similar signal is sent to the webhook process.
|
// where a SIGTERM or similar signal is sent to the webhook process.
|
||||||
func (c *customDNSProviderSolver) Initialize(kubeClientConfig *rest.Config, stopCh <-chan struct{}) error {
|
func (c *bluecatDNSProviderSolver) Initialize(kubeClientConfig *rest.Config, stopCh <-chan struct{}) error {
|
||||||
///// UNCOMMENT THE BELOW CODE TO MAKE A KUBERNETES CLIENTSET AVAILABLE TO
|
///// UNCOMMENT THE BELOW CODE TO MAKE A KUBERNETES CLIENTSET AVAILABLE TO
|
||||||
///// YOUR CUSTOM DNS PROVIDER
|
///// YOUR CUSTOM DNS PROVIDER
|
||||||
|
|
||||||
|
@ -133,8 +131,8 @@ func (c *customDNSProviderSolver) Initialize(kubeClientConfig *rest.Config, stop
|
||||||
|
|
||||||
// loadConfig is a small helper function that decodes JSON configuration into
|
// loadConfig is a small helper function that decodes JSON configuration into
|
||||||
// the typed config struct.
|
// the typed config struct.
|
||||||
func loadConfig(cfgJSON *extapi.JSON) (customDNSProviderConfig, error) {
|
func loadConfig(cfgJSON *extapi.JSON) (bluecatDNSProviderConfig, error) {
|
||||||
cfg := customDNSProviderConfig{}
|
cfg := bluecatDNSProviderConfig{}
|
||||||
// handle the 'base case' where no configuration has been provided
|
// handle the 'base case' where no configuration has been provided
|
||||||
if cfgJSON == nil {
|
if cfgJSON == nil {
|
||||||
return cfg, nil
|
return cfg, nil
|
||||||
|
|
|
@ -20,7 +20,7 @@ func TestRunsSuite(t *testing.T) {
|
||||||
//
|
//
|
||||||
|
|
||||||
// Uncomment the below fixture when implementing your custom DNS provider
|
// Uncomment the below fixture when implementing your custom DNS provider
|
||||||
//fixture := dns.NewFixture(&customDNSProviderSolver{},
|
//fixture := dns.NewFixture(&bluecatDNSProviderSolver{},
|
||||||
// dns.SetResolvedZone(zone),
|
// dns.SetResolvedZone(zone),
|
||||||
// dns.SetAllowAmbientCredentials(false),
|
// dns.SetAllowAmbientCredentials(false),
|
||||||
// dns.SetManifestPath("testdata/my-custom-solver"),
|
// dns.SetManifestPath("testdata/my-custom-solver"),
|
||||||
|
|
Loading…
Reference in a new issue