Merge pull request #113 from luxas/static_localkube
Static localkube and some other thingspull/121/head
commit
941933179f
|
@ -1,2 +0,0 @@
|
||||||
author: The Kubernetes Authors
|
|
||||||
license: Apache 2.0
|
|
17
Makefile
17
Makefile
|
@ -12,9 +12,14 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
# Use the native vendor/ dependency system
|
||||||
|
export GO15VENDOREXPERIMENT=1
|
||||||
|
|
||||||
GOOS ?= $(shell go env GOOS)
|
GOOS ?= $(shell go env GOOS)
|
||||||
GOARCH ?= $(shell go env GOARCH)
|
GOARCH ?= $(shell go env GOARCH)
|
||||||
BUILD_DIR ?= ./out
|
BUILD_DIR ?= ./out
|
||||||
|
REPOPATH ?= k8s.io/minikube
|
||||||
|
BUILD_IMAGE ?= gcr.io/google_containers/kube-cross:v1.6.2-1
|
||||||
|
|
||||||
ifeq ($(IN_DOCKER),1)
|
ifeq ($(IN_DOCKER),1)
|
||||||
GOPATH := /go
|
GOPATH := /go
|
||||||
|
@ -22,11 +27,9 @@ else
|
||||||
GOPATH := $(shell pwd)/_gopath
|
GOPATH := $(shell pwd)/_gopath
|
||||||
endif
|
endif
|
||||||
|
|
||||||
REPOPATH ?= k8s.io/minikube
|
# Set the version information for the Kubernetes servers, and build localkube statically
|
||||||
export GO15VENDOREXPERIMENT=1
|
VERSION_LDFLAGS := $(shell docker run --rm -it -v $(shell pwd):/minikube -w /minikube python python hack/get_k8s_version.py)
|
||||||
|
LDFLAGS := "$(VERSION_LDFLAGS) -s -w -extldflags '-static'"
|
||||||
# Set the version information in kubernetes.
|
|
||||||
LD_FLAGS = "-s -w $(shell python hack/get_k8s_version.py)"
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf $(GOPATH)
|
rm -rf $(GOPATH)
|
||||||
|
@ -43,9 +46,9 @@ out/minikube: out/minikube-$(GOOS)-$(GOARCH)
|
||||||
out/localkube: $(LOCALKUBEFILES)
|
out/localkube: $(LOCALKUBEFILES)
|
||||||
$(MKGOPATH)
|
$(MKGOPATH)
|
||||||
ifeq ($(GOOS),linux)
|
ifeq ($(GOOS),linux)
|
||||||
CGO_ENABLED=1 go build -ldflags=$(LD_FLAGS) -o $(BUILD_DIR)/localkube ./cmd/localkube
|
CGO_ENABLED=1 go build -ldflags=$(LDFLAGS) -o $(BUILD_DIR)/localkube ./cmd/localkube
|
||||||
else
|
else
|
||||||
docker run -w /go/src/$(REPOPATH) -e IN_DOCKER=1 -v $(shell pwd):/go/src/$(REPOPATH) golang:1.6 make out/localkube
|
docker run -w /go/src/$(REPOPATH) -e IN_DOCKER=1 -v $(shell pwd):/go/src/$(REPOPATH) $(BUILD_IMAGE) make out/localkube
|
||||||
endif
|
endif
|
||||||
|
|
||||||
out/minikube-$(GOOS)-$(GOARCH): $(MINIKUBEFILES) pkg/minikube/cluster/localkubecontents.go
|
out/minikube-$(GOOS)-$(GOARCH): $(MINIKUBEFILES) pkg/minikube/cluster/localkubecontents.go
|
||||||
|
|
|
@ -27,14 +27,14 @@ import (
|
||||||
|
|
||||||
func NewLocalkubeServer() *localkube.LocalkubeServer {
|
func NewLocalkubeServer() *localkube.LocalkubeServer {
|
||||||
// net.ParseCIDR returns multiple values. Use the IPNet return value
|
// net.ParseCIDR returns multiple values. Use the IPNet return value
|
||||||
_, defaultServiceClusterIPRange, _ := net.ParseCIDR("10.0.0.1/24")
|
_, defaultServiceClusterIPRange, _ := net.ParseCIDR(util.DefaultServiceClusterIP + "/24")
|
||||||
|
|
||||||
return &localkube.LocalkubeServer{
|
return &localkube.LocalkubeServer{
|
||||||
Containerized: false,
|
Containerized: false,
|
||||||
EnableDNS: true,
|
EnableDNS: true,
|
||||||
DNSDomain: util.DNSDomain,
|
DNSDomain: util.DefaultDNSDomain,
|
||||||
DNSIP: net.ParseIP("10.0.0.10"),
|
DNSIP: net.ParseIP(util.DefaultDNSIP),
|
||||||
LocalkubeDirectory: util.LocalkubeDirectory,
|
LocalkubeDirectory: util.DefaultLocalkubeDirectory,
|
||||||
ServiceClusterIPRange: *defaultServiceClusterIPRange,
|
ServiceClusterIPRange: *defaultServiceClusterIPRange,
|
||||||
APIServerAddress: net.ParseIP("0.0.0.0"),
|
APIServerAddress: net.ParseIP("0.0.0.0"),
|
||||||
APIServerPort: 443,
|
APIServerPort: 443,
|
||||||
|
|
|
@ -24,7 +24,7 @@ import (
|
||||||
"k8s.io/minikube/pkg/version"
|
"k8s.io/minikube/pkg/version"
|
||||||
)
|
)
|
||||||
|
|
||||||
var VersionCmd = &cobra.Command{
|
var versionCmd = &cobra.Command{
|
||||||
Use: "version",
|
Use: "version",
|
||||||
Short: "Print the version of localkube.",
|
Short: "Print the version of localkube.",
|
||||||
Long: `Print the version of localkube.`,
|
Long: `Print the version of localkube.`,
|
||||||
|
@ -35,5 +35,5 @@ var VersionCmd = &cobra.Command{
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
RootCmd.AddCommand(VersionCmd)
|
RootCmd.AddCommand(versionCmd)
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
/*
|
||||||
|
Copyright 2016 The Kubernetes Authors All rights reserved.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package cmd
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/spf13/cobra"
|
||||||
|
|
||||||
|
"k8s.io/minikube/pkg/version"
|
||||||
|
)
|
||||||
|
|
||||||
|
var versionCmd = &cobra.Command{
|
||||||
|
Use: "version",
|
||||||
|
Short: "Print the version of minikube.",
|
||||||
|
Long: `Print the version of minikube.`,
|
||||||
|
Run: func(command *cobra.Command, args []string) {
|
||||||
|
|
||||||
|
fmt.Println("Version: ", version.Version)
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
RootCmd.AddCommand(versionCmd)
|
||||||
|
}
|
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
import json
|
import json
|
||||||
import subprocess
|
import subprocess
|
||||||
|
import sys
|
||||||
|
|
||||||
K8S_PACKAGE = 'k8s.io/kubernetes/'
|
K8S_PACKAGE = 'k8s.io/kubernetes/'
|
||||||
X_ARG_BASE = '-X k8s.io/minikube/vendor/k8s.io/kubernetes/pkg/version.'
|
X_ARG_BASE = '-X k8s.io/minikube/vendor/k8s.io/kubernetes/pkg/version.'
|
||||||
|
@ -46,4 +47,4 @@ def main():
|
||||||
return ' '.join([X_ARG_BASE + arg for arg in args])
|
return ' '.join([X_ARG_BASE + arg for arg in args])
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
print main()
|
sys.exit(main())
|
||||||
|
|
|
@ -205,7 +205,7 @@ func SetupCerts(d drivers.Driver) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := sshutil.Transfer(data, util.CertPath, cert, "0644", client); err != nil {
|
if err := sshutil.Transfer(data, util.DefaultCertPath, cert, "0644", client); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,12 +24,12 @@ import (
|
||||||
|
|
||||||
var (
|
var (
|
||||||
// This is the internalIP the the API server and other components communicate on.
|
// This is the internalIP the the API server and other components communicate on.
|
||||||
internalIP = net.ParseIP("10.0.0.1")
|
internalIP = net.ParseIP(util.DefaultServiceClusterIP)
|
||||||
)
|
)
|
||||||
|
|
||||||
func GenerateCerts(pub, priv string, ip net.IP) error {
|
func GenerateCerts(pub, priv string, ip net.IP) error {
|
||||||
ips := []net.IP{ip, internalIP}
|
ips := []net.IP{ip, internalIP}
|
||||||
if err := util.GenerateSelfSignedCert(pub, priv, ips, util.GetAlternateDNS(util.DNSDomain)); err != nil {
|
if err := util.GenerateSelfSignedCert(pub, priv, ips, util.GetAlternateDNS(util.DefaultDNSDomain)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
|
|
@ -16,14 +16,15 @@ limitations under the License.
|
||||||
|
|
||||||
package util
|
package util
|
||||||
|
|
||||||
import "fmt"
|
// These constants are used by both minikube and localkube
|
||||||
|
|
||||||
const (
|
const (
|
||||||
LocalkubeDirectory = "/var/lib/localkube"
|
DefaultLocalkubeDirectory = "/var/lib/localkube"
|
||||||
DNSDomain = "cluster.local"
|
DefaultCertPath = DefaultLocalkubeDirectory + "/certs/"
|
||||||
CertPath = "/var/lib/localkube/certs/"
|
DefaultServiceClusterIP = "10.0.0.1"
|
||||||
|
DefaultDNSDomain = "cluster.local"
|
||||||
|
DefaultDNSIP = "10.0.0.10"
|
||||||
)
|
)
|
||||||
|
|
||||||
func GetAlternateDNS(domain string) []string {
|
func GetAlternateDNS(domain string) []string {
|
||||||
return []string{fmt.Sprintf("%s.%s", "kubernetes.default.svc", domain), "kubernetes.default.svc", "kubernetes.default", "kubernetes"}
|
return []string{"kubernetes.default.svc." + domain, "kubernetes.default.svc", "kubernetes.default", "kubernetes"}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,5 +16,5 @@ limitations under the License.
|
||||||
|
|
||||||
package version
|
package version
|
||||||
|
|
||||||
// The current version of the binary
|
// The current version of the minikube and localkube
|
||||||
const Version = "0.0.5"
|
const Version = "0.0.1-developing"
|
||||||
|
|
4
test.sh
4
test.sh
|
@ -17,8 +17,10 @@
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
REPO_PATH="k8s.io/minikube"
|
REPO_PATH="k8s.io/minikube"
|
||||||
|
PYTHON=${PYTHON:-"docker run --rm -it -v $(pwd):/minikube -w /minikube python python"}
|
||||||
|
|
||||||
# Run "go test" on packages that have test files.
|
# Run "go test" on packages that have test files.
|
||||||
|
echo "Running go tests..."
|
||||||
cd ${GOPATH}/src/${REPO_PATH}
|
cd ${GOPATH}/src/${REPO_PATH}
|
||||||
TESTS=$(go list -f '{{ if .TestGoFiles }} {{.ImportPath}} {{end}}' ./...)
|
TESTS=$(go list -f '{{ if .TestGoFiles }} {{.ImportPath}} {{end}}' ./...)
|
||||||
go test -v ${TESTS}
|
go test -v ${TESTS}
|
||||||
|
@ -35,7 +37,7 @@ echo "Checking boilerplate..."
|
||||||
BOILERPLATEDIR=./hack/boilerplate
|
BOILERPLATEDIR=./hack/boilerplate
|
||||||
# Grep returns a non-zero exit code if we don't match anything, which is good in this case.
|
# Grep returns a non-zero exit code if we don't match anything, which is good in this case.
|
||||||
set +e
|
set +e
|
||||||
files=$(python ${BOILERPLATEDIR}/boilerplate.py --rootdir . --boilerplate-dir ${BOILERPLATEDIR} | grep -v $ignore)
|
files=$(${PYTHON} ${BOILERPLATEDIR}/boilerplate.py --rootdir . --boilerplate-dir ${BOILERPLATEDIR} | grep -v $ignore)
|
||||||
set -e
|
set -e
|
||||||
if [ ! -z ${files} ]; then
|
if [ ! -z ${files} ]; then
|
||||||
echo "Boilerplate missing in: ${files}."
|
echo "Boilerplate missing in: ${files}."
|
||||||
|
|
Loading…
Reference in New Issue