18 commits
+
+
+* [`33c7d72`](https://github.com/talos-systems/theila/commit/33c7d72822aa6b7431744396c9f16f4df63ac2a5) release(v0.1.0-alpha.0): prepare release
+* [`7bde4c8`](https://github.com/talos-systems/theila/commit/7bde4c8c6e16c197578cbb4e037a05d50194958f) fix: cobra command was initialized but not actually used
+* [`04624c9`](https://github.com/talos-systems/theila/commit/04624c95cec587ae0b0d8888d95d484ef8d98cfa) feat: support getting Talos and Kubernetes client configs for a cluster
+* [`219b9c8`](https://github.com/talos-systems/theila/commit/219b9c8663fe03af65796b0b6299cff5e66b3efc) feat: implement notifications component
+* [`f8b19a0`](https://github.com/talos-systems/theila/commit/f8b19a0585e6e19c0e7da4e4afad5bbd264e0029) feat: decouple watch list from the view
+* [`2f8c96e`](https://github.com/talos-systems/theila/commit/2f8c96e44012e7bd0db9869eeb90ab48ff41e162) feat: implement appearance settings modal window
+* [`de745d6`](https://github.com/talos-systems/theila/commit/de745d6b7170a9c509cc835a8b675a1c788e80f4) feat: implement Talos runtime backend
+* [`af69a0d`](https://github.com/talos-systems/theila/commit/af69a0d58906a86974bc7dbec2c09ca9f78b152f) feat: support getting Kubernetes resource through gRPC gateway
+* [`2c50010`](https://github.com/talos-systems/theila/commit/2c50010b0d9f7b168354fedd698600d94123c354) feat: implement breadcrumbs component, add support for table header
+* [`3fc1e80`](https://github.com/talos-systems/theila/commit/3fc1e808875f6f502cd2657c4548dd886fbf465d) feat: implement nodes view
+* [`961e93a`](https://github.com/talos-systems/theila/commit/961e93a4af430eaa9efcd1e2922af8072fe4cf85) feat: implement clusters view
+* [`e8248ff`](https://github.com/talos-systems/theila/commit/e8248ffab89633cae8834631e39cf4dce5e4147a) feat: use plain zap instead of SugaredLogger everywhere
+* [`81ba93d`](https://github.com/talos-systems/theila/commit/81ba93dffdc37efdde06557a1c63511a7d61b2f2) chore: generate websocket protocol messages using protobuf
+* [`37a878d`](https://github.com/talos-systems/theila/commit/37a878dd396b650df8afaf6730f9afe52d35569c) feat: make JS websocket reconnect on connection loss
+* [`23b3281`](https://github.com/talos-systems/theila/commit/23b3281f8880800a9084e1c8a74617fcf966c846) feat: use dynamic watcher to allow listing any kinds of resources
+* [`16475f5`](https://github.com/talos-systems/theila/commit/16475f51cc9651736213b36c57381b24dcabdc62) feat: implement real time update server on top of web sockets
+* [`76b39ae`](https://github.com/talos-systems/theila/commit/76b39ae563d9f09ecac3451389e3d260abdad48d) feat: create hello world Vue app using Kres
+* [`baab493`](https://github.com/talos-systems/theila/commit/baab493f155cbd78c2e8af6ce45268c40ef6aeed) Initial commit
+
+
+
+### Dependency Changes
+
+This release has no dependency changes
+
diff --git a/Dockerfile b/Dockerfile
index 7304d6a..5f774e3 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -2,7 +2,7 @@
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
#
-# Generated on 2021-05-20T11:44:59Z by kres 2cb907a-dirty.
+# Generated on 2021-05-21T14:46:38Z by kres c09e0bc-dirty.
ARG JS_TOOLCHAIN
ARG TOOLCHAIN
@@ -24,8 +24,9 @@ RUN npm i -g markdownlint-cli@0.23.2
RUN npm i sentences-per-line@0.2.1
WORKDIR /src
COPY .markdownlint.json .
+COPY ./CHANGELOG.md ./CHANGELOG.md
COPY ./README.md ./README.md
-RUN markdownlint --ignore "**/node_modules/**" --ignore '**/hack/chglog/**' --rules /node_modules/sentences-per-line/index.js .
+RUN markdownlint --ignore "CHANGELOG.md" --ignore "**/node_modules/**" --ignore '**/hack/chglog/**' --rules /node_modules/sentences-per-line/index.js .
# collects proto specs
FROM scratch AS proto-specs
@@ -175,20 +176,68 @@ FROM base AS unit-tests-run
ARG TESTPKGS
RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/go/pkg --mount=type=cache,target=/tmp go test -v -covermode=atomic -coverprofile=coverage.txt -coverpkg=${TESTPKGS} -count 1 ${TESTPKGS}
-# builds theila
-FROM base AS theila-build
+# builds theila-darwin-amd64
+FROM base AS theila-darwin-amd64-build
COPY --from=generate / /
WORKDIR /src/cmd/theila
-RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/go/pkg go build -ldflags "-s -w" -o /theila
+RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/go/pkg GOOS=darwin GOARCH=amd64 go build -ldflags "-s -w" -o /theila-darwin-amd64
+
+# builds theila-darwin-arm64
+FROM base AS theila-darwin-arm64-build
+COPY --from=generate / /
+WORKDIR /src/cmd/theila
+RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/go/pkg GOARCH=arm64 GOOS=darwin go build -ldflags "-s -w" -o /theila-darwin-arm64
+
+# builds theila-linux-amd64
+FROM base AS theila-linux-amd64-build
+COPY --from=generate / /
+WORKDIR /src/cmd/theila
+RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/go/pkg GOOS=linux GOARCH=amd64 go build -ldflags "-s -w" -o /theila-linux-amd64
+
+# builds theila-linux-arm64
+FROM base AS theila-linux-arm64-build
+COPY --from=generate / /
+WORKDIR /src/cmd/theila
+RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/go/pkg GOOS=linux GOARCH=arm64 go build -ldflags "-s -w" -o /theila-linux-arm64
+
+# builds theila-linux-armv7
+FROM base AS theila-linux-armv7-build
+COPY --from=generate / /
+WORKDIR /src/cmd/theila
+RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/go/pkg GOOS=linux GOARCH=arm GOARM=7 go build -ldflags "-s -w" -o /theila-linux-armv7
+
+# builds theila-windows-amd64.exe
+FROM base AS theila-windows-amd64.exe-build
+COPY --from=generate / /
+WORKDIR /src/cmd/theila
+RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/go/pkg GOOS=windows GOARCH=amd64 go build -ldflags "-s -w" -o /theila-windows-amd64.exe
FROM scratch AS unit-tests
COPY --from=unit-tests-run /src/coverage.txt /coverage.txt
-FROM scratch AS theila
-COPY --from=theila-build /theila /theila
+FROM scratch AS theila-darwin-amd64
+COPY --from=theila-darwin-amd64-build /theila-darwin-amd64 /theila-darwin-amd64
+
+FROM scratch AS theila-darwin-arm64
+COPY --from=theila-darwin-arm64-build /theila-darwin-arm64 /theila-darwin-arm64
+
+FROM scratch AS theila-linux-amd64
+COPY --from=theila-linux-amd64-build /theila-linux-amd64 /theila-linux-amd64
+
+FROM scratch AS theila-linux-arm64
+COPY --from=theila-linux-arm64-build /theila-linux-arm64 /theila-linux-arm64
+
+FROM scratch AS theila-linux-armv7
+COPY --from=theila-linux-armv7-build /theila-linux-armv7 /theila-linux-armv7
+
+FROM scratch AS theila-windows-amd64.exe
+COPY --from=theila-windows-amd64.exe-build /theila-windows-amd64.exe /theila-windows-amd64.exe
+
+FROM theila-linux-${TARGETARCH} AS theila
FROM scratch AS image-theila
-COPY --from=theila / /
+ARG TARGETARCH
+COPY --from=theila theila-linux-${TARGETARCH} /theila
COPY --from=image-fhs / /
COPY --from=image-ca-certificates / /
LABEL org.opencontainers.image.source https://github.com/talos-systems/theila
diff --git a/Makefile b/Makefile
index f1a7ffa..cee1a99 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
#
-# Generated on 2021-04-30T17:29:57Z by kres 392fdcb-dirty.
+# Generated on 2021-05-21T14:44:23Z by kres c09e0bc-dirty.
# common variables
@@ -15,7 +15,7 @@ PROTOBUF_TS_VERSION ?= 1.79.2
PROTOBUF_GRPC_GATEWAY_TS_VERSION ?= 1.1.0
TESTPKGS ?= ./...
GOFUMPT_VERSION ?= abc0db2c416aca0f60ea33c23c76665f6e7ba0b6
-GO_VERSION ?= 1.14
+GO_VERSION ?= 1.16
PROTOBUF_GO_VERSION ?= 1.25.0
GRPC_GO_VERSION ?= 1.1.0
GRPC_GATEWAY_VERSION ?= 2.4.0
@@ -147,12 +147,50 @@ unit-tests-race: ## Performs unit tests with race detection enabled.
coverage: ## Upload coverage data to codecov.io.
bash -c "bash <(curl -s https://codecov.io/bash) -f $(ARTIFACTS)/coverage.txt -X fix"
-.PHONY: $(ARTIFACTS)/theila
-$(ARTIFACTS)/theila:
- @$(MAKE) local-theila DEST=$(ARTIFACTS)
+.PHONY: $(ARTIFACTS)/theila-darwin-amd64
+$(ARTIFACTS)/theila-darwin-amd64:
+ @$(MAKE) local-theila-darwin-amd64 DEST=$(ARTIFACTS)
+
+.PHONY: theila-darwin-amd64
+theila-darwin-amd64: $(ARTIFACTS)/theila-darwin-amd64 ## Builds executable for theila-darwin-amd64.
+
+.PHONY: $(ARTIFACTS)/theila-darwin-arm64
+$(ARTIFACTS)/theila-darwin-arm64:
+ @$(MAKE) local-theila-darwin-arm64 DEST=$(ARTIFACTS)
+
+.PHONY: theila-darwin-arm64
+theila-darwin-arm64: $(ARTIFACTS)/theila-darwin-arm64 ## Builds executable for theila-darwin-arm64.
+
+.PHONY: $(ARTIFACTS)/theila-linux-amd64
+$(ARTIFACTS)/theila-linux-amd64:
+ @$(MAKE) local-theila-linux-amd64 DEST=$(ARTIFACTS)
+
+.PHONY: theila-linux-amd64
+theila-linux-amd64: $(ARTIFACTS)/theila-linux-amd64 ## Builds executable for theila-linux-amd64.
+
+.PHONY: $(ARTIFACTS)/theila-linux-arm64
+$(ARTIFACTS)/theila-linux-arm64:
+ @$(MAKE) local-theila-linux-arm64 DEST=$(ARTIFACTS)
+
+.PHONY: theila-linux-arm64
+theila-linux-arm64: $(ARTIFACTS)/theila-linux-arm64 ## Builds executable for theila-linux-arm64.
+
+.PHONY: $(ARTIFACTS)/theila-linux-armv7
+$(ARTIFACTS)/theila-linux-armv7:
+ @$(MAKE) local-theila-linux-armv7 DEST=$(ARTIFACTS)
+
+.PHONY: theila-linux-armv7
+theila-linux-armv7: $(ARTIFACTS)/theila-linux-armv7 ## Builds executable for theila-linux-armv7.
+
+.PHONY: $(ARTIFACTS)/theila-windows-amd64.exe
+$(ARTIFACTS)/theila-windows-amd64.exe:
+ @$(MAKE) local-theila-windows-amd64.exe DEST=$(ARTIFACTS)
+
+.PHONY: theila-windows-amd64.exe
+theila-windows-amd64.exe: $(ARTIFACTS)/theila-windows-amd64.exe ## Builds executable for theila-windows-amd64.exe.
.PHONY: theila
-theila: $(ARTIFACTS)/theila ## Builds executable for theila.
+theila: theila-darwin-amd64 theila-darwin-arm64 theila-linux-amd64 theila-linux-arm64 theila-linux-armv7 theila-windows-amd64.exe
.PHONY: lint-markdown
lint-markdown: ## Runs markdownlint.
@@ -175,3 +213,8 @@ help: ## This help menu.
@echo "$$HELP_MENU_HEADER"
@grep -E '^[a-zA-Z%_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
+.PHONY: release-notes
+release-notes:
+ mkdir -p $(ARTIFACTS)
+ @ARTIFACTS=$(ARTIFACTS) ./hack/release.sh $@ $(ARTIFACTS)/RELEASE_NOTES.md $(TAG)
+
diff --git a/hack/release.sh b/hack/release.sh
index df92c08..8df0c2c 100755
--- a/hack/release.sh
+++ b/hack/release.sh
@@ -2,16 +2,23 @@
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
#
-# Generated on 2020-08-29T13:20:33Z by kres latest.
+# Generated on 2021-05-20T15:00:42Z by kres adb52e5-dirty.
+#!/bin/bash
+
set -e
+RELEASE_TOOL_IMAGE="ghcr.io/talos-systems/release-tool:latest"
+
+function release-tool {
+ docker pull "${RELEASE_TOOL_IMAGE}" >/dev/null
+ docker run --rm -w /src -v "${PWD}":/src:ro "${RELEASE_TOOL_IMAGE}" -l -d -n -t "${1}" ./hack/release.toml
+}
+
function changelog {
if [ "$#" -eq 1 ]; then
- git-chglog --output CHANGELOG.md -c ./hack/git-chglog/config.yaml --tag-filter-pattern "^${1}" "${1}.0-alpha.0.."
- elif [ "$#" -eq 0 ]; then
- git-chglog --output CHANGELOG.md -c ./hack/git-chglog/config.yaml
+ (release-tool ${1}; echo; cat CHANGELOG.md) > CHANGELOG.md- && mv CHANGELOG.md- CHANGELOG.md
else
echo 1>&2 "Usage: $0 changelog [tag]"
exit 1
@@ -19,7 +26,7 @@ function changelog {
}
function release-notes {
- git-chglog --output ${1} -c ./hack/git-chglog/config.yaml "${2}"
+ release-tool "${2}" > "${1}"
}
function cherry-pick {
@@ -51,9 +58,10 @@ then
else
cat <