Skip to content

Commit

Permalink
api: Add webhook check for sidecar image (#731)
Browse files Browse the repository at this point in the history
  • Loading branch information
zhl003 authored Nov 2, 2022
1 parent b6c191f commit 8b3969c
Showing 1 changed file with 27 additions and 0 deletions.
27 changes: 27 additions & 0 deletions api/v1alpha1/mysqlcluster_webhook.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,9 @@ func (r *MysqlCluster) ValidateCreate() error {
if err := r.ValidMySQLTemplate(); err != nil {
return err
}
if err := r.validateMysqlVersion(); err != nil {
return err
}
return nil
}

Expand All @@ -89,6 +92,12 @@ func (r *MysqlCluster) ValidateUpdate(old runtime.Object) error {
if err := r.ValidMySQLTemplate(); err != nil {
return err
}
if err := r.validateMysqlVersion(); err != nil {
return err
}
if err := r.validateNFSServerAddress(oldCluster); err != nil {
return err
}
return nil
}

Expand Down Expand Up @@ -183,3 +192,21 @@ func (r *MysqlCluster) validateMysqlVersionAndImage() error {
}
return nil
}

// Validate MySQL version and related image.
func (r *MysqlCluster) validateMysqlVersion() error {
switch r.Spec.MysqlVersion {
case "5.7":
if !strings.Contains(r.Spec.PodPolicy.SidecarImage, "57") {
return apierrors.NewForbidden(schema.GroupResource{}, "", fmt.Errorf("spec.MysqlVersion is 5.7, but spec.PodPolicy.SidecarImage is not 5.7"))
}
case "8.0":
if !strings.Contains(r.Spec.PodPolicy.SidecarImage, "80") {
return apierrors.NewForbidden(schema.GroupResource{}, "", fmt.Errorf("spec.MysqlVersion is 8.0, but spec.PodPolicy.SidecarImage is not 8.0"))
}
default:
return apierrors.NewForbidden(schema.GroupResource{}, "", fmt.Errorf("spec.MysqlVersion is not provided"))

}
return nil
}

0 comments on commit 8b3969c

Please sign in to comment.