fix deploy dotnet backend
This commit is contained in:
31
Makefile
31
Makefile
@ -1,38 +1,55 @@
|
|||||||
.PHONY: help build-backend build-frontend build-all deploy undeploy clean
|
# Переменные для путей к утилитам
|
||||||
|
KIND_PATH = /home/tactile/.kind-d8/kind
|
||||||
|
KUBECTL_PATH = /home/tactile/.kind-d8/kubectl
|
||||||
|
|
||||||
|
.PHONY: help build-backend build-backend-dotnet build-frontend build-all load-images deploy undeploy clean
|
||||||
|
|
||||||
help:
|
help:
|
||||||
@echo "Доступные команды:"
|
@echo "Доступные команды:"
|
||||||
@echo " make build-backend - Собрать Docker образ бэкенда"
|
@echo " make build-backend - Собрать Docker образ Python бэкенда"
|
||||||
|
@echo " make build-backend-dotnet - Собрать Docker образ .NET бэкенда"
|
||||||
@echo " make build-frontend - Собрать Docker образ фронтенда"
|
@echo " make build-frontend - Собрать Docker образ фронтенда"
|
||||||
@echo " make build-all - Собрать все Docker образы"
|
@echo " make build-all - Собрать все Docker образы"
|
||||||
|
@echo " make load-images - Загрузить образы в kind кластер"
|
||||||
@echo " make deploy - Развернуть приложение в k8s"
|
@echo " make deploy - Развернуть приложение в k8s"
|
||||||
@echo " make undeploy - Удалить приложение из k8s"
|
@echo " make undeploy - Удалить приложение из k8s"
|
||||||
@echo " make clean - Очистить все ресурсы"
|
@echo " make clean - Очистить все ресурсы"
|
||||||
|
|
||||||
build-backend:
|
build-backend:
|
||||||
@echo "Сборка backend образа..."
|
@echo "Сборка Python backend образа..."
|
||||||
docker build -t python-navigator-demo-backend:latest ./backend
|
docker build -t python-navigator-demo-backend:latest ./backend
|
||||||
|
|
||||||
|
build-backend-dotnet:
|
||||||
|
@echo "Сборка .NET backend образа..."
|
||||||
|
docker build -t python-navigator-demo-backend-dotnet:latest ./backend-dotnet
|
||||||
|
|
||||||
build-frontend:
|
build-frontend:
|
||||||
@echo "Сборка frontend образа..."
|
@echo "Сборка frontend образа..."
|
||||||
docker build -t python-navigator-demo-frontend:latest ./frontend
|
docker build -t python-navigator-demo-frontend:latest ./frontend
|
||||||
|
|
||||||
build-all: build-backend build-frontend
|
build-all: build-backend build-backend-dotnet build-frontend
|
||||||
@echo "Все образы собраны успешно!"
|
@echo "Все образы собраны успешно!"
|
||||||
|
|
||||||
|
load-images:
|
||||||
|
@echo "Загрузка образов в kind кластер..."
|
||||||
|
$(KIND_PATH) load docker-image python-navigator-demo-backend:latest --name d8
|
||||||
|
$(KIND_PATH) load docker-image python-navigator-demo-backend-dotnet:latest --name d8
|
||||||
|
$(KIND_PATH) load docker-image python-navigator-demo-frontend:latest --name d8
|
||||||
|
@echo "Образы загружены в kind кластер!"
|
||||||
|
|
||||||
deploy:
|
deploy:
|
||||||
@echo "Развертывание приложения в Kubernetes..."
|
@echo "Развертывание приложения в Kubernetes..."
|
||||||
~/.kind-d8/kubectl apply -k k8s/
|
$(KUBECTL_PATH) apply -k k8s/
|
||||||
@echo "Приложение развернуто!"
|
@echo "Приложение развернуто!"
|
||||||
@echo "Доступно по адресу: https://python-navigator-demo.127.0.0.1.sslip.io"
|
@echo "Доступно по адресу: https://python-navigator-demo.127.0.0.1.sslip.io"
|
||||||
|
|
||||||
undeploy:
|
undeploy:
|
||||||
@echo "Удаление приложения из Kubernetes..."
|
@echo "Удаление приложения из Kubernetes..."
|
||||||
~/.kind-d8/kubectl delete -k k8s/
|
$(KUBECTL_PATH) delete -k k8s/
|
||||||
@echo "Приложение удалено!"
|
@echo "Приложение удалено!"
|
||||||
|
|
||||||
clean: undeploy
|
clean: undeploy
|
||||||
@echo "Очистка Docker образов..."
|
@echo "Очистка Docker образов..."
|
||||||
docker rmi navigator-demo-backend:latest navigator-demo-frontend:latest || true
|
docker rmi python-navigator-demo-backend:latest python-navigator-demo-backend-dotnet:latest python-navigator-demo-frontend:latest || true
|
||||||
@echo "Очистка завершена!"
|
@echo "Очистка завершена!"
|
||||||
|
|
||||||
|
|||||||
@ -5,6 +5,16 @@ using Npgsql;
|
|||||||
|
|
||||||
var builder = WebApplication.CreateBuilder(args);
|
var builder = WebApplication.CreateBuilder(args);
|
||||||
|
|
||||||
|
// // Force binding to all interfaces in Kubernetes
|
||||||
|
// Console.WriteLine($"ASPNETCORE_URLS env var: {Environment.GetEnvironmentVariable("ASPNETCORE_URLS")}");
|
||||||
|
// Console.WriteLine($"ASPNETCORE_HTTP_PORTS env var: {Environment.GetEnvironmentVariable("ASPNETCORE_HTTP_PORTS")}");
|
||||||
|
|
||||||
|
// // Clear any existing configuration and force our URL
|
||||||
|
// builder.WebHost.ConfigureKestrel(options =>
|
||||||
|
// {
|
||||||
|
// options.ListenAnyIP(8000);
|
||||||
|
// });
|
||||||
|
|
||||||
// Configuration
|
// Configuration
|
||||||
var config = new AppConfig
|
var config = new AppConfig
|
||||||
{
|
{
|
||||||
|
|||||||
@ -5,7 +5,6 @@
|
|||||||
"Microsoft.AspNetCore": "Warning"
|
"Microsoft.AspNetCore": "Warning"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"AllowedHosts": "*",
|
"AllowedHosts": "*"
|
||||||
"Urls": "http://localhost:8000"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
78
k8s/backend-dotnet.yaml
Normal file
78
k8s/backend-dotnet.yaml
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: backend-dotnet-config
|
||||||
|
namespace: python-navigator-demo
|
||||||
|
data:
|
||||||
|
DB_HOST: postgres
|
||||||
|
DB_PORT: "5432"
|
||||||
|
DB_NAME: python-navigator-demo
|
||||||
|
DB_USER: python-navigator-demo
|
||||||
|
DEX_ISSUER: https://dex.127.0.0.1.sslip.io/
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: backend-dotnet-secret
|
||||||
|
namespace: python-navigator-demo
|
||||||
|
type: Opaque
|
||||||
|
stringData:
|
||||||
|
DB_PASSWORD: python-navigator-demo
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: backend-dotnet
|
||||||
|
namespace: python-navigator-demo
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: backend-dotnet
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: backend-dotnet
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: backend-dotnet
|
||||||
|
image: python-navigator-demo-backend-dotnet:latest
|
||||||
|
imagePullPolicy: Never # Для локальной разработки
|
||||||
|
ports:
|
||||||
|
- containerPort: 8000
|
||||||
|
env:
|
||||||
|
- name: ASPNETCORE_URLS
|
||||||
|
value: "http://0.0.0.0:8000"
|
||||||
|
# - name: ASPNETCORE_HTTP_PORTS
|
||||||
|
# value: "8000"
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: backend-dotnet-config
|
||||||
|
- secretRef:
|
||||||
|
name: backend-dotnet-secret
|
||||||
|
# livenessProbe:
|
||||||
|
# httpGet:
|
||||||
|
# path: /api/health
|
||||||
|
# port: 8000
|
||||||
|
# initialDelaySeconds: 10
|
||||||
|
# periodSeconds: 10
|
||||||
|
# readinessProbe:
|
||||||
|
# httpGet:
|
||||||
|
# path: /api/health
|
||||||
|
# port: 8000
|
||||||
|
# initialDelaySeconds: 5
|
||||||
|
# periodSeconds: 5
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: backend-dotnet
|
||||||
|
namespace: python-navigator-demo
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: backend-dotnet
|
||||||
|
ports:
|
||||||
|
- port: 8000
|
||||||
|
targetPort: 8000
|
||||||
|
type: ClusterIP
|
||||||
|
|
||||||
@ -35,7 +35,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: backend
|
- name: backend
|
||||||
image: navigator-demo-backend:latest
|
image: python-navigator-demo-backend:latest
|
||||||
imagePullPolicy: Never # Для локальной разработки
|
imagePullPolicy: Never # Для локальной разработки
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8000
|
- containerPort: 8000
|
||||||
|
|||||||
@ -22,14 +22,22 @@ spec:
|
|||||||
- host: python-navigator-demo.127.0.0.1.sslip.io
|
- host: python-navigator-demo.127.0.0.1.sslip.io
|
||||||
http:
|
http:
|
||||||
paths:
|
paths:
|
||||||
# API запросы идут напрямую в backend
|
# API запросы для .NET backend
|
||||||
- path: /api
|
- path: /api
|
||||||
pathType: Prefix
|
pathType: Prefix
|
||||||
backend:
|
backend:
|
||||||
service:
|
service:
|
||||||
name: backend
|
name: backend-dotnet
|
||||||
port:
|
port:
|
||||||
number: 8000
|
number: 8000
|
||||||
|
# API запросы идут напрямую в Python backend
|
||||||
|
# - path: /api
|
||||||
|
# pathType: Prefix
|
||||||
|
# backend:
|
||||||
|
# service:
|
||||||
|
# name: backend
|
||||||
|
# port:
|
||||||
|
# number: 8000
|
||||||
# Все остальное идет в frontend
|
# Все остальное идет в frontend
|
||||||
- path: /
|
- path: /
|
||||||
pathType: Prefix
|
pathType: Prefix
|
||||||
|
|||||||
Reference in New Issue
Block a user