Compare commits
4 Commits
k8s
...
v2024.2.5-
Author | SHA1 | Date | |
---|---|---|---|
c23d8e3adb | |||
a3f44cf123 | |||
5453988419 | |||
1e392f94a7 |
3
.gitignore
vendored
3
.gitignore
vendored
@ -7,5 +7,4 @@
|
|||||||
/admin-key.json
|
/admin-key.json
|
||||||
/.bouncer-token
|
/.bouncer-token
|
||||||
/data
|
/data
|
||||||
/out
|
/out
|
||||||
.dockerconfigjson
|
|
14
Dockerfile
14
Dockerfile
@ -1,4 +1,4 @@
|
|||||||
FROM golang:1.20 AS BUILD
|
FROM reg.cadoles.com/proxy_cache/library/golang:1.21.6 AS BUILD
|
||||||
|
|
||||||
RUN apt-get update \
|
RUN apt-get update \
|
||||||
&& apt-get install -y make
|
&& apt-get install -y make
|
||||||
@ -21,17 +21,11 @@ RUN /src/dist/bouncer_linux_amd64_v1/bouncer -c '' config dump > /src/dist/bounc
|
|||||||
&& yq -i '.admin.auth.privateKey = "/etc/bouncer/admin-key.json"' /src/dist/bouncer_linux_amd64_v1/config.yml \
|
&& yq -i '.admin.auth.privateKey = "/etc/bouncer/admin-key.json"' /src/dist/bouncer_linux_amd64_v1/config.yml \
|
||||||
&& yq -i '.redis.adresses = ["redis:6379"]' /src/dist/bouncer_linux_amd64_v1/config.yml
|
&& yq -i '.redis.adresses = ["redis:6379"]' /src/dist/bouncer_linux_amd64_v1/config.yml
|
||||||
|
|
||||||
FROM alpine:3.18 AS RUNTIME
|
FROM reg.cadoles.com/proxy_cache/library/alpine:3.19.1 AS RUNTIME
|
||||||
|
|
||||||
ARG DUMB_INIT_VERSION=1.2.5
|
RUN apk add --no-cache ca-certificates dumb-init
|
||||||
|
|
||||||
RUN apk add --no-cache ca-certificates
|
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
||||||
|
|
||||||
RUN mkdir -p /usr/local/bin \
|
|
||||||
&& wget -O /usr/local/bin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v${DUMB_INIT_VERSION}/dumb-init_${DUMB_INIT_VERSION}_x86_64 \
|
|
||||||
&& chmod +x /usr/local/bin/dumb-init
|
|
||||||
|
|
||||||
ENTRYPOINT ["/usr/local/bin/dumb-init", "--"]
|
|
||||||
|
|
||||||
RUN mkdir -p /usr/local/bin /usr/share/bouncer/bin /etc/bouncer
|
RUN mkdir -p /usr/local/bin /usr/share/bouncer/bin /etc/bouncer
|
||||||
|
|
||||||
|
@ -1,49 +0,0 @@
|
|||||||
FROM golang:1.20 AS BUILD
|
|
||||||
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get install -y make
|
|
||||||
|
|
||||||
ARG YQ_VERSION=4.34.1
|
|
||||||
|
|
||||||
RUN mkdir -p /usr/local/bin \
|
|
||||||
&& wget -O /usr/local/bin/yq https://github.com/mikefarah/yq/releases/download/v${YQ_VERSION}/yq_linux_amd64 \
|
|
||||||
&& chmod +x /usr/local/bin/yq
|
|
||||||
|
|
||||||
COPY . /src
|
|
||||||
|
|
||||||
WORKDIR /src
|
|
||||||
|
|
||||||
RUN make GORELEASER_ARGS='build --rm-dist --single-target --snapshot' goreleaser
|
|
||||||
|
|
||||||
# Patch config
|
|
||||||
RUN /src/dist/bouncer_linux_amd64_v1/bouncer -c '' config dump > /src/dist/bouncer_linux_amd64_v1/config.yml \
|
|
||||||
&& yq -i '.layers.queue.templateDir = "/usr/share/bouncer/layers/queue/templates"' /src/dist/bouncer_linux_amd64_v1/config.yml \
|
|
||||||
&& yq -i '.admin.auth.privateKey = "/etc/bouncer/admin-key.json"' /src/dist/bouncer_linux_amd64_v1/config.yml \
|
|
||||||
&& yq -i '.redis.adresses = ["redis:6379"]' /src/dist/bouncer_linux_amd64_v1/config.yml
|
|
||||||
|
|
||||||
FROM alpine:3.18 AS RUNTIME
|
|
||||||
|
|
||||||
ARG DUMB_INIT_VERSION=1.2.5
|
|
||||||
|
|
||||||
RUN apk add --no-cache ca-certificates
|
|
||||||
|
|
||||||
RUN mkdir -p /usr/local/bin \
|
|
||||||
&& wget -O /usr/local/bin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v${DUMB_INIT_VERSION}/dumb-init_${DUMB_INIT_VERSION}_x86_64 \
|
|
||||||
&& chmod +x /usr/local/bin/dumb-init
|
|
||||||
|
|
||||||
ENTRYPOINT ["/usr/local/bin/dumb-init", "--"]
|
|
||||||
|
|
||||||
RUN mkdir -p /usr/local/bin /usr/share/bouncer/bin /etc/bouncer
|
|
||||||
|
|
||||||
COPY --from=BUILD /src/dist/bouncer_linux_amd64_v1/bouncer /usr/share/bouncer/bin/bouncer
|
|
||||||
COPY --from=BUILD /src/layers /usr/share/bouncer/layers
|
|
||||||
COPY --from=BUILD /src/dist/bouncer_linux_amd64_v1/config.yml /etc/bouncer/config.yml
|
|
||||||
|
|
||||||
RUN ln -s /usr/share/bouncer/bin/bouncer /usr/local/bin/bouncer
|
|
||||||
|
|
||||||
EXPOSE 8080
|
|
||||||
EXPOSE 8081
|
|
||||||
|
|
||||||
ENV BOUNCER_CONFIG=/etc/bouncer/config.yml
|
|
||||||
|
|
||||||
CMD ["bouncer"]
|
|
@ -1,10 +0,0 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
namespace: bouncer
|
|
||||||
|
|
||||||
resources:
|
|
||||||
- ./resources/namespace.yaml
|
|
||||||
- ./resources/bouncer-server
|
|
||||||
- ./resources/bouncer-admin
|
|
||||||
- ./resources/redis
|
|
||||||
|
|
@ -1 +0,0 @@
|
|||||||
{"d":"JuBw5OsGv3rPgVczxUgtJ6iUQ41LQu4Xpu-t8IKI_z8r-BZBlbndxidPmRlGZASLGL3rhY4qw6_ScFxakrMpCreO1RMU0kqtz--N48BXFnW5tEgr1voyyKP__bPssQNn6PgkoyAd11es7MEKlBff_DtGrcSkVRgU0zDZB-vIU0aNEIZPNw0icbYqc1u_QQNPpBU9cw6P33WHhzvfCVAkZKRszwznhiPM08n1vjpiA7e1kQ8a6OC4IFZBvohkmpmyOq1g1OLRABQ83YPCjGjCAejO-jEWkbLksp6rAl_YYpCvfBAjFV76JuZq4eh5IU82LsSfi3PGYBkhxWuLY779XQ","dp":"gljHOQowGK7fVn2DJizWtgRIDJuKpKnoX2PWNJUbm2WZwcEPZalAkxn7Y-w_reLVJZuRpfKEUMS-Tn3-CwI1ZjCHPqMPTXcoG0Pe2E-Z88jOs9lW4XSOASiiM980VIvkV1xCxDJkN3NsDFQ9j9kRGnKuMnsucCW3AKaU917hXNU","dq":"mqY19JcEBDnzS70_XkAsOKqPzemOScax66b-4N6zrsgeLVlRjHffY9uCAgBWzlxOidRdQN8q23ZJB4fqsKB2w00Iw7Jxx94IoAKGjKDT5iB48Y_kdKLAwSHRTXsqA9GG3po_H_JpP_EqX4TDBYtqQZuBD_tACP9HbLYMi_V2YU8","e":"AQAB","kty":"RSA","n":"sam0X0BGcuFwX8z3Wde8cv2o_zl6A9ghpkT0tCjw8qH3GNWrbAqzncSWdHBzoChBgAbuTOVs-ixYC0KeUhwFdc8Ul-jmKJWFaS8kIr3y4EH62-vLgMuIKfaxbsyUG6KMkJfnftge1jPO4ccddNej9msxcqTxu37dcgstutwtd6QkS9p5RrNbDBc8-Z7SQ4TuxJfP8msXRnCPJ-I44yszGdQF1Np2DXakJHVn8PBrDh3iSFwORw8jxNS4oS0OlBl5aSc0t5XkkaNcSU2a50SKts290w54fl6MPJ1sLnnznLy4uu37-nrfEUvqRLDZL9B1F82RM1dtLIIiN4gnSrMlpQ","p":"wOmFPhAT_wXWzMuwtEdYIer3-CiOWxFKpFL09eEJkJ29MIUchEaoiJaUAghqPxM48llfOVaUaLbFVxmo5U3fyjNMaP-nHMUBwojutykMK-gC2R3J4bQgFWfKbGSL7M7UsextAvpq9iiOuR0LNE-xTfCgPIxHVdPZskO3yx0DkjM","q":"68OGRb0tLRjb_PpkGctcSjEz_vvcyjzxGL-fn4_h4GCw98Xrj6Y4rZ4lfWWRSeDohSvdd-ICSlxvxkQOIOcA0H7jyJcBC0KDs4hX5BRGJNDri3QX0ry4_F1ptAdbfiFgQGqCfMRCr7L60Tfd_6tLczvny7eEBKQNGdj6dLfhgMc","qi":"DFwixyxUDf0REPLLa8hOKieRL95_AH9rbYWzStBOdSjKWra5l0reD6a4bbvAYvl0e8qCcRI6S8Nzpz0BYm4sJL7poVOnjxqvBY3Q9Ppf4Mq8lW39pOCJcqOHIvvYHsMjTC5uwp7Yg2p0GvxuUibbyNL1PXf6WZ_szVP_oSMrCXA"}
|
|
@ -1,36 +0,0 @@
|
|||||||
admin:
|
|
||||||
http:
|
|
||||||
host: 127.0.0.1
|
|
||||||
port: 8081
|
|
||||||
cors:
|
|
||||||
allowedOrigins:
|
|
||||||
- http://localhost:3001
|
|
||||||
allowCredentials: true
|
|
||||||
allowMethods:
|
|
||||||
- POST
|
|
||||||
- GET
|
|
||||||
- PUT
|
|
||||||
- DELETE
|
|
||||||
allowedHeaders:
|
|
||||||
- Origin
|
|
||||||
- Accept
|
|
||||||
- Content-Type
|
|
||||||
- Authorization
|
|
||||||
- Sentry-Trace
|
|
||||||
debug: false
|
|
||||||
auth:
|
|
||||||
issuer: http://127.0.0.1:8081
|
|
||||||
privateKey: /etc/bouncer/admin-key.json
|
|
||||||
metrics:
|
|
||||||
enabled: true
|
|
||||||
endpoint: /.bouncer/metrics
|
|
||||||
basicAuth: null
|
|
||||||
|
|
||||||
redis:
|
|
||||||
addresses:
|
|
||||||
- ${REDIS_SENTINEL_HOST}:${REDIS_SENTINEL_PORT}
|
|
||||||
master: "${REDIS_MASTER_NAME}"
|
|
||||||
|
|
||||||
logger:
|
|
||||||
level: 3
|
|
||||||
format: human
|
|
@ -1,17 +0,0 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
|
|
||||||
resources:
|
|
||||||
- ./resources/service.yaml
|
|
||||||
- ./resources/deployment.yaml
|
|
||||||
|
|
||||||
configMapGenerator:
|
|
||||||
- name: bouncer-admin-config
|
|
||||||
files:
|
|
||||||
- ./files/config.yml
|
|
||||||
- ./files/admin-key.json
|
|
||||||
- name: bouncer-admin-env
|
|
||||||
literals:
|
|
||||||
- REDIS_SENTINEL_HOST="rfs-$(REDIS_SERVICE_NAME)"
|
|
||||||
- REDIS_SENTINEL_PORT="26379"
|
|
||||||
- REDIS_MASTER_NAME="mymaster"
|
|
@ -1,38 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: bouncer-admin
|
|
||||||
labels:
|
|
||||||
app: bouncer-admin
|
|
||||||
spec:
|
|
||||||
replicas: 3
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: bouncer-admin
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: bouncer-admin
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: bouncer-admin
|
|
||||||
image: reg.cadoles.com/cadoles/bouncer:v2023.7.8-b44ff2a
|
|
||||||
command: ["bouncer"]
|
|
||||||
args: ["--debug", "-c", "/etc/bouncer/config.yml", "server", "admin", "run"]
|
|
||||||
imagePullPolicy: Always
|
|
||||||
envFrom:
|
|
||||||
- configMapRef:
|
|
||||||
name: bouncer-admin-env
|
|
||||||
env:
|
|
||||||
- name: REDIS_SENTINEL_HOST
|
|
||||||
value: "rfs-$(REDIS_SERVICE_NAME)"
|
|
||||||
ports:
|
|
||||||
- name: bouncer-admin
|
|
||||||
containerPort: 8081
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /etc/bouncer/
|
|
||||||
name: bouncer-admin-config
|
|
||||||
volumes:
|
|
||||||
- name: bouncer-admin-config
|
|
||||||
configMap:
|
|
||||||
name: bouncer-admin-config
|
|
@ -1,14 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
io.kompose.service: bouncer-admin
|
|
||||||
name: bouncer-admin
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- name: bouncer-admin
|
|
||||||
port: 8081
|
|
||||||
targetPort: 8080
|
|
||||||
selector:
|
|
||||||
io.kompose.service: bouncer-admin
|
|
@ -1,22 +0,0 @@
|
|||||||
proxy:
|
|
||||||
http:
|
|
||||||
host: 0.0.0.0
|
|
||||||
port: 8080
|
|
||||||
metrics:
|
|
||||||
enabled: true
|
|
||||||
endpoint: /.bouncer/metrics
|
|
||||||
basicAuth: null
|
|
||||||
|
|
||||||
layers:
|
|
||||||
queue:
|
|
||||||
templateDir: /usr/share/bouncer/layers/queue/templates
|
|
||||||
defaultKeepAlive: 1m0s
|
|
||||||
|
|
||||||
redis:
|
|
||||||
addresses:
|
|
||||||
- ${RFS_BOUNCER_REDIS_SERVICE_HOST}:${RFS_BOUNCER_REDIS_SERVICE_PORT}
|
|
||||||
master: ""
|
|
||||||
|
|
||||||
logger:
|
|
||||||
level: 3
|
|
||||||
format: human
|
|
@ -1,11 +0,0 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
|
|
||||||
resources:
|
|
||||||
- ./resources/service.yaml
|
|
||||||
- ./resources/deployment.yaml
|
|
||||||
|
|
||||||
configMapGenerator:
|
|
||||||
- name: bouncer-server-config
|
|
||||||
files:
|
|
||||||
- ./files/config.yml
|
|
@ -1,31 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: bouncer-server
|
|
||||||
labels:
|
|
||||||
app: bouncer-server
|
|
||||||
spec:
|
|
||||||
replicas: 3
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: bouncer-server
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: bouncer-server
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: bouncer-server
|
|
||||||
image: reg.cadoles.com/cadoles/bouncer:v2023.7.8-b44ff2a
|
|
||||||
command: ["bouncer", "-c", "/etc/bouncer/config.yml", "server", "proxy", "run"]
|
|
||||||
imagePullPolicy: Always
|
|
||||||
ports:
|
|
||||||
- name: bouncer-server
|
|
||||||
containerPort: 8080
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /etc/bouncer/
|
|
||||||
name: bouncer-server-config
|
|
||||||
volumes:
|
|
||||||
- name: bouncer-server-config
|
|
||||||
configMap:
|
|
||||||
name: bouncer-server-config
|
|
@ -1,14 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
io.kompose.service: bouncer-server
|
|
||||||
name: bouncer-server
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- name: bouncer-server
|
|
||||||
port: 8080
|
|
||||||
targetPort: 8080
|
|
||||||
selector:
|
|
||||||
io.kompose.service: bouncer-server
|
|
@ -1,4 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Namespace
|
|
||||||
metadata:
|
|
||||||
name: bouncer
|
|
@ -1,15 +0,0 @@
|
|||||||
|
|
||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
|
|
||||||
resources:
|
|
||||||
- ./resources/redis-cluster.yaml
|
|
||||||
|
|
||||||
vars:
|
|
||||||
- name: REDIS_SERVICE_NAME
|
|
||||||
objref:
|
|
||||||
name: bouncer-redis
|
|
||||||
apiVersion: databases.spotahome.com/v1
|
|
||||||
kind: RedisFailover
|
|
||||||
fieldref:
|
|
||||||
fieldpath: metadata.name
|
|
@ -1,21 +0,0 @@
|
|||||||
apiVersion: databases.spotahome.com/v1
|
|
||||||
kind: RedisFailover
|
|
||||||
metadata:
|
|
||||||
name: bouncer-redis
|
|
||||||
spec:
|
|
||||||
sentinel:
|
|
||||||
replicas: 3
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 100m
|
|
||||||
limits:
|
|
||||||
memory: 100Mi
|
|
||||||
redis:
|
|
||||||
replicas: 3
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 100m
|
|
||||||
memory: 100Mi
|
|
||||||
limits:
|
|
||||||
cpu: 400m
|
|
||||||
memory: 500Mi
|
|
@ -1,18 +0,0 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
namespace: bouncer-dev
|
|
||||||
|
|
||||||
resources:
|
|
||||||
- ../../base
|
|
||||||
|
|
||||||
secretGenerator:
|
|
||||||
- files:
|
|
||||||
- secrets/dockerconfig/.dockerconfigjson
|
|
||||||
name: regcred-dev
|
|
||||||
type: kubernetes.io/dockerconfigjson
|
|
||||||
|
|
||||||
patches:
|
|
||||||
- path: patches/add-registry-pull-secret.patch.yaml
|
|
||||||
target:
|
|
||||||
kind: Deployment
|
|
||||||
version: v1
|
|
@ -1,4 +0,0 @@
|
|||||||
- op: add
|
|
||||||
path: "/spec/template/spec/imagePullSecrets"
|
|
||||||
value:
|
|
||||||
- name: regcred-dev
|
|
@ -1,42 +0,0 @@
|
|||||||
apiVersion: skaffold/v3
|
|
||||||
kind: Config
|
|
||||||
|
|
||||||
metadata:
|
|
||||||
name: bouncer
|
|
||||||
|
|
||||||
manifests:
|
|
||||||
kustomize:
|
|
||||||
paths:
|
|
||||||
- misc/k8s/kustomization/base
|
|
||||||
|
|
||||||
profiles:
|
|
||||||
- name: dev
|
|
||||||
manifests:
|
|
||||||
kustomize:
|
|
||||||
paths:
|
|
||||||
- misc/k8s/kustomization/overlays/dev
|
|
||||||
activation:
|
|
||||||
- command: dev
|
|
||||||
|
|
||||||
build:
|
|
||||||
local:
|
|
||||||
push: true
|
|
||||||
|
|
||||||
tagPolicy:
|
|
||||||
sha256: {}
|
|
||||||
|
|
||||||
artifacts:
|
|
||||||
- image: reg.cadoles.com/cadoles/bouncer
|
|
||||||
context: .
|
|
||||||
sync:
|
|
||||||
infer:
|
|
||||||
- cmd/**
|
|
||||||
- internal/**
|
|
||||||
- layers/**
|
|
||||||
- tools/**
|
|
||||||
- data/**
|
|
||||||
docker:
|
|
||||||
dockerfile: misc/images/bouncer/Dockerfile
|
|
||||||
|
|
||||||
deploy:
|
|
||||||
statusCheckDeadlineSeconds: 600
|
|
Reference in New Issue
Block a user