mendhak / mendhak/docker-http-https-echo
Where are these ENVVARS coming from???
まだ誰も着手していません。
- 主要言語
- Shell
- スター
- 792
- フォーク
- 152
- 平均マージ
- 3日 18時間
- マージ済み PR(30日)
- 3
説明
I've got a simple blue/green Kubernetes deployment using this container as described below:
apiVersion: apps/v1
kind: Deployment
metadata:
name: green-app
spec:
replicas: 1
selector:
matchLabels:
app: green-app
template:
metadata:
labels:
app: green-app
spec:
containers:
- name: http-https-echo
image: mendhak/http-https-echo
ports:
- containerPort: 8080
env:
- name: ECHO_INCLUDE_ENV_VARS
value: "1"
- name: APP_COLOR
value: "GREEN"
---
apiVersion: v1
kind: Service
metadata:
name: green-app
spec:
selector:
app: green-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: blue-app
spec:
replicas: 1
selector:
matchLabels:
app: blue-app
template:
metadata:
labels:
app: blue-app
spec:
containers:
- name: http-https-echo
image: mendhak/http-https-echo
ports:
- containerPort: 8080
env:
- name: ECHO_INCLUDE_ENV_VARS
value: "1"
- name: APP_COLOR
value: "BLUE"
---
apiVersion: v1
kind: Service
metadata:
name: blue-app
spec:
selector:
app: blue-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: color-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
ingressClassName: nginx
# tls:
# - hosts:
# - '*.com'
rules:
- http:
paths:
- path: /green
pathType: Prefix
backend:
service:
name: green-app
port:
number: 80
- path: /blue
pathType: Prefix
backend:
service:
name: blue-app
port:
number: 80
Everything spins up and the /blue and /green endpoints work as they should.
But inside the blue are all of these environment variables referencing the green app (and vice versa)
/app $ env
KUBERNETES_PORT=tcp://172.20.0.1:443
GREEN_APP_PORT_80_TCP=tcp://172.20.144.83:80
KUBERNETES_SERVICE_PORT=443
NODE_VERSION=22.21.0
HOSTNAME=blue-app-64bd4f854f-x9v4j
YARN_VERSION=1.22.22
BLUE_APP_PORT_80_TCP=tcp://172.20.108.198:80
SHLVL=1
HOME=/home/node
ECHO_INCLUDE_ENV_VARS=1
GREEN_APP_SERVICE_HOST=172.20.144.83
BLUE_APP_SERVICE_HOST=172.20.108.198
TERM=xterm
KUBERNETES_PORT_443_TCP_ADDR=172.20.0.1
HTTP_PORT=8080
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
GREEN_APP_PORT=tcp://172.20.144.83:80
KUBERNETES_PORT_443_TCP_PORT=443
GREEN_APP_SERVICE_PORT=80
KUBERNETES_PORT_443_TCP_PROTO=tcp
HTTPS_PORT=8443
BLUE_APP_PORT=tcp://172.20.108.198:80
BLUE_APP_SERVICE_PORT=80
APP_COLOR=BLUE
GREEN_APP_PORT_80_TCP_ADDR=172.20.144.83
KUBERNETES_SERVICE_PORT_HTTPS=443
GREEN_APP_PORT_80_TCP_PORT=80
KUBERNETES_PORT_443_TCP=tcp://172.20.0.1:443
BLUE_APP_PORT_80_TCP_ADDR=172.20.108.198
GREEN_APP_PORT_80_TCP_PROTO=tcp
KUBERNETES_SERVICE_HOST=172.20.0.1
PWD=/app
BLUE_APP_PORT_80_TCP_PORT=80
BLUE_APP_PORT_80_TCP_PROTO=tcp
/app $
How can a simple pod that only has 2 environment variables defined (APP_COLOR and ECHO_INCLUDE_ENV_VARS) pickup all of these other variables? Where are they coming from!??!
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
Kubernetes Deployment および Service マニフェストと、issue に記載されているコンテナの動作から始めます。Kubernetes が Service 関連の環境変数を pod にどのように公開するかを調査し、その後、リポジトリがこの動作を文書化または制御しているかを確認します。完了の条件は、原因が説明され、必要なドキュメントまたはコードの変更が特定されていることです。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- docker, kubernetes
- 領域
- infrastructure
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 静か
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 42/100