Compare commits

..

No commits in common. "d5b9ffd8a46e2c37f0582b814c41a7abc5dba76e" and "cd39ff0236f2116f5c025606dcc5e56558f395ba" have entirely different histories.

5 changed files with 5 additions and 105 deletions

View File

@ -76,9 +76,6 @@ type BackupConfigurationSpec struct {
// Foo is an example field of BackupConfiguration. Edit BackupConfiguration_types.go to remove/update
Repository `json:"repository"`
// +optional
Suspend *bool `json:"suspend,omitempty"`
// +optional
Schedule string `json:"schedule,omitempty"`
// +kubebuilder:validation:MinItems=1

View File

@ -1,78 +0,0 @@
/*
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package v1alpha1
import (
"k8s.io/apimachinery/pkg/runtime"
ctrl "sigs.k8s.io/controller-runtime"
logf "sigs.k8s.io/controller-runtime/pkg/log"
"sigs.k8s.io/controller-runtime/pkg/webhook"
)
// log is for logging in this package.
var backupconfigurationlog = logf.Log.WithName("backupconfiguration-resource")
func (r *BackupConfiguration) SetupWebhookWithManager(mgr ctrl.Manager) error {
return ctrl.NewWebhookManagedBy(mgr).
For(r).
Complete()
}
// EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN!
// +kubebuilder:webhook:path=/mutate-formol-desmojim-fr-v1alpha1-backupconfiguration,mutating=true,failurePolicy=fail,groups=formol.desmojim.fr,resources=backupconfigurations,verbs=create;update,versions=v1alpha1,name=mbackupconfiguration.kb.io
var _ webhook.Defaulter = &BackupConfiguration{}
// Default implements webhook.Defaulter so a webhook will be registered for the type
func (r *BackupConfiguration) Default() {
backupconfigurationlog.Info("default", "name", r.Name)
// TODO(user): fill in your defaulting logic.
if r.Spec.Suspend == nil {
r.Spec.Suspend = new(bool)
}
}
// TODO(user): change verbs to "verbs=create;update;delete" if you want to enable deletion validation.
// +kubebuilder:webhook:verbs=create;update,path=/validate-formol-desmojim-fr-v1alpha1-backupconfiguration,mutating=false,failurePolicy=fail,groups=formol.desmojim.fr,resources=backupconfigurations,versions=v1alpha1,name=vbackupconfiguration.kb.io
var _ webhook.Validator = &BackupConfiguration{}
// ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (r *BackupConfiguration) ValidateCreate() error {
backupconfigurationlog.Info("validate create", "name", r.Name)
// TODO(user): fill in your validation logic upon object creation.
return nil
}
// ValidateUpdate implements webhook.Validator so a webhook will be registered for the type
func (r *BackupConfiguration) ValidateUpdate(old runtime.Object) error {
backupconfigurationlog.Info("validate update", "name", r.Name)
// TODO(user): fill in your validation logic upon object update.
return nil
}
// ValidateDelete implements webhook.Validator so a webhook will be registered for the type
func (r *BackupConfiguration) ValidateDelete() error {
backupconfigurationlog.Info("validate delete", "name", r.Name)
// TODO(user): fill in your validation logic upon object deletion.
return nil
}

View File

@ -105,11 +105,6 @@ func (in *BackupConfigurationList) DeepCopyObject() runtime.Object {
func (in *BackupConfigurationSpec) DeepCopyInto(out *BackupConfigurationSpec) {
*out = *in
out.Repository = in.Repository
if in.Suspend != nil {
in, out := &in.Suspend, &out.Suspend
*out = new(bool)
**out = **in
}
if in.Targets != nil {
in, out := &in.Targets, &out.Targets
*out = make([]Target, len(*in))

View File

@ -238,29 +238,15 @@ func (r *BackupConfigurationReconciler) addSidecarContainer(backupConf *formolv1
func (r *BackupConfigurationReconciler) addCronJob(backupConf *formolv1alpha1.BackupConfiguration) error {
log := r.Log.WithValues("addCronJob", backupConf.Name)
if err := formolrbac.CreateBackupSessionCreatorRBAC(r.Client, backupConf.Namespace); err != nil {
log.Error(err, "unable to create backupsession-creator RBAC")
return nil
}
cronjob := &kbatch_beta1.CronJob{}
if err := r.Get(context.Background(), client.ObjectKey{
Namespace: backupConf.Namespace,
Name: "backup-" + backupConf.Name,
}, cronjob); err == nil {
log.V(0).Info("there is already a cronjob")
var changed bool
if backupConf.Spec.Schedule != cronjob.Spec.Schedule {
log.V(0).Info("cronjob schedule has changed", "old schedule", cronjob.Spec.Schedule, "new schedule", backupConf.Spec.Schedule)
cronjob.Spec.Schedule = backupConf.Spec.Schedule
changed = true
}
if backupConf.Spec.Suspend != cronjob.Spec.Suspend {
log.V(0).Info("cronjob suspend has changed", "before", cronjob.Spec.Suspend, "new", backupConf.Spec.Suspend)
cronjob.Spec.Suspend = backupConf.Spec.Suspend
changed = true
}
if changed == true {
if err := r.Update(context.TODO(), cronjob); err != nil {
log.Error(err, "unable to update cronjob definition")
return err
@ -272,13 +258,17 @@ func (r *BackupConfigurationReconciler) addCronJob(backupConf *formolv1alpha1.Ba
return err
}
if err := formolrbac.CreateBackupSessionCreatorRBAC(r.Client, backupConf.Namespace); err != nil {
log.Error(err, "unable to create backupsession-creator RBAC")
return nil
}
cronjob = &kbatch_beta1.CronJob{
ObjectMeta: metav1.ObjectMeta{
Name: "backup-" + backupConf.Name,
Namespace: backupConf.Namespace,
},
Spec: kbatch_beta1.CronJobSpec{
Suspend: backupConf.Spec.Suspend,
Schedule: backupConf.Spec.Schedule,
JobTemplate: kbatch_beta1.JobTemplateSpec{
Spec: batchv1.JobSpec{

View File

@ -87,10 +87,6 @@ func main() {
setupLog.Error(err, "unable to create webhook", "webhook", "BackupSession")
os.Exit(1)
}
if err = (&formolv1alpha1.BackupConfiguration{}).SetupWebhookWithManager(mgr); err != nil {
setupLog.Error(err, "unable to create webhook", "webhook", "BackupConfiguration")
os.Exit(1)
}
}
// +kubebuilder:scaffold:builder