simplegen
is a command-line tool to expand a simple container
description into Kubernetes API objects, such as for consumption by
kubectl or other tools.
Currently targets only v1beta1.
Usage
$ simplegen myservice.json
$ simplegen myservice.yaml
$ simplegen -
$ simplegen http://some.blog.site.com/k8s-example.yaml
Schema
// Optional: Defaults to image base name if not specified
Name string `json:"name,omitempty"`
// Required.
Image string `json:"image"`
// Optional: Defaults to one
Replicas int `json:"replicas,omitempty"`
// Optional: Creates a service if specified: servicePort:containerPort
PortSpec string `json:"portSpec,omitempty"`
Example
redismaster.yaml:
name: redismaster
image: dockerfile/redis
portSpec: 6379:6379
redisslave.yaml:
name: redisslave
image: brendanburns/redis-slave
replicas: 2
portSpec: 10001:6379
Output:
$ simplegen redismaster.yaml | cluster/kubectl.sh createall -f -
$ simplegen redisslave.yaml | cluster/kubectl.sh createall -f -
$ cluster/kubectl.sh get services
NAME LABELS SELECTOR IP PORT
kubernetes-ro component=apiserver,provider=kubernetes 10.0.0.2 80
kubernetes component=apiserver,provider=kubernetes 10.0.0.1 443
redismaster simpleservice=redismaster simpleservice=redismaster 10.0.0.3 6379
redisslave simpleservice=redisslave simpleservice=redisslave 10.0.0.4 10001
$ cluster/kubectl.sh get replicationcontrollers
NAME IMAGE(S) SELECTOR REPLICAS
redismaster dockerfile/redis simpleservice=redismaster 1
redisslave brendanburns/redis-slave simpleservice=redisslave 2
$ cluster/kubectl.sh get pods
NAME IMAGE(S) HOST LABELS STATUS
89adf546-6457-11e4-9f97-42010af0d824 dockerfile/redis kubernetes-minion-3/146.148.79.186 simpleservice=redismaster Running
93a555ac-6457-11e4-9f97-42010af0d824 brendanburns/redis-slave kubernetes-minion-4/130.211.186.4 simpleservice=redisslave Running
93a862d1-6457-11e4-9f97-42010af0d824 brendanburns/redis-slave kubernetes-minion-1/130.211.117.14 simpleservice=redisslave Running