diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..5937da64 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +config/dnsconfig/ +data/ \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 1261d8a8..8d915775 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,36 +1,26 @@ #first stage - builder - -FROM golang:latest as builder - -COPY . /app +FROM gravitl/builder as builder WORKDIR /app -ENV GO111MODULE=auto - -RUN GOARCH=amd64 CGO_ENABLED=1 GOOS=linux go build -ldflags="-w -s" -o app main.go - -WORKDIR /app/netclient +COPY . . ENV GO111MODULE=auto -RUN GOARCH=amd64 CGO_ENABLED=0 GOOS=linux go build -ldflags="-w -s" -o netclient main.go - -#second stage - -FROM debian:latest - -RUN apt-get update && apt-get -y install systemd procps +RUN GOOS=linux GOARCH=amd64 CGO_ENABLED=1 /usr/local/go/bin/go build -ldflags="-w -s" -o netmaker main.go +FROM alpine:3.13.6 +# add a c lib +RUN apk add gcompat iptables +# set the working directory WORKDIR /root/ -COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ +RUN mkdir -p /etc/netclient/config -COPY --from=builder /app . +COPY --from=builder /app/netmaker . COPY --from=builder /app/config config -COPY --from=builder /app/netclient netclient EXPOSE 8081 EXPOSE 50051 -CMD ["./app"] +ENTRYPOINT ["./netmaker"] diff --git a/docker/Dockerfile-full b/docker/Dockerfile-full new file mode 100644 index 00000000..1261d8a8 --- /dev/null +++ b/docker/Dockerfile-full @@ -0,0 +1,36 @@ +#first stage - builder + +FROM golang:latest as builder + +COPY . /app + +WORKDIR /app + +ENV GO111MODULE=auto + +RUN GOARCH=amd64 CGO_ENABLED=1 GOOS=linux go build -ldflags="-w -s" -o app main.go + +WORKDIR /app/netclient + +ENV GO111MODULE=auto + +RUN GOARCH=amd64 CGO_ENABLED=0 GOOS=linux go build -ldflags="-w -s" -o netclient main.go + +#second stage + +FROM debian:latest + +RUN apt-get update && apt-get -y install systemd procps + +WORKDIR /root/ + +COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ + +COPY --from=builder /app . +COPY --from=builder /app/config config +COPY --from=builder /app/netclient netclient + +EXPOSE 8081 +EXPOSE 50051 + +CMD ["./app"] diff --git a/docker/Dockerfile-netclient b/docker/Dockerfile-netclient index c8fa9233..1dcf8f09 100644 --- a/docker/Dockerfile-netclient +++ b/docker/Dockerfile-netclient @@ -1,26 +1,22 @@ -#first stage - builder +FROM gravitl/builder:latest as builder +# add glib support daemon manager +WORKDIR /app -FROM golang:latest as builder - -COPY . /app - -WORKDIR /app/netclient +COPY . . ENV GO111MODULE=auto -RUN CGO_ENABLED=0 GOOS=linux go build -o netclient main.go +RUN GOOS=linux GOARCH=amd64 CGO_ENABLED=0 /usr/local/go/bin/go build -ldflags="-w -s" -o netclient-app netclient/main.go -#second stage - -FROM debian:latest - -RUN apt-get update && apt-get -y install systemd procps +FROM alpine:3.13.6 +RUN apk add gcompat iptables && mkdir -p /etc/netclient +# set the working directory WORKDIR /root/ -COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ +COPY --from=builder /app/netclient-app /etc/netclient/netclient +COPY --from=builder /app/scripts/netclient.sh . -COPY --from=builder /app/netclient/netclient . - -CMD ["./netclient"] +RUN chmod 0755 /etc/netclient/netclient && chmod 0755 netclient.sh +ENTRYPOINT ["./netclient.sh"] diff --git a/docker/Dockerfile-netclient-full b/docker/Dockerfile-netclient-full new file mode 100644 index 00000000..c8fa9233 --- /dev/null +++ b/docker/Dockerfile-netclient-full @@ -0,0 +1,26 @@ +#first stage - builder + +FROM golang:latest as builder + +COPY . /app + +WORKDIR /app/netclient + +ENV GO111MODULE=auto + +RUN CGO_ENABLED=0 GOOS=linux go build -o netclient main.go + +#second stage + +FROM debian:latest + +RUN apt-get update && apt-get -y install systemd procps + +WORKDIR /root/ + +COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ + +COPY --from=builder /app/netclient/netclient . + +CMD ["./netclient"] + diff --git a/docker/Dockerfile-netclient-slim-solo b/docker/Dockerfile-netclient-slim-solo deleted file mode 100644 index 5fe3c834..00000000 --- a/docker/Dockerfile-netclient-slim-solo +++ /dev/null @@ -1,22 +0,0 @@ -FROM gravitl/builder:latest as builder -# add glib support daemon manager -WORKDIR /app - -COPY . . - -ENV GO111MODULE=auto - -RUN GOOS=linux GOARCH=amd64 CGO_ENABLED=0 /usr/local/go/bin/go build -ldflags="-w -s" -o netclient-app netclient/main.go - -FROM alpine:3.13.6 - -RUN apk add gcompat iptables && mkdir -p /etc/netclient -# set the working directory -WORKDIR /root/ - -COPY --from=builder /app/netclient-app /etc/netclient/netclient -COPY --from=builder /app/scripts/netclient.sh . - -RUN chmod 0755 /etc/netclient/netclient && chmod 0755 netclient.sh - -ENTRYPOINT ["./netclient.sh"] \ No newline at end of file diff --git a/docker/Dockerfile-netmaker-slim-solo b/docker/Dockerfile-netmaker-slim-solo deleted file mode 100644 index 03f120dd..00000000 --- a/docker/Dockerfile-netmaker-slim-solo +++ /dev/null @@ -1,26 +0,0 @@ -FROM gravitl/builder:latest as builder -# add glib support daemon manager -WORKDIR /app - -COPY . . - -ENV GO111MODULE=auto - -RUN GOOS=linux GOARCH=amd64 CGO_ENABLED=1 /usr/local/go/bin/go build -ldflags="-w -s" -o netmaker main.go - -FROM alpine:3.13.6 - -RUN apk add gcompat -# set the working directory -WORKDIR /root/ - -COPY --from=builder /app/netmaker . -COPY --from=builder /app/config . - -RUN mkdir -p config/dnsconfig -RUN touch config/dnsconfig/Corefile && touch config/dnsconfig/netmaker.hosts - -EXPOSE 8081 -EXPOSE 50051 - -ENTRYPOINT ["./netmaker"] diff --git a/netclient/command/commands.go b/netclient/command/commands.go index ceb59f32..c0d99e4e 100644 --- a/netclient/command/commands.go +++ b/netclient/command/commands.go @@ -3,9 +3,10 @@ package command import ( "log" "os" + "strconv" "strings" "time" - "strconv" + nodepb "github.com/gravitl/netmaker/grpc" "github.com/gravitl/netmaker/netclient/config" "github.com/gravitl/netmaker/netclient/daemon" @@ -67,14 +68,14 @@ func getWindowsInterval() int { return interval } netint, err := strconv.Atoi(cfg.Server.CheckinInterval) - if err == nil && netint != 0 { + if err == nil && netint != 0 { interval = netint } return interval } func RunUserspaceDaemon() { - + cfg := config.ClientConfig{ Network: "all", } @@ -110,7 +111,9 @@ func CheckIn(cfg config.ClientConfig) error { if err != nil { ncutils.PrintLog("error checking in for "+network+" network: "+err.Error(), 1) } else { - ncutils.PrintLog("checked in successfully for "+network, 1) + if cfg.Node.IsServer != "yes" { + ncutils.PrintLog("checked in successfully for "+network, 1) + } } } if len(networks) == 0 { diff --git a/serverctl/serverctl.go b/serverctl/serverctl.go index 257495af..ef5f94c0 100644 --- a/serverctl/serverctl.go +++ b/serverctl/serverctl.go @@ -101,7 +101,7 @@ func InitServerNetclient() error { if os.IsNotExist(err) { os.MkdirAll(netclientDir+"/config", 744) } else if err != nil { - log.Println("could not find or create", netclientDir) + log.Println("[netmaker] could not find or create", netclientDir) return err } return nil @@ -119,14 +119,14 @@ func HandleContainedClient() error { log.SetFlags(log.Flags() &^ (log.Llongfile | log.Lshortfile)) err := SyncNetworks(servernets) if err != nil && servercfg.GetVerbose() >= 1 { - log.Printf("[server netclient] error syncing networks %s \n", err) + log.Printf("[netmaker] error syncing networks %s \n", err) } err = nccommand.CheckIn(config.ClientConfig{Network: "all"}) if err != nil && servercfg.GetVerbose() >= 1 { - log.Printf("[server netclient] error occurred %s \n", err) + log.Printf("[netmaker] error occurred %s \n", err) } if servercfg.GetVerbose() >= 3 { - log.Println("[server netclient]", "completed a checkin call") + log.Println("[netmaker]", "completed a checkin call") } } return nil @@ -152,7 +152,9 @@ func SyncNetworks(servernets []models.Network) error { if err == nil { err = errors.New("network add failed for " + servernet.NetID) } - log.Printf("[server] error adding network %s during sync %s \n", servernet.NetID, err) + if servercfg.GetVerbose() >= 1 { + log.Printf("[netmaker] error adding network %s during sync %s \n", servernet.NetID, err) + } } } } @@ -170,7 +172,7 @@ func SyncNetworks(servernets []models.Network) error { if err == nil { err = errors.New("network delete failed for " + localnet) } - log.Printf("[server] error removing network %s during sync %s \n", localnet, err) + log.Printf("[netmaker] error removing network %s during sync %s \n", localnet, err) } } } @@ -184,9 +186,10 @@ func AddNetwork(network string) (bool, error) { Node: models.Node{ Network: network, IsServer: "yes", + DNSOn: "no", Name: models.NODE_SERVER_NAME, }, }, "") - log.Println("Server added to network " + network) + log.Println("[netmaker] Server added to network " + network) return true, err }