Compare commits

...

63 Commits

Author SHA1 Message Date
Yuxing Deng
cd955243b6 dep(kube-explorer): Bump steve
Rebase to rancher v2.8.0 baseline
Upgrade ke-steve to ke/v0.4
Upgrade DASHBOARD UI version to v2.8.0
2024-01-05 15:00:39 +08:00
Yuxing Deng
2b39db9f07 fix(ci): Fix multi-arch build problem
Added build linux/arm64 binary to default ci
2023-11-15 16:30:57 +08:00
Yuxing Deng
4dc1acb1f2 feat(ci): Improve drone pipeline configuration
- Separate push and tag pipeline
- Use buildx to build and push multi-arch image
2023-11-15 16:09:58 +08:00
Yuxing Deng
989d087b99 No need to run hack_fs
As the embed fs packaged all files.
And bump upx version.
2023-11-13 16:29:48 +08:00
Yuxing Deng
c214e6ba6a Add windows amd64 support
Bump steve customized logic to fix serving embed assets problem
2023-11-13 15:46:03 +08:00
Yuxing Deng
390b11caef Bump steve
And upgrade builder image to v1.21.
2023-11-10 15:24:31 +08:00
niusmallnan
e016261c4b Bump steve and dashboard 2023-07-14 13:36:54 +08:00
niusmallnan
c43288964a Bump dashboard 2023-07-13 15:20:20 +08:00
niusmallnan
70e586976d Bump dashboard 2023-07-13 12:16:04 +08:00
niusmallnan
d0ce0e28bf Bump dashboard 2023-07-13 10:46:03 +08:00
niusmallnan
ad0a0c0cb3 Bump steve and dashboard for v2.7.5 2023-07-13 09:02:30 +08:00
niusmallnan
651d499086 Bumo bci 15.5 2023-07-11 11:35:10 +08:00
niusmallnan
8e592b1a3c Bump steve and dashboard for Rancher v2.7.2 2023-04-18 12:20:04 +08:00
niusmallnan
c1f5fda228 [CI SKIP] Update README for basic auth 2023-04-11 11:07:14 +08:00
niusmallnan
10e5323c95 [CI SKIP] Use ingress v1 for nginx-ingress basic auth demo 2023-04-10 17:18:22 +08:00
niusmallnan
ea49f9d3b4 [CI SKIP] Add basic-auth manifests for traefik v2 2023-04-10 17:09:30 +08:00
niusmallnan
b0b81ba87d [CI SKIP] switch to sslip.io for ingress demos 2023-04-10 16:20:43 +08:00
niusmallnan
e757347def Disable compress for darwin releases 2023-04-04 09:08:50 +08:00
niusmallnan
f4970b85a2 Bump steve and dashboard for Rancher v2.7.1 2023-03-20 15:13:04 +08:00
niusmallnan
bfae192748 Use --scanners instead of --security-checks 2023-03-20 11:24:18 +08:00
niusmallnan
3810cd702f Bump upx 4.0.2 2023-03-20 11:23:47 +08:00
niusmallnan
f898c559e0 Bump steve and dashboard 2022-12-20 15:16:25 +08:00
niusmallnan
f0effa7f09 Bump upx 4.0.1 2022-12-20 15:12:34 +08:00
niusmallnan
2838ceb34a Add image scan pipeline in drone 2022-12-09 09:29:18 +08:00
niusmallnan
40a972eeef Use BCI minimal image 2022-12-09 08:59:34 +08:00
niusmallnan
88c924a816 Use BCI image 2022-12-09 08:51:39 +08:00
niusmallnan
d24282849f Bump dashboard v2.6.9-kube-explorer-ui-rc2 2022-11-15 13:47:25 +08:00
niusmallnan
92aaca7407 Bump steve and dashboard based on Rancher v2.6.9 2022-10-19 11:58:11 +08:00
niusmallnan
c278dbb810 Bump golang 1.19 2022-10-19 11:57:10 +08:00
niusmallnan
5c2ecdfb97 Bump dashboard v2.6.9-rc4 [CI SKIP] 2022-10-12 15:58:46 +08:00
bagechashu
ecf6faba80 fix: text incorrect at deploy use kubectl
fix text incorrect
2022-10-07 13:24:45 +08:00
niusmallnan
a89b9b46bf Bump dashboard v2.6.9-rc1 [CI SKIP] 2022-09-26 11:10:32 +08:00
niusmallnan
30c0ceef73 Bump dashboard v2.6.8 2022-08-30 17:37:39 +08:00
Yuxing Deng
f6536c289e Update Dockerfile.dapper
Using `$GOPATH` instead of static path `/go`
2022-08-25 15:55:51 +08:00
niusmallnan
5347d02990 Bump dashboard 2022-08-22 13:27:48 +08:00
niusmallnan
663e8d7682 Bump steve [CI SKIP] 2022-08-19 17:30:07 +08:00
niusmallnan
dd8291f9e3 Bump steve and dashboard based on Rancher v2.6.7 2022-08-19 17:13:15 +08:00
niusmallnan
55e5418bd0 Support darwin arm64 binary [CI SKIP] 2022-08-10 10:45:56 +08:00
niusmallnan
7c3f7b5401 Bump steve to clean up resources created by kubectl shell [CI SKIP] 2022-08-09 09:34:39 +08:00
niusmallnan
98ae5fe7c9 Bump ui v2.6.7-rc5-kube-explorer-ui-rc2 [CI SKIP] 2022-08-04 14:50:49 +08:00
niusmallnan
f91c8df6e2 Bump steve and dashboard 2022-08-03 09:54:03 +08:00
niusmallnan
6344c0767a Bump steve to support --insecure-skip-tls-verify like kubectl 2022-07-22 16:49:05 +08:00
niusmallnan
bbb5db5fb5 Update drone CI [CI SKIP] 2022-05-24 12:04:11 +08:00
niusmallnan
a81fc996c9 Bump ui v2.6.5-kube-explorer-ui-rc1 [CI SKIP] 2022-05-17 14:34:58 +08:00
niusmallnan
a0c6f0edb7 Bump ui v2.6.5-kube-explorer-ui-rc1 [CI SKIP] 2022-05-07 14:37:46 +08:00
niusmallnan
e986d891ef Bump steve based on rancher 2.6.5-rc8 2022-05-07 14:12:57 +08:00
niusmallnan
0857f01c77 Bump steve for formatting cluster display name by strings.Title 2022-02-09 16:35:17 +08:00
niusmallnan
ec1152aba1 UPX is not required 2022-02-09 16:28:35 +08:00
niusmallnan
5846ee6155 Bump steve for formatting cluster display name 2022-02-09 16:06:19 +08:00
niusmallnan
3e9b2fe7f5 Update readme [CI SKIP] 2022-02-08 17:59:10 +08:00
niusmallnan
c4e05aa13d Add GIF record [CI SKIP] 2022-02-07 14:35:15 +08:00
niusmallnan
ae72fa4141 Enable tags in drone ci triggers [CI SKIP] 2022-01-21 17:32:52 +08:00
niusmallnan
3cfd0e2a32 Bump ui v2.6.3-kube-explorer-ui-rc2 2022-01-21 17:20:12 +08:00
niusmallnan
179d7aa95e Enable drone CI 2022-01-21 16:05:02 +08:00
niusmallnan
c29a7505b2 Bump golangci-lint 2022-01-21 14:58:25 +08:00
niusmallnan
71ace76cf7 Bump steve 2021-12-24 15:51:50 +08:00
niusmallnan
57d6d420b8 Bump ke dashboard 2.6.3-rc1 2021-12-24 15:16:16 +08:00
niusmallnan
b46ddc4c8e Bump dashboard 2021-11-15 20:05:01 +08:00
niusmallnan
b5200596f9 Update README 2021-10-15 13:37:09 +08:00
niusmallnan
a90dd6cafc Update README 2021-10-15 13:30:58 +08:00
niusmallnan
b227ab5257 Bump dashboard and steve 2021-10-15 13:16:59 +08:00
niusmallnan
db3c9e207d Bump dashboard 2021-09-07 17:17:18 +08:00
niusmallnan
ac0ab3d84c Bump dashboard 2021-09-06 16:08:34 +08:00
21 changed files with 381 additions and 121 deletions

165
.drone.yml Normal file
View File

@@ -0,0 +1,165 @@
type: docker
kind: pipeline
name: push
platform:
os: linux
arch: amd64
trigger:
event:
exclude:
- promote
include:
- push
- pull_request
volumes:
- name: docker
host:
path: /var/run/docker.sock
node:
instance: agent-amd64
steps:
- name: build
image: rancher/dapper:v0.6.0
commands:
- dapper ci
environment:
CROSS: "${DRONE_BUILD_EVENT}"
privileged: true
volumes:
- name: docker
path: /var/run/docker.sock
- name: image-scan-head
image: aquasec/trivy
commands:
- trivy image --no-progress --ignore-unfixed --severity HIGH,CRITICAL --scanners vuln --exit-code 1 cnrancher/kube-explorer:${DRONE_COMMIT:0:7}
volumes:
- name: docker
path: /var/run/docker.sock
when:
event:
- push
ref:
include:
- "refs/heads/main"
- "refs/heads/v*"
- name: install-buildx-support
image: tonistiigi/binfmt
privileged: true
entrypoint:
- /usr/bin/binfmt
command:
- --install
- all
when:
event:
- push
ref:
include:
- "refs/heads/main"
- "refs/heads/v*"
- name: docker-publish
image: thegeeklab/drone-docker-buildx
privileged: true
settings:
platforms: linux/amd64,linux/arm64/v8
dockerfile: package/Dockerfile
repo: cnrancher/kube-explorer
tag: latest
username:
from_secret: docker_username
password:
from_secret: docker_password
volumes:
- name: docker
path: /var/run/docker.sock
when:
event:
- push
ref:
include:
- "refs/heads/main"
- "refs/heads/v*"
---
type: docker
kind: pipeline
name: tag
platform:
os: linux
arch: amd64
trigger:
event:
exclude:
- promote
include:
- tag
ref:
include:
- "refs/tags/*"
volumes:
- name: docker
host:
path: /var/run/docker.sock
node:
instance: agent-amd64
steps:
- name: release
image: rancher/dapper:v0.6.0
commands:
- dapper ci
privileged: true
environment:
CROSS: "${DRONE_BUILD_EVENT}"
volumes:
- name: docker
path: /var/run/docker.sock
- name: install-buildx-support
image: tonistiigi/binfmt
privileged: true
entrypoint:
- /usr/bin/binfmt
command:
- --install
- all
- name: docker-publish
image: thegeeklab/drone-docker-buildx
privileged: true
settings:
platforms: linux/amd64,linux/arm64/v8
dockerfile: package/Dockerfile
repo: cnrancher/kube-explorer
tag: ${DRONE_TAG}
username:
from_secret: docker_username
password:
from_secret: docker_password
volumes:
- name: docker
path: /var/run/docker.sock
- name: github_binary_release
image: plugins/github-release
settings:
api_key:
from_secret: github_token
checksum:
- sha256
files:
- "bin/*"
title: "${DRONE_TAG}"
overwrite: true

2
.gitignore vendored
View File

@@ -19,3 +19,5 @@
/dist /dist
/build /build
*.swp *.swp
/.vscode

View File

@@ -1,30 +1,28 @@
FROM golang:1.16 FROM registry.suse.com/bci/golang:1.21
ARG PROXY
ARG GOPROXY
ARG DAPPER_HOST_ARCH ARG DAPPER_HOST_ARCH
ENV HOST_ARCH=${DAPPER_HOST_ARCH} ARCH=${DAPPER_HOST_ARCH} ENV HOST_ARCH=${DAPPER_HOST_ARCH} ARCH=${DAPPER_HOST_ARCH}
ENV https_proxy=${PROXY} \
http_proxy=${PROXY}
RUN apt-get update && \ RUN zypper -n install ca-certificates git-core wget curl unzip tar vim less file xz
apt-get install -y ca-certificates git wget curl xz-utils && \ RUN zypper install -y -f docker
rm -f /bin/sh && ln -s /bin/bash /bin/sh && \
curl -sL https://github.com/upx/upx/releases/download/v3.96/upx-3.96-${ARCH}_linux.tar.xz | tar xvJf - --strip-components=1 -C /tmp && \ ENV UPX_VERSION 4.2.1
RUN curl -sL https://github.com/upx/upx/releases/download/v${UPX_VERSION}/upx-${UPX_VERSION}-${ARCH}_linux.tar.xz | tar xvJf - --strip-components=1 -C /tmp && \
mv /tmp/upx /usr/bin/ mv /tmp/upx /usr/bin/
RUN if [ "${ARCH}" == "amd64" ]; then \ RUN if [ "${ARCH}" == "amd64" ]; then \
curl -sL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s v1.27.0; \ curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s v1.54.2; \
fi fi
ENV DOCKER_URL_amd64=https://get.docker.com/builds/Linux/x86_64/docker-1.10.3 \ ENV GIT_COMMIT="dafd3fc3b06454bb1b6a2cea68c561bb57482deb" \
DOCKER_URL_arm=https://github.com/rancher/docker/releases/download/v1.10.3-ros1/docker-1.10.3_arm \ GIT_BRANCH="ke/v0.4" \
DOCKER_URL_arm64=https://github.com/rancher/docker/releases/download/v1.10.3-ros1/docker-1.10.3_arm64 \ GIT_SOURCE=${GOPATH}/src/github.com/rancher/steve \
DOCKER_URL=DOCKER_URL_${ARCH} CATTLE_DASHBOARD_UI_VERSION="v2.8.0-kube-explorer-ui-rc3"
RUN wget -O - ${!DOCKER_URL} > /usr/bin/docker && chmod +x /usr/bin/docker
ENV GIT_COMMIT="68b9d2e74a0ab2053ae2a0a50e1476db96653225" \ ENV DAPPER_ENV REPO TAG DRONE_TAG CROSS GOPROXY
GIT_BRANCH="ke/v0.2" \
GIT_SOURCE="/go/src/github.com/rancher/steve" \
CATTLE_DASHBOARD_UI_VERSION=v2.6.0-rc5-kube-explorer-ui-rc2
ENV DAPPER_ENV REPO TAG DRONE_TAG CROSS
ENV DAPPER_SOURCE /opt/kube-explorer ENV DAPPER_SOURCE /opt/kube-explorer
ENV DAPPER_OUTPUT ./bin ./dist ENV DAPPER_OUTPUT ./bin ./dist
ENV DAPPER_DOCKER_SOCKET true ENV DAPPER_DOCKER_SOCKET true

View File

@@ -1,12 +1,12 @@
# kube-explorer # kube-explorer
kube-explorer is portable explorer for Kubernetes, without any dependency. kube-explorer is a portable explorer for Kubernetes without any dependency.
It integrates the Rancher steve framework and its dashboard, and is recompiled, packaged, compressed, and provides an almost completely stateless Kubernetes resource manager. It integrates the Rancher steve framework and its dashboard, and is recompiled, packaged, compressed, and provides an almost completely stateless Kubernetes resource manager.
## Usage ✅ ## Usage ✅
Please download the binary from the [release page](https://github.com/niusmallnan/kube-explorer/releases). Please download the binary from the [release page](https://github.com/cnrancher/kube-explorer/releases).
To run an HTTP only server: To run an HTTP only server:
@@ -15,3 +15,27 @@ To run an HTTP only server:
``` ```
Then, open the browser to visit http://x.x.x.x:9898 . Then, open the browser to visit http://x.x.x.x:9898 .
![](docs/assets/kube-explorer-record.gif)
## Build ✅
To debug on an AMD64 Linux host:
```
make dev
# $basedir=/opt/ui/dist/
# prepare the file trees like this
# $basedir/dashboard/
# $basedir/index.html
# good to go!
./kube-explorer --debug --ui-path /opt/ui/dist/ --http-listen-port=9898 --https-listen-port=0
```
To build all cross-platform binaries:
```
CROSS=1 make
```

12
deploy/kubectl/README.md Normal file
View File

@@ -0,0 +1,12 @@
## Access Control Via Basic Auth
Deploy the kube-explorer workload:
```
kubectl create -f .
```
Configure for different IngressClass:
- [Nginx Ingress](./nginx-auth)
- [Traefik Ingress](./traefik-v2-auth)

View File

@@ -18,7 +18,7 @@ spec:
spec: spec:
serviceAccountName: kube-explorer serviceAccountName: kube-explorer
containers: containers:
- image: niusmallnan/kube-explorer - image: cnrancher/kube-explorer
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
name: kube-explorer name: kube-explorer
ports: ports:

View File

@@ -1,4 +1,4 @@
## Traefik Auth ## Ingress-Nginx Basic Auth
This can be used in the cluster which uses the nginx-ingress. This can be used in the cluster which uses the nginx-ingress.
@@ -13,9 +13,9 @@ htpasswd -nb username password | base64
To install this mode, just run this script: To install this mode, just run this script:
``` ```
kubectl apply -f ./secret.yaml kubectl create -f ./secret.yaml
export MY_XIP_IO=$(curl -sL ipinfo.io/ip) export MY_IP=$(curl -sL ipinfo.io/ip)
envsubst < ./ingress.yaml.tpl | kubectl apply -f - envsubst < ./ingress.yaml.tpl | kubectl create -f -
``` ```
For more infos: https://kubernetes.github.io/ingress-nginx/examples/auth/basic/ For more infos: https://kubernetes.github.io/ingress-nginx/examples/auth/basic/

View File

@@ -1,8 +1,8 @@
# Note: please replace the host first # Note: please replace the host first
# To use xip.io: http://xip.io/ # To use sslip.io: https://sslip.io/
# To get your public IP: curl ipinfo.io/ip # To get your public IP: curl ipinfo.io/ip
apiVersion: networking.k8s.io/v1beta1 apiVersion: networking.k8s.io/v1
kind: Ingress kind: Ingress
metadata: metadata:
name: kube-explorer name: kube-explorer
@@ -10,16 +10,18 @@ metadata:
labels: labels:
app: kube-explorer app: kube-explorer
annotations: annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/auth-type: basic nginx.ingress.kubernetes.io/auth-type: basic
nginx.ingress.kubernetes.io/auth-secret: kube-explorer nginx.ingress.kubernetes.io/auth-secret: kube-explorer
nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - kube-explorer' nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - kube-explorer'
spec: spec:
rules: rules:
- host: "${MY_XIP_IO}.xip.io" - host: "${MY_IP}.sslip.io"
http: http:
paths: paths:
- path: / - path: /
pathType: Prefix
backend: backend:
serviceName: kube-explorer service:
servicePort: 8989 name: kube-explorer
port:
number: 8989

View File

@@ -13,9 +13,9 @@ htpasswd -nb username password | base64
To install this mode, just run this script: To install this mode, just run this script:
``` ```
kubectl apply -f ./secret.yaml kubectl create -f ./secret.yaml
export MY_XIP_IO=$(curl -sL ipinfo.io/ip) export MY_IP=$(curl -sL ipinfo.io/ip)
envsubst < ./ingress.yaml.tpl | kubectl apply -f - envsubst < ./ingress.yaml.tpl | kubectl create -f -
``` ```
For more infos: https://doc.traefik.io/traefik/v1.7/configuration/backends/kubernetes/ For more infos: https://doc.traefik.io/traefik/v1.7/configuration/backends/kubernetes/

View File

@@ -1,5 +1,5 @@
# Note: please replace the host first # Note: please replace the host first
# To use xip.io: http://xip.io/ # To use sslip.io: https://sslip.io/
# To get your public IP: curl ipinfo.io/ip # To get your public IP: curl ipinfo.io/ip
apiVersion: networking.k8s.io/v1beta1 apiVersion: networking.k8s.io/v1beta1
@@ -16,7 +16,7 @@ metadata:
ingress.kubernetes.io/auth-remove-header: "true" ingress.kubernetes.io/auth-remove-header: "true"
spec: spec:
rules: rules:
- host: "${MY_XIP_IO}.xip.io" - host: "${MY_IP}.sslip.io"
http: http:
paths: paths:
- path: / - path: /

View File

@@ -0,0 +1,21 @@
## Traefik Auth
This can be used in K3s, as K3s use traefik as the default ingress class.
We use `basic-auth` to control the access of kube-explorer. The auth token is stored in the secret.
The default user is `niusmallnan`, and password is `dagedddd`. You can replace to another value with `htpasswd` tool.
```
htpasswd -nb username password | base64
```
To install this mode, just run this script:
```
kubectl create -f ./middleware.yaml
export MY_IP=$(curl -sL ipinfo.io/ip)
envsubst < ./ingress.yaml.tpl | kubectl create -f -
```
For more infos: https://doc.traefik.io/traefik/middlewares/http/basicauth/

View File

@@ -0,0 +1,25 @@
# Note: please replace the host first
# To use sslip.io.io: https://sslip.io.io/
# To get your public IP: curl ipinfo.io/ip
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: kube-explorer
namespace: kube-system
labels:
app: kube-explorer
annotations:
traefik.ingress.kubernetes.io/router.middlewares: kube-system-kube-explorer@kubernetescrd
spec:
rules:
- host: "${MY_IP}.sslip.io"
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: kube-explorer
port:
number: 8989

View File

@@ -0,0 +1,28 @@
# The definitions below require the definitions for the Middleware and IngressRoute kinds.
# https://doc.traefik.io/traefik/reference/dynamic-configuration/kubernetes-crd/#definitions
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: kube-explorer
namespace: kube-system
labels:
app: kube-explorer
spec:
basicAuth:
secret: kube-explorer
removeHeader: true
---
# To create an encoded user:password pair, the following command can be used:
# htpasswd -nb user password | base64
apiVersion: v1
kind: Secret
metadata:
name: kube-explorer
namespace: kube-system
labels:
app: kube-explorer
data:
auth: bml1c21hbGxuYW46JGFwcjEkbDdUZjJOdWskbmNXajYubHYvMGNkcXM0NFoyelVQLgoK
type: Opaque

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 KiB

View File

@@ -1,6 +1,7 @@
FROM alpine:3.13 FROM registry.suse.com/bci/bci-minimal:15.5
ARG TARGETARCH
COPY kube-explorer entrypoint.sh /usr/bin/ ARG TARGETOS
# Hack to make golang do files,dns search order ENV ARCH=${TARGETARCH:-"amd64"} OS=${TARGETOS:-"linux"}
ENV LOCALDOMAIN="" COPY package/entrypoint.sh /usr/bin/
COPY bin/kube-explorer-${OS}-${ARCH} /usr/bin/kube-explorer
ENTRYPOINT ["entrypoint.sh"] ENTRYPOINT ["entrypoint.sh"]

View File

@@ -4,7 +4,8 @@ set -e
source $(dirname $0)/version source $(dirname $0)/version
OS_ARCH_ARG_LINUX="amd64 arm arm64" OS_ARCH_ARG_LINUX="amd64 arm arm64"
OS_ARCH_ARG_DARWIN="amd64" OS_ARCH_ARG_DARWIN="amd64 arm64"
OS_ARCH_ARG_WINDOWS="amd64"
LD_INJECT_VALUES="-X github.com/rancher/steve/pkg/version.Version=$VERSION LD_INJECT_VALUES="-X github.com/rancher/steve/pkg/version.Version=$VERSION
-X github.com/rancher/steve/pkg/version.GitCommit=$COMMIT" -X github.com/rancher/steve/pkg/version.GitCommit=$COMMIT"
@@ -13,34 +14,66 @@ LD_INJECT_VALUES="-X github.com/rancher/steve/pkg/version.Version=$VERSION
pushd $GIT_SOURCE pushd $GIT_SOURCE
if [ -n "$CROSS" ]; then case "$CROSS" in
for ARCH in ${OS_ARCH_ARG_LINUX}; do "push")
OUTPUT_BIN="bin/kube-explorer-linux-$ARCH" for ARCH in ${OS_ARCH_ARG_LINUX}; do
echo "Building binary for linux/$ARCH..." OUTPUT_BIN="bin/kube-explorer-linux-$ARCH"
GOARCH=$ARCH GOOS=linux CGO_ENABLED=0 go build -tags embed \ echo "Building binary for linux/$ARCH..."
-ldflags \ GOARCH=$ARCH GOOS=linux CGO_ENABLED=0 go build -tags embed \
"$LD_INJECT_VALUES $LINKFLAGS" \ -ldflags \
-o ${OUTPUT_BIN} "$LD_INJECT_VALUES $LINKFLAGS" \
done -o ${OUTPUT_BIN}
done
;;
"tag")
for ARCH in ${OS_ARCH_ARG_LINUX}; do
OUTPUT_BIN="bin/kube-explorer-linux-$ARCH"
echo "Building binary for linux/$ARCH..."
GOARCH=$ARCH GOOS=linux CGO_ENABLED=0 go build -tags embed \
-ldflags \
"$LD_INJECT_VALUES $LINKFLAGS" \
-o ${OUTPUT_BIN}
done
for ARCH in ${OS_ARCH_ARG_DARWIN}; do for ARCH in ${OS_ARCH_ARG_DARWIN}; do
OUTPUT_BIN="bin/kube-explorer-darwin-$ARCH" OUTPUT_BIN="bin/kube-explorer-darwin-$ARCH"
echo "Building binary for darwin/$ARCH..." echo "Building binary for darwin/$ARCH..."
GOARCH=$ARCH GOOS=darwin CGO_ENABLED=0 go build -tags embed \ GOARCH=$ARCH GOOS=darwin CGO_ENABLED=0 go build -tags embed \
-ldflags \ -ldflags \
"$LD_INJECT_VALUES" \ "$LD_INJECT_VALUES" \
-o ${OUTPUT_BIN} -o ${OUTPUT_BIN}
done done
else
# only build one for current platform for ARCH in ${OS_ARCH_ARG_WINDOWS}; do
CGO_ENABLED=0 go build -tags embed \ OUTPUT_BIN="bin/kube-explorer-windows-$ARCH.exe"
-ldflags \ echo "Building binary for windows/$ARCH..."
"$LD_INJECT_VALUES $LINKFLAGS" \ GOARCH=$ARCH GOOS=windows CGO_ENABLED=0 go build -tags embed \
-o bin/kube-explorer -ldflags \
fi "$LD_INJECT_VALUES" \
-o ${OUTPUT_BIN}
done
;;
*)
# only build one for current platform
CGO_ENABLED=0 go build -tags embed \
-ldflags \
"$LD_INJECT_VALUES $LINKFLAGS" \
-o "bin/kube-explorer-$(uname | tr '[:upper:]' '[:lower:]')-${ARCH}"
;;
esac
mkdir -p $DAPPER_SOURCE/bin
for f in $(ls ./bin/); do for f in $(ls ./bin/); do
upx -o $DAPPER_SOURCE/bin/$f bin/$f if [[ $f != *darwin* ]]; then
upx -o $DAPPER_SOURCE/bin/$f bin/$f || true
fi
if [ -f $DAPPER_SOURCE/bin/$f ]; then
echo "UPX done!"
else
echo "Copy origin file as UPX failed!!!"
cp bin/$f $DAPPER_SOURCE/bin/$f
fi
done done
popd popd

View File

@@ -4,15 +4,14 @@ mkdir -p $(dirname $GIT_SOURCE)
pushd $(dirname $GIT_SOURCE) pushd $(dirname $GIT_SOURCE)
git clone --depth=1 --branch ${GIT_BRANCH} https://github.com/niusmallnan/steve.git git clone --depth=1 --branch ${GIT_BRANCH} https://github.com/orangedeng/ke-steve.git steve
cd steve cd steve
git reset --hard ${GIT_COMMIT} git reset --hard ${GIT_COMMIT}
mkdir -p pkg/ui/ui/dashboard mkdir -p pkg/ui/ui/dashboard
cd pkg/ui/ui/dashboard cd pkg/ui/ui/dashboard
curl -sL https://rancher-dashboard-ui.s3.ap-southeast-2.amazonaws.com/release-2.6-cn/kube-explorer-ui/${CATTLE_DASHBOARD_UI_VERSION}.tar.gz | tar xvzf - --strip-components=2 curl -sL https://pandaria-dashboard-ui.s3.ap-southeast-2.amazonaws.com/release-2.8-cn/kube-explorer-ui/${CATTLE_DASHBOARD_UI_VERSION}.tar.gz | tar xvzf - --strip-components=2
cp index.html ../index.html cp index.html ../index.html
popd popd
$(dirname $0)/hack_fs $GIT_SOURCE/pkg/ui/ui/

View File

@@ -1,42 +0,0 @@
#!/bin/bash
set -ex
#
# find . -type f -name "_*"
#
function hack_files() {
for f in $(find $1 -type f -name "_*"); do
name=$(basename $f)
updir=$(dirname $f)
new_path=$updir/${name:1}
echo "move $f $new_path"
mv $f $new_path
done
}
#
# find . -type d -name "_*"
#
function hack_dirs() {
for d in $(find $1 -mindepth 1 -maxdepth 1 -type d); do
if [[ ! -d $d ]]; then
continue
fi
name=$(basename $d)
if [[ ${name:0:1} == "_" ]]; then
updir=$(dirname $d)
new_path=$updir/${name:1}
echo "move $d $new_path"
mv $d $new_path
hack_dirs $new_path
continue
fi
hack_dirs $d
done
}
pushd $1
hack_files .
hack_dirs .
popd

View File

@@ -5,14 +5,6 @@ source $(dirname $0)/version
pushd $DAPPER_SOURCE pushd $DAPPER_SOURCE
if [ -f bin/kube-explorer-linux-${ARCH} ]; then docker build -f package/Dockerfile -t cnrancher/kube-explorer:$VERSION .
# For cross mode
cp bin/kube-explorer-linux-${ARCH} package/kube-explorer
else
# For common mode
cp bin/kube-explorer package/
fi
cd package
docker build -f Dockerfile -t niusmallnan/kube-explorer:$VERSION .
popd popd