Files
kube-plex/main.go
T
2015-09-07 23:04:00 +01:00

58 lines
1.1 KiB
Go

package main
import (
"os"
"fmt"
log "github.com/Sirupsen/logrus"
"k8s.io/kubernetes/pkg/api"
"git.marley.xyz/e720/plex-elastic-transcoder/job"
)
const kubernetesHost = "http://10.20.40.254:8080/"
const kubernetesNamespace = "plex"
const dockerImage = "timhaak/plex"
func generateName() string {
return "transcode-job"
}
func main() {
// Get the arguments passed to Plex New Transcoder
args := os.Args[1:]
log.Print(fmt.Sprintf("Dispatching job: %s", args))
job := job.Job{
Host: kubernetesHost,
Pod:
&api.Pod{
TypeMeta: api.TypeMeta{
Kind: "Pod",
},
ObjectMeta: api.ObjectMeta{
GenerateName: generateName(),
Namespace: kubernetesNamespace,
},
Spec: api.PodSpec{
RestartPolicy: api.RestartPolicyNever,
Containers: []api.Container{
api.Container{
Name: generateName(),
Image: dockerImage,
Command: []string{"/usr/lib/plexmediaserver/Resources/Plex New Transcoder"},
Args: args,
},
},
},
},
}
err := job.Start()
if err != nil {
log.Fatal("Job start failed with error: ", err)
}
}