mirror of
https://github.com/wahyd4/cert-manager.git
synced 2026-08-09 05:06:38 +10:00
Gateway HTTP01: Make docs better, only enable gateway solver if gateway API is found
Signed-off-by: Jake Sanders <i@am.so-aweso.me>
This commit is contained in:
@@ -230,18 +230,29 @@ func buildControllerContext(ctx context.Context, opts *options.ControllerOptions
|
||||
return nil, nil, fmt.Errorf("error creating kubernetes client: %s", err.Error())
|
||||
}
|
||||
|
||||
// check if the gateway API CRDs are available
|
||||
var gatewayAvailable bool
|
||||
d := cl.Discovery()
|
||||
resources, err := d.ServerResourcesForGroupVersion(gwapi.GroupVersion.String())
|
||||
switch {
|
||||
case apierrors.IsNotFound(err):
|
||||
gatewayAvailable = false
|
||||
log.Info("the Gateway API CRDs do not seem to be present, cert-manager will keep retrying watching for them")
|
||||
case err != nil:
|
||||
return nil, nil, fmt.Errorf("while checking if the Gateway API CRD is installed: %s", err.Error())
|
||||
case len(resources.APIResources) == 0:
|
||||
gatewayAvailable = false
|
||||
log.Info("the Gateway API CRDs do not seem to be present, cert-manager will keep retrying watching for them")
|
||||
default:
|
||||
gatewayAvailable = true
|
||||
}
|
||||
|
||||
// cert-manager will try watching the Gateway resources with an exponential
|
||||
// back-off, which allows the user to install the CRDs after cert-manager
|
||||
// itself. Let's let the user know that the CRDs have not been found yet.
|
||||
|
||||
if opts.EnabledControllers().Has(shimgw.ControllerName) {
|
||||
d := cl.Discovery()
|
||||
resources, err := d.ServerResourcesForGroupVersion(gwapi.GroupVersion.String())
|
||||
switch {
|
||||
case apierrors.IsNotFound(err):
|
||||
log.Info("the Gateway API CRDs do not seem to be present, cert-manager will keep retrying watching for them")
|
||||
case err != nil:
|
||||
return nil, nil, fmt.Errorf("while checking if the Gateway API CRD is installed: %s", err.Error())
|
||||
case len(resources.APIResources) == 0:
|
||||
if !gatewayAvailable {
|
||||
log.Info("the Gateway API CRDs do not seem to be present, cert-manager will keep retrying watching for them")
|
||||
}
|
||||
}
|
||||
@@ -307,12 +318,10 @@ func buildControllerContext(ctx context.Context, opts *options.ControllerOptions
|
||||
KubeSharedInformerFactory: kubeSharedInformerFactory,
|
||||
SharedInformerFactory: sharedInformerFactory,
|
||||
GWShared: gwSharedInformerFactory,
|
||||
// TODO (@jakexks) / code reviewer: should this be automatically enabled or disabled based on discovering the gateway
|
||||
// api or a flag?
|
||||
GatewaySolverEnabled: true,
|
||||
Namespace: opts.Namespace,
|
||||
Clock: clock.RealClock{},
|
||||
Metrics: metrics.New(log, clock.RealClock{}),
|
||||
GatewaySolverEnabled: gatewayAvailable,
|
||||
Namespace: opts.Namespace,
|
||||
Clock: clock.RealClock{},
|
||||
Metrics: metrics.New(log, clock.RealClock{}),
|
||||
ACMEOptions: controller.ACMEOptions{
|
||||
HTTP01SolverImage: opts.ACMEHTTP01SolverImage,
|
||||
HTTP01SolverResourceRequestCPU: HTTP01SolverResourceRequestCPU,
|
||||
|
||||
@@ -389,7 +389,7 @@ spec:
|
||||
additionalProperties:
|
||||
type: string
|
||||
podTemplate:
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
|
||||
type: object
|
||||
properties:
|
||||
metadata:
|
||||
@@ -906,7 +906,7 @@ spec:
|
||||
description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
|
||||
type: string
|
||||
serviceType:
|
||||
description: Optional service type for Kubernetes solver service
|
||||
description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP (default).
|
||||
type: string
|
||||
ingress:
|
||||
description: The ingress based HTTP01 challenge solver will solve challenges by creating or modifying Ingress resources in order to route requests for '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are provisioned by cert-manager for each Challenge to be completed.
|
||||
@@ -937,7 +937,7 @@ spec:
|
||||
description: The name of the ingress resource that should have ACME challenge solving routes inserted into it in order to solve HTTP01 challenges. This is typically used in conjunction with ingress controllers like ingress-gce, which maintains a 1:1 mapping between external IPs and ingress resources.
|
||||
type: string
|
||||
podTemplate:
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
|
||||
type: object
|
||||
properties:
|
||||
metadata:
|
||||
@@ -1454,7 +1454,7 @@ spec:
|
||||
description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
|
||||
type: string
|
||||
serviceType:
|
||||
description: Optional service type for Kubernetes solver service
|
||||
description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP (default).
|
||||
type: string
|
||||
selector:
|
||||
description: Selector selects a set of DNSNames on the Certificate resource that should be solved using this challenge solver. If not specified, the solver will be treated as the 'default' solver with the lowest priority, i.e. if any other solver has a more specific match, it will be used instead.
|
||||
@@ -1863,7 +1863,7 @@ spec:
|
||||
additionalProperties:
|
||||
type: string
|
||||
podTemplate:
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
|
||||
type: object
|
||||
properties:
|
||||
metadata:
|
||||
@@ -2380,7 +2380,7 @@ spec:
|
||||
description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
|
||||
type: string
|
||||
serviceType:
|
||||
description: Optional service type for Kubernetes solver service
|
||||
description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP.
|
||||
type: string
|
||||
ingress:
|
||||
description: The ingress based HTTP01 challenge solver will solve challenges by creating or modifying Ingress resources in order to route requests for '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are provisioned by cert-manager for each Challenge to be completed.
|
||||
@@ -2411,7 +2411,7 @@ spec:
|
||||
description: The name of the ingress resource that should have ACME challenge solving routes inserted into it in order to solve HTTP01 challenges. This is typically used in conjunction with ingress controllers like ingress-gce, which maintains a 1:1 mapping between external IPs and ingress resources.
|
||||
type: string
|
||||
podTemplate:
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
|
||||
type: object
|
||||
properties:
|
||||
metadata:
|
||||
@@ -2928,7 +2928,7 @@ spec:
|
||||
description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
|
||||
type: string
|
||||
serviceType:
|
||||
description: Optional service type for Kubernetes solver service
|
||||
description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP (default).
|
||||
type: string
|
||||
selector:
|
||||
description: Selector selects a set of DNSNames on the Certificate resource that should be solved using this challenge solver. If not specified, the solver will be treated as the 'default' solver with the lowest priority, i.e. if any other solver has a more specific match, it will be used instead.
|
||||
@@ -3338,7 +3338,7 @@ spec:
|
||||
additionalProperties:
|
||||
type: string
|
||||
podTemplate:
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
|
||||
type: object
|
||||
properties:
|
||||
metadata:
|
||||
@@ -3855,7 +3855,7 @@ spec:
|
||||
description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
|
||||
type: string
|
||||
serviceType:
|
||||
description: Optional service type for Kubernetes solver service
|
||||
description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP (default).
|
||||
type: string
|
||||
ingress:
|
||||
description: The ingress based HTTP01 challenge solver will solve challenges by creating or modifying Ingress resources in order to route requests for '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are provisioned by cert-manager for each Challenge to be completed.
|
||||
@@ -3865,7 +3865,7 @@ spec:
|
||||
description: The ingress class to use when creating Ingress resources to solve ACME challenges that use this challenge solver. Only one of 'class' or 'name' may be specified.
|
||||
type: string
|
||||
ingressTemplate:
|
||||
description: Optional ingress template used to configure the ACME challenge solver ingress used for HTTP01 challenges
|
||||
description: Optional ingress template used to configure the ACME challenge solver ingress used for HTTP01 challenges.
|
||||
type: object
|
||||
properties:
|
||||
metadata:
|
||||
@@ -4403,7 +4403,7 @@ spec:
|
||||
description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
|
||||
type: string
|
||||
serviceType:
|
||||
description: Optional service type for Kubernetes solver service
|
||||
description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP (default).
|
||||
type: string
|
||||
selector:
|
||||
description: Selector selects a set of DNSNames on the Certificate resource that should be solved using this challenge solver. If not specified, the solver will be treated as the 'default' solver with the lowest priority, i.e. if any other solver has a more specific match, it will be used instead.
|
||||
@@ -4813,7 +4813,7 @@ spec:
|
||||
additionalProperties:
|
||||
type: string
|
||||
podTemplate:
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
|
||||
type: object
|
||||
properties:
|
||||
metadata:
|
||||
@@ -5330,7 +5330,7 @@ spec:
|
||||
description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
|
||||
type: string
|
||||
serviceType:
|
||||
description: Optional service type for Kubernetes solver service
|
||||
description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP (default).
|
||||
type: string
|
||||
ingress:
|
||||
description: The ingress based HTTP01 challenge solver will solve challenges by creating or modifying Ingress resources in order to route requests for '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are provisioned by cert-manager for each Challenge to be completed.
|
||||
@@ -5340,7 +5340,7 @@ spec:
|
||||
description: The ingress class to use when creating Ingress resources to solve ACME challenges that use this challenge solver. Only one of 'class' or 'name' may be specified.
|
||||
type: string
|
||||
ingressTemplate:
|
||||
description: Optional ingress template used to configure the ACME challenge solver ingress used for HTTP01 challenges
|
||||
description: Optional ingress template used to configure the ACME challenge solver ingress used for HTTP01 challenges.
|
||||
type: object
|
||||
properties:
|
||||
metadata:
|
||||
@@ -5361,7 +5361,7 @@ spec:
|
||||
description: The name of the ingress resource that should have ACME challenge solving routes inserted into it in order to solve HTTP01 challenges. This is typically used in conjunction with ingress controllers like ingress-gce, which maintains a 1:1 mapping between external IPs and ingress resources.
|
||||
type: string
|
||||
podTemplate:
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
|
||||
type: object
|
||||
properties:
|
||||
metadata:
|
||||
@@ -5878,7 +5878,7 @@ spec:
|
||||
description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
|
||||
type: string
|
||||
serviceType:
|
||||
description: Optional service type for Kubernetes solver service
|
||||
description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP (default).
|
||||
type: string
|
||||
selector:
|
||||
description: Selector selects a set of DNSNames on the Certificate resource that should be solved using this challenge solver. If not specified, the solver will be treated as the 'default' solver with the lowest priority, i.e. if any other solver has a more specific match, it will be used instead.
|
||||
|
||||
@@ -423,7 +423,7 @@ spec:
|
||||
additionalProperties:
|
||||
type: string
|
||||
podTemplate:
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
|
||||
type: object
|
||||
properties:
|
||||
metadata:
|
||||
@@ -940,7 +940,7 @@ spec:
|
||||
description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
|
||||
type: string
|
||||
serviceType:
|
||||
description: Optional service type for Kubernetes solver service
|
||||
description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP (default).
|
||||
type: string
|
||||
ingress:
|
||||
description: The ingress based HTTP01 challenge solver will solve challenges by creating or modifying Ingress resources in order to route requests for '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are provisioned by cert-manager for each Challenge to be completed.
|
||||
@@ -971,7 +971,7 @@ spec:
|
||||
description: The name of the ingress resource that should have ACME challenge solving routes inserted into it in order to solve HTTP01 challenges. This is typically used in conjunction with ingress controllers like ingress-gce, which maintains a 1:1 mapping between external IPs and ingress resources.
|
||||
type: string
|
||||
podTemplate:
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
|
||||
type: object
|
||||
properties:
|
||||
metadata:
|
||||
@@ -1488,7 +1488,7 @@ spec:
|
||||
description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
|
||||
type: string
|
||||
serviceType:
|
||||
description: Optional service type for Kubernetes solver service
|
||||
description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP (default).
|
||||
type: string
|
||||
selector:
|
||||
description: Selector selects a set of DNSNames on the Certificate resource that should be solved using this challenge solver. If not specified, the solver will be treated as the 'default' solver with the lowest priority, i.e. if any other solver has a more specific match, it will be used instead.
|
||||
@@ -2109,7 +2109,7 @@ spec:
|
||||
additionalProperties:
|
||||
type: string
|
||||
podTemplate:
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
|
||||
type: object
|
||||
properties:
|
||||
metadata:
|
||||
@@ -2626,7 +2626,7 @@ spec:
|
||||
description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
|
||||
type: string
|
||||
serviceType:
|
||||
description: Optional service type for Kubernetes solver service
|
||||
description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP.
|
||||
type: string
|
||||
ingress:
|
||||
description: The ingress based HTTP01 challenge solver will solve challenges by creating or modifying Ingress resources in order to route requests for '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are provisioned by cert-manager for each Challenge to be completed.
|
||||
@@ -2657,7 +2657,7 @@ spec:
|
||||
description: The name of the ingress resource that should have ACME challenge solving routes inserted into it in order to solve HTTP01 challenges. This is typically used in conjunction with ingress controllers like ingress-gce, which maintains a 1:1 mapping between external IPs and ingress resources.
|
||||
type: string
|
||||
podTemplate:
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
|
||||
type: object
|
||||
properties:
|
||||
metadata:
|
||||
@@ -3174,7 +3174,7 @@ spec:
|
||||
description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
|
||||
type: string
|
||||
serviceType:
|
||||
description: Optional service type for Kubernetes solver service
|
||||
description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP (default).
|
||||
type: string
|
||||
selector:
|
||||
description: Selector selects a set of DNSNames on the Certificate resource that should be solved using this challenge solver. If not specified, the solver will be treated as the 'default' solver with the lowest priority, i.e. if any other solver has a more specific match, it will be used instead.
|
||||
@@ -3797,7 +3797,7 @@ spec:
|
||||
additionalProperties:
|
||||
type: string
|
||||
podTemplate:
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
|
||||
type: object
|
||||
properties:
|
||||
metadata:
|
||||
@@ -4314,7 +4314,7 @@ spec:
|
||||
description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
|
||||
type: string
|
||||
serviceType:
|
||||
description: Optional service type for Kubernetes solver service
|
||||
description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP (default).
|
||||
type: string
|
||||
ingress:
|
||||
description: The ingress based HTTP01 challenge solver will solve challenges by creating or modifying Ingress resources in order to route requests for '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are provisioned by cert-manager for each Challenge to be completed.
|
||||
@@ -4324,7 +4324,7 @@ spec:
|
||||
description: The ingress class to use when creating Ingress resources to solve ACME challenges that use this challenge solver. Only one of 'class' or 'name' may be specified.
|
||||
type: string
|
||||
ingressTemplate:
|
||||
description: Optional ingress template used to configure the ACME challenge solver ingress used for HTTP01 challenges
|
||||
description: Optional ingress template used to configure the ACME challenge solver ingress used for HTTP01 challenges.
|
||||
type: object
|
||||
properties:
|
||||
metadata:
|
||||
@@ -4862,7 +4862,7 @@ spec:
|
||||
description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
|
||||
type: string
|
||||
serviceType:
|
||||
description: Optional service type for Kubernetes solver service
|
||||
description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP (default).
|
||||
type: string
|
||||
selector:
|
||||
description: Selector selects a set of DNSNames on the Certificate resource that should be solved using this challenge solver. If not specified, the solver will be treated as the 'default' solver with the lowest priority, i.e. if any other solver has a more specific match, it will be used instead.
|
||||
@@ -5485,7 +5485,7 @@ spec:
|
||||
additionalProperties:
|
||||
type: string
|
||||
podTemplate:
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
|
||||
type: object
|
||||
properties:
|
||||
metadata:
|
||||
@@ -6002,7 +6002,7 @@ spec:
|
||||
description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
|
||||
type: string
|
||||
serviceType:
|
||||
description: Optional service type for Kubernetes solver service
|
||||
description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP (default).
|
||||
type: string
|
||||
ingress:
|
||||
description: The ingress based HTTP01 challenge solver will solve challenges by creating or modifying Ingress resources in order to route requests for '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are provisioned by cert-manager for each Challenge to be completed.
|
||||
@@ -6012,7 +6012,7 @@ spec:
|
||||
description: The ingress class to use when creating Ingress resources to solve ACME challenges that use this challenge solver. Only one of 'class' or 'name' may be specified.
|
||||
type: string
|
||||
ingressTemplate:
|
||||
description: Optional ingress template used to configure the ACME challenge solver ingress used for HTTP01 challenges
|
||||
description: Optional ingress template used to configure the ACME challenge solver ingress used for HTTP01 challenges.
|
||||
type: object
|
||||
properties:
|
||||
metadata:
|
||||
@@ -6033,7 +6033,7 @@ spec:
|
||||
description: The name of the ingress resource that should have ACME challenge solving routes inserted into it in order to solve HTTP01 challenges. This is typically used in conjunction with ingress controllers like ingress-gce, which maintains a 1:1 mapping between external IPs and ingress resources.
|
||||
type: string
|
||||
podTemplate:
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
|
||||
type: object
|
||||
properties:
|
||||
metadata:
|
||||
@@ -6550,7 +6550,7 @@ spec:
|
||||
description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
|
||||
type: string
|
||||
serviceType:
|
||||
description: Optional service type for Kubernetes solver service
|
||||
description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP (default).
|
||||
type: string
|
||||
selector:
|
||||
description: Selector selects a set of DNSNames on the Certificate resource that should be solved using this challenge solver. If not specified, the solver will be treated as the 'default' solver with the lowest priority, i.e. if any other solver has a more specific match, it will be used instead.
|
||||
|
||||
@@ -423,7 +423,7 @@ spec:
|
||||
additionalProperties:
|
||||
type: string
|
||||
podTemplate:
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
|
||||
type: object
|
||||
properties:
|
||||
metadata:
|
||||
@@ -940,7 +940,7 @@ spec:
|
||||
description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
|
||||
type: string
|
||||
serviceType:
|
||||
description: Optional service type for Kubernetes solver service
|
||||
description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP (default).
|
||||
type: string
|
||||
ingress:
|
||||
description: The ingress based HTTP01 challenge solver will solve challenges by creating or modifying Ingress resources in order to route requests for '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are provisioned by cert-manager for each Challenge to be completed.
|
||||
@@ -971,7 +971,7 @@ spec:
|
||||
description: The name of the ingress resource that should have ACME challenge solving routes inserted into it in order to solve HTTP01 challenges. This is typically used in conjunction with ingress controllers like ingress-gce, which maintains a 1:1 mapping between external IPs and ingress resources.
|
||||
type: string
|
||||
podTemplate:
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
|
||||
type: object
|
||||
properties:
|
||||
metadata:
|
||||
@@ -1488,7 +1488,7 @@ spec:
|
||||
description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
|
||||
type: string
|
||||
serviceType:
|
||||
description: Optional service type for Kubernetes solver service
|
||||
description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP (default).
|
||||
type: string
|
||||
selector:
|
||||
description: Selector selects a set of DNSNames on the Certificate resource that should be solved using this challenge solver. If not specified, the solver will be treated as the 'default' solver with the lowest priority, i.e. if any other solver has a more specific match, it will be used instead.
|
||||
@@ -2109,7 +2109,7 @@ spec:
|
||||
additionalProperties:
|
||||
type: string
|
||||
podTemplate:
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
|
||||
type: object
|
||||
properties:
|
||||
metadata:
|
||||
@@ -2626,7 +2626,7 @@ spec:
|
||||
description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
|
||||
type: string
|
||||
serviceType:
|
||||
description: Optional service type for Kubernetes solver service
|
||||
description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP.
|
||||
type: string
|
||||
ingress:
|
||||
description: The ingress based HTTP01 challenge solver will solve challenges by creating or modifying Ingress resources in order to route requests for '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are provisioned by cert-manager for each Challenge to be completed.
|
||||
@@ -2657,7 +2657,7 @@ spec:
|
||||
description: The name of the ingress resource that should have ACME challenge solving routes inserted into it in order to solve HTTP01 challenges. This is typically used in conjunction with ingress controllers like ingress-gce, which maintains a 1:1 mapping between external IPs and ingress resources.
|
||||
type: string
|
||||
podTemplate:
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
|
||||
type: object
|
||||
properties:
|
||||
metadata:
|
||||
@@ -3174,7 +3174,7 @@ spec:
|
||||
description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
|
||||
type: string
|
||||
serviceType:
|
||||
description: Optional service type for Kubernetes solver service
|
||||
description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP (default).
|
||||
type: string
|
||||
selector:
|
||||
description: Selector selects a set of DNSNames on the Certificate resource that should be solved using this challenge solver. If not specified, the solver will be treated as the 'default' solver with the lowest priority, i.e. if any other solver has a more specific match, it will be used instead.
|
||||
@@ -3797,7 +3797,7 @@ spec:
|
||||
additionalProperties:
|
||||
type: string
|
||||
podTemplate:
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
|
||||
type: object
|
||||
properties:
|
||||
metadata:
|
||||
@@ -4314,7 +4314,7 @@ spec:
|
||||
description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
|
||||
type: string
|
||||
serviceType:
|
||||
description: Optional service type for Kubernetes solver service
|
||||
description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP (default).
|
||||
type: string
|
||||
ingress:
|
||||
description: The ingress based HTTP01 challenge solver will solve challenges by creating or modifying Ingress resources in order to route requests for '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are provisioned by cert-manager for each Challenge to be completed.
|
||||
@@ -4324,7 +4324,7 @@ spec:
|
||||
description: The ingress class to use when creating Ingress resources to solve ACME challenges that use this challenge solver. Only one of 'class' or 'name' may be specified.
|
||||
type: string
|
||||
ingressTemplate:
|
||||
description: Optional ingress template used to configure the ACME challenge solver ingress used for HTTP01 challenges
|
||||
description: Optional ingress template used to configure the ACME challenge solver ingress used for HTTP01 challenges.
|
||||
type: object
|
||||
properties:
|
||||
metadata:
|
||||
@@ -4862,7 +4862,7 @@ spec:
|
||||
description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
|
||||
type: string
|
||||
serviceType:
|
||||
description: Optional service type for Kubernetes solver service
|
||||
description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP (default).
|
||||
type: string
|
||||
selector:
|
||||
description: Selector selects a set of DNSNames on the Certificate resource that should be solved using this challenge solver. If not specified, the solver will be treated as the 'default' solver with the lowest priority, i.e. if any other solver has a more specific match, it will be used instead.
|
||||
@@ -5485,7 +5485,7 @@ spec:
|
||||
additionalProperties:
|
||||
type: string
|
||||
podTemplate:
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
|
||||
type: object
|
||||
properties:
|
||||
metadata:
|
||||
@@ -6002,7 +6002,7 @@ spec:
|
||||
description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
|
||||
type: string
|
||||
serviceType:
|
||||
description: Optional service type for Kubernetes solver service
|
||||
description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP (default).
|
||||
type: string
|
||||
ingress:
|
||||
description: The ingress based HTTP01 challenge solver will solve challenges by creating or modifying Ingress resources in order to route requests for '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are provisioned by cert-manager for each Challenge to be completed.
|
||||
@@ -6012,7 +6012,7 @@ spec:
|
||||
description: The ingress class to use when creating Ingress resources to solve ACME challenges that use this challenge solver. Only one of 'class' or 'name' may be specified.
|
||||
type: string
|
||||
ingressTemplate:
|
||||
description: Optional ingress template used to configure the ACME challenge solver ingress used for HTTP01 challenges
|
||||
description: Optional ingress template used to configure the ACME challenge solver ingress used for HTTP01 challenges.
|
||||
type: object
|
||||
properties:
|
||||
metadata:
|
||||
@@ -6033,7 +6033,7 @@ spec:
|
||||
description: The name of the ingress resource that should have ACME challenge solving routes inserted into it in order to solve HTTP01 challenges. This is typically used in conjunction with ingress controllers like ingress-gce, which maintains a 1:1 mapping between external IPs and ingress resources.
|
||||
type: string
|
||||
podTemplate:
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges
|
||||
description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
|
||||
type: object
|
||||
properties:
|
||||
metadata:
|
||||
@@ -6550,7 +6550,7 @@ spec:
|
||||
description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
|
||||
type: string
|
||||
serviceType:
|
||||
description: Optional service type for Kubernetes solver service
|
||||
description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP (default).
|
||||
type: string
|
||||
selector:
|
||||
description: Selector selects a set of DNSNames on the Certificate resource that should be solved using this challenge solver. If not specified, the solver will be treated as the 'default' solver with the lowest priority, i.e. if any other solver has a more specific match, it will be used instead.
|
||||
|
||||
@@ -198,6 +198,7 @@ type CertificateDNSNameSelector struct {
|
||||
// Typically this is accomplished through creating 'routes' of some description
|
||||
// that configure ingress controllers to direct traffic to 'solver pods', which
|
||||
// are responsible for responding to the ACME server's HTTP requests.
|
||||
// Only one of Ingress / Gateway can be specified.
|
||||
type ACMEChallengeSolverHTTP01 struct {
|
||||
// The ingress based HTTP01 challenge solver will solve challenges by
|
||||
// creating or modifying Ingress resources in order to route requests for
|
||||
@@ -213,7 +214,8 @@ type ACMEChallengeSolverHTTP01 struct {
|
||||
}
|
||||
|
||||
type ACMEChallengeSolverHTTP01Ingress struct {
|
||||
// Optional service type for Kubernetes solver service
|
||||
// Optional service type for Kubernetes solver service. Supported values
|
||||
// are NodePort or ClusterIP (default).
|
||||
// +optional
|
||||
ServiceType corev1.ServiceType `json:"serviceType,omitempty"`
|
||||
|
||||
@@ -232,12 +234,12 @@ type ACMEChallengeSolverHTTP01Ingress struct {
|
||||
Name string `json:"name,omitempty"`
|
||||
|
||||
// Optional pod template used to configure the ACME challenge solver pods
|
||||
// used for HTTP01 challenges
|
||||
// used for HTTP01 challenges.
|
||||
// +optional
|
||||
PodTemplate *ACMEChallengeSolverHTTP01IngressPodTemplate `json:"podTemplate,omitempty"`
|
||||
|
||||
// Optional ingress template used to configure the ACME challenge solver
|
||||
// ingress used for HTTP01 challenges
|
||||
// ingress used for HTTP01 challenges.
|
||||
// +optional
|
||||
IngressTemplate *ACMEChallengeSolverHTTP01IngressTemplate `json:"ingressTemplate,omitempty"`
|
||||
}
|
||||
@@ -245,17 +247,17 @@ type ACMEChallengeSolverHTTP01Ingress struct {
|
||||
// The ACMEChallengeSolverHTTP01Gateway solver will create HTTPRoute objects for a Gateway class
|
||||
// routing to an ACME challenge solver pod.
|
||||
type ACMEChallengeSolverHTTP01Gateway struct {
|
||||
// Optional service type for Kubernetes solver service
|
||||
// Optional service type for Kubernetes solver service. Supported values
|
||||
// are NodePort or ClusterIP (default).
|
||||
// +optional
|
||||
ServiceType corev1.ServiceType `json:"serviceType,omitempty"`
|
||||
|
||||
// The labels to set on HTTPRoute resources to solve ACME
|
||||
// challenges that use this challenge solver.
|
||||
// +optional
|
||||
Labels map[string]string `json:"labels,omitempty"`
|
||||
|
||||
// Optional pod template used to configure the ACME challenge solver pods
|
||||
// used for HTTP01 challenges
|
||||
// used for HTTP01 challenges.
|
||||
// +optional
|
||||
PodTemplate *ACMEChallengeSolverHTTP01IngressPodTemplate `json:"podTemplate,omitempty"`
|
||||
}
|
||||
|
||||
@@ -197,6 +197,7 @@ type CertificateDNSNameSelector struct {
|
||||
// Typically this is accomplished through creating 'routes' of some description
|
||||
// that configure ingress controllers to direct traffic to 'solver pods', which
|
||||
// are responsible for responding to the ACME server's HTTP requests.
|
||||
// Only one of Ingress / Gateway can be specified.
|
||||
type ACMEChallengeSolverHTTP01 struct {
|
||||
// The ingress based HTTP01 challenge solver will solve challenges by
|
||||
// creating or modifying Ingress resources in order to route requests for
|
||||
@@ -212,7 +213,8 @@ type ACMEChallengeSolverHTTP01 struct {
|
||||
}
|
||||
|
||||
type ACMEChallengeSolverHTTP01Ingress struct {
|
||||
// Optional service type for Kubernetes solver service
|
||||
// Optional service type for Kubernetes solver service. Supported values
|
||||
// are NodePort or ClusterIP (default).
|
||||
// +optional
|
||||
ServiceType corev1.ServiceType `json:"serviceType,omitempty"`
|
||||
|
||||
@@ -231,7 +233,7 @@ type ACMEChallengeSolverHTTP01Ingress struct {
|
||||
Name string `json:"name,omitempty"`
|
||||
|
||||
// Optional pod template used to configure the ACME challenge solver pods
|
||||
// used for HTTP01 challenges
|
||||
// used for HTTP01 challenges.
|
||||
// +optional
|
||||
PodTemplate *ACMEChallengeSolverHTTP01IngressPodTemplate `json:"podTemplate,omitempty"`
|
||||
|
||||
@@ -242,17 +244,17 @@ type ACMEChallengeSolverHTTP01Ingress struct {
|
||||
}
|
||||
|
||||
type ACMEChallengeSolverHTTP01Gateway struct {
|
||||
// Optional service type for Kubernetes solver service
|
||||
// Optional service type for Kubernetes solver service. Supported values
|
||||
// are NodePort or ClusterIP (default).
|
||||
// +optional
|
||||
ServiceType corev1.ServiceType `json:"serviceType,omitempty"`
|
||||
|
||||
// The labels to set on HTTPRoute resources to solve ACME
|
||||
// challenges that use this challenge solver.
|
||||
// +optional
|
||||
Labels map[string]string `json:"labels,omitempty"`
|
||||
|
||||
// Optional pod template used to configure the ACME challenge solver pods
|
||||
// used for HTTP01 challenges
|
||||
// used for HTTP01 challenges.
|
||||
// +optional
|
||||
PodTemplate *ACMEChallengeSolverHTTP01IngressPodTemplate `json:"podTemplate,omitempty"`
|
||||
}
|
||||
|
||||
@@ -197,6 +197,7 @@ type CertificateDNSNameSelector struct {
|
||||
// Typically this is accomplished through creating 'routes' of some description
|
||||
// that configure ingress controllers to direct traffic to 'solver pods', which
|
||||
// are responsible for responding to the ACME server's HTTP requests.
|
||||
// Only one of Ingress / Gateway can be specified.
|
||||
type ACMEChallengeSolverHTTP01 struct {
|
||||
// The ingress based HTTP01 challenge solver will solve challenges by
|
||||
// creating or modifying Ingress resources in order to route requests for
|
||||
@@ -212,7 +213,8 @@ type ACMEChallengeSolverHTTP01 struct {
|
||||
}
|
||||
|
||||
type ACMEChallengeSolverHTTP01Ingress struct {
|
||||
// Optional service type for Kubernetes solver service
|
||||
// Optional service type for Kubernetes solver service. Supported values
|
||||
// are NodePort or ClusterIP (default).
|
||||
// +optional
|
||||
ServiceType corev1.ServiceType `json:"serviceType,omitempty"`
|
||||
|
||||
@@ -231,7 +233,7 @@ type ACMEChallengeSolverHTTP01Ingress struct {
|
||||
Name string `json:"name,omitempty"`
|
||||
|
||||
// Optional pod template used to configure the ACME challenge solver pods
|
||||
// used for HTTP01 challenges
|
||||
// used for HTTP01 challenges.
|
||||
// +optional
|
||||
PodTemplate *ACMEChallengeSolverHTTP01IngressPodTemplate `json:"podTemplate,omitempty"`
|
||||
|
||||
@@ -242,17 +244,17 @@ type ACMEChallengeSolverHTTP01Ingress struct {
|
||||
}
|
||||
|
||||
type ACMEChallengeSolverHTTP01Gateway struct {
|
||||
// Optional service type for Kubernetes solver service
|
||||
// Optional service type for Kubernetes solver service. Supported values
|
||||
// are NodePort or ClusterIP.
|
||||
// +optional
|
||||
ServiceType corev1.ServiceType `json:"serviceType,omitempty"`
|
||||
|
||||
// The labels to set on HTTPRoute resources to solve ACME
|
||||
// challenges that use this challenge solver.
|
||||
// +optional
|
||||
Labels map[string]string `json:"labels,omitempty"`
|
||||
|
||||
// Optional pod template used to configure the ACME challenge solver pods
|
||||
// used for HTTP01 challenges
|
||||
// used for HTTP01 challenges.
|
||||
// +optional
|
||||
PodTemplate *ACMEChallengeSolverHTTP01IngressPodTemplate `json:"podTemplate,omitempty"`
|
||||
}
|
||||
|
||||
@@ -212,7 +212,8 @@ type ACMEChallengeSolverHTTP01 struct {
|
||||
}
|
||||
|
||||
type ACMEChallengeSolverHTTP01Ingress struct {
|
||||
// Optional service type for Kubernetes solver service
|
||||
// Optional service type for Kubernetes solver service. Supported values
|
||||
// are NodePort or ClusterIP (default).
|
||||
// +optional
|
||||
ServiceType corev1.ServiceType `json:"serviceType,omitempty"`
|
||||
|
||||
@@ -236,23 +237,23 @@ type ACMEChallengeSolverHTTP01Ingress struct {
|
||||
PodTemplate *ACMEChallengeSolverHTTP01IngressPodTemplate `json:"podTemplate,omitempty"`
|
||||
|
||||
// Optional ingress template used to configure the ACME challenge solver
|
||||
// ingress used for HTTP01 challenges
|
||||
// ingress used for HTTP01 challenges.
|
||||
// +optional
|
||||
IngressTemplate *ACMEChallengeSolverHTTP01IngressTemplate `json:"ingressTemplate,omitempty"`
|
||||
}
|
||||
|
||||
type ACMEChallengeSolverHTTP01Gateway struct {
|
||||
// Optional service type for Kubernetes solver service
|
||||
// Optional service type for Kubernetes solver service. Supported values
|
||||
// are NodePort or ClusterIP (default).
|
||||
// +optional
|
||||
ServiceType corev1.ServiceType `json:"serviceType,omitempty"`
|
||||
|
||||
// The labels to set on HTTPRoute resources to solve ACME
|
||||
// challenges that use this challenge solver.
|
||||
// +optional
|
||||
Labels map[string]string `json:"labels,omitempty"`
|
||||
|
||||
// Optional pod template used to configure the ACME challenge solver pods
|
||||
// used for HTTP01 challenges
|
||||
// used for HTTP01 challenges.
|
||||
// +optional
|
||||
PodTemplate *ACMEChallengeSolverHTTP01IngressPodTemplate `json:"podTemplate,omitempty"`
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ func (s *Solver) ensureGatewayHTTPRoute(ctx context.Context, ch *cmacme.Challeng
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nil, fmt.Errorf("not implemented")
|
||||
return httpRoute, nil
|
||||
}
|
||||
|
||||
func (s *Solver) getGatewayHTTPRoute(ctx context.Context, ch *cmacme.Challenge) (*gwapi.HTTPRoute, error) {
|
||||
|
||||
Reference in New Issue
Block a user