เชเซเชฌเชฐเชจเซเชเซเชธ เชกเซเชถเชฌเซเชฐเซเชก เช เชคเชฎเชพเชฐเชพ เชเชพเชฒเซ เชฐเชนเซเชฒเชพ เชเซเชฒเชธเซเชเชฐ เชตเชฟเชถเซ เช
เชช-เชเซ-เชกเซเช เชฎเชพเชนเชฟเชคเซ เชฎเซเชณเชตเชตเชพ เช
เชจเซ เชคเซเชจเซ เชจเซเชฏเซเชจเชคเชฎ เชชเซเชฐเชฏเชคเซเชจเซ เชธเชพเชฅเซ เชธเชเชเชพเชฒเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ เชเชชเชฏเซเชเชฎเชพเช เชธเชฐเชณ เชธเชพเชงเชจ เชเซ. เชคเชฎเซ เชคเซเชจเซ เชตเชงเซ เชชเซเชฐเชถเชเชธเชพ เชเชฐเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซ เชเซ เชเซเชฏเชพเชฐเซ เช เชเซเชทเชฎเชคเชพเชเชจเซ เชเชเซเชธเซเชธ เชฎเชพเชคเซเชฐ เชเชกเชฎเชฟเชจเชฟเชธเซเชเซเชฐเซเชเชฐเซเชธ/DevOps เชเชจเซเชเชฟเชจเชฟเชฏเชฐเซ เชฆเซเชตเชพเชฐเชพ เช เชเชฐเซเชฐเซ เชจเชฅเซ, เชชเชฐเชเชคเซ เชเซเช เชเชจเซเชธเซเชฒเชฅเซ เชเชเชพ เชเซเชตเชพเชฏเซเชฒเชพ เชเซ เช
เชจเซ/เช
เชฅเชตเชพ kubectl เชธเชพเชฅเซ เชเซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเชเซเชฐเชฟเชฏเชพ เชเชฐเชตเชพเชจเซ เชคเชฎเชพเชฎ เชเชเชฟเชฒเชคเชพเชเชจเซ เชเชเซเชฒเชตเชพเชจเซ เชเชฐเชพเชฆเซ เชงเชฐเชพเชตเชคเชพ เชจเชฅเซ. เช
เชจเซเชฏ เชเชชเชฏเซเชเชฟเชคเชพเช. เช เช
เชฎเชพเชฐเซ เชธเชพเชฅเซ เชฅเชฏเซเช: เชตเชฟเชเชพเชธเชเชฐเซเชคเชพเชเชจเซ เชเซเชฌเชฐเชจเซเชเซเชธ เชตเซเชฌ เชเชจเซเชเชฐเชซเซเชธเชจเซ เชเชกเชชเซ เชเชเซเชธเซเชธ เชเซเชเชคเซ เชนเชคเซ, เช
เชจเซ เช
เชฎเซ GitLab เชจเซ เชเชชเชฏเซเช เชเชฐเชคเชพ เชนเซเชตเชพเชฅเซ, เชเชเซเชฒ เชเซเชฆเชฐเชคเซ เชฐเซเชคเซ เชเชตเซเชฏเซ.
เช เชเซเชฎ เชเซ?
เชกเชพเชฏเชฐเซเชเซเช เชกเซเชตเชฒเชชเชฐเชจเซ เชกเซเชฌเชเซเชเช เชเชพเชฐเซเชฏเซ เชฎเชพเชเซ K8s เชกเซเชถเชฌเซเชฐเซเชก เชเซเชตเชพ เชเซเชฒเชฎเชพเช เชฐเชธ เชนเซเช เชถเชเซ เชเซ. เชเซเชเชฒเซเชเชตเชพเชฐ เชคเชฎเซ เชฒเซเช เช
เชจเซ เชธเชเชธเชพเชงเชจเซ เชเซเชตเชพ เชฎเชพเชเชเซ เชเซ, เช
เชจเซ เชเซเชเชฒเซเชเชตเชพเชฐ เชชเซเชกเซเชธเชจเซ เชฎเชพเชฐเชตเชพ เชฎเชพเชเชเซ เชเซ, เชกเชฟเชชเซเชฒเซเชฏเชฎเซเชจเซเชเซเชธ/เชธเซเชเซเชเชซเซเชฒเชธเซเชเซเชธ เชธเซเชเซเชฒ เชเชฐเซ เชเซ, เช
เชจเซ เชเชจเซเชเซเชจเชฐ เชเชจเซเชธเซเชฒ เชชเชฐ เชชเชฃ เชเชพเช เชเซ (เชคเซเชฏเชพเช เชชเชฃ เชเชตเซ เชตเชฟเชจเชเชคเซเช เชเซ, เชเซเชจเชพ เชฎเชพเชเซ, เชเซ เชเซ, เชฌเซเชเซ เชฐเซเชค เชเซ - เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชฎเชพเชฐเชซเชคเซ
เชตเชงเซเชฎเชพเช, เชฎเซเชจเซเชเชฐเซ เชฎเชพเชเซ เชเช เชฎเชจเซเชตเซเชเซเชเชพเชจเชฟเช เชเซเชทเชฃ เชเซ เชเซเชฏเชพเชฐเซ เชคเซเช เชเซเชฒเชธเซเชเชฐเชจเซ เชเซเชตเชพ เชฎเชพเชเชเซ เชเซ - เชคเซ เชเซเชตเชพ เชฎเชพเชเซ เชเซ "เชฌเชงเซเช เชฒเซเชฒเซเช เชเซ", เช เชจเซ เช เชฐเซเชคเซ เชชเซเชคเชพเชจเซ เชเชพเชคเชฐเซ เชเชชเซ เชเซ "เชฌเชงเซเช เชเชพเชฎ เชเชฐเซ เชฐเชนเซเชฏเซเช เชเซ" (เชเซ, เช เชฒเชฌเชคเซเชค, เชเซเชฌ เช เชธเชเชฌเชเชงเชฟเชค เชเซ... เชชเชฐเชเชคเซ เช เชฒเซเชเชจเชพ เช เชตเชเชพเชถเชจเซ เชฌเชนเชพเชฐ เชเซ).
เชชเซเชฐเชฎเชพเชฃเชญเซเชค CI เชธเชฟเชธเซเชเชฎ เชคเชฐเซเชเซ เช
เชฎเชพเชฐเซ เชชเชพเชธเซ เชเซ
เชนเซเช เช เชชเชฃ เชจเซเชเชงเซเชถ เชเซ เช
เชฎเซ NGINX Ingress เชจเซ เชเชชเชฏเซเช เชเชฐเซเช เชเซเช. เชเซ เชคเชฎเซ เช
เชจเซเชฏ เชฒเซเชเซ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเซ เชเซ
เชเชเซเชเชฐเชฃเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซ เชฐเชนเซเชฏเชพเช เชเซเช
เชกเซเชถเชฌเซเชฐเซเชก เชเชจเซเชธเซเชเซเชฒเซเชถเชจ
เชธเชพเชตเชงเชพเชจ: เชเซ เชคเชฎเซ เชจเซเชเซเชจเชพ เชชเชเชฒเชพเชเชจเซ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชฟเชค เชเชฐเชตเชพ เชเช เชฐเชนเซเชฏเชพ เชเซ, เชคเซ เชชเชเซ - เชฌเชฟเชจเชเชฐเซเชฐเซ เชเชพเชฎเชเซเชฐเซ เชเชพเชณเชตเชพ เชฎเชพเชเซ - เชชเชนเซเชฒเชพ เชเชเชณเชจเซเช เชธเชฌเชนเซเชกเชฟเชเช เชตเชพเชเชเซ.
เช
เชฎเซ เชเชฃเชพ เชเชจเซเชธเซเชเซเชฒเซเชถเชจเชฎเชพเช เช เชเชเซเชเชฐเชฃเชจเซ เชเชชเชฏเซเช เชเชฐเชคเชพ เชนเซเชตเชพเชฅเซ, เช
เชฎเซ เชคเซเชจเซเช เชเชจเซเชธเซเชเซเชฒเซเชถเชจ เชธเซเชตเชเชพเชฒเชฟเชค เชเชฐเซเชฏเซเช เชเซ. เช เชฎเชพเชเซ เชเชฐเซเชฐเซ เชธเซเชคเซเชฐเซเชคเซ เชฎเชพเช เชชเซเชฐเชเชพเชถเชฟเชค เชฅเชฏเซเชฒ เชเซ
เชธเซเชเซเชฐเชฟเชชเซเช เชเซเชฒเชธเซเชเชฐเชฎเชพเช เชกเซเชถเชฌเซเชฐเซเชก เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ เชเซ เช เชจเซ เชเชฟเชเชฒเซเชฌ เชธเชพเชฅเซ เชเชเซเชเชฐเชฃ เชฎเชพเชเซ เชคเซเชจเซ เชเซเช เชตเซ เชเซ:
$ ./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 เชชเชฐ เชเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ: เชเชกเชฎเชฟเชจ เชตเชฟเชธเซเชคเชพเชฐ โ เชเชชเซเชฒเชฟเชเซเชถเชจเซเชธ - เช เชจเซ เชญเชพเชตเชฟ เชชเซเชจเชฒ เชฎเชพเชเซ เชจเชตเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชเชฎเซเชฐเซ. เชเชพเชฒเซ เชคเซเชจเซ "เชเซเชฌเชฐเชจเซเชเซเชธ เชกเซเชถเชฌเซเชฐเซเชก" เชเชนเซเช:
เชคเซเชจเซ เชเชฎเซเชฐเชตเชพเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซ, 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
เชเซ เชเซ, เชตเชนเซเชฒเชพ เชเซ เชชเชเซ เชฌเชงเซเช เชถเชฐเซ เชฅเชถเซ เช เชงเชฟเชเซเชคเชคเชพ เชคเชฐเชค เชเชพเชฎ เชเชฐเชถเซ เชจเชนเซเช! เชนเชเซเชเชค เช เชเซ เชเซ เชตเชชเชฐเชพเชฏเซเชฒเซ เชเชฌเซเชฎเชพเช (เช เชจเซเชฏ เชเชฌเซเชเชจเซ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟ เชธเชฎเชพเชจ เชเซ) เชเซเชฒเชฌเซเชเชฎเชพเช เชฐเซเชกเชพเชฏเชฐเซเชเซเช เชชเชเชกเชตเชพเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเซเชเซ เชฐเซเชคเซ เชฒเชพเชเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เช เชธเชเชเซเชเซ เช เชนเชเซเชเชค เชคเชฐเชซ เชฆเซเชฐเซ เชเชพเชฏ เชเซ เชเซ เชเชฅ เช เชเซเชเซเชจเซ เชญเซเชเชธเซ เชจเชพเชเซ เชเซ เชเซ เชถเชชเชฅ เชชเซเชคเซ เช เชเชชเชฃเชจเซ เชชเซเชฐเชฆเชพเชจ เชเชฐเซ เชเซ...
เชชเซเช เชธเชพเชฅเซ เชคเชฎเชพเชฐเซ เชชเซเชคเชพเชจเซ เชถเชชเชฅ เชเชฎเซเช เชฌเชจเชพเชตเซเชจเซ เชธเชฎเชธเซเชฏเชพ เชนเชฒ เชฅเชพเชฏ เชเซ.
เชชเซเช เชเชฅ เช เชจเซ เชซเชฐเซเชฅเซ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ
เช เชเชฐเชตเชพ เชฎเชพเชเซ, เช เชฎเซ เชจเซเชเซเชจเซ เชกเซเชเชฐเชซเชพเชเชฒเชจเซ เชเชชเชฏเซเช เชเชฐเซเชถเซเช:
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 เชเชณเชเชชเชคเซเชฐเซ เชธเชพเชฅเซ เชฒเซเช เชเชจ เชเชฐเซเช เชเซเช - เช
เชจเซ เชฌเชงเซเช เชฅเช เชเชฏเซเช เชเซ:
เชกเซเชถเชฌเซเชฐเซเชก เชธเซเชตเชฟเชงเชพเช เชตเชฟเชถเซ
เชเซ เชคเชฎเซ เชเชตเชพ เชกเซเชตเชฒเชชเชฐ เชเซ เชเซ เชเซเชฎเชฃเซ เชชเชนเซเชฒเชพเช เชเซเชฌเชฐเชจเซเชเซเชธ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเซเชฏเซเช เชจเชฅเซ, เช เชฅเชตเชพ เชซเชเซเชค เชเซเช เชเชพเชฐเชฃเซเชธเชฐ เชกเซเชถเชฌเซเชฐเซเชกเชจเซ เชธเชพเชฎเชจเซ เชเชฐเชตเซ เชชเชกเซเชฏเซ เชจเชฅเซ, เชคเซ เชนเซเช เชคเซเชจเซ เชเซเชเชฒเซเช เชเซเชทเชฎเชคเชพเชเชจเซ เชธเชฎเชเชพเชตเซเชถ.
เชชเซเชฐเชฅเชฎ, เชคเชฎเซ เชเซเช เชถเชเซ เชเซ เชเซ "เชฌเชงเซเช เชฒเซเชฒเซเช เชเซ":
เชชเซเชกเซเชธ เชฎเชพเชเซ เชตเชงเซ เชตเชฟเชเชคเชตเชพเชฐ เชกเซเชเชพ เชชเชฃ เชเชชเชฒเชฌเซเชง เชเซ, เชเซเชฎ เชเซ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชเชฒเซ, เชกเชพเชเชจเชฒเซเชก เชเชฐเซเชฒเซ เชเชฌเซ, เชฒเซเชจเซเช เชฆเชฒเซเชฒเซ เช
เชจเซ เชคเซเชฎเชจเซ เชธเซเชฅเชฟเชคเชฟ:
เชเชฎเชพเชตเชเชจเซ เชฆเซเชถเซเชฏเชฎเชพเชจ เชธเซเชฅเชฟเชคเชฟเช เชเซ:
...เช
เชจเซ เช
เชจเซเชฏ เชตเชฟเชเชคเซ:
... เช
เชจเซ เชเชฎเชพเชตเชเชจเซ เชฎเชพเชชเชตเชพเชจเซ เชเซเชทเชฎเชคเชพ เชชเชฃ เชเซ:
เช เชเชชเชฐเซเชถเชจเชจเซเช เชชเชฐเชฟเชฃเชพเชฎ:
เชฒเซเชเชจเซ เชถเชฐเซเชเชคเชฎเชพเช เชชเชนเซเชฒเซเชฅเซ เช เชเชฒเซเชฒเซเชเชฟเชค เช
เชจเซเชฏ เชเชชเชฏเซเชเซ เชธเซเชตเชฟเชงเชพเชเชฎเชพเช เชฒเซเช เชเซเชตเชพเชจเซเช เชเซ:
... เช
เชจเซ เชชเชธเชเชฆ เชเชฐเซเชฒ เชชเซเชกเชจเชพ เชเชจเซเชเซเชจเชฐ เชเชจเซเชธเซเชฒเชฎเชพเช เชฒเซเช เชเชจ เชเชฐเชตเชพ เชฎเชพเชเซเชจเซเช เชเชพเชฐเซเชฏ:
เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชคเชฎเซ เชจเซเชกเซเชธ เชชเชฐเชจเซ เชฎเชฐเซเชฏเชพเชฆเชพ/เชตเชฟเชจเชเชคเซเชเชจเซ เชชเชฃ เชเซเช เชถเชเซ เชเซ:
เช
เชฒเชฌเชคเซเชค, เช เชฌเชงเซ เชชเซเชจเชฒเชจเซ เชเซเชทเชฎเชคเชพเช เชจเชฅเซ, เชชเชฐเชเชคเซ เชนเซเช เชเชถเชพ เชฐเชพเชเซเช เชเซเช เชเซ เชคเชฎเชจเซ เชธเชพเชฎเชพเชจเซเชฏ เชเซเชฏเชพเชฒ เชเชตเชถเซ.
เชเชเซเชเชฐเชฃ เช เชจเซ เชกเซเชถเชฌเซเชฐเซเชกเชจเชพ เชเซเชฐเชซเชพเชฏเชฆเชพ
เชตเชฐเซเชฃเชตเซเชฒ เชเชเซเชเชฐเชฃเชฎเชพเช เชเซเช เชจเชฅเซ เชตเชชเชฐเชพเชถ เชจเชฟเชฏเชเชคเซเชฐเชฃ. เชคเซเชจเซ เชธเชพเชฅเซ, เชเชฟเชเชฒเซเชฌเชจเซ เชเซเชเชชเชฃ เชเชเซเชธเซเชธ เชงเชฐเชพเชตเชคเชพ เชคเชฎเชพเชฎ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช เชกเซเชถเชฌเซเชฐเซเชกเชจเซ เชเชเซเชธเซเชธ เชฎเซเชณเชตเซ เชเซ. เชคเซเชฎเชจเซ เชชเชพเชธเซ เชกเซเชถเชฌเซเชฐเซเชกเชฎเชพเช เช เชธเชฎเชพเชจ เชเชเซเชธเซเชธ เชเซ, เชเซ เชกเซเชถเชฌเซเชฐเซเชกเชจเชพ เช
เชงเชฟเชเชพเชฐเซเชจเซ เช
เชจเซเชฐเซเชช เชเซ, เชเซ
เชกเซเชถเชฌเซเชฐเซเชกเชฎเชพเช เช เชจเซเชเชงเชชเชพเชคเซเชฐ เชเซเชฐเชซเชพเชฏเชฆเชพเช เชชเซเชเซ, เชนเซเช เชจเซเชเซเชจเซ เชจเซเชเชง เชเชฐเซเช เชเซเช:
- init เชเชจเซเชเซเชจเชฐเชจเชพ เชเชจเซเชธเซเชฒเชฎเชพเช เชชเซเชฐเชตเซเชถเชตเซเช เช เชถเชเซเชฏ เชเซ;
- เชกเชฟเชชเซเชฒเซเชฏเชฎเซเชจเซเชเซเชธ เช เชจเซ เชธเซเชเซเชเชซเซเชฒเชธเซเชเซเชธเชจเซ เชธเชเชชเชพเชฆเชฟเชค เชเชฐเชตเซเช เช เชถเชเซเชฏ เชเซ, เชเซ เชเซ เช เชเซเชฒเชธเซเชเชฐเชฐเซเชฒเชฎเชพเช เชธเซเชงเชพเชฐเซ เชถเชเชพเชฏ เชเซ;
- Kubernetes เชจเชพ เชจเชตเซเชจเชคเชฎ เชธเชเชธเซเชเชฐเชฃเซ เชธเชพเชฅเซ เชกเซเชถเชฌเซเชฐเซเชกเชจเซ เชธเซเชธเชเชเชคเชคเชพ เช เชจเซ เชชเซเชฐเซเชเซเชเซเชเชจเชพ เชญเชพเชตเชฟ เชชเซเชฐเชถเซเชจเซ เชเชญเชพ เชเชฐเซ เชเซ.
เชเซเชฒเซเชฒเซ เชธเชฎเชธเซเชฏเชพ เชเชพเชธ เชงเซเชฏเชพเชจ เชเชชเชตเชพเชจเซ เชชเชพเชคเซเชฐ เชเซ.
เชกเซเชถเชฌเซเชฐเซเชก เชธเซเชฅเชฟเชคเชฟ เช เชจเซ เชตเชฟเชเชฒเซเชชเซ
เชชเซเชฐเซเชเซเชเซเชเชจเชพ เชจเชตเซเชจเชคเชฎ เชธเชเชธเซเชเชฐเชฃเชฎเชพเช เชฐเชเซ เชเชฐเชพเชฏเซเชฒ เชเซเชฌเชฐเชจเซเชเซเชธ เชชเซเชฐเชเชพเชถเชจเซ เชธเชพเชฅเซ เชกเซเชถเชฌเซเชฐเซเชก เชธเซเชธเชเชเชคเชคเชพ เชเซเชทเซเชเช (
เช เชนเซเชตเชพ เชเชคเชพเช, เชคเซเชฏเชพเช เชเซ (เชชเชนเซเชฒเซเชฅเซ เช เชเชพเชจเซเชฏเซเชเชฐเซเชฎเชพเช เช
เชชเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชเซ)
เชเซเชฒเซเชฒเซ, เชกเซเชถเชฌเซเชฐเซเชกเชจเชพ เชตเชฟเชเชฒเซเชชเซ เชเซ. เชคเซเชฎเชจเซ เชตเชเซเชเซ:
-
K8Dash โ เชเช เชฏเซเชตเชพเชจ เชเชจเซเชเชฐเชซเซเชธ (เชชเซเชฐเชฅเชฎ เชเชฎเชฟเชเซเชก เชคเชพเชฐเซเช เช เชตเชฐเซเชทเชจเชพ เชฎเชพเชฐเซเชเชฎเชพเช เชเซ), เชเซ เชชเชนเซเชฒเซเชฅเซ เช เชธเชพเชฐเซ เชธเซเชตเชฟเชงเชพเช เชชเซเชฐเชฆเชพเชจ เชเชฐเซ เชเซ, เชเซเชฎ เชเซ เชเซเชฒเชธเซเชเชฐเชจเซ เชตเชฐเซเชคเชฎเชพเชจ เชธเซเชฅเชฟเชคเชฟเชจเซเช เชตเชฟเชเซเชฏเซเช เชฒ เชชเซเชฐเชคเชฟเชจเชฟเชงเชฟเชคเซเชต เช เชจเซ เชคเซเชจเชพ เชเชฌเซเชเซเชเซเชเซเชธเชจเซเช เชธเชเชเชพเชฒเชจ. "เชฐเซเช เชฒ-เชเชพเชเชฎ เชเชจเซเชเชฐเชซเซเชธ" เชคเชฐเซเชเซ เชธเซเชฅเชฟเชค เชเซ, เชเชพเชฐเชฃ เชเซ เชคเชฎเชจเซ เชฌเซเชฐเชพเชเชเชฐเชฎเชพเช เชชเซเชทเซเช เชจเซ เชคเชพเชเซเช เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชตเชฟเชจเชพ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชกเซเชเชพเชจเซ เชเชชเชฎเซเชณเซ เช เชชเชกเซเช เชเชฐเซ เชเซ. -
เชเชชเชจเชถเชฟเชซเซเช เชเชจเซเชธเซเชฒ - Red Hat OpenShift เชจเซเช เชตเซเชฌ เชเชจเซเชเชฐเชซเซเชธ, เชเซ เชเซ เชเซ, เชชเซเชฐเซเชเซเชเซเชเชจเชพ เช เชจเซเชฏ เชตเชฟเชเชพเชธเชจเซ เชคเชฎเชพเชฐเชพ เชเซเชฒเชธเซเชเชฐเชฎเชพเช เชฒเชพเชตเชถเซ, เชเซ เชฆเชฐเซเช เชฎเชพเชเซ เชฏเซเชเซเชฏ เชจเชฅเซ. -
เชเซเชฌเชฐเชจเซเชเชฐ เชเช เชฐเชธเชชเซเชฐเชฆ เชชเซเชฐเซเชเซเชเซเช เชเซ, เชเซ เชคเชฎเชพเชฎ เชเซเชฒเชธเซเชเชฐ เชเชฌเซเชเซเชเซเชเซเชธเชจเซ เชเซเชตเชพเชจเซ เชเซเชทเชฎเชคเชพ เชธเชพเชฅเซ เชจเซเชเชฒเชพ-เชธเซเชคเชฐเชจเชพ (เชกเซ เชถเชฌเซเชฐเซเชก เชเชฐเชคเชพเช) เชเชจเซเชเชฐเชซเซเชธ เชคเชฐเซเชเซ เชฌเชจเชพเชตเซเชฒ เชเซ. เชเซ เชเซ, เชเชตเซเช เชฒเชพเชเซ เชเซ เชเซ เชคเซเชจเซ เชตเชฟเชเชพเชธ เช เชเชเซ เชเชฏเซ เชเซ. -
เชชเซเชฒเชพเชฐเชฟเชธ - เชฌเซเชเชพ เชฆเชฟเชตเชธเซ เชเชเชพเชนเซเชฐเชพเชค เชเชฐเซ เชเช เชชเซเชฐเซเชเซเชเซเช เชเซ เชเซ เชชเซเชจเชฒเชจเชพ เชเชพเชฐเซเชฏเซเชจเซ เชเซเชกเซ เชเซ (เชเซเชฒเชธเซเชเชฐเชจเซ เชตเชฐเซเชคเชฎเชพเชจ เชธเซเชฅเชฟเชคเชฟ เชฌเชคเชพเชตเซ เชเซ, เชชเชฐเชเชคเซ เชคเซเชจเชพ เชเชฌเซเชเซเชเซเชเซเชธเชจเซเช เชธเชเชเชพเชฒเชจ เชเชฐเชคเซเช เชจเชฅเซ) เช เชจเซ เชธเซเชตเชเชพเชฒเชฟเชค "เชถเซเชฐเซเชทเซเช เชชเซเชฐเซเชเซเชเชฟเชธเชจเซ เชฎเชพเชจเซเชฏเชคเชพ" (เชคเซเชฎเชพเช เชเชพเชฒเซ เชฐเชนเซเชฒเชพ เชกเชฟเชชเซเชฒเซเชฏเชฎเซเชจเซเชเซเชธเชจเซ เชเซเช เชตเชฃเซเชจเซ เชถเซเชฆเซเชงเชคเชพ เชฎเชพเชเซ เชเซเชฒเชธเซเชเชฐ เชคเชชเชพเชธเซ เชเซ).
เชคเชพเชฐเชฃเซเชจเซ เชฌเชฆเชฒเซ
เชกเซเชถเชฌเซเชฐเซเชก เช เชฎเซ เชธเซเชตเชพ เชเชชเซเช เชเซเช เชคเซ เชเซเชฌเชฐเชจเซเชเซเชธ เชเซเชฒเชธเซเชเชฐเซ เชฎเชพเชเซเชจเซเช เชชเซเชฐเชฎเชพเชฃเชญเซเชค เชธเชพเชงเชจ เชเซ. GitLab เชธเชพเชฅเซ เชคเซเชจเซเช เชธเชเชเชฒเชจ เชชเชฃ เช เชฎเชพเชฐเชพ เชกเชฟเชซเซเชฒเซเช เชเชจเซเชธเซเชเซเชฒเซเชถเชจเชจเซ เชเช เชญเชพเช เชฌเชจเซ เชเชฏเซเช เชเซ, เชเชพเชฐเชฃ เชเซ เชเชฃเชพ เชกเซเชตเชฒเชชเชฐเซเชธ เช เชชเซเชจเชฒ เชธเชพเชฅเซ เชคเซเชฎเชจเซ เชชเชพเชธเซ เชฐเชนเซเชฒเซ เชเซเชทเชฎเชคเชพเช เชตเชฟเชถเซ เชเชคเซเชธเชพเชนเชฟเชค เชเซ.
Kubernetes เชกเซเชถเชฌเซเชฐเซเชกเชฎเชพเช เชธเชฎเชฏเชพเชเชคเชฐเซ เชเชชเชจ เชธเซเชฐเซเชธ เชธเชฎเซเชฆเชพเชฏเชจเชพ เชตเชฟเชเชฒเซเชชเซ เชนเซเชฏ เชเซ (เช เชจเซ เช เชฎเซ เชคเซเชฎเชจเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเชเชจเซ เชเซเชถ เชเซเช), เชชเชฐเชเชคเซ เช เชคเชฌเชเซเชเซ เช เชฎเซ เช เชเชเซเชฒ เชธเชพเชฅเซ เช เชฐเชนเซเช เชเซเช.
PS
เช เชฎเชพเชฐเชพ เชฌเซเชฒเซเช เชชเชฐ เชชเชฃ เชตเชพเชเชเซ:
- ยซ
เชเซเชฌเชฐเซเชจเซเชเซเชธ เชฎเชพเชเซ เชเซเชฏเซเชฌเชฌเซเชเซเชธ เช เชจเซ เช เชจเซเชฏ เชถเซเชฒเซ ยป; - ยซ
เชเซเชฌเชฐเชจเซเชเซเชธ เช เชจเซ เชเชฟเชเชฒเซเชฌ เชธเชพเชฅเซ เชถเซเชฐเซเชทเซเช CI/CD เชชเซเชฐเซเชเซเชเชฟเชธ (เชธเชฎเซเชเซเชทเชพ เช เชจเซ เชตเชฟเชกเชฟเชฏเซ เชฐเชฟเชชเซเชฐเซเช) ยป; - ยซ
Dapp เช เชจเซ GitLab CI เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ Kubernetes เชฎเชพเช เชเชชเซเชฒเซเชเซเชถเชจ เชฌเชจเชพเชตเซ เช เชจเซ เชคเซเชจเซ เชเชชเชฏเซเช เชเชฐเซ ยป; - ยซ
เชเชคเซเชชเชพเชฆเชจเชฎเชพเช เชธเชคเชค เชเชเซเชเชฐเชฃ เช เชจเซ เชกเชฟเชฒเชฟเชตเชฐเซ เชฎเชพเชเซ GitLab CI. เชญเชพเช 1: เช เชฎเชพเชฐเซ เชชเชพเชเชชเชฒเชพเชเชจ ยป.
เชธเซเชฐเซเชธ: www.habr.com