Renaming CI/Packaging things to Fleet (#1556)
This commit is contained in:
+1
-1
@@ -1,2 +1,2 @@
|
||||
*
|
||||
!build/kolide
|
||||
!build/fleet
|
||||
|
||||
+3
-3
@@ -2,8 +2,8 @@ FROM alpine:3.4
|
||||
MAINTAINER Kolide Developers <engineering@kolide.co>
|
||||
|
||||
RUN apk --update add \
|
||||
ca-certificates
|
||||
ca-certificates
|
||||
|
||||
COPY ./build/kolide /kolide
|
||||
COPY ./build/fleet /fleet
|
||||
|
||||
CMD ["/kolide", "serve"]
|
||||
CMD ["/fleet", "serve"]
|
||||
|
||||
@@ -6,7 +6,7 @@ BRANCH = $(shell git rev-parse --abbrev-ref HEAD)
|
||||
REVISION = $(shell git rev-parse HEAD)
|
||||
REVSHORT = $(shell git rev-parse --short HEAD)
|
||||
USER = $(shell whoami)
|
||||
DOCKER_IMAGE_NAME = kolide/kolide
|
||||
DOCKER_IMAGE_NAME = kolide/fleet
|
||||
|
||||
ifneq ($(OS), Windows_NT)
|
||||
# If on macOS, set the shell to bash explicitly
|
||||
@@ -15,14 +15,14 @@ ifneq ($(OS), Windows_NT)
|
||||
endif
|
||||
|
||||
# The output binary name is different on Windows, so we're explicit here
|
||||
OUTPUT = build/kolide
|
||||
OUTPUT = build/fleet
|
||||
|
||||
# To populate version metadata, we use unix tools to get certain data
|
||||
GOVERSION = $(shell go version | awk '{print $$3}')
|
||||
NOW = $(shell date -u +"%Y-%m-%dT%H:%M:%SZ")
|
||||
else
|
||||
# The output binary name is different on Windows, so we're explicit here
|
||||
OUTPUT = build/kolide.exe
|
||||
OUTPUT = build/fleet.exe
|
||||
|
||||
# To populate version metadata, we use windows tools to get the certain data
|
||||
GOVERSION_CMD = "(go version).Split()[2]"
|
||||
@@ -166,9 +166,9 @@ endif
|
||||
|
||||
docker-build-release:
|
||||
docker build -t "${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_TAG}" .
|
||||
docker tag "${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_TAG}" kolide/kolide:latest
|
||||
docker tag "${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_TAG}" kolide/fleet:latest
|
||||
docker push "${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_TAG}"
|
||||
docker push kolide/kolide:latest
|
||||
docker push kolide/fleet:latest
|
||||
|
||||
docker-build-circle:
|
||||
@echo ">> building docker image"
|
||||
|
||||
+3
-3
@@ -25,14 +25,14 @@ dependencies:
|
||||
|
||||
override:
|
||||
# workaround for https://github.com/yarnpkg/yarn/issues/1981
|
||||
- docker run -v $(pwd):/go/src/github.com/kolide/fleet -v /home/ubuntu/.go_workspace/pkg:/go/pkg --entrypoint /usr/bin/yarn kolide/kolide-builder:1.8 add --force node-sass
|
||||
- docker run -v $(pwd):/go/src/github.com/kolide/fleet -v /home/ubuntu/.go_workspace/pkg:/go/pkg -v /home/ubuntu/.ssh/id_circleci_github:/tmp/id_rsa kolide/kolide-builder:1.8 --deps
|
||||
- docker run -v $(pwd):/go/src/github.com/kolide/fleet -v /home/ubuntu/.go_workspace/pkg:/go/pkg --entrypoint /usr/bin/yarn kolide/fleet-builder:1.8 add --force node-sass
|
||||
- docker run -v $(pwd):/go/src/github.com/kolide/fleet -v /home/ubuntu/.go_workspace/pkg:/go/pkg -v /home/ubuntu/.ssh/id_circleci_github:/tmp/id_rsa kolide/fleet-builder:1.8 --deps
|
||||
|
||||
test:
|
||||
override:
|
||||
- docker run -d --name redis redis
|
||||
- docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=toor -e MYSQL_DATABASE=kolide -e MYSQL_USER=kolide -e MYSQL_PASSWORD=kolide mysql:5.7
|
||||
- docker run --link redis:redis --link mysql:mysql -e MYSQL_TEST=true -e REDIS_TEST=true -v $(pwd):/go/src/github.com/kolide/fleet -v /home/ubuntu/.go_workspace/pkg:/go/pkg kolide/kolide-builder:1.8 --build
|
||||
- docker run --link redis:redis --link mysql:mysql -e MYSQL_TEST=true -e REDIS_TEST=true -v $(pwd):/go/src/github.com/kolide/fleet -v /home/ubuntu/.go_workspace/pkg:/go/pkg kolide/fleet-builder:1.8 --build
|
||||
- ./tools/ci/verify-dependencies-docs.sh
|
||||
- docker stop $(docker ps -a -q)
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ start_cloudsql_proxy() {
|
||||
sleep 5
|
||||
}
|
||||
|
||||
# clones kolide_master into kolide_prNum_revshort
|
||||
# clones fleet_master into kolide_prNum_revshort
|
||||
copy_db() {
|
||||
dbname=$1
|
||||
|
||||
@@ -41,17 +41,17 @@ copy_db() {
|
||||
--user=${CLOUDSQL_USER} \
|
||||
-h 127.0.0.1 \
|
||||
--port=3310 \
|
||||
--set-gtid-purged=OFF kolide_master| \
|
||||
--set-gtid-purged=OFF fleet_master| \
|
||||
mysql -p${CLOUDSQL_PASS} \
|
||||
--user=${CLOUDSQL_USER} \
|
||||
-h 127.0.0.1 \
|
||||
--port=3310 $dbname
|
||||
}
|
||||
|
||||
migrate_kolide_db() {
|
||||
migrate_fleet_db() {
|
||||
dbname=$1
|
||||
|
||||
./build/kolide prepare db --no-prompt \
|
||||
./build/fleet prepare db --no-prompt \
|
||||
--mysql_address=127.0.0.1:3310 \
|
||||
--mysql_database=${dbname} \
|
||||
--mysql_username=${CLOUDSQL_USER} \
|
||||
@@ -79,8 +79,8 @@ deploy_pr() {
|
||||
echo "Deployed PR ${CIRCLE_PR_NUMBER}, commit ${CIRCLE_SHA1}" | \
|
||||
$slacktee \
|
||||
-c engineering \
|
||||
--title "${CIRCLE_PR_NUMBER}.kolide.kolide.net" \
|
||||
--link "https://${CIRCLE_PR_NUMBER}.kolide.kolide.net" \
|
||||
--title "${CIRCLE_PR_NUMBER}.fleet.kolide.net" \
|
||||
--link "https://${CIRCLE_PR_NUMBER}.fleet.kolide.net" \
|
||||
-m full \
|
||||
-a good \
|
||||
-p
|
||||
@@ -99,8 +99,8 @@ deploy_branch() {
|
||||
echo "Deployed Branch ${branch}, commit ${CIRCLE_SHA1}" | \
|
||||
$slacktee \
|
||||
-c engineering \
|
||||
--title "${branch}.kolide.kolide.net" \
|
||||
--link "https://${branch}.kolide.kolide.net" \
|
||||
--title "${branch}.fleet.kolide.net" \
|
||||
--link "https://${branch}.fleet.kolide.net" \
|
||||
-m full \
|
||||
-a good \
|
||||
-p
|
||||
@@ -110,13 +110,13 @@ main() {
|
||||
start_cloudsql_proxy
|
||||
|
||||
if [ -z ${CIRCLE_PR_NUMBER} ]; then
|
||||
dbname="kolide_master"
|
||||
migrate_kolide_db "${dbname}"
|
||||
dbname="fleet_master"
|
||||
migrate_fleet_db "${dbname}"
|
||||
deploy_branch "master"
|
||||
else
|
||||
dbname="pr_${CIRCLE_PR_NUMBER}_${REVSHORT}"
|
||||
copy_db "${dbname}"
|
||||
migrate_kolide_db "${dbname}"
|
||||
migrate_fleet_db "${dbname}"
|
||||
deploy_pr
|
||||
fi
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
snapshot="$(date +%s)"
|
||||
aptly repo add kolide /deb
|
||||
aptly snapshot create "${snapshot}" from repo kolide
|
||||
aptly repo add fleet /deb
|
||||
aptly snapshot create "${snapshot}" from repo fleet
|
||||
aptly publish drop jessie
|
||||
aptly publish -gpg-key="000CF27C" --distribution="jessie" snapshot "${snapshot}"
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ Usage: ${base} [args]
|
||||
-D,--deps : Build dependencies
|
||||
-B,--build : Build a release
|
||||
-T,--test : Run 'make test'
|
||||
make [option] : Run any kolide Makefile command
|
||||
make [option] : Run any fleet Makefile command
|
||||
EOUSAGE
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
.PHONY: build fleet-builder push
|
||||
|
||||
GO_VERSION = 1.8
|
||||
|
||||
all: clean build
|
||||
|
||||
build: fleet-builder
|
||||
|
||||
fleet-builder:
|
||||
# copy node-sass artifacts into rootfs
|
||||
cd $(GO_VERSION) && \
|
||||
docker build -t kolide/fleet-builder:$(GO_VERSION) .
|
||||
|
||||
push:
|
||||
docker push kolide/fleet-builder:$(GO_VERSION)
|
||||
|
||||
clean:
|
||||
rm -rf build
|
||||
@@ -7,19 +7,23 @@ Usage: builder.sh [args]
|
||||
```
|
||||
|
||||
### Caching pkg folder
|
||||
|
||||
If you're repeatedly testing the build on a development machine, it makes sense to mount the `$GOPATH/pkg` along with your source.
|
||||
|
||||
```
|
||||
docker run --rm -it -v (pwd):/go/src/github.com/kolide/fleet -v $GOPATH/pkg:/go/pkg kolide-builder -T
|
||||
docker run --rm -it -v (pwd):/go/src/github.com/kolide/fleet -v $GOPATH/pkg:/go/pkg fleet-builder -T
|
||||
```
|
||||
|
||||
The first time the container runs, `go install` will compile all the dependencies under `$GOPATH/pkg/linux_amd64/...` making future test runs faster.
|
||||
|
||||
### Build a binary
|
||||
|
||||
Using the `-B,--build` flag will first run the CI build and then create a linux build in `./build/`.
|
||||
This option is intended to be used followed by `docker build` to build a new release.
|
||||
|
||||
# Building the builder
|
||||
|
||||
use `make` to create a new container and then `make push` to push the builder to Docker Hub
|
||||
|
||||
The Makefile first compiles `node-sass` bindings to work on alpine linux and then builds the `kolide-builder` container with the compiled bindings.
|
||||
The Makefile first compiles `node-sass` bindings to work on alpine linux and then builds the `fleet-builder` container with the compiled bindings.
|
||||
Separating the two steps keeps the build container small, but increases the difficulty of building it.
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
fpm -s dir -t deb --deb-no-default-config-files -n "kolide" -v ${KOLIDE_VERSION} /pkgroot/usr/=/usr
|
||||
fpm -s dir -t deb --deb-no-default-config-files -n "fleet" -v ${KOLIDE_VERSION} /pkgroot/usr/=/usr
|
||||
fpm -s dir -t rpm -n "kolide" -v ${KOLIDE_VERSION} /pkgroot/usr/=/usr
|
||||
mv kolide* /out
|
||||
mv fleet* /out
|
||||
|
||||
# sign packages
|
||||
rpmVersion="$(echo ${KOLIDE_VERSION}|sed 's/-/_/g')"
|
||||
rpm --addsign "/out/kolide-${rpmVersion}-1.x86_64.rpm"
|
||||
debsigs --sign=origin -k 000CF27C "/out/kolide_${KOLIDE_VERSION}_amd64.deb"
|
||||
rpm --addsign "/out/fleet-${rpmVersion}-1.x86_64.rpm"
|
||||
debsigs --sign=origin -k 000CF27C "/out/fleet_${KOLIDE_VERSION}_amd64.deb"
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
.PHONY: build kolide-builder push
|
||||
|
||||
GO_VERSION = 1.8
|
||||
|
||||
all: clean build
|
||||
|
||||
build: kolide-builder
|
||||
|
||||
kolide-builder:
|
||||
# copy node-sass artifacts into rootfs
|
||||
cd $(GO_VERSION) && \
|
||||
docker build -t kolide/kolide-builder:$(GO_VERSION) .
|
||||
|
||||
push:
|
||||
docker push kolide/kolide-builder:$(GO_VERSION)
|
||||
|
||||
clean:
|
||||
rm -rf build
|
||||
@@ -27,7 +27,7 @@ curl_binary() {
|
||||
fi
|
||||
}
|
||||
|
||||
docker_pull "kolide_builder" "kolide/kolide-builder:1.8"
|
||||
docker_pull "fleet_builder" "kolide/fleet-builder:1.8"
|
||||
docker_pull "redis" "redis"
|
||||
docker_pull "mysql" "mysql:5.7"
|
||||
docker_pull "fpm" "kolide/fpm"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
# Kolide {{ .Name }} branch
|
||||
name: kolide-{{ .Name }}
|
||||
# Fleet {{ .Name }} branch
|
||||
name: fleet-{{ .Name }}
|
||||
spec:
|
||||
replicas: 1
|
||||
strategy:
|
||||
@@ -13,13 +13,13 @@ spec:
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: kolide-{{ .Name }}
|
||||
app: fleet-{{ .Name }}
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: kolide-hub
|
||||
containers:
|
||||
- name: kolide-{{ .Name }}
|
||||
image: kolide/kolide:{{ .RevShort }}
|
||||
- name: fleet-{{ .Name }}
|
||||
image: kolide/fleet:{{ .RevShort }}
|
||||
imagePullPolicy: Always
|
||||
resources:
|
||||
requests:
|
||||
@@ -29,7 +29,7 @@ spec:
|
||||
cpu: 500m
|
||||
memory: 500Mi
|
||||
command:
|
||||
- "/kolide"
|
||||
- "/fleet"
|
||||
- "serve"
|
||||
env:
|
||||
- name: KOLIDE_MYSQL_USERNAME
|
||||
@@ -45,9 +45,9 @@ spec:
|
||||
name: cloudsql.cloudmaster
|
||||
key: password
|
||||
- name: KOLIDE_MYSQL_DATABASE
|
||||
value: kolide_{{ .Name }}
|
||||
value: fleet_{{ .Name }}
|
||||
- name: KOLIDE_REDIS_ADDRESS
|
||||
value: redis-kolide-{{ .Name }}:6379
|
||||
value: redis-fleet-{{ .Name }}:6379
|
||||
- name: KOLIDE_AUTH_JWT_KEY
|
||||
value: changeme_fake_jwt_key
|
||||
ports:
|
||||
|
||||
@@ -6,8 +6,8 @@ metadata:
|
||||
prometheus.io/path: "/metrics"
|
||||
prometheus.io/port: "8080"
|
||||
labels:
|
||||
app: kolide-{{ .Name }}
|
||||
name: {{ .Name }}-kolide-kolide-net
|
||||
app: fleet-{{ .Name }}
|
||||
name: {{ .Name }}-fleet-kolide-net
|
||||
namespace: default
|
||||
spec:
|
||||
ports:
|
||||
@@ -15,5 +15,5 @@ spec:
|
||||
protocol: TCP
|
||||
targetPort: 8080
|
||||
selector:
|
||||
app: kolide-{{ .Name }}
|
||||
app: fleet-{{ .Name }}
|
||||
sessionAffinity: None
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
# Kolide pr-{{ .Number }} branch
|
||||
name: kolide-pr-{{ .Number }}
|
||||
# Fleet pr-{{ .Number }} branch
|
||||
name: fleet-pr-{{ .Number }}
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: kolide-pr-{{ .Number }}
|
||||
app: fleet-pr-{{ .Number }}
|
||||
strategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
@@ -16,13 +16,13 @@ spec:
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: kolide-pr-{{ .Number }}
|
||||
app: fleet-pr-{{ .Number }}
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: kolide-hub
|
||||
containers:
|
||||
- name: kolide-pr-{{ .Number }}
|
||||
image: kolide/kolide:dev-{{ .Number }}-{{ .RevShort }}
|
||||
- name: fleet-pr-{{ .Number }}
|
||||
image: kolide/fleet:dev-{{ .Number }}-{{ .RevShort }}
|
||||
imagePullPolicy: Always
|
||||
resources:
|
||||
requests:
|
||||
@@ -32,7 +32,7 @@ spec:
|
||||
cpu: 500m
|
||||
memory: 500Mi
|
||||
command:
|
||||
- "/kolide"
|
||||
- "/fleet"
|
||||
- "serve"
|
||||
env:
|
||||
- name: KOLIDE_MYSQL_USERNAME
|
||||
@@ -50,7 +50,7 @@ spec:
|
||||
- name: KOLIDE_MYSQL_DATABASE
|
||||
value: pr_{{ .Number }}_{{ .RevShort }}
|
||||
- name: KOLIDE_REDIS_ADDRESS
|
||||
value: redis-kolide-pr-{{ .Number }}:6379
|
||||
value: redis-fleet-pr-{{ .Number }}:6379
|
||||
- name: KOLIDE_AUTH_JWT_KEY
|
||||
value: changeme_fake_jwt_key
|
||||
ports:
|
||||
|
||||
@@ -6,8 +6,8 @@ metadata:
|
||||
prometheus.io/path: "/metrics"
|
||||
prometheus.io/port: "8080"
|
||||
labels:
|
||||
app: kolide-pr-{{ .Number }}
|
||||
name: zzzzz{{ .Number }}-kolide-kolide-net
|
||||
app: fleet-pr-{{ .Number }}
|
||||
name: zzzzz{{ .Number }}-fleet-kolide-net
|
||||
namespace: default
|
||||
spec:
|
||||
ports:
|
||||
@@ -15,5 +15,5 @@ spec:
|
||||
protocol: TCP
|
||||
targetPort: 8080
|
||||
selector:
|
||||
app: kolide-pr-{{ .Number }}
|
||||
app: fleet-pr-{{ .Number }}
|
||||
sessionAffinity: None
|
||||
|
||||
@@ -2,14 +2,14 @@ apiVersion: extensions/v1beta1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
name: redis-kolide-pr-{{ .Number }}
|
||||
name: redis-kolide-pr-{{ .Number }}
|
||||
name: redis-fleet-pr-{{ .Number }}
|
||||
name: redis-fleet-pr-{{ .Number }}
|
||||
spec:
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: redis-kolide-pr-{{ .Number }}
|
||||
app: redis-fleet-pr-{{ .Number }}
|
||||
spec:
|
||||
containers:
|
||||
- name: redis
|
||||
|
||||
@@ -2,14 +2,14 @@ apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app: redis-kolide-pr-{{ .Number }}
|
||||
name: redis-kolide-pr-{{ .Number }}
|
||||
app: redis-fleet-pr-{{ .Number }}
|
||||
name: redis-fleet-pr-{{ .Number }}
|
||||
spec:
|
||||
ports:
|
||||
- port: 6379
|
||||
protocol: TCP
|
||||
targetPort: 6379
|
||||
selector:
|
||||
app: redis-kolide-pr-{{ .Number }}
|
||||
app: redis-fleet-pr-{{ .Number }}
|
||||
sessionAffinity: None
|
||||
|
||||
|
||||
Reference in New Issue
Block a user