Kubernetes Dashboard ααΊααΆα§αααααααΆααααα½αααααΎαααααΆααααΆαααα½αααΆαααααααΆαααααΈαα’αααΈα
αααααααααααα»αααααΎαααΆαααααα’ααα αα·ααααααααααααΆαααααΆααα·αααααααΉαααααααα·α
αα½α
αααα»αα α’αααα
αΆααααααΎααααα
α·αααα
ααααααΆααΆααααααααΆαααα
ααααααααΆαα
αΌαααααΎαααααααΆαααΆααααααα·αααααΉαααααααΌαααΆααααα’αααααααααααα/αα·ααααα DevOps ααα»ααααααα ααα»αααααααααΆαααααα’αααααααα·αααΌααααααΆααααααΎααααΆαααα»αααΌα αα·α/α¬αα·αααΆααααααααααααΆαααΆαα½αααΉαααΆααααα»αααααΆαααΆααα’ααααααΆαααααΎα’ααααααααααΆαα½α kubectl αα·α α§αααααααααΎααααΆααααααααααα ααΆααΆαααΎαα‘αΎαααΆαα½αααΎαα α’αααα’αα·ααααααα
ααααΆαααΆαα
αΌαααααΎαα αααα
ααΆααα
ααα»α
αααααΆαααααααΆα Kubernetes α αΎαα
αΆααααΆααααΈααΎαααααΎ GitLab αααααααααΆαααΆαααΎαα‘αΎααααααααααΆαα·α
α ααα»α’αααΈααΆαααΆααα?
α’αααα’αα·αααααααααααααΆαααααα ααααΆα
αΆααα’αΆααααααααΎα§αααααααΌα
ααΆ K8s Dashboard αααααΆααααααΆααααα α»αα αααααααα’αααα
ααααΎααααααα ααα» αα·αααααΆα α αΎααα½αααΆααααααΆαααα ααααΎααΆαααααααΆα ααΆαααΆαααααααΆα/ααΆααααααααααΆαααΆα αα·αααΌααααΈααα
αΌααα
ααΆαααα»αααΌααα»αααΊααα (ααααΆαααααΎααααα ααααααααΆαααΆαααΆ ααΆααα·ααΈαα½ααααααααα - α§ααΆα ααα ααΆαααα
ααΎαααΈαααααα ααΆααααααααΌαα α·ααααααααΆααα’αααααααααααα αα αααααααα½αααα ααααΎαα ααααα - ααΎααααΈααΎαααΆ "α’αααΈααααααααΆαααΊααααααα" α αΎαααΌα ααααααΆααΆαααα½αα―αααΆ "α’αααΈααααααααΆααααα»αααααΎαααΆα" (αααααΆααΆααα·αααΆααααΊααΆααααααααΆααααΆααααΆαα ... ααα»αααααααααΊα α½αααΈαα·ααΆαααΆαααα’ααααα)α
ααΆαααααααααααααααΆα CI ααΎαααΆα
αααα»αααααΉαααααααααΆαααααααααΆααΎαααααΎ NGINX Ingress α ααααα·αααΎα’αααααααΎααΆαααΆαα½αα’αααααα
αααα»αααααΆααΆααα½ααααα αΌα
ααΆαααα‘αΎαααααΆααααααααααα
ααα α·ααααα»αααΆααα ααααα·αααΎα’αααααΉαααααΎαααααααααΌαααα αΆαααΆαααααα αααααΆαααα - ααΎααααΈαααααΆαααααα·ααααα·ααΆαααααα·αα αΆαααΆα α - ααααΌαα’αΆααα α αααααΎααααααααΆααα
α
αΆααααΆααααΈααΎαααααΎααΆααα½ααααα
αΌαααααα
αααα»αααΆαααα‘αΎαααΆα
αααΎα ααΎαααΆαααααΎα±ααααΆαααα‘αΎαααααααΆαααααααααααααααα·α ααααααααααααΌαααΆααααααΆααααΆααααααααΌαααΆαααααα»αααααααΆααα
αααα»α
ααααααΈαααα‘αΎαααααΆααααααααααααα αααα»αα ααααα α αΎαααααααα ααΆααααααααααΆαααααΆααααΆααα½ααααα αΌαααΆαα½α 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: Admin area β Applications - α αΎααααααααααααα·ααΈααααΈαααααΆαααααααααΆαααα’ααΆααα α αΌαα α ααΆααΆ "ααααΆααααααααααα Kubernetes"α
ααΆααααααααααΆαααααααααΆ GitLab ααΉααααααααΌααααααΆαααααΆααα
αα½αβααβααΊβααΆβα’αααβαααβααααΌαβααΆαβααααΎβααΆβα’αΆαα»αααααβα
ααααβααααααΈαα ααΆααααααααΆαααα‘αΎαααΎααα
ααΌα
ααα:
$ ./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 ααααΆααβαααα½αβααααβα’αααβααΆαα½αβααΉαβααααα
Patch 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 ααα½αααΆααα·αααα·α
αΌααα
ααΆααααααΆαααααααααααα αα½αααααΆααα·αααα·α
αΌαααααΎααΌα
ααααΆαα
αααα»α Dashboard αααα½αααΆααααΆαα αααααααΌαααΉααα·αααα·αααα Dashboard αααα½αααΆ ααα
αααα»αα αααααα»ααα·ααααα·ααααα½αα±ααααααααααΆαααα αααα»α Dashboard αααα½αααΆααααΆαα αααα»αααααααααΆααααΌα ααΆαααααα:
- ααΆαα·αα’αΆα αα αα½α αααααα»αααΆαα αΌααα αααα»ααα»αααΌααααα»α init;
- ααΆαα·αα’αΆα αα αα½α αααααα»αααΆαααααααα½α Deployments αα·α StatefulSets αααααΈααΆααΆα’αΆα ααααΌαααΆααα½ααα»ααα αααα»α ClusterRole αααααα
- ααΆαααααααΆααααααααΆαααααααααααααΆαα½αααΉαααααα α»αααααααααα»ααααα Kubernetes αα·αα’ααΆαααααααααααααααΎαααΆαααα½αα
αααα αΆα α»ααααααααααΉαααα½αααΆαααΆαααα α·ααααα»αααΆααααΆαα·αααα
ααααΆαααΆαααααΆααααααααααα αα·ααααααΎααααα½α
ααΆααΆαααΆαααααααΆααααααΆαααααααααααααΆαα½αααΉαααΆαα
ααααααΆα Kubernetes ααααααα αΆααα
αααα»αααααα
α»αααααααααα»ααααααααα (
ααΎαααααΈααΆααα, ααΆα (α’αα»ααααα½α
α αΎααα
αααα»αααααααΆ)
ααΈαααα»αααΆααααααΎααααα½α Dashboard α αααα»αα ααααβαα½ααα:
-
K8Dash - α ααα»α αααααΆαααααααααα (ααΆαααααααααΆα α·αααααααΌαααΆαααΆαααα·α αααααααα‘αααα ααααΈααΆααααααΆαααα) ααααααααααΌααααααααα·αααααα’αα½α αα α αΎα ααΌα ααΆααΆααααα αΆαααΌαααΆαααααααΆαααΆααα αα α»ααααααααα ααααα αα·αααΆααααααααααααααα»ααααααΆα ααααΌαααΆαααΆααααΆ "α ααα»α αααααΆαααααααααΆαα·α" ααΈααααα ααααΎαα αα α»ααααααααΆααα·αααααααααααΆααααα αΆααααααααααααααααα·ααααα·ααααααΌαα±ααα’αααααααΎαα αα α»ααααααααΆαααααααα αααα»ααααααα·ααΈαα»αααα -
αα»αααΌα OpenShift - α ααα»α αααααΆαααααααΆαααΈ Red Hat OpenShift αααααΉαααΆαααααΌαααΆαα’αα·αααααααααααααααααααααααα ααΆααα αααααααααα’ααα ααααα·ααααααααααααΆααααα»ααααααααααααΆα -
Kubernator ααΊααΆαααααααα½αα±ααα αΆααα’αΆαααααααα½α ααααααααΎαααΆα ααα»α αααααΆααααααα·αααΆα (ααΆαααααΆααααααααααα) ααΆαα½αααΉααααααααΆααααα»αααΆαααΎαααααα»α αααααααΆααα’ααα ααααααΆαααΆααααα ααΆα αΆααααΌα ααΆααΆαα’αα·ααααααααααααΆααΆααααα αΎαα -
αααΌααΊααΈ - ααΎααααααααα»ααααΆααααααΆα ααααααααααα½ααααα αΌαααααΆααΌααα»αααΆαααααααααα½α (αααα αΆαααααΆαααΆααα αα α»ααααααααα ααααα ααα»αααααα·ααααααααααααααα»ααααααΆ) αα·α "αα»ααααΆαααααΆαα’αα»ααααααα’αααα»α" αααααααααααααααα· (αα·αα·αααααΎαα ααααααααααΆααααΆαααααΉαααααΌαααααΆαααααααα ααΆααααααααααααΆαααΆαααααααΆαααααααα»αααααΎαααΆααα αααα»αααΆ)α
αααα½αα±ααααΆαααααα·ααααΆα
ααααΆαααααααααααααΊααΆα§ααααααααααααΆααααααΆααα ααααα Kubernetes αααααΎααααααΎα ααΆααα½ααααα αΌαααααααΆααΆαα½α GitLab ααααΆαααααΆαααΆααααααα½αααααΆαααα‘αΎαααααΆαααΎαααααααΎαααααα αααααΆαααα’αααα’αα·ααααααααΆα αααΎαααΆαααΆαααααΎαα αααααααααααΆαααααα½αααααΆαααΆαα½αααααααααα
Kubernetes Dashboard ααΆαααααΆααααΆααααααΎαααΈαα αααααααααααΎαα αα (α αΎαααΎαααΈαααΆααααα»αααΆααα·α αΆαααΆαα½αααΆ) ααα»αααααα ααααΆααααΆαααα ααΎααα ααααΆααααααααααΆααααα
PS
ααΌαα’αΆαααααααα ααΎαααααααααααΎαα
- Β«
kubebox αα·αααααααααααααααααΆαα Kubernetes Β» - Β«
ααΆαα’αα»αααα CI/CD ααα’αααα»αααΆαα½α Kubernetes αα·α GitLab (ααΆααα·αα·αααα‘αΎααα·α αα·ααααΆαααΆαααααΈααα’αΌ) Β» - Β«
αααααΎα αα·αααααΎααααΆαααααααα·ααΈαα αααα»α Kubernetes αααααααΎ dapp αα·α GitLab CI Β» - Β«
GitLab CI αααααΆααααΆααα½ααααα αΌαααΆαααααααααΆαα αα·αααΆαα ααα αΆααα αααα»αααα·αααααα αααααααΈ 1: αααααααααααΎαα "α
ααααα: www.habr.com