6 changed files with 763 additions and 0 deletions
@ -0,0 +1,12 @@ |
|||
apiVersion: rbac.authorization.k8s.io/v1 |
|||
kind: ClusterRoleBinding |
|||
metadata: |
|||
name: admin-user |
|||
roleRef: |
|||
apiGroup: rbac.authorization.k8s.io |
|||
kind: ClusterRole |
|||
name: cluster-admin |
|||
subjects: |
|||
- kind: ServiceAccount |
|||
name: admin-user |
|||
namespace: kubernetes-dashboard |
|||
@ -0,0 +1,5 @@ |
|||
apiVersion: v1 |
|||
kind: ServiceAccount |
|||
metadata: |
|||
name: admin-user |
|||
namespace: kubernetes-dashboard |
|||
@ -0,0 +1,16 @@ |
|||
apiVersion: networking.k8s.io/v1beta1 |
|||
kind: Ingress |
|||
metadata: |
|||
name: dashboard-ingress |
|||
namespace: kubernetes-dashboard |
|||
annotations: |
|||
kubernetes.io/ingress.class: "traefik" |
|||
spec: |
|||
rules: |
|||
- host: dashboard.k3s.semapp.lan |
|||
http: |
|||
paths: |
|||
- path: / |
|||
backend: |
|||
serviceName: kubernetes-dashboard |
|||
servicePort: 443 |
|||
@ -0,0 +1,303 @@ |
|||
# Copyright 2017 The Kubernetes Authors. |
|||
# |
|||
# Licensed under the Apache License, Version 2.0 (the "License"); |
|||
# you may not use this file except in compliance with the License. |
|||
# You may obtain a copy of the License at |
|||
# |
|||
# http://www.apache.org/licenses/LICENSE-2.0 |
|||
# |
|||
# Unless required by applicable law or agreed to in writing, software |
|||
# distributed under the License is distributed on an "AS IS" BASIS, |
|||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
# See the License for the specific language governing permissions and |
|||
# limitations under the License. |
|||
|
|||
apiVersion: v1 |
|||
kind: Namespace |
|||
metadata: |
|||
name: kubernetes-dashboard |
|||
|
|||
--- |
|||
|
|||
apiVersion: v1 |
|||
kind: ServiceAccount |
|||
metadata: |
|||
labels: |
|||
k8s-app: kubernetes-dashboard |
|||
name: kubernetes-dashboard |
|||
namespace: kubernetes-dashboard |
|||
|
|||
--- |
|||
|
|||
kind: Service |
|||
apiVersion: v1 |
|||
metadata: |
|||
labels: |
|||
k8s-app: kubernetes-dashboard |
|||
name: kubernetes-dashboard |
|||
namespace: kubernetes-dashboard |
|||
spec: |
|||
ports: |
|||
- port: 443 |
|||
targetPort: 8443 |
|||
selector: |
|||
k8s-app: kubernetes-dashboard |
|||
|
|||
--- |
|||
|
|||
apiVersion: v1 |
|||
kind: Secret |
|||
metadata: |
|||
labels: |
|||
k8s-app: kubernetes-dashboard |
|||
name: kubernetes-dashboard-certs |
|||
namespace: kubernetes-dashboard |
|||
type: Opaque |
|||
|
|||
--- |
|||
|
|||
apiVersion: v1 |
|||
kind: Secret |
|||
metadata: |
|||
labels: |
|||
k8s-app: kubernetes-dashboard |
|||
name: kubernetes-dashboard-csrf |
|||
namespace: kubernetes-dashboard |
|||
type: Opaque |
|||
data: |
|||
csrf: "" |
|||
|
|||
--- |
|||
|
|||
apiVersion: v1 |
|||
kind: Secret |
|||
metadata: |
|||
labels: |
|||
k8s-app: kubernetes-dashboard |
|||
name: kubernetes-dashboard-key-holder |
|||
namespace: kubernetes-dashboard |
|||
type: Opaque |
|||
|
|||
--- |
|||
|
|||
kind: ConfigMap |
|||
apiVersion: v1 |
|||
metadata: |
|||
labels: |
|||
k8s-app: kubernetes-dashboard |
|||
name: kubernetes-dashboard-settings |
|||
namespace: kubernetes-dashboard |
|||
|
|||
--- |
|||
|
|||
kind: Role |
|||
apiVersion: rbac.authorization.k8s.io/v1 |
|||
metadata: |
|||
labels: |
|||
k8s-app: kubernetes-dashboard |
|||
name: kubernetes-dashboard |
|||
namespace: kubernetes-dashboard |
|||
rules: |
|||
# Allow Dashboard to get, update and delete Dashboard exclusive secrets. |
|||
- apiGroups: [""] |
|||
resources: ["secrets"] |
|||
resourceNames: ["kubernetes-dashboard-key-holder", "kubernetes-dashboard-certs", "kubernetes-dashboard-csrf"] |
|||
verbs: ["get", "update", "delete"] |
|||
# Allow Dashboard to get and update 'kubernetes-dashboard-settings' config map. |
|||
- apiGroups: [""] |
|||
resources: ["configmaps"] |
|||
resourceNames: ["kubernetes-dashboard-settings"] |
|||
verbs: ["get", "update"] |
|||
# Allow Dashboard to get metrics. |
|||
- apiGroups: [""] |
|||
resources: ["services"] |
|||
resourceNames: ["heapster", "dashboard-metrics-scraper"] |
|||
verbs: ["proxy"] |
|||
- apiGroups: [""] |
|||
resources: ["services/proxy"] |
|||
resourceNames: ["heapster", "http:heapster:", "https:heapster:", "dashboard-metrics-scraper", "http:dashboard-metrics-scraper"] |
|||
verbs: ["get"] |
|||
|
|||
--- |
|||
|
|||
kind: ClusterRole |
|||
apiVersion: rbac.authorization.k8s.io/v1 |
|||
metadata: |
|||
labels: |
|||
k8s-app: kubernetes-dashboard |
|||
name: kubernetes-dashboard |
|||
rules: |
|||
# Allow Metrics Scraper to get metrics from the Metrics server |
|||
- apiGroups: ["metrics.k8s.io"] |
|||
resources: ["pods", "nodes"] |
|||
verbs: ["get", "list", "watch"] |
|||
|
|||
--- |
|||
|
|||
apiVersion: rbac.authorization.k8s.io/v1 |
|||
kind: RoleBinding |
|||
metadata: |
|||
labels: |
|||
k8s-app: kubernetes-dashboard |
|||
name: kubernetes-dashboard |
|||
namespace: kubernetes-dashboard |
|||
roleRef: |
|||
apiGroup: rbac.authorization.k8s.io |
|||
kind: Role |
|||
name: kubernetes-dashboard |
|||
subjects: |
|||
- kind: ServiceAccount |
|||
name: kubernetes-dashboard |
|||
namespace: kubernetes-dashboard |
|||
|
|||
--- |
|||
|
|||
apiVersion: rbac.authorization.k8s.io/v1 |
|||
kind: ClusterRoleBinding |
|||
metadata: |
|||
name: kubernetes-dashboard |
|||
roleRef: |
|||
apiGroup: rbac.authorization.k8s.io |
|||
kind: ClusterRole |
|||
name: kubernetes-dashboard |
|||
subjects: |
|||
- kind: ServiceAccount |
|||
name: kubernetes-dashboard |
|||
namespace: kubernetes-dashboard |
|||
|
|||
--- |
|||
|
|||
kind: Deployment |
|||
apiVersion: apps/v1 |
|||
metadata: |
|||
labels: |
|||
k8s-app: kubernetes-dashboard |
|||
name: kubernetes-dashboard |
|||
namespace: kubernetes-dashboard |
|||
spec: |
|||
replicas: 1 |
|||
revisionHistoryLimit: 10 |
|||
selector: |
|||
matchLabels: |
|||
k8s-app: kubernetes-dashboard |
|||
template: |
|||
metadata: |
|||
labels: |
|||
k8s-app: kubernetes-dashboard |
|||
spec: |
|||
containers: |
|||
- name: kubernetes-dashboard |
|||
image: kubernetesui/dashboard:v2.4.0 |
|||
imagePullPolicy: Always |
|||
ports: |
|||
- containerPort: 8443 |
|||
protocol: TCP |
|||
args: |
|||
- --auto-generate-certificates |
|||
- --namespace=kubernetes-dashboard |
|||
# Uncomment the following line to manually specify Kubernetes API server Host |
|||
# If not specified, Dashboard will attempt to auto discover the API server and connect |
|||
# to it. Uncomment only if the default does not work. |
|||
# - --apiserver-host=http://my-address:port |
|||
volumeMounts: |
|||
- name: kubernetes-dashboard-certs |
|||
mountPath: /certs |
|||
# Create on-disk volume to store exec logs |
|||
- mountPath: /tmp |
|||
name: tmp-volume |
|||
livenessProbe: |
|||
httpGet: |
|||
scheme: HTTPS |
|||
path: / |
|||
port: 8443 |
|||
initialDelaySeconds: 30 |
|||
timeoutSeconds: 30 |
|||
securityContext: |
|||
allowPrivilegeEscalation: false |
|||
readOnlyRootFilesystem: true |
|||
runAsUser: 1001 |
|||
runAsGroup: 2001 |
|||
volumes: |
|||
- name: kubernetes-dashboard-certs |
|||
secret: |
|||
secretName: kubernetes-dashboard-certs |
|||
- name: tmp-volume |
|||
emptyDir: {} |
|||
serviceAccountName: kubernetes-dashboard |
|||
nodeSelector: |
|||
"kubernetes.io/os": linux |
|||
# Comment the following tolerations if Dashboard must not be deployed on master |
|||
tolerations: |
|||
- key: node-role.kubernetes.io/master |
|||
effect: NoSchedule |
|||
|
|||
--- |
|||
|
|||
kind: Service |
|||
apiVersion: v1 |
|||
metadata: |
|||
labels: |
|||
k8s-app: dashboard-metrics-scraper |
|||
name: dashboard-metrics-scraper |
|||
namespace: kubernetes-dashboard |
|||
spec: |
|||
ports: |
|||
- port: 8000 |
|||
targetPort: 8000 |
|||
selector: |
|||
k8s-app: dashboard-metrics-scraper |
|||
|
|||
--- |
|||
|
|||
kind: Deployment |
|||
apiVersion: apps/v1 |
|||
metadata: |
|||
labels: |
|||
k8s-app: dashboard-metrics-scraper |
|||
name: dashboard-metrics-scraper |
|||
namespace: kubernetes-dashboard |
|||
spec: |
|||
replicas: 1 |
|||
revisionHistoryLimit: 10 |
|||
selector: |
|||
matchLabels: |
|||
k8s-app: dashboard-metrics-scraper |
|||
template: |
|||
metadata: |
|||
labels: |
|||
k8s-app: dashboard-metrics-scraper |
|||
spec: |
|||
securityContext: |
|||
seccompProfile: |
|||
type: RuntimeDefault |
|||
containers: |
|||
- name: dashboard-metrics-scraper |
|||
image: kubernetesui/metrics-scraper:v1.0.7 |
|||
ports: |
|||
- containerPort: 8000 |
|||
protocol: TCP |
|||
livenessProbe: |
|||
httpGet: |
|||
scheme: HTTP |
|||
path: / |
|||
port: 8000 |
|||
initialDelaySeconds: 30 |
|||
timeoutSeconds: 30 |
|||
volumeMounts: |
|||
- mountPath: /tmp |
|||
name: tmp-volume |
|||
securityContext: |
|||
allowPrivilegeEscalation: false |
|||
readOnlyRootFilesystem: true |
|||
runAsUser: 1001 |
|||
runAsGroup: 2001 |
|||
serviceAccountName: kubernetes-dashboard |
|||
nodeSelector: |
|||
"kubernetes.io/os": linux |
|||
# Comment the following tolerations if Dashboard must not be deployed on master |
|||
tolerations: |
|||
- key: node-role.kubernetes.io/master |
|||
effect: NoSchedule |
|||
volumes: |
|||
- name: tmp-volume |
|||
emptyDir: {} |
|||
@ -0,0 +1,215 @@ |
|||
# Deployment description |
|||
apiVersion: apps/v1 |
|||
kind: Deployment |
|||
metadata: |
|||
name: baseline-deployment |
|||
namespace: dev-environment |
|||
labels: |
|||
app: baseline-dev |
|||
spec: |
|||
strategy: |
|||
type: Recreate |
|||
replicas: 1 |
|||
selector: |
|||
matchLabels: |
|||
app: baseline-dev |
|||
template: |
|||
metadata: |
|||
labels: |
|||
app: baseline-dev |
|||
spec: |
|||
containers: |
|||
- name: baseline-frontend |
|||
image: packages.semapp.lan:5000/baseline_frontend:qa1 |
|||
workingDir: /srv/web |
|||
resources: |
|||
requests: |
|||
memory: "256Mi" |
|||
cpu: "100m" |
|||
limits: |
|||
memory: "512Mi" |
|||
cpu: "4" |
|||
ports: |
|||
- containerPort: 8000 |
|||
name: baseline-http |
|||
protocol: TCP |
|||
volumeMounts: |
|||
- mountPath: /etc/nginx/conf.d |
|||
readOnly: true |
|||
name: baseline-dev-frontend-conf |
|||
imagePullPolicy: Always |
|||
env: |
|||
- name: KEYCLOAK_REALM |
|||
value: "baseline_develop" |
|||
- name: KEYCLOAK_CLIENT |
|||
value: "baseline" |
|||
- name: KEYCLOAK_TOKEN_VALIDITY |
|||
value: "600" |
|||
- name: KEYCLOAK_URL |
|||
value: "http://keycloak.semapp.lan/auth/" |
|||
|
|||
- name: baseline-backend |
|||
image: packages.semapp.lan:5000/baseline_backend:qa1 |
|||
workingDir: /opt/www |
|||
resources: |
|||
requests: |
|||
memory: "256Mi" |
|||
cpu: "100m" |
|||
limits: |
|||
memory: "512Mi" |
|||
cpu: "4" |
|||
ports: |
|||
- containerPort: 5000 |
|||
name: bl-bck-http |
|||
protocol: TCP |
|||
imagePullPolicy: Always |
|||
envFrom: |
|||
- configMapRef: |
|||
name: baseline-dev-backend-conf |
|||
volumes: |
|||
- name: baseline-dev-frontend-conf |
|||
configMap: |
|||
name: baseline-dev-frontend-conf |
|||
|
|||
|
|||
|
|||
--- |
|||
apiVersion: v1 |
|||
kind: ConfigMap |
|||
metadata: |
|||
namespace: dev-environment |
|||
name: baseline-dev-backend-conf |
|||
labels: |
|||
app: baseline-dev |
|||
data: |
|||
DB_CONNECTION: "pgsql" |
|||
DB_HOST: "postgres-lb" |
|||
DB_PORT: "5432" |
|||
DB_DATABASE: "baseline-dev" |
|||
DB_USERNAME: "baseline-dev" |
|||
DB_PASSWORD: "password" |
|||
|
|||
APP_NAME: "Baseline" |
|||
APP_ENV: "development" |
|||
APP_KEY: "base64:14Vg4rilGKEk34XeqNR7ffg6GhFTzA7/z5T1aqy6JHw=" |
|||
APP_DEBUG: "true" |
|||
APP_URL: "http://baseline-dev.k3s.semapp.lan/" |
|||
|
|||
LOG_CHANNEL: "stack" |
|||
BROADCAST_DRIVER: "log" |
|||
CACHE_DRIVER: "file" |
|||
QUEUE_CONNECTION: "sync" |
|||
SESSION_DRIVER: "cookie" |
|||
SESSION_LIFETIME: "120" |
|||
|
|||
|
|||
SANCTUM_STATEFUL_DOMAINS: "baseline-dev.k3s.semapp.lan" |
|||
SESSION_DOMAIN: "baseline-dev.k3s.semapp.lan" |
|||
|
|||
THROTTLE_MAX_ATTEMPTS: "80" |
|||
|
|||
KEYCLOAK_URL: "http://keycloak.semapp.lan" |
|||
KEYCLOAK_PORT: "80" |
|||
KEYCLOAK_REALM: "baseline_develop" |
|||
|
|||
REDIRECT_URL: "http://baseline-dev.k3s.semapp.lan/" |
|||
|
|||
--- |
|||
apiVersion: v1 |
|||
kind: ConfigMap |
|||
metadata: |
|||
namespace: dev-environment |
|||
name: baseline-dev-frontend-conf |
|||
data: |
|||
default.conf: | |
|||
upstream backend { |
|||
server baseline-backend-dev:5000; |
|||
} |
|||
|
|||
server { |
|||
listen 8000; |
|||
|
|||
access_log /var/log/nginx/access.log; |
|||
charset utf-8; |
|||
client_max_body_size 1G; |
|||
|
|||
location / { |
|||
root /srv/web; |
|||
add_header X-Frame-Options "SAMEORIGIN"; |
|||
index index.html index.htm; |
|||
try_files $uri $uri /index.html =404; |
|||
} |
|||
|
|||
location ~ ^/api { |
|||
proxy_pass http://backend; |
|||
proxy_redirect off; |
|||
|
|||
proxy_set_header Host $host; |
|||
proxy_set_header X-Real-IP $remote_addr; |
|||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
|||
|
|||
proxy_read_timeout 300s; |
|||
proxy_send_timeout 300s; |
|||
send_timeout 300s; |
|||
} |
|||
|
|||
error_page 404 =200 /index.html; |
|||
|
|||
add_header 'Cache-Control' 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0'; |
|||
|
|||
expires off; |
|||
open_file_cache off; |
|||
sendfile off; |
|||
} |
|||
|
|||
|
|||
--- |
|||
# EFC Service |
|||
apiVersion: v1 |
|||
kind: Service |
|||
metadata: |
|||
name: baseline-frontend-dev |
|||
namespace: dev-environment |
|||
spec: |
|||
selector: |
|||
app: baseline-dev |
|||
ports: |
|||
- name: baseline-http |
|||
port: 8000 |
|||
targetPort: baseline-http |
|||
type: NodePort |
|||
|
|||
--- |
|||
# EFC backend |
|||
apiVersion: v1 |
|||
kind: Service |
|||
metadata: |
|||
name: baseline-backend-dev |
|||
namespace: dev-environment |
|||
spec: |
|||
selector: |
|||
app: baseline-dev |
|||
ports: |
|||
- name: bl-bck-http |
|||
port: 5000 |
|||
targetPort: bl-bck-http |
|||
type: NodePort |
|||
--- |
|||
|
|||
# Ingress description |
|||
apiVersion: networking.k8s.io/v1beta1 |
|||
kind: Ingress |
|||
metadata: |
|||
name: baseline-dev-ingress |
|||
namespace: dev-environment |
|||
annotations: |
|||
kubernetes.io/ingress.class: "traefik" |
|||
spec: |
|||
rules: |
|||
- host: baseline-dev.k3s.semapp.lan |
|||
http: |
|||
paths: |
|||
- path: / |
|||
backend: |
|||
serviceName: baseline-frontend-dev |
|||
servicePort: 8000 |
|||
@ -0,0 +1,212 @@ |
|||
# Deployment description |
|||
apiVersion: apps/v1 |
|||
kind: Deployment |
|||
metadata: |
|||
name: baseline-deployment |
|||
namespace: qa-environment |
|||
labels: |
|||
app: baseline-qa |
|||
spec: |
|||
strategy: |
|||
type: Recreate |
|||
replicas: 1 |
|||
selector: |
|||
matchLabels: |
|||
app: baseline-qa |
|||
template: |
|||
metadata: |
|||
labels: |
|||
app: baseline-qa |
|||
spec: |
|||
containers: |
|||
- name: baseline-frontend |
|||
image: packages.semapp.lan:5000/baseline_frontend:qa1 |
|||
workingDir: /srv/web |
|||
resources: |
|||
requests: |
|||
memory: "256Mi" |
|||
cpu: "100m" |
|||
limits: |
|||
memory: "512Mi" |
|||
cpu: "4" |
|||
ports: |
|||
- containerPort: 8000 |
|||
name: baseline-http |
|||
protocol: TCP |
|||
volumeMounts: |
|||
- mountPath: /etc/nginx/conf.d |
|||
readOnly: true |
|||
name: baseline-qa-frontend-conf |
|||
env: |
|||
- name: KEYCLOAK_REALM |
|||
value: "baseline_test" |
|||
- name: KEYCLOAK_CLIENT |
|||
value: "baseline_qa" |
|||
- name: KEYCLOAK_TOKEN_VALIDITY |
|||
value: "600" |
|||
- name: KEYCLOAK_URL |
|||
value: "http://keycloak.semapp.lan/auth/" |
|||
imagePullPolicy: Always |
|||
|
|||
- name: baseline-backend |
|||
image: packages.semapp.lan:5000/baseline_backend:qa1 |
|||
workingDir: /opt/www |
|||
resources: |
|||
requests: |
|||
memory: "256Mi" |
|||
cpu: "100m" |
|||
limits: |
|||
memory: "512Mi" |
|||
cpu: "4" |
|||
ports: |
|||
- containerPort: 5000 |
|||
name: bl-bck-http |
|||
protocol: TCP |
|||
imagePullPolicy: Always |
|||
envFrom: |
|||
- configMapRef: |
|||
name: baseline-qa-backend-conf |
|||
volumes: |
|||
- name: baseline-qa-frontend-conf |
|||
configMap: |
|||
name: baseline-qa-frontend-conf |
|||
|
|||
--- |
|||
apiVersion: v1 |
|||
kind: ConfigMap |
|||
metadata: |
|||
namespace: qa-environment |
|||
name: baseline-qa-backend-conf |
|||
labels: |
|||
app: baseline-qa |
|||
data: |
|||
DB_CONNECTION: "pgsql" |
|||
DB_HOST: "dbpg11.semapp.lan" |
|||
DB_PORT: "5432" |
|||
DB_DATABASE: "baseline_k8s_qa" |
|||
DB_USERNAME: "baseline_qa" |
|||
DB_PASSWORD: "baseline_qa" |
|||
|
|||
APP_NAME: "Baseline" |
|||
APP_ENV: "development" |
|||
APP_KEY: "base64:14Vg4rilGKEk34XeqNR7ffg6GhFTzA7/z5T1aqy6JHw=" |
|||
APP_DEBUG: "true" |
|||
APP_URL: "http://baseline-qa.k3s.semapp.lan/" |
|||
|
|||
LOG_CHANNEL: "stack" |
|||
BROADCAST_DRIVER: "log" |
|||
CACHE_DRIVER: "file" |
|||
QUEUE_CONNECTION: "sync" |
|||
SESSION_DRIVER: "cookie" |
|||
SESSION_LIFETIME: "120" |
|||
|
|||
|
|||
SANCTUM_STATEFUL_DOMAINS: "baseline-qa.k3s.semapp.lan" |
|||
SESSION_DOMAIN: "baseline-qa.k3s.semapp.lan" |
|||
|
|||
THROTTLE_MAX_ATTEMPTS: "80" |
|||
|
|||
KEYCLOAK_URL: "http://keycloak.semapp.lan" |
|||
KEYCLOAK_PORT: "80" |
|||
KEYCLOAK_REALM: "baseline_test" |
|||
|
|||
REDIRECT_URL: "http://baseline-qa.k3s.semapp.lan/" |
|||
|
|||
--- |
|||
apiVersion: v1 |
|||
kind: ConfigMap |
|||
metadata: |
|||
namespace: qa-environment |
|||
name: baseline-qa-frontend-conf |
|||
data: |
|||
default.conf: | |
|||
upstream backend { |
|||
server baseline-backend-qa:5000; |
|||
} |
|||
|
|||
server { |
|||
listen 8000; |
|||
|
|||
access_log /var/log/nginx/access.log; |
|||
charset utf-8; |
|||
client_max_body_size 1G; |
|||
|
|||
location / { |
|||
root /srv/web; |
|||
add_header X-Frame-Options "SAMEORIGIN"; |
|||
index index.html index.htm; |
|||
try_files $uri $uri /index.html =404; |
|||
} |
|||
|
|||
location ~ ^/api { |
|||
proxy_pass http://backend; |
|||
proxy_redirect off; |
|||
|
|||
proxy_set_header Host $host; |
|||
proxy_set_header X-Real-IP $remote_addr; |
|||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
|||
|
|||
proxy_read_timeout 300s; |
|||
proxy_send_timeout 300s; |
|||
send_timeout 300s; |
|||
} |
|||
|
|||
error_page 404 =200 /index.html; |
|||
|
|||
add_header 'Cache-Control' 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0'; |
|||
|
|||
expires off; |
|||
open_file_cache off; |
|||
sendfile off; |
|||
} |
|||
|
|||
--- |
|||
# EFC Service |
|||
apiVersion: v1 |
|||
kind: Service |
|||
metadata: |
|||
name: baseline-frontend-qa |
|||
namespace: qa-environment |
|||
spec: |
|||
selector: |
|||
app: baseline-qa |
|||
ports: |
|||
- name: baseline-http |
|||
port: 8000 |
|||
targetPort: baseline-http |
|||
type: NodePort |
|||
|
|||
--- |
|||
# EFC backend |
|||
apiVersion: v1 |
|||
kind: Service |
|||
metadata: |
|||
name: baseline-backend-qa |
|||
namespace: qa-environment |
|||
spec: |
|||
selector: |
|||
app: baseline-qa |
|||
ports: |
|||
- name: bl-bck-http |
|||
port: 5000 |
|||
targetPort: bl-bck-http |
|||
type: NodePort |
|||
--- |
|||
|
|||
# Ingress description |
|||
apiVersion: networking.k8s.io/v1beta1 |
|||
kind: Ingress |
|||
metadata: |
|||
name: baseline-qa-ingress |
|||
namespace: qa-environment |
|||
annotations: |
|||
kubernetes.io/ingress.class: "traefik" |
|||
spec: |
|||
rules: |
|||
- host: baseline-qa.k3s.semapp.lan |
|||
http: |
|||
paths: |
|||
- path: / |
|||
backend: |
|||
serviceName: baseline-frontend-qa |
|||
servicePort: 8000 |
|||
Loading…
Reference in new issue