mirror of
https://github.com/rancher/rke.git
synced 2025-08-02 07:43:04 +00:00
Merge pull request #2599 from superseb/ingress_webhook
Validate Ingress Webhook and pass to template
This commit is contained in:
commit
22b82828ff
@ -71,6 +71,7 @@ type ingressOptions struct {
|
|||||||
AlpineImage string
|
AlpineImage string
|
||||||
IngressImage string
|
IngressImage string
|
||||||
IngressBackend string
|
IngressBackend string
|
||||||
|
IngressWebhook string
|
||||||
HTTPPort int
|
HTTPPort int
|
||||||
HTTPSPort int
|
HTTPSPort int
|
||||||
NetworkMode string
|
NetworkMode string
|
||||||
@ -588,6 +589,7 @@ func (c *Cluster) deployIngress(ctx context.Context, data map[string]interface{}
|
|||||||
DNSPolicy: c.Ingress.DNSPolicy,
|
DNSPolicy: c.Ingress.DNSPolicy,
|
||||||
IngressImage: c.SystemImages.Ingress,
|
IngressImage: c.SystemImages.Ingress,
|
||||||
IngressBackend: c.SystemImages.IngressBackend,
|
IngressBackend: c.SystemImages.IngressBackend,
|
||||||
|
IngressWebhook: c.SystemImages.IngressWebhook,
|
||||||
ExtraEnvs: c.Ingress.ExtraEnvs,
|
ExtraEnvs: c.Ingress.ExtraEnvs,
|
||||||
ExtraVolumes: c.Ingress.ExtraVolumes,
|
ExtraVolumes: c.Ingress.ExtraVolumes,
|
||||||
ExtraVolumeMounts: c.Ingress.ExtraVolumeMounts,
|
ExtraVolumeMounts: c.Ingress.ExtraVolumeMounts,
|
||||||
|
@ -509,6 +509,7 @@ func (c *Cluster) setClusterImageDefaults() error {
|
|||||||
&c.SystemImages.WeaveCNI: d(imageDefaults.WeaveCNI, privRegURL),
|
&c.SystemImages.WeaveCNI: d(imageDefaults.WeaveCNI, privRegURL),
|
||||||
&c.SystemImages.Ingress: d(imageDefaults.Ingress, privRegURL),
|
&c.SystemImages.Ingress: d(imageDefaults.Ingress, privRegURL),
|
||||||
&c.SystemImages.IngressBackend: d(imageDefaults.IngressBackend, privRegURL),
|
&c.SystemImages.IngressBackend: d(imageDefaults.IngressBackend, privRegURL),
|
||||||
|
&c.SystemImages.IngressWebhook: d(imageDefaults.IngressWebhook, privRegURL),
|
||||||
&c.SystemImages.MetricsServer: d(imageDefaults.MetricsServer, privRegURL),
|
&c.SystemImages.MetricsServer: d(imageDefaults.MetricsServer, privRegURL),
|
||||||
&c.SystemImages.Nodelocal: d(imageDefaults.Nodelocal, privRegURL),
|
&c.SystemImages.Nodelocal: d(imageDefaults.Nodelocal, privRegURL),
|
||||||
&c.SystemImages.AciCniDeployContainer: d(imageDefaults.AciCniDeployContainer, privRegURL),
|
&c.SystemImages.AciCniDeployContainer: d(imageDefaults.AciCniDeployContainer, privRegURL),
|
||||||
|
@ -610,6 +610,25 @@ func validateIngressImages(c *Cluster) error {
|
|||||||
if len(c.SystemImages.IngressBackend) == 0 {
|
if len(c.SystemImages.IngressBackend) == 0 {
|
||||||
return errors.New("ingress backend image is not populated")
|
return errors.New("ingress backend image is not populated")
|
||||||
}
|
}
|
||||||
|
// Ingress Webhook image is used starting with k8s 1.21
|
||||||
|
k8sVersion := c.RancherKubernetesEngineConfig.Version
|
||||||
|
toMatch, err := semver.Make(k8sVersion[1:])
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("%s is not valid semver", k8sVersion)
|
||||||
|
}
|
||||||
|
logrus.Debugf("Checking if ingress webhook image is required for cluster version [%s]", k8sVersion)
|
||||||
|
|
||||||
|
IngressWebhookImageRequiredRange, err := semver.ParseRange(">=1.21.0-rancher0")
|
||||||
|
if err != nil {
|
||||||
|
logrus.Warnf("Failed to parse semver range for checking required ingress webhook image")
|
||||||
|
}
|
||||||
|
if IngressWebhookImageRequiredRange(toMatch) {
|
||||||
|
logrus.Debugf("Cluster version [%s] uses ingress webhook image, checking if image is populated", k8sVersion)
|
||||||
|
if len(c.SystemImages.IngressWebhook) == 0 {
|
||||||
|
return errors.New("ingress webhook image is not populated")
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -175,6 +175,8 @@ type RKESystemImages struct {
|
|||||||
Ingress string `yaml:"ingress" json:"ingress,omitempty"`
|
Ingress string `yaml:"ingress" json:"ingress,omitempty"`
|
||||||
// Ingress Controller Backend image
|
// Ingress Controller Backend image
|
||||||
IngressBackend string `yaml:"ingress_backend" json:"ingressBackend,omitempty"`
|
IngressBackend string `yaml:"ingress_backend" json:"ingressBackend,omitempty"`
|
||||||
|
// Ingress Webhook image
|
||||||
|
IngressWebhook string `yaml:"ingress_webhook" json:"ingressWebhook,omitempty"`
|
||||||
// Metrics Server image
|
// Metrics Server image
|
||||||
MetricsServer string `yaml:"metrics_server" json:"metricsServer,omitempty"`
|
MetricsServer string `yaml:"metrics_server" json:"metricsServer,omitempty"`
|
||||||
// Pod infra container image for Windows
|
// Pod infra container image for Windows
|
||||||
|
Loading…
Reference in New Issue
Block a user