Skip to content

Commit 32a020f

Browse files
committed
Set history size in snapshots cronjob, deploy es daemonset in the same namespace of the crd, delete daemonset object before a crd deletiong
1 parent 892dcd2 commit 32a020f

File tree

5 files changed

+31
-13
lines changed

5 files changed

+31
-13
lines changed

pkg/controller/controller.go

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -66,16 +66,11 @@ func (c *Controller) Run() error {
6666
}
6767

6868
func (c *Controller) init() error {
69-
err := c.k8sclient.CreateKubernetesCustomResourceDefinition()
69+
crd, err := c.k8sclient.CreateKubernetesCustomResourceDefinition()
7070
if err != nil {
7171
return err
7272
}
7373

74-
err = c.k8sclient.CreateNodeInitDaemonset("default")
74+
return c.k8sclient.CreateNodeInitDaemonset(crd.ObjectMeta.Namespace)
7575

76-
if err != nil {
77-
return err
78-
}
79-
80-
return nil
8176
}

pkg/k8sutil/daemonsets.go

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
2525
package k8sutil
2626

2727
import (
28+
"fmt"
29+
2830
"github.com/Sirupsen/logrus"
2931
"k8s.io/api/core/v1"
3032
"k8s.io/api/extensions/v1beta1"
@@ -36,14 +38,28 @@ const (
3638
esOperatorSysctlName = "elasticsearch-operator-sysctl"
3739
)
3840

41+
// DeleteNodeInitDaemonset delete the node init daemonset
42+
func (k *K8sutil) DeleteNodeInitDaemonset(namespace string) error {
43+
44+
ds, err := k.Kclient.ExtensionsV1beta1().DaemonSets(namespace).Get(esOperatorSysctlName, metav1.GetOptions{})
45+
46+
if err != nil {
47+
return fmt.Errorf("Could not delete daemonset: %s ", ds.Name)
48+
}
49+
50+
logrus.Infof("Deleted daemonset: %s", ds.Name)
51+
return nil
52+
53+
}
54+
3955
// CreateNodeInitDaemonset creates the node init daemonset
4056
func (k *K8sutil) CreateNodeInitDaemonset(namespace string) error {
4157

4258
ds, err := k.Kclient.ExtensionsV1beta1().DaemonSets(namespace).Get(esOperatorSysctlName, metav1.GetOptions{})
4359

4460
if err != nil && len(ds.Name) == 0 {
4561

46-
logrus.Infof("Daemonset %s not found, creating...", ds)
62+
logrus.Infof("Daemonset %s not found, creating...", ds.Name)
4763

4864
resourceCPU, _ := resource.ParseQuantity("10m")
4965
resourceMemory, _ := resource.ParseQuantity("50Mi")

pkg/k8sutil/k8sutil.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ func newKubeClient(kubeCfgFile string) (genclient.Interface, kubernetes.Interfac
158158
}
159159

160160
// CreateKubernetesCustomResourceDefinition checks if ElasticSearch CRD exists. If not, create
161-
func (k *K8sutil) CreateKubernetesCustomResourceDefinition() error {
161+
func (k *K8sutil) CreateKubernetesCustomResourceDefinition() (*apiextensionsv1beta1.CustomResourceDefinition, error) {
162162

163163
crd, err := k.KubeExt.ApiextensionsV1beta1().CustomResourceDefinitions().Get(elasticsearchoperator.Name, metav1.GetOptions{})
164164
if err != nil {
@@ -208,9 +208,9 @@ func (k *K8sutil) CreateKubernetesCustomResourceDefinition() error {
208208
if err != nil {
209209
deleteErr := k.KubeExt.ApiextensionsV1beta1().CustomResourceDefinitions().Delete(elasticsearchoperator.Name, nil)
210210
if deleteErr != nil {
211-
return errors.NewAggregate([]error{err, deleteErr})
211+
return nil, errors.NewAggregate([]error{err, deleteErr})
212212
}
213-
return err
213+
return nil, err
214214
}
215215

216216
logrus.Info("CRD ready!")
@@ -221,7 +221,7 @@ func (k *K8sutil) CreateKubernetesCustomResourceDefinition() error {
221221
logrus.Infof("SKIPPING: already exists %#v\n", crd.ObjectMeta.Name)
222222
}
223223

224-
return nil
224+
return crd, err
225225
}
226226

227227
// MonitorElasticSearchEvents watches for new or removed clusters

pkg/processor/processor.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -444,6 +444,10 @@ func (p *Processor) deleteElasticSearchCluster(c *myspec.ElasticsearchCluster) {
444444
logrus.Errorf("Could not delete storage class %s: %v", c.ObjectMeta.Name, err)
445445
}
446446

447+
if err := p.k8sclient.DeleteNodeInitDaemonset(c.ObjectMeta.Name); err != nil {
448+
logrus.Errorf("Could not delete daemonset %s: %v", c.ObjectMeta.Namespace, err)
449+
}
450+
447451
p.clusters[fmt.Sprintf("%s-%s", c.ObjectMeta.Name, c.ObjectMeta.Namespace)].Scheduler.Stop()
448452

449453
if !c.Spec.KeepSecretsOnDelete {

pkg/snapshot/scheduler.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ func (s *Scheduler) deleteCronJob(namespace, clusterName string) {
163163
func (s *Scheduler) CreateCronJob(namespace, clusterName, action, cronSchedule string) error {
164164
snapshotName := getSnapshotname(clusterName, action)
165165

166+
var jobHistorySize int32 = 20
166167
// Check if CronJob exists
167168
cronJob, err := s.Kclient.BatchV1beta1().CronJobs(namespace).Get(snapshotName, metav1.GetOptions{})
168169

@@ -187,7 +188,9 @@ func (s *Scheduler) CreateCronJob(namespace, clusterName, action, cronSchedule s
187188
},
188189
},
189190
Spec: v1beta1.CronJobSpec{
190-
Schedule: cronSchedule,
191+
Schedule: cronSchedule,
192+
SuccessfulJobsHistoryLimit: &jobHistorySize,
193+
FailedJobsHistoryLimit: &jobHistorySize,
191194
JobTemplate: v1beta1.JobTemplateSpec{
192195
Spec: batchv1.JobSpec{
193196
Template: apicore.PodTemplateSpec{

0 commit comments

Comments
 (0)