Submit hello world cron job

This commit is contained in:
Sergey Dudoladov 2019-01-15 15:44:57 +01:00
parent 68755ffff5
commit 11019f557e
4 changed files with 25 additions and 4 deletions

View File

@ -23,3 +23,5 @@ spec:
foo: zalando foo: zalando
postgresql: postgresql:
version: "10" version: "10"
enableLogicalBackup: true

View File

@ -18,6 +18,7 @@ import (
"k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/types"
"k8s.io/client-go/rest" "k8s.io/client-go/rest"
"k8s.io/client-go/tools/cache" "k8s.io/client-go/tools/cache"
batchv1beta1 "k8s.io/api/batch/v1beta1"
"encoding/json" "encoding/json"
@ -82,6 +83,8 @@ type Cluster struct {
currentProcess Process currentProcess Process
processMu sync.RWMutex // protects the current operation for reporting, no need to hold the master mutex processMu sync.RWMutex // protects the current operation for reporting, no need to hold the master mutex
specMu sync.RWMutex // protects the spec for reporting, no need to hold the master mutex specMu sync.RWMutex // protects the spec for reporting, no need to hold the master mutex
backupJob *batchv1beta1.CronJob // periodical logical backups independent from WAL archiving
} }
type compareStatefulsetResult struct { type compareStatefulsetResult struct {

View File

@ -20,9 +20,10 @@ import (
"github.com/zalando-incubator/postgres-operator/pkg/util" "github.com/zalando-incubator/postgres-operator/pkg/util"
"github.com/zalando-incubator/postgres-operator/pkg/util/config" "github.com/zalando-incubator/postgres-operator/pkg/util/config"
"github.com/zalando-incubator/postgres-operator/pkg/util/constants" "github.com/zalando-incubator/postgres-operator/pkg/util/constants"
batchv1beta1 "k8s.io/api/batch/v1beta1"
"k8s.io/apimachinery/pkg/labels"
batchv1 "k8s.io/api/batch/v1" batchv1 "k8s.io/api/batch/v1"
batchv1beta1 "k8s.io/api/batch/v1beta1"
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/labels"
) )
const ( const (
@ -1200,15 +1201,29 @@ func (c *Cluster) getClusterServiceConnectionParameters(clusterName string) (hos
func (c *Cluster) generateCronJob() *batchv1beta1.CronJob { func (c *Cluster) generateCronJob() *batchv1beta1.CronJob {
jobSpec := batchv1.JobSpec{} jobSpec := batchv1.JobSpec{Template : v1.PodTemplateSpec{
Spec: corev1.PodSpec{
Containers: []corev1.Container{
corev1.Container {
Name: "Hello world",
Image: "hello-world",
Command: []string{"date", "echo Hello from the Kubernetes cluster"},
},
},
},
},
}
jobTemplateSpec := batchv1beta1.JobTemplateSpec{ jobTemplateSpec := batchv1beta1.JobTemplateSpec{
Spec: jobSpec, Spec: jobSpec,
} }
cronJob := &batchv1beta1.CronJob{ cronJob := &batchv1beta1.CronJob{
ObjectMeta: metav1.ObjectMeta{ ObjectMeta: metav1.ObjectMeta{
Name: c.podDisruptionBudgetName(), Name: "Dummy cron job",
Namespace: c.Namespace, Namespace: c.Namespace,
Labels: c.labelsSet(true), Labels: c.labelsSet(true),
}, },

View File

@ -614,6 +614,7 @@ func (c *Cluster) createBackupCronJob() (err error) {
if err != nil { if err != nil {
return fmt.Errorf("could not create k8s cron job: %v", err) return fmt.Errorf("could not create k8s cron job: %v", err)
} }
c.backupJob = cronJob
return nil return nil
} }