Fix minor issues
This commit is contained in:
parent
ab65db22d3
commit
32a6245e0f
|
|
@ -244,6 +244,12 @@ func (bar *BackupAndRestore) StopBackupTrigger() {
|
|||
triggers.stop(bar.logger, bar.jenkins.Namespace, bar.jenkins.Name)
|
||||
}
|
||||
|
||||
//IsBackupTriggerEnabled returns true if the backup trigger is enabled
|
||||
func (bar *BackupAndRestore) IsBackupTriggerEnabled() bool {
|
||||
_, enabled := triggers.get(bar.jenkins.Namespace, bar.jenkins.Name)
|
||||
return enabled
|
||||
}
|
||||
|
||||
func (bar *BackupAndRestore) startBackupTrigger() {
|
||||
bar.logger.Info("Starting backup trigger")
|
||||
ticker := time.NewTicker(time.Duration(bar.jenkins.Spec.Backup.Interval) * time.Second)
|
||||
|
|
|
|||
|
|
@ -433,9 +433,15 @@ func (r *ReconcileJenkinsBaseConfiguration) ensureJenkinsMasterPod(meta metav1.O
|
|||
return reconcile.Result{}, stackerr.WithStack(err)
|
||||
}
|
||||
|
||||
if currentJenkinsMasterPod != nil && isPodTerminating(*currentJenkinsMasterPod) && r.Configuration.Jenkins.Status.UserConfigurationCompletedTime != nil {
|
||||
if currentJenkinsMasterPod == nil {
|
||||
return reconcile.Result{Requeue: true}, nil
|
||||
}
|
||||
|
||||
if r.IsJenkinsTerminating(*currentJenkinsMasterPod) && r.Configuration.Jenkins.Status.UserConfigurationCompletedTime != nil {
|
||||
backupAndRestore := backuprestore.New(r.Client, r.ClientSet, r.logger, r.Configuration.Jenkins, *r.config)
|
||||
backupAndRestore.StopBackupTrigger()
|
||||
if backupAndRestore.IsBackupTriggerEnabled() {
|
||||
backupAndRestore.StopBackupTrigger()
|
||||
}
|
||||
if r.Configuration.Jenkins.Spec.Backup.MakeBackupBeforePodDeletion {
|
||||
if r.Configuration.Jenkins.Status.LastBackup == r.Configuration.Jenkins.Status.PendingBackup && !r.Configuration.Jenkins.Status.BackupDoneBeforePodDeletion {
|
||||
r.Configuration.Jenkins.Status.PendingBackup = r.Configuration.Jenkins.Status.PendingBackup + 1
|
||||
|
|
@ -452,10 +458,6 @@ func (r *ReconcileJenkinsBaseConfiguration) ensureJenkinsMasterPod(meta metav1.O
|
|||
return reconcile.Result{Requeue: true}, nil
|
||||
}
|
||||
|
||||
if currentJenkinsMasterPod == nil {
|
||||
return reconcile.Result{Requeue: true}, nil
|
||||
}
|
||||
|
||||
restartReason := r.checkForPodRecreation(*currentJenkinsMasterPod, userAndPasswordHash)
|
||||
if restartReason.HasMessages() {
|
||||
for _, msg := range restartReason.Verbose() {
|
||||
|
|
@ -481,10 +483,6 @@ func (r *ReconcileJenkinsBaseConfiguration) calculateUserAndPasswordHash() (stri
|
|||
return base64.StdEncoding.EncodeToString(hash.Sum(nil)), nil
|
||||
}
|
||||
|
||||
func isPodTerminating(pod corev1.Pod) bool {
|
||||
return pod.ObjectMeta.DeletionTimestamp != nil
|
||||
}
|
||||
|
||||
func (r *ReconcileJenkinsBaseConfiguration) checkForPodRecreation(currentJenkinsMasterPod corev1.Pod, userAndPasswordHash string) reason.Reason {
|
||||
var messages []string
|
||||
var verbose []string
|
||||
|
|
@ -578,7 +576,7 @@ func (r *ReconcileJenkinsBaseConfiguration) checkForPodRecreation(currentJenkins
|
|||
verbose = append(verbose, verboseMessages...)
|
||||
}
|
||||
|
||||
return reason.NewPodRestart(reason.KubernetesSource, messages, verbose...)
|
||||
return reason.NewPodRestart(reason.OperatorSource, messages, verbose...)
|
||||
}
|
||||
|
||||
func (r *ReconcileJenkinsBaseConfiguration) compareContainers(expected corev1.Container, actual corev1.Container) (messages []string, verbose []string) {
|
||||
|
|
@ -713,17 +711,17 @@ func (r *ReconcileJenkinsBaseConfiguration) detectJenkinsMasterPodStartingIssues
|
|||
|
||||
func (r *ReconcileJenkinsBaseConfiguration) filterEvents(source corev1.EventList, jenkinsMasterPod corev1.Pod) []string {
|
||||
events := []string{}
|
||||
for _, event := range source.Items {
|
||||
if r.Configuration.Jenkins.Status.ProvisionStartTime.UTC().After(event.LastTimestamp.UTC()) {
|
||||
for _, eventItem := range source.Items {
|
||||
if r.Configuration.Jenkins.Status.ProvisionStartTime.UTC().After(eventItem.LastTimestamp.UTC()) {
|
||||
continue
|
||||
}
|
||||
if event.Type == corev1.EventTypeNormal {
|
||||
if eventItem.Type == corev1.EventTypeNormal {
|
||||
continue
|
||||
}
|
||||
if !strings.HasPrefix(event.ObjectMeta.Name, jenkinsMasterPod.Name) {
|
||||
if !strings.HasPrefix(eventItem.ObjectMeta.Name, jenkinsMasterPod.Name) {
|
||||
continue
|
||||
}
|
||||
events = append(events, fmt.Sprintf("Message: %s Subobject: %s", event.Message, event.InvolvedObject.FieldPath))
|
||||
events = append(events, fmt.Sprintf("Message: %s Subobject: %s", eventItem.Message, eventItem.InvolvedObject.FieldPath))
|
||||
}
|
||||
|
||||
return events
|
||||
|
|
@ -735,7 +733,7 @@ func (r *ReconcileJenkinsBaseConfiguration) waitForJenkins(meta metav1.ObjectMet
|
|||
return reconcile.Result{}, err
|
||||
}
|
||||
|
||||
if jenkinsMasterPod.ObjectMeta.DeletionTimestamp != nil {
|
||||
if r.IsJenkinsTerminating(*jenkinsMasterPod) {
|
||||
r.logger.V(log.VDebug).Info("Jenkins master pod is terminating")
|
||||
return reconcile.Result{Requeue: true, RequeueAfter: time.Second * 5}, nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,6 +35,10 @@ func (c *Configuration) RestartJenkinsMasterPod(reason reason.Reason) error {
|
|||
return err
|
||||
}
|
||||
|
||||
if c.IsJenkinsTerminating(*currentJenkinsMasterPod) {
|
||||
return nil
|
||||
}
|
||||
|
||||
*c.Notifications <- event.Event{
|
||||
Jenkins: *c.Jenkins,
|
||||
Phase: event.PhaseBase,
|
||||
|
|
@ -55,6 +59,10 @@ func (c *Configuration) getJenkinsMasterPod() (*corev1.Pod, error) {
|
|||
return currentJenkinsMasterPod, nil
|
||||
}
|
||||
|
||||
func (c *Configuration) IsJenkinsTerminating(pod corev1.Pod) bool {
|
||||
return pod.ObjectMeta.DeletionTimestamp != nil
|
||||
}
|
||||
|
||||
// CreateResource is creating kubernetes resource and references it to Jenkins CR
|
||||
func (c *Configuration) CreateResource(obj metav1.Object) error {
|
||||
runtimeObj, ok := obj.(runtime.Object)
|
||||
|
|
|
|||
|
|
@ -72,13 +72,19 @@ func NewUndefined(source Source, short []string, verbose ...string) *Undefined {
|
|||
|
||||
// NewPodRestart returns new instance of PodRestart
|
||||
func NewPodRestart(source Source, short []string, verbose ...string) *PodRestart {
|
||||
restartPodMessage := "Jenkins master pod restarted by:"
|
||||
restartPodMessage := fmt.Sprintf("Jenkins master pod restarted by %s:", source)
|
||||
if len(short) == 1 {
|
||||
short[0] = fmt.Sprintf("%s %s", restartPodMessage, short[0])
|
||||
short = []string{fmt.Sprintf("%s %s", restartPodMessage, short[0])}
|
||||
} else if len(short) > 1 {
|
||||
short = append([]string{restartPodMessage}, short...)
|
||||
}
|
||||
|
||||
if len(verbose) == 1 {
|
||||
verbose = []string{fmt.Sprintf("%s %s", restartPodMessage, verbose[0])}
|
||||
} else if len(verbose) > 1 {
|
||||
verbose = append([]string{restartPodMessage}, verbose...)
|
||||
}
|
||||
|
||||
return &PodRestart{
|
||||
Undefined{
|
||||
source: source,
|
||||
|
|
@ -138,7 +144,7 @@ func NewBaseConfigurationComplete(source Source, short []string, verbose ...stri
|
|||
Undefined{
|
||||
source: source,
|
||||
short: short,
|
||||
verbose: verbose,
|
||||
verbose: checkIfVerboseEmpty(short, verbose),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue