Kubernetes Dashboard ืืื ืืื ืงื ืืฉืืืืฉ ืืงืืืช ืืืืข ืขืืื ื ืขื ืืืฉืืื ืืจืฅ ืฉืื ืื ืืืืื ืืืื ืืืื ืืืืฅ. ืืชื ืืชืืื ืืืขืจืื ืืช ืื ืืคืืื ืืืชืจ ืืืฉืจ ืืืฉื ืืืืืืืช ืืืื ื ืืืฆื ืื ืจืง ืขื ืืื ืื ืืืื/ืืื ืืกื DevOps, ืืื ืื ืขื ืืื ืืื ืฉืคืืืช ืจืืืืื ืืงืื ืกืืื ื/ืื ืื ืืชืืืื ืื ืืืชืืืื ืขื ืื ืืืืจืืืืืืช ืฉื ืืื ืืจืืงืฆืื ืขื kubectl ื ืืื ืขืืจ ืืืจืื. ืื ืงืจื ืืฆืื ื: ืืืคืชืืื ืจืฆื ืืืฉื ืืืืจื ืืืืฉืง ืืืื ืืจื ื ืฉื Kubernetes, ืืืืืืื ืฉืื ื ืืฉืชืืฉืื ื-GitLab, ืืคืชืจืื ืื ืืืืคื ืืืขื.
ืืื ืื?
ืืคืชืืื ืืฉืืจืื ืขืฉืืืื ืืืชืขื ืืื ืืืื ืืื K8s Dashboard ืขืืืจ ืืฉืืืืช ื ืืคืื ืืืืื. ืืคืขืืื ืืชื ืจืืฆื ืืืฆืื ืืืื ืื ืืืฉืืืื, ืืืคืขืืื ืืืจืื ืคืืืื, ืืฉื ืืช ืืช ืงื ื ืืืืื ืฉื Deployments/StatefulSets, ืืืคืืื ืืืืช ืืงืื ืกืืืช ืืงืื ืืืื ืจ (ืืฉ ืื ืืงืฉืืช ืฉืขืืืจื, ืขื ืืืช, ืืฉ ืืจื ืืืจืช - ืืืฉื, ืืจื
ืื ืืกืฃ, ืืฉ ืจืืข ืคืกืืืืืืื ืืื ืืืื ืฉืื ืื ืจืืฆืื ืืืกืชืื ืขื ืืืฉืืื - ืืจืืืช ืฉ"ืืื ืืจืืง", ืืืื ืืืจืืืข ืืช ืขืฆืื ืฉ"ืืื ืขืืื" (ืื ืฉืืืืื ืืืื ืืืกื... ืืื ืื ืืขืืจ ืืชืืื ืืืืืจ).
ืืืขืจืืช CI ืกืื ืืจืืืช ืืฉ ืื ื
ืืฆืืื ืื ืฉืื ื ืืฉืชืืฉืื ื-NGINX Ingress. ืื ืืชื ืขืืื ืขื ืืืจืื
ืื ืกื ืืื ืืืจืฆืื
ืืชืงื ืช ืืื ืืืืื ืื
ืชืฉืืืช ืื: ืื ืืชื ืืชืืืื ืืืืืจ ืขื ืืฉืืืื ืฉืืืื, ืื - ืืื ืืื ืืข ืคืขืืืืช ืืืืชืจืืช - ืงืจื ืชืืืื ืืืืชืจืช ืืืฉื ื ืืืื.
ืืืืืื ืฉืื ื ืืฉืชืืฉืื ืืืื ืืืจืฆืื ืื ืืืชืงื ืืช ืจืืืช, ืืืฆืขื ื ืืช ืืืชืงื ื ืฉืื ืืืืืืืืช. ืืืงืืจืืช ืืืจืืฉืื ืืื ืืชืคืจืกืืื ื
ืืกืงืจืืคื ืืชืงืื ืืช Dashboard ืืืฉืืื ืืืืืืจ ืืืชื ืืืื ืืืจืฆืื ืขื GitLab:
$ ./ctl.sh
Usage: ctl.sh [OPTION]... --gitlab-url GITLAB_URL --oauth2-id ID --oauth2-secret SECRET --dashboard-url DASHBOARD_URL
Install kubernetes-dashboard to Kubernetes cluster.
Mandatory arguments:
-i, --install install into 'kube-system' namespace
-u, --upgrade upgrade existing installation, will reuse password and host names
-d, --delete remove everything, including the namespace
--gitlab-url set gitlab url with schema (https://gitlab.example.com)
--oauth2-id set OAUTH2_PROXY_CLIENT_ID from gitlab
--oauth2-secret set OAUTH2_PROXY_CLIENT_SECRET from gitlab
--dashboard-url set dashboard url without schema (dashboard.example.com)
Optional arguments:
-h, --help output this message
ืขื ืืืช, ืืคื ื ืืฉืืืืฉ ืื, ืขืืื ืืขืืืจ ืื GitLab: ืืืืจ ื ืืืื โ ืืืฉืืืื - ืืืืืกืืฃ ืืคืืืงืฆืื ืืืฉื ืืคืื ื ืืขืชืืื. ืืืื ื ืงืจื ืืื "ืืื ืืืืืื ืื ืฉื kubernetes":
ืืชืืฆืื ืืืืกืคืชื, GitLab ืชืกืคืง ืืช ื-hashs:
ืื ืืื ืืืฉืืฉืื ืืืืขืื ืื ืืชืกืจืื. ืืชืืฆืื ืืื, ืืืชืงื ื ื ืจืืืช ืื:
$ ./ctl.sh -i --gitlab-url https://gitlab.example.com --oauth2-id 6a52769eโฆ --oauth2-secret 6b79168fโฆ --dashboard-url dashboard.example.com
ืืืืจ ืืื, ืืื ื ืืืืง ืฉืืื ืืชืืื:
$ kubectl -n kube-system get pod | egrep '(dash|oauth)'
kubernetes-dashboard-76b55bc9f8-xpncp 1/1 Running 0 14s
oauth2-proxy-5586ccf95c-czp2v 1/1 Running 0 14s
ืขื ืืืช, ืืืืงืื ืื ืืืืืืจ ืืื ืืชืืื ืืืจืฉืื ืื ืชืคืขื ืืืืคื ืืืืื! ืืขืืืื ืืื ืฉืืชืืื ื ืฉืื ื ืขืฉื ืฉืืืืฉ (ืืืฆื ืืชืืื ืืช ืืืจืืช ืืืื) ืชืืืื ืชืคืืกืช ืืืคื ืื ืืืชืงืฉืจืืช ืืืืจืช ืืืืฉื ืืฆืืจื ืื ื ืืื ื. ื ืกืืืืช ืืื ืืืืืืืช ืืื ืฉ-oauth ืืืืงืช ืืช ืืขืืืื ืฉ-oauth ืขืฆืื ืืกืคืงืช ืื ื...
ืืืขืื ื ืคืชืจืช ืขื ืืื ืื ืืืช ืชืืื ืช oauth ืืฉืื ืขื ืชืืงืื.
ืชืงื OAuth ืืืชืงื ืืืืฉ
ืืฉื ืื, ื ืฉืชืืฉ ื- Dockerfile ืืื:
FROM golang:1.9-alpine3.7
WORKDIR /go/src/github.com/bitly/oauth2_proxy
RUN apk --update add make git build-base curl bash ca-certificates wget
&& update-ca-certificates
&& curl -sSO https://raw.githubusercontent.com/pote/gpm/v1.4.0/bin/gpm
&& chmod +x gpm
&& mv gpm /usr/local/bin
RUN git clone https://github.com/bitly/oauth2_proxy.git .
&& git checkout bfda078caa55958cc37dcba39e57fc37f6a3c842
ADD rd.patch .
RUN patch -p1 < rd.patch
&& ./dist.sh
FROM alpine:3.7
RUN apk --update add curl bash ca-certificates && update-ca-certificates
COPY --from=0 /go/src/github.com/bitly/oauth2_proxy/dist/ /bin/
EXPOSE 8080 4180
ENTRYPOINT [ "/bin/oauth2_proxy" ]
CMD [ "--upstream=http://0.0.0.0:8080/", "--http-address=0.0.0.0:4180" ]
ืืืื ื ืจืื ืืชืืงืื ืฉื rd.patch ืขืฆืื
diff --git a/dist.sh b/dist.sh
index a00318b..92990d4 100755
--- a/dist.sh
+++ b/dist.sh
@@ -14,25 +14,13 @@ goversion=$(go version | awk '{print $3}')
sha256sum=()
echo "... running tests"
-./test.sh
+#./test.sh
-for os in windows linux darwin; do
- echo "... building v$version for $os/$arch"
- EXT=
- if [ $os = windows ]; then
- EXT=".exe"
- fi
- BUILD=$(mktemp -d ${TMPDIR:-/tmp}/oauth2_proxy.XXXXXX)
- TARGET="oauth2_proxy-$version.$os-$arch.$goversion"
- FILENAME="oauth2_proxy-$version.$os-$arch$EXT"
- GOOS=$os GOARCH=$arch CGO_ENABLED=0
- go build -ldflags="-s -w" -o $BUILD/$TARGET/$FILENAME || exit 1
- pushd $BUILD/$TARGET
- sha256sum+=("$(shasum -a 256 $FILENAME || exit 1)")
- cd .. && tar czvf $TARGET.tar.gz $TARGET
- mv $TARGET.tar.gz $DIR/dist
- popd
-done
+os='linux'
+echo "... building v$version for $os/$arch"
+TARGET="oauth2_proxy-$version.$os-$arch.$goversion"
+GOOS=$os GOARCH=$arch CGO_ENABLED=0
+ go build -ldflags="-s -w" -o ./dist/oauth2_proxy || exit 1
checksum_file="sha256sum.txt"
cd $DIR/dists
diff --git a/oauthproxy.go b/oauthproxy.go
index 21e5dfc..df9101a 100644
--- a/oauthproxy.go
+++ b/oauthproxy.go
@@ -381,7 +381,9 @@ func (p *OAuthProxy) SignInPage(rw http.ResponseWriter, req *http.Request, code
if redirect_url == p.SignInPath {
redirect_url = "/"
}
-
+ if req.FormValue("rd") != "" {
+ redirect_url = req.FormValue("rd")
+ }
t := struct {
ProviderName string
SignInMessage string
ืขืืฉืื ืืชื ืืืื ืืื ืืช ืืช ืืชืืื ื ืืืืืืฃ ืืืชื ืืชืื GitLab ืฉืื ื. ืืื ืคื ืืื manifests/kube-dashboard-oauth2-proxy.yaml
ืฆืืื ืืช ืืฉืืืืฉ ืืชืืื ื ืืจืฆืืื (ืืืืฃ ืืืชื ืืชืืื ื ืฉืื):
image: docker.io/colemickens/oauth2_proxy:latest
ืื ืืฉ ืื ืจืืฉืื ืฉื ืกืืจ ืืืจืฉืื, ืื ืชืฉืื ืืืืกืืฃ ืืช ืืฉืืืืฉ ืืกืื ืืืฉืืื ืฉื ืชืืื ืืช:
imagePullSecrets:
- name: gitlab-registry
... ืืืืกืืคื ืืช ืืกืื ืขืฆืื ืขืืืจ ืืจืืฉืื:
---
apiVersion: v1
data:
.dockercfg: eyJyZWdpc3RyeS5jb21wYW55LmNvbSI6IHsKICJ1c2VybmFtZSI6ICJvYXV0aDIiLAogInBhc3N3b3JkIjogIlBBU1NXT1JEIiwKICJhdXRoIjogIkFVVEhfVE9LRU4iLAogImVtYWlsIjogIm1haWxAY29tcGFueS5jb20iCn0KfQoK
=
kind: Secret
metadata:
annotations:
name: gitlab-registry
namespace: kube-system
type: kubernetes.io/dockercfg
ืืงืืจื ืืงืฉืื ืืจืื ืฉืืืืจืืืช ืืืจืืื ืืืขืื ืืื base64 ืืืชืฆืืจื:
{"registry.company.com": {
"username": "oauth2",
"password": "PASSWORD",
"auth": "AUTH_TOKEN",
"email": "[email protected]"
}
}
ืืื ื ืชืื ื ืืืฉืชืืฉ ื-GitLab, ืงืื Kubernetes ืืืฉืื ืืช ืืชืืื ื ืืืจืืฉืื.
ืืืืจ ืฉืืื ื ืขืฉื, ืืชื ืืืื ืืืกืืจ ืืช ืืชืงื ืช ืืื ืืืืืื ืื ืื ืืืืืช (ืฉืื ืขืืืืช ืืืืื) ืขื ืืคืงืืื:
$ ./ctl.sh -d
... ืืืืชืงืื ืืื ืฉืื:
$ ./ctl.sh -i --gitlab-url https://gitlab.example.com --oauth2-id 6a52769eโฆ --oauth2-secret 6b79168fโฆ --dashboard-url dashboard.example.com
ืื ืืืื ืืขืืืจ ืืืื ืืืืืื ืื ืืืืฆืื ืืคืชืืจ ืื ืืกื ืืจืืื ืืืื:
ืืืืจ ืืืืฆื ืขืืื, GitLab ืืงืื ืืช ืคื ืื ื, ืืืฆืืข ืืืืื ืก ืืืฃ ืืจืืื ืฉืื (ืืืืื, ืื ืื ื ืื ืกื ื ืืฉื ืืขืืจ):
ืื ืื ื ื ืื ืกืื ืขื ืืืฉืืจื GitLab - ืืืื ื ืขืฉื:
ืขื ืชืืื ืืช ืืื ืืืืืื ืื
ืื ืืชื ืืคืชื ืฉืื ืขืื ืขื Kubernetes ืืขืืจ, ืื ืฉืคืฉืื ืืกืืื ืืืฉืื ืื ื ืชืงืืช ื-Dashboard ืืขืืจ, ืื ื ืืืืื ืืื ืืืืืืืืช ืฉืื.
ืจืืฉืืช, ืืชื ืืืื ืืจืืืช ืฉ"ืืื ืืจืืง":
ื ืชืื ืื ืืคืืจืืื ืืืชืจ ืืืื ืื ืื ืขืืืจ ืชืจืืืืื, ืืืื ืืฉืชื ื ืกืืืื, ืชืืื ื ืฉืืืจืื, ืืจืืืื ืืื ืฉื ืืฉืงื ืืืฆืื:
ืืคืจืืกืืช ืืฉ ืกืืืืกืื ืืืืืื:
...ืืคืจืืื ื ืืกืคืื:
... ืืืฉ ืื ืืช ืืืืืืช ืืฉื ืืช ืืช ืงื ื ืืืืื ืฉื ืืคืจืืกื:
ืืชืืฆืื ืฉื ืคืขืืื ืื:
ืืื ืฉืืจ ืืชืืื ืืช ืืฉืืืืฉืืืช ืฉืืืจ ืืืืืจื ืืชืืืืช ืืืืืจ ืืื ืฆืคืืื ืืืืื ืื:
... ืืืคืื ืงืฆืื ืืื ืืกื ืืงืื ืกืืืช ืืืืืื ืฉื ืืคืื ืฉื ืืืจ:
ืืืืืื, ืืชื ืืืื ืื ืืืกืชืื ืขื ืืืืืืืช/ืืงืฉืืช ืขื ืฆืืชืื:
ืืืืื, ืืื ืื ืื ืืืืืืืช ืฉื ืืคืื ื, ืืื ืื ื ืืงืืื ืฉืืื ืชื ืืช ืืจืขืืื ืืืืื.
ืืกืจืื ืืช ืฉื ืืื ืืืจืฆืื ืืืื ืืืืื ืื
ืืืื ืืืจืฆืื ืืืชืืืจืช ืืื ืืงืจืช ืืืฉื. ืืขืืจืชื, ืื ืืืฉืชืืฉืื ืขื ืืืฉื ืืืฉืื ื-GitLab ืืงืืืื ืืืฉื ืืืื ืืืืืื ืื. ืืฉ ืืื ืืช ืืืชื ืืืฉื ืืืื ืืืืืื ืื ืขืฆืื, ืืชืืืืช ืืช ืืืืืืืช ืฉื ืืื ืืืืืื ืื ืขืฆืื, ืืฉืจ
ืืื ืืืกืจืื ืืช ืืืืืืื ืืืื ืืืืืื ืื ืขืฆืื, ืื ื ืืฆืืื ืืช ืืืืจืื ืืืืื:
- ืื ืืคืฉืจ ืืืืื ืก ืืงืื ืกืืื ืฉื ืืืื ืืืื ืื;
- ืื ืืคืฉืจ ืืขืจืื Deployments ื-StatefulSets, ืืืจืืช ืฉื ืืชื ืืชืงื ืืืช ื-ClusterRole;
- ืืชืืืืืช ืฉื ืืื ืืืืืื ืื ืืืจืกืืืช ืืืืจืื ืืช ืฉื Kubernetes ืืขืชืื ืืคืจืืืงื ืืขืื ืฉืืืืช.
ืืืขืื ืืืืจืื ื ืจืืืื ืืชืฉืืืช ืื ืืืืืืช.
ืืฆื ืืื ืืืืืื ืื ืืืืืคืืช
ืืืืช ืชืืืืืช ืืืื ืืืืืื ืื ืขื ืืืืืจืืช Kubernetes, ืืืืฆืืช ืืืจืกื ืืืืจืื ื ืฉื ืืคืจืืืงื (
ืืืจืืช ืืืช, ืืฉ (ืืืจ ืืืืฆื ืืื ืืืจ)
ืืืกืืฃ, ืืฉ ืืืืคืืช ืืืื ืืืืืื ืื. ืืื ืืื:
-
K8Dash - ืืืฉืง ืฆืขืืจ (ืืืชืืืืืืืืช ืืจืืฉืื ืืช ืืชืืืจืืืช ืืืจืฅ ืืฉื ื), ืฉืืืจ ืืฆืืข ืชืืื ืืช ืืืืืช, ืืื ืืืฆืื ืืืืชื ืฉื ืืืฆื ืื ืืืื ืฉื ืืืฉืืื ืื ืืืื ืืืืืืืงืืื ืฉืื. ืืืฆื ื"ืืืฉืง ืืืื ืืืช", ืื ืืขืืื ืืืืืืืืช ืืช ืื ืชืื ืื ืืืืฆืืื ืืืื ืืืจืืฉ ืืื ืืจืขื ื ืืช ืืืฃ ืืืคืืคื. -
ืืกืืฃ OpenShift - ืืืฉืง ืืื ืืจื ื ืืืืช Red Hat OpenShift, ืืฉืจ, ืขื ืืืช, ืืืื ืคืืชืืืื ื ืืกืคืื ืฉื ืืคืจืืืงื ืืืฉืืื ืฉืืื, ืฉืืื ื ืืชืืื ืืืืื. -
ืงืืืจื ืืืืจ ืืื ืคืจืืืงื ืืขื ืืื, ืฉื ืืฆืจ ืืืืฉืง ืืจืื ื ืืืื ืืืชืจ (ื-Dashboard) ืขื ืืืืืช ืืืฆืื ืืช ืื ืืืืืืงืื ืืืฉืืื. ืขื ืืืช, ื ืจืื ืฉืืคืืชืื ืฉืื ื ืขืฆืจ. -
ืคืืืืจืืก - ืจืง ืืคื ื ืืื ืืืืืืืืจื ืคืจืืืงื ืืืฉืื ืืช ืืคืื ืงืฆืืืช ืฉื ืคืื ื (ืืฆืื ืืช ืืืฆื ืื ืืืื ืฉื ืืืฉืืื, ืื ืืื ื ืื ืื ืืช ืืืืืืืงืืื ืฉืื) ื"ืืืืืช ืฉืืืืช ืขืืืื ืืืืืฆืืช" ืืืืืืื (ืืืืง ืืช ืชืงืื ืืช ืืชืฆืืจืืช ืฉื Deployments ืฉืคืืขืืืช ืื ืืืฉืืื).
ืืืงืื ืืกืงื ืืช
ืืื ืืืืืื ืื ืืื ืืื ืกืื ืืจืื ืขืืืจ ืืฉืืืืืช Kubernetes ืฉืื ื ืืฉืจืชืื. ืืฉืืืื ืฉืื ืขื GitLab ืืคื ืื ืืื ืืืืง ืืืชืงื ืช ืืจืืจืช ืืืืื ืฉืื ื, ืืืืืื ืฉืืคืชืืื ืจืืื ืืชืืืืื ืืืืืืืืช ืฉืืฉ ืืื ืขื ืคืื ื ืื.
ื-Kubernetes Dashboard ืืฉ ืืขืช ืืขืช ืืืืคืืช ืืงืืืืช ืืงืื ืืคืชืื (ืืื ืื ื ืฉืืืื ืืฉืงืื ืืืชื), ืืื ืืฉืื ืื ืื ืื ื ื ืฉืืจืื ืขื ืืคืชืจืื ืืื.
ื .ื.
ืงืจื ืื ืืืืื ืฉืื ื:
- ยซ
kubebox ืืงืื ืืืืช ืืืจืืช ืขืืืจ Kubernetes "; - ยซ
ืฉืืืืช ืืขืืืื ืืืืืืฆืืช ื-CI/CD ืขื Kubernetes ื-GitLab (ืกืงืืจื ืืืื ืืืืื) "; - ยซ
ืื ื ืืคืจืกื ืืืฉืืืื ื-Kubernetes ืืืืฆืขืืช dapp ื-GitLab CI "; - ยซ
GitLab CI ืืฉืืืื ืืืกืคืงื โโืืชืืฉืืื ืืืืฆืืจ. ืืืง 1: ืืฆืื ืืจ ืฉืื ื ".
ืืงืืจ: www.habr.com