Skip to content

Commit

Permalink
Update service for production (#8)
Browse files Browse the repository at this point in the history
  • Loading branch information
rmarquis authored Apr 11, 2024
1 parent 138cd0d commit 8905b9d
Show file tree
Hide file tree
Showing 7 changed files with 79 additions and 72 deletions.
19 changes: 12 additions & 7 deletions .github/workflows/workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ jobs:
if: ${{ vars.RUN_CICD == 'true' }}
steps:
- name: Clone repository
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Lint Python app
uses: swiss-ai-center/common-code/.github/actions/lint-python-app@main
Expand All @@ -78,7 +78,7 @@ jobs:
if: ${{ vars.RUN_CICD == 'true' }}
steps:
- name: Clone repository
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Test Python app
uses: swiss-ai-center/common-code/.github/actions/test-python-app@main
Expand All @@ -89,10 +89,10 @@ jobs:
release:
needs: test
runs-on: ubuntu-latest
if: ${{ vars.RUN_CICD == 'true' && success() && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/prod') && (vars.DEPLOY_DEV == 'true' || vars.DEPLOY_PROD == 'true') }}
if: ${{ vars.RUN_CICD == 'true' && success() && github.ref == 'refs/heads/main' && (vars.DEPLOY_DEV == 'true' || vars.DEPLOY_PROD == 'true') }}
steps:
- name: Clone repository
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Build and push Docker image to GitHub
id: build-and-push-docker-image-to-github
Expand All @@ -111,7 +111,7 @@ jobs:
if: ${{ vars.RUN_CICD == 'true' && success() && github.ref == 'refs/heads/main' && vars.DEPLOY_DEV == 'true' }}
steps:
- name: Clone repository
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Get service Docker image SHA tag
shell: bash
Expand All @@ -134,6 +134,11 @@ jobs:
engine-announce-retries: ${{ env.DEV_ENGINE_ANNOUNCE_RETRIES }}
engine-announce-retry-delay: ${{ env.DEV_ENGINE_ANNOUNCE_RETRY_DELAY }}

- name: Remove unnecessary keys from configuration files
uses: swiss-ai-center/common-code/.github/actions/remove-unnecessary-keys-from-kubernetes-configuration-files@main
with:
configuration-files-location: ./kubernetes

- name: Deploy service on the Kubernetes cluster
uses: swiss-ai-center/common-code/.github/actions/execute-command-on-kubernetes-cluster@main
with:
Expand All @@ -150,10 +155,10 @@ jobs:
deploy-prod:
needs: release
runs-on: ubuntu-latest
if: ${{ vars.RUN_CICD == 'true' && success() && github.ref == 'refs/heads/prod' && vars.DEPLOY_PROD == 'true' }}
if: ${{ vars.RUN_CICD == 'true' && success() && github.ref == 'refs/heads/main' && vars.DEPLOY_PROD == 'true' }}
steps:
- name: Clone repository
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Get service Docker image SHA tag
shell: bash
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Base image
FROM python:3.10
FROM python:3.11

# Install all required packages to run the model
RUN apt update && apt install --yes ffmpeg libsm6 libxext6
Expand Down
2 changes: 1 addition & 1 deletion development.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Base image
FROM python:3.10
FROM python:3.11

# Install all required packages to run the model
RUN apt update && apt install --yes ffmpeg libsm6 libxext6
4 changes: 3 additions & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ services:
echo '.venv exists and is not empty';
else
echo '.venv does not exist or is empty';
python3.10 -m venv .venv;
python3.11 -m venv .venv;
fi &&
# Activate the virtual environment
source .venv/bin/activate &&
Expand All @@ -23,6 +23,8 @@ services:
environment:
- ENGINE_URLS=["http://host.docker.internal:8080"]
- SERVICE_URL=http://host.docker.internal:${SERVICE_PORT}
extra_hosts:
- "host.docker.internal:host-gateway"
ports:
- ${SERVICE_PORT}:9090
working_dir: /workspaces/service
Expand Down
25 changes: 14 additions & 11 deletions kubernetes/ingress.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,23 @@ kind: Ingress
metadata:
name: my-service-ingress
annotations:
cert-manager.io/issuer: "letsencrypt"
nginx.ingress.kubernetes.io/proxy-body-size: "16m"
nginx.org/client-max-body-size: "16m"
spec:
ingressClassName: nginx
rules:
- host: my-service.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service-service
port:
number: 80
- host: my-service.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service-service
port:
number: 80
tls:
- hosts:
- my-service.example.com
- my-service.example.com
secretName: my-service-example-com-tls-cert
95 changes: 46 additions & 49 deletions requirements-all.txt
Original file line number Diff line number Diff line change
@@ -1,56 +1,53 @@
aiobotocore==2.4.1
aiofile==3.8.7
aiofiles==22.1.0
aiohttp==3.8.4
aiobotocore==2.12.1
aiofiles==23.2.1
aiohttp==3.9.3
aioitertools==0.11.0
aiosignal==1.3.1
anyio==3.7.0
async-timeout==4.0.2
attrs==23.1.0
botocore==1.27.59
caio==0.9.12
certifi==2023.5.7
charset-normalizer==3.1.0
click==8.1.3
coverage==7.2.7
dnspython==2.3.0
email-validator==2.1.0.post1
exceptiongroup==1.1.1
fastapi==0.108.0
flake8==5.0.4
frozenlist==1.3.3
annotated-types==0.6.0
anyio==4.3.0
attrs==23.2.0
botocore==1.34.51
certifi==2024.2.2
click==8.1.7
coverage==7.4.4
dnspython==2.6.1
email_validator==2.1.1
fastapi==0.110.0
flake8==7.0.0
frozenlist==1.4.1
h11==0.14.0
httpcore==0.16.3
httpx==0.23.1
idna==3.4
httpcore==1.0.4
httpx==0.27.0
idna==3.6
iniconfig==2.0.0
jmespath==1.0.1
MarkupSafe==2.1.3
MarkupSafe==2.1.5
mccabe==0.7.0
multidict==6.0.4
numpy==1.21.4
opencv-python==4.7.0.68
packaging==23.1
pluggy==1.2.0
pycodestyle==2.9.1
pydantic==2.5.3
pydantic-settings==2.1.0
pyflakes==2.5.0
pytest==7.2.0
pytest-asyncio==0.20.3
pytest-cov==4.0.0
pytest-httpserver==1.0.6
python-dateutil==2.8.2
python-dotenv==0.21.0
PyYAML==6.0
rfc3986==1.5.0
multidict==6.0.5
numpy==1.26.4
opencv-python==4.9.0.80
packaging==24.0
pip==24.0
pluggy==1.4.0
pycodestyle==2.11.1
pydantic==2.6.4
pydantic-settings==2.2.1
pydantic_core==2.16.3
pyflakes==3.2.0
pytest==8.1.1
pytest-asyncio==0.23.5.post1
pytest-cov==4.1.0
pytest_httpserver==1.0.10
python-dateutil==2.9.0.post0
python-dotenv==1.0.1
PyYAML==6.0.1
setuptools==65.5.0
six==1.16.0
sniffio==1.3.0
starlette==0.29.0
tomli==2.0.1
typing_extensions==4.9.0
urllib3==1.26.16
uvicorn==0.19.0
Werkzeug==2.3.6
wrapt==1.15.0
yarl==1.9.2
sniffio==1.3.1
starlette==0.36.3
typing_extensions==4.10.0
urllib3==2.0.7
uvicorn==0.28.0
Werkzeug==3.0.1
wrapt==1.16.0
yarl==1.9.4
4 changes: 2 additions & 2 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
common-code[test] @ git+https://github.com/swiss-ai-center/common-code.git@main
numpy==1.21.4
opencv-python==4.7.0.68
numpy==1.26.4
opencv-python==4.9.0.80

0 comments on commit 8905b9d

Please sign in to comment.