Skip to content

Commit

Permalink
Merge pull request #12174 from coreydaley/github_11946_cluster_up_met…
Browse files Browse the repository at this point in the history
…rics_fails

Merged by openshift-bot
  • Loading branch information
OpenShift Bot authored Dec 17, 2016
2 parents 26f76ea + a340df7 commit 48b0a74
Showing 1 changed file with 60 additions and 41 deletions.
101 changes: 60 additions & 41 deletions pkg/bootstrap/docker/openshift/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,20 @@ package openshift
import (
"fmt"

"github.com/openshift/origin/pkg/cmd/util/clientcmd"
kapi "k8s.io/kubernetes/pkg/api"
apierrors "k8s.io/kubernetes/pkg/api/errors"
kbatch "k8s.io/kubernetes/pkg/apis/batch"

"github.com/openshift/origin/pkg/bootstrap/docker/errors"
"github.com/openshift/origin/pkg/cmd/util/clientcmd"
)

const (
infraNamespace = "openshift-infra"
svcMetrics = "hawkular-metrics"
metricsDeployerSA = "metrics-deployer"
metricsDeployerSecret = "metrics-deployer"
metricsDeployerPodName = "metrics-deployer-pod"
metricsDeployerJobName = "metrics-deployer-pod"
)

// InstallMetrics checks whether metrics is installed and installs it if not already installed
Expand Down Expand Up @@ -65,15 +66,17 @@ func (h *Helper) InstallMetrics(f *clientcmd.Factory, hostName, imagePrefix, ima
return errors.NewError("cannot create metrics deployer secret").WithCause(err).WithDetails(h.OriginLog())
}

// Create deployer Pod
deployerPod := metricsDeployerPod(hostName, imagePrefix, imageVersion)
if _, err = kubeClient.Pods(infraNamespace).Create(deployerPod); err != nil {
return errors.NewError("cannot create metrics deployer pod").WithCause(err).WithDetails(h.OriginLog())
}
// Create the job client
jobClient := kubeClient.Batch().Jobs(infraNamespace)

// Submit the job
jobClient.Create(metricsDeployerJob(hostName, imagePrefix, imageVersion))

return nil
}

func metricsDeployerPod(hostName, imagePrefix, imageVersion string) *kapi.Pod {
// Returns a job to create the metrics deployer pod
func metricsDeployerJob(hostName, imagePrefix, imageVersion string) *kbatch.Job {
env := []kapi.EnvVar{
{
Name: "PROJECT",
Expand Down Expand Up @@ -144,49 +147,65 @@ func metricsDeployerPod(hostName, imagePrefix, imageVersion string) *kapi.Pod {
Value: "10s",
},
}
pod := &kapi.Pod{
Spec: kapi.PodSpec{
DNSPolicy: kapi.DNSClusterFirst,
RestartPolicy: kapi.RestartPolicyNever,
ServiceAccountName: metricsDeployerSA,
Volumes: []kapi.Volume{
{
Name: "empty",
VolumeSource: kapi.VolumeSource{
EmptyDir: &kapi.EmptyDirVolumeSource{},
podSpec := kapi.PodSpec{
DNSPolicy: kapi.DNSClusterFirst,
RestartPolicy: kapi.RestartPolicyNever,
ServiceAccountName: metricsDeployerSA,
Volumes: []kapi.Volume{
{
Name: "empty",
VolumeSource: kapi.VolumeSource{
EmptyDir: &kapi.EmptyDirVolumeSource{},
},
},
{
Name: "secret",
VolumeSource: kapi.VolumeSource{
Secret: &kapi.SecretVolumeSource{
SecretName: metricsDeployerSecret,
},
},
{
Name: "secret",
VolumeSource: kapi.VolumeSource{
Secret: &kapi.SecretVolumeSource{
SecretName: metricsDeployerSecret,
},
},
},
Containers: []kapi.Container{
{
Image: fmt.Sprintf("%s-metrics-deployer:%s", imagePrefix, imageVersion),
Name: "deployer",
VolumeMounts: []kapi.VolumeMount{
{
Name: "secret",
MountPath: "/secret",
ReadOnly: true,
},
{
Name: "empty",
MountPath: "/etc/deploy",
},
},
Env: env,
},
},
}
pod.Name = metricsDeployerPodName
pod.Spec.Containers = []kapi.Container{
{
Image: fmt.Sprintf("%s-metrics-deployer:%s", imagePrefix, imageVersion),
Name: "deployer",
VolumeMounts: []kapi.VolumeMount{
{
Name: "secret",
MountPath: "/secret",
ReadOnly: true,
},
{
Name: "empty",
MountPath: "/etc/deploy",
},

completions := int32(1)

deadline := int64(60 * 5)

meta := kapi.ObjectMeta{
Name: metricsDeployerJobName,
}

job := &kbatch.Job{
ObjectMeta: meta,
Spec: kbatch.JobSpec{
Completions: &completions,
ActiveDeadlineSeconds: &deadline,
Template: kapi.PodTemplateSpec{
Spec: podSpec,
},
Env: env,
},
}
return pod
return job
}

func MetricsHost(routingSuffix, serverIP string) string {
Expand Down

0 comments on commit 48b0a74

Please sign in to comment.