Skip to content

Commit 63588b5

Browse files
committed
deploy template-fastapi image
1 parent a4bed24 commit 63588b5

File tree

3 files changed

+105
-1
lines changed

3 files changed

+105
-1
lines changed

docs/scenarios/9_certmanager.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,17 @@ kubectl get certificaterequest -A
3535
kubectl get certificate -A
3636
kubectl describe certificate your-domain-com-tls
3737
```
38+
39+
### [ks6088ts-labs/template-fastapi](https://github.com/ks6088ts-labs/template-fastapi) をデプロイして公開する
40+
41+
```shell
42+
# FIXME: 環境変数の設定
43+
# k8s/cert-manager/template-fastapi-deployment.yaml の env セクションを編集
44+
45+
# FastAPIのデプロイメントを作成
46+
kubectl apply -f k8s/cert-manager/template-fastapi-deployment.yaml
47+
48+
# Ingressリソースの作成 (仕向けるサービスは template-fastapi-service)
49+
# https://cert-manager.io/docs/usage/ingress/
50+
kubectl apply -f k8s/cert-manager/nginx-ingress.yaml
51+
```

k8s/cert-manager/nginx-ingress.yaml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,18 @@ spec:
1010
- host: www.ks6088ts.com
1111
http:
1212
paths:
13+
# - path: /
14+
# pathType: Prefix
15+
# backend:
16+
# service:
17+
# name: nginx-service # ステップ2で作成したService名
18+
# port:
19+
# number: 80 # Serviceのポート
1320
- path: /
1421
pathType: Prefix
1522
backend:
1623
service:
17-
name: nginx-service # ステップ2で作成したService名
24+
name: template-fastapi-service
1825
port:
1926
number: 80 # Serviceのポート
2027
tls: # HTTPSを有効にするための設定
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: template-fastapi-deployment
5+
spec:
6+
replicas: 2 # 任意のレプリカ数
7+
selector:
8+
matchLabels:
9+
app: template-fastapi
10+
template:
11+
metadata:
12+
labels:
13+
app: template-fastapi
14+
spec:
15+
containers:
16+
- name: template-fastapi
17+
image: ks6088ts/template-fastapi:0.0.11
18+
ports:
19+
- containerPort: 8000
20+
command: ["fastapi", "run", "main.py", "--host", "0.0.0.0", "--port", "8000"]
21+
env:
22+
# Azure OpenAI Service
23+
- name: AZURE_OPENAI_ENDPOINT
24+
value: "https://<YOUR_AOAI_NAME>.openai.azure.com/"
25+
- name: AZURE_OPENAI_API_KEY
26+
value: "<YOUR_API_KEY>"
27+
- name: AZURE_OPENAI_API_VERSION
28+
value: "2024-10-21"
29+
- name: AZURE_OPENAI_MODEL_CHAT
30+
value: "gpt-4o"
31+
- name: AZURE_OPENAI_MODEL_EMBEDDING
32+
value: "text-embedding-3-small"
33+
# Azure CosmosDB
34+
- name: AZURE_COSMOSDB_CONNECTION_STRING
35+
value: "AccountEndpoint=https://<YOUR_COSMOSDB_NAME>.documents.azure.com:443/;AccountKey=<ACCOUNT_KEY>;"
36+
- name: AZURE_COSMOSDB_DATABASE_NAME
37+
value: "template_fastapi"
38+
- name: AZURE_COSMOSDB_CONTAINER_NAME
39+
value: "items"
40+
# Azure Blob Storage
41+
- name: AZURE_BLOB_STORAGE_CONNECTION_STRING
42+
value: "DefaultEndpointsProtocol=https;AccountName=<YOUR_STORAGE_ACCOUNT>;AccountKey=<YOUR_ACCOUNT_KEY>;EndpointSuffix=core.windows.net"
43+
- name: AZURE_BLOB_STORAGE_CONTAINER_NAME
44+
value: "files"
45+
# Azure AI Speech
46+
- name: AZURE_AI_SPEECH_API_KEY
47+
value: "<YOUR_AZURE_AI_SPEECH_API_KEY>"
48+
- name: AZURE_AI_SPEECH_ENDPOINT
49+
value: "https://<speech-api-name>.cognitiveservices.azure.com/"
50+
# Azure AI Foundry
51+
- name: AZURE_AI_FOUNDRY_PROJECT_ENDPOINT
52+
value: "https://xxx.services.ai.azure.com/api/projects/yyy"
53+
- name: AZURE_AI_FOUNDRY_API_KEY
54+
value: "<YOUR_API_KEY>"
55+
# Chats WebSocket
56+
- name: CHATS_WEBSOCKET_URL
57+
value: "wss://www.ks6088ts.com/chats"
58+
# Microsoft Graph Sites
59+
- name: MICROSOFT_GRAPH_TENANT_ID
60+
value: "<YOUR_TENANT_ID>"
61+
- name: MICROSOFT_GRAPH_CLIENT_ID
62+
value: "<YOUR_CLIENT_ID>"
63+
- name: MICROSOFT_GRAPH_CLIENT_SECRET
64+
value: "<YOUR_CLIENT_SECRET>"
65+
- name: MICROSOFT_GRAPH_USER_SCOPES
66+
value: "User.Read Sites.Read.All"
67+
# Logging Configuration
68+
- name: LOG_LEVEL
69+
value: "INFO"
70+
---
71+
apiVersion: v1
72+
kind: Service
73+
metadata:
74+
name: template-fastapi-service
75+
spec:
76+
selector:
77+
app: template-fastapi
78+
ports:
79+
- protocol: TCP
80+
port: 80 # Serviceのポート
81+
targetPort: 8000 # Podのポート
82+
type: ClusterIP # Ingress Controllerがサービスにアクセスするため、ClusterIPで十分
83+

0 commit comments

Comments
 (0)