diff --git a/paisavara/pos/pv-db-pos-claim0-persistentvolumeclaim.yaml b/paisavara/pos/pv-db-pos-claim0-persistentvolumeclaim.yaml new file mode 100644 index 00000000..02c10a3b --- /dev/null +++ b/paisavara/pos/pv-db-pos-claim0-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: pv-db-pos-claim0 + name: pv-db-pos-claim0 +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi diff --git a/paisavara/pos/pv-db-pos-deployment.yaml b/paisavara/pos/pv-db-pos-deployment.yaml new file mode 100644 index 00000000..777b168d --- /dev/null +++ b/paisavara/pos/pv-db-pos-deployment.yaml @@ -0,0 +1,45 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + kompose.cmd: C:\Program Files (x86)\kompose\kompose.exe convert -f ..\pos\docker-compose.yml + kompose.version: 1.34.0 (cbf2835db) + labels: + io.kompose.service: pv-db-pos + name: pv-db-pos +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: pv-db-pos + strategy: + type: Recreate + template: + metadata: + annotations: + kompose.cmd: C:\Program Files (x86)\kompose\kompose.exe convert -f ..\pos\docker-compose.yml + kompose.version: 1.34.0 (cbf2835db) + labels: + io.kompose.service: pv-db-pos + spec: + containers: + - env: + - name: POSTGRES_DB + value: pv-db-pos + - name: POSTGRES_PASSWORD + value: Welcome@1 + - name: POSTGRES_USER + value: humbingo + image: postgres:16 + name: pv-db-pos + ports: + - containerPort: 5432 + protocol: TCP + volumeMounts: + - mountPath: /var/lib/postgresql/data + name: pv-db-pos-claim0 + restartPolicy: Always + volumes: + - name: pv-db-pos-claim0 + persistentVolumeClaim: + claimName: pv-db-pos-claim0 diff --git a/paisavara/pos/pv-db-pos-service.yaml b/paisavara/pos/pv-db-pos-service.yaml new file mode 100644 index 00000000..921d4a29 --- /dev/null +++ b/paisavara/pos/pv-db-pos-service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: + kompose.cmd: C:\Program Files (x86)\kompose\kompose.exe convert -f ..\pos\docker-compose.yml + kompose.version: 1.34.0 (cbf2835db) + labels: + io.kompose.service: pv-db-pos + name: pv-db-pos +spec: + ports: + - name: "5459" + port: 5459 + targetPort: 5432 + selector: + io.kompose.service: pv-db-pos diff --git a/paisavara/pos/pv-pos-cm0-configmap.yaml b/paisavara/pos/pv-pos-cm0-configmap.yaml new file mode 100644 index 00000000..b6935add --- /dev/null +++ b/paisavara/pos/pv-pos-cm0-configmap.yaml @@ -0,0 +1,211 @@ +apiVersion: v1 +binaryData: + requirements.txt: Ly81aEFITUFad0JwQUhJQVpRQm1BRDBBUFFBekFDNEFPQUF1QURFQURRQUtBR0VBZEFCMEFISUFjd0E5QUQwQU1nQTBBQzRBTWdBdUFEQUFEUUFLQUdFQWRRQjBBRzhBWWdCaEFHZ0FiZ0E5QUQwQU1nQTBBQzRBTkFBdUFESUFEUUFLQUVFQWRRQjBBRzhBYlFCaEFIUUFQUUE5QURJQU5BQXVBRGdBTGdBeEFBMEFDZ0JqQUdZQVpnQnBBRDBBUFFBeEFDNEFNUUEzQUM0QU1RQU5BQW9BWXdCb0FHRUFiZ0J1QUdVQWJBQnpBRDBBUFFBMEFDNEFNUUF1QURBQURRQUtBR01BYUFCaEFHNEFiZ0JsQUd3QWN3QXRBSElBWlFCa0FHa0Fjd0E5QUQwQU5BQXVBRElBTGdBd0FBMEFDZ0JqQUdnQVlRQnlBR1FBWlFCMEFEMEFQUUExQUM0QU1nQXVBREFBRFFBS0FHTUFid0J1QUhNQWRBQmhBRzRBZEFCc0FIa0FQUUE5QURJQU13QXVBREVBTUFBdUFEUUFEUUFLQUdNQWNnQjVBSEFBZEFCdkFHY0FjZ0JoQUhBQWFBQjVBRDBBUFFBMEFETUFMZ0F3QUM0QU1RQU5BQW9BWkFCaEFIQUFhQUJ1QUdVQVBRQTlBRFFBTGdBeEFDNEFNZ0FOQUFvQVJBQnFBR0VBYmdCbkFHOEFQUUE5QURVQUxnQXhBQTBBQ2dCa0FHb0FZUUJ1QUdjQWJ3QXRBR01BYndCeUFITUFMUUJvQUdVQVlRQmtBR1VBY2dCekFEMEFQUUEwQUM0QU5BQXVBREFBRFFBS0FHUUFhZ0JoQUc0QVp3QnZBQzBBWlFCNEFIUUFaUUJ1QUhNQWFRQnZBRzRBY3dBOUFEMEFNd0F1QURJQUxnQXpBQTBBQ2dCa0FHb0FZUUJ1QUdjQWJ3QXRBR1lBYVFCc0FIUUFaUUJ5QUQwQVBRQXlBRFFBTGdBekFBMEFDZ0JrQUdvQVlRQnVBR2NBYndBdEFITUFaUUJsQUdRQVBRQTlBREFBTGdBekFDNEFNUUFOQUFvQVpBQnFBR0VBYmdCbkFHOEFjZ0JsQUhNQWRBQm1BSElBWVFCdEFHVUFkd0J2QUhJQWF3QTlBRDBBTXdBdUFERUFOUUF1QURJQURRQUtBR1FBYWdCaEFHNEFad0J2QUhJQVpRQnpBSFFBWmdCeUFHRUFiUUJsQUhjQWJ3QnlBR3NBTFFCekFHa0FiUUJ3QUd3QVpRQnFBSGNBZEFBOUFEMEFOUUF1QURNQUxnQXhBQTBBQ2dCa0FISUFaZ0F0QUhrQVlRQnpBR2NBUFFBOUFERUFMZ0F5QURFQUxnQTNBQTBBQ2dCR0FHRUFhd0JsQUhJQVBRQTlBRElBTXdBdUFETUFMZ0F3QUEwQUNnQm5BSFVBYmdCcEFHTUFid0J5QUc0QVBRQTlBRElBTWdBdUFEQUFMZ0F3QUEwQUNnQm9BSGtBY0FCbEFISUFiQUJwQUc0QWF3QTlBRDBBTWdBeEFDNEFNQUF1QURBQURRQUtBR2tBWkFCdUFHRUFQUUE5QURNQUxnQTRBQTBBQ2dCcEFHNEFZd0J5QUdVQWJRQmxBRzRBZEFCaEFHd0FQUUE5QURJQU5BQXVBRGNBTGdBeUFBMEFDZ0JwQUc0QVpnQnNBR1VBWXdCMEFHa0Fid0J1QUQwQVBRQXdBQzRBTlFBdUFERUFEUUFLQUUwQVlRQnlBR3NBWkFCdkFIY0FiZ0E5QUQwQU13QXVBRFlBRFFBS0FHMEFjd0JuQUhBQVlRQmpBR3NBUFFBOUFERUFMZ0F4QUM0QU1BQU5BQW9BY0FCaEFHTUFhd0JoQUdjQWFRQnVBR2NBUFFBOUFESUFOQUF1QURBQURRQUtBSEFBYVFCc0FHd0Fid0IzQUQwQVBRQXhBREFBTGdBekFDNEFNQUFOQUFvQWNBQnpBSGtBWXdCdkFIQUFad0F5QUQwQVBRQXlBQzRBT1FBdUFEa0FEUUFLQUhBQWVRQmhBSE1BYmdBeEFEMEFQUUF3QUM0QU5nQXVBREVBRFFBS0FIQUFlUUJoQUhNQWJnQXhBRjhBYlFCdkFHUUFkUUJzQUdVQWN3QTlBRDBBTUFBdUFEUUFMZ0F4QUEwQUNnQndBSGtBWXdCd0FHRUFjZ0J6QUdVQWNnQTlBRDBBTWdBdUFESUFNZ0FOQUFvQVVBQjVBRW9BVndCVUFEMEFQUUF5QUM0QU9RQXVBREFBRFFBS0FIQUFlUUJQQUhBQVpRQnVBRk1BVXdCTUFEMEFQUUF5QURRQUxnQXlBQzRBTVFBTkFBb0FjQUI1QUhRQWFBQnZBRzRBTFFCa0FHRUFkQUJsQUhVQWRBQnBBR3dBUFFBOUFESUFMZ0E1QUM0QU1BQXVBSEFBYndCekFIUUFNQUFOQUFvQWNBQjVBSFFBYUFCdkFHNEFMUUJrQUc4QWRBQmxBRzRBZGdBOUFEMEFNUUF1QURBQUxnQXhBQTBBQ2dCd0FIa0FkQUJvQUc4QWJnQXRBR2dBZEFCMEFIQUFMUUJqQUd3QWFRQmxBRzRBZEFBOUFEMEFNd0F1QURNQUxnQTNBQTBBQ2dCd0FIa0FkQUI2QUQwQVBRQXlBREFBTWdBekFDNEFNd0F1QUhBQWJ3QnpBSFFBTVFBTkFBb0FVQUI1QUZrQVFRQk5BRXdBUFFBOUFEWUFMZ0F3QUM0QU1nQU5BQW9BY2dCbEFHUUFhUUJ6QUQwQVBRQTFBQzRBTUFBdUFEZ0FEUUFLQUhJQVpRQndBRzhBY2dCMEFHd0FZUUJpQUQwQVBRQTBBQzRBTWdBdUFEQUFEUUFLQUhNQVpRQnVBR1FBWndCeUFHa0FaQUE5QUQwQU5nQXVBREVBTVFBdUFEQUFEUUFLQUhNQVpRQnlBSFlBYVFCakFHVUFMUUJwQUdRQVpRQnVBSFFBYVFCMEFIa0FQUUE5QURJQU5BQXVBREVBTGdBd0FBMEFDZ0J6QUdVQWRBQjFBSEFBZEFCdkFHOEFiQUJ6QUQwQVBRQTNBRElBTGdBeUFDNEFNQUFOQUFvQWN3QnBBSGdBUFFBOUFERUFMZ0F4QURZQUxnQXdBQTBBQ2dCekFIRUFiQUJ3QUdFQWNnQnpBR1VBUFFBOUFEQUFMZ0ExQUM0QU1RQU5BQW9BY3dCMEFHRUFjZ0JyQUdJQVlRQnVBR3NBTFFCbEFHTUFaQUJ6QUdFQVBRQTlBRElBTGdBeUFDNEFNQUFOQUFvQWRBQnZBSEFBYndCekFHOEFjZ0IwQUQwQVBRQXhBQzRBTVFBd0FBMEFDZ0JVQUhjQWFRQnpBSFFBWlFCa0FEMEFQUUF5QURRQUxnQTNBQzRBTUFBTkFBb0FkQUI0QUdFQWFRQnZBRDBBUFFBeUFETUFMZ0F4QUM0QU1RQU5BQW9BZEFCNUFIQUFhUUJ1QUdjQVh3QmxBSGdBZEFCbEFHNEFjd0JwQUc4QWJnQnpBRDBBUFFBMEFDNEFNUUF5QUM0QU1nQU5BQW9BZEFCNkFHUUFZUUIwQUdFQVBRQTlBRElBTUFBeUFEUUFMZ0F4QUEwQUNnQjFBSElBYVFCMEFHVUFiUUJ3QUd3QVlRQjBBR1VBUFFBOUFEUUFMZ0F4QUM0QU1RQU5BQW9BZWdCdkFIQUFaUUF1QUdrQWJnQjBBR1VBY2dCbUFHRUFZd0JsQUQwQVBRQTNBQzRBTUFBdUFETUFEUUFLQUE9PQ== +data: + .dockerignore: |- + # Ignore Python cache files + __pycache__/ + *.pyc + *.pyo + *.pyd + + # Ignore virtual environment + venv/ + .env + *.env + + # Ignore database files + db.sqlite3 + *.sqlite3 + + # Ignore Django-specific files + /static/ + /media/ + *.log + + # Ignore node modules (if using frontend assets) + node_modules/ + npm-debug.log + yarn-error.log + + # Ignore build and compiled assets + dist/ + build/ + + # Ignore Docker and deployment files + docker-compose.override.yml + Dockerfile* + + # Ignore IDE/editor files + .vscode/ + .idea/ + *.swp + *.swo + + # Ignore OS-generated files + .DS_Store + Thumbs.db + _env: |- + ENV=local + SECRET_KEY=django-insecure-w(#k=^4=$@1-baz-a0k&t6t5_2f_i-=a9-=6_jwzr-lzm9_m0r + BASE_URL=http://127.0.0.1:3000/ + + TIME_ZONE='Asia/Kolkata' + + USER=humbingo + HOST=pv-db-pos + PORT=5459 + DB=pv-db-pos + PASS=Welcome@1 + + GATEWAY_KEY=abcd123 + ALLOWED_USER_ROLES=admin,store owner,store manager,store employee,no permission + _requirements.txt: | + asgiref==3.8.1 + attrs==24.2.0 + autobahn==24.4.2 + Automat==24.8.1 + certifi==2024.8.30 + cffi==1.17.1 + channels==4.1.0 + chardet==5.2.0 + charset-normalizer==3.3.2 + constantly==23.10.4 + cryptography==43.0.1 + daphne==4.1.2 + Django==5.1.1 + django-cors-headers==4.4.0 + django-extensions==3.2.3 + django-filter==24.3 + django-seed==0.3.1 + djangorestframework==3.15.2 + djangorestframework-simplejwt==5.3.1 + drf-yasg==1.21.7 + Faker==23.3.0 + gunicorn==22.0.0 + hyperlink==21.0.0 + idna==3.10 + incremental==24.7.2 + inflection==0.5.1 + Markdown==3.6 + packaging==24.0 + pillow==10.3.0 + pyasn1==0.6.1 + pyasn1_modules==0.4.1 + pycparser==2.22 + PyJWT==2.9.0 + pyOpenSSL==24.2.1 + python-dateutil==2.9.0.post0 + python-dotenv==1.0.1 + python-http-client==3.3.7 + pytz==2023.3.post1 + PyYAML==6.0.2 + reportlab==4.2.0 + requests==2.32.3 + sendgrid==6.11.0 + service-identity==24.1.0 + setuptools==72.2.0 + six==1.16.0 + sqlparse==0.5.1 + starkbank-ecdsa==2.2.0 + toposort==1.10 + Twisted==24.7.0 + txaio==23.1.1 + typing_extensions==4.12.2 + tzdata==2024.1 + uritemplate==4.1.1 + urllib3==2.2.3 + zope.interface==7.0.3 + psycopg2-binary==2.9.9 + Dockerfile: |- + FROM python:3.12-slim + + WORKDIR /app + + COPY _requirements.txt requirements.txt + COPY _env .env + RUN pip install --upgrade pip && pip install -r requirements.txt + + COPY . . + + EXPOSE 8062 + db-docker-compose.yaml: | + version: '3.8' + + services: + postgres: + image: postgres:16 + container_name: local-pv-db-pos + restart: unless-stopped + environment: + POSTGRES_USER: humbingo + POSTGRES_PASSWORD: Welcome@1 + POSTGRES_DB: local-pv-db-pos + ports: + - "5445:5432" + volumes: + - postgres_data:/var/lib/postgresql/data + networks: + - postgres_network + + volumes: + postgres_data: + driver: local + + networks: + postgres_network: + driver: bridge + docker-compose.yml: "version: '4'\n\nservices:\n pv-pos:\n image: 147.79.66.211:3000/docker/paisavara-pos:development\n container_name: pv-pos\n restart: always\n build: \n context: .\n dockerfile: Dockerfile\n\n command: bash -c \"python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000\"\n volumes:\n - .:/pv-pos\n ports:\n - \"8013:8000\"\n labels:\n - kompose.service.type=NodePort # Tell kompose to create LoadBalancer\n - kompose.service.expose=true # Expose service externally\n - kompose.service.nodeport=30062\n depends_on:\n - pv-db-pos\n\n pv-db-pos:\n image: postgres:16\n restart: always\n environment:\n POSTGRES_USER: humbingo\n POSTGRES_DB: pv-db-pos\n POSTGRES_PASSWORD: Welcome@1\n volumes:\n - ./pv-db-pos:/var/lib/postgresql/data\n ports:\n - \"5459:5432\"" + env.jenkins: |- + ENV=local + SECRET_KEY=django-insecure-w(#k=^4=$@1-baz-a0k&t6t5_2f_i-=a9-=6_jwzr-lzm9_m0r + BASE_URL=http://127.0.0.1:3000/ + + TIME_ZONE = 'Asia/Kolkata' + + USER=humbingo + HOST=localhost + PORT=5442 + DB=local-pv-db-pos + PASS=Welcome@1 + + GATEWAY_KEY=abcd123 + ALLOWED_USER_ROLES=admin,store owner,store manager,store employee,no permission + manage.py: | + #!/usr/bin/env python + """Django's command-line utility for administrative tasks.""" + import os + from dotenv import load_dotenv + load_dotenv(override=True) + import sys + + + def main(): + ENV = os.getenv("ENV") + if ENV == "local": + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'backend.settings.local') + elif ENV == "development": + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'backend.settings.development') + elif ENV == "stage": + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'backend.settings.stage') + elif ENV == "production": + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'backend.settings.production') + + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + + if __name__ == '__main__': + main() +kind: ConfigMap +metadata: + labels: + io.kompose.service: pv-pos + name: pv-pos-cm0 diff --git a/paisavara/pos/pv-pos-deployment.yaml b/paisavara/pos/pv-pos-deployment.yaml new file mode 100644 index 00000000..6d472c97 --- /dev/null +++ b/paisavara/pos/pv-pos-deployment.yaml @@ -0,0 +1,48 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + kompose.cmd: C:\Program Files (x86)\kompose\kompose.exe convert -f ..\pos\docker-compose.yml + kompose.service.expose: "true" + kompose.service.nodeport: "30062" + kompose.service.type: NodePort + kompose.version: 1.34.0 (cbf2835db) + labels: + io.kompose.service: pv-pos + name: pv-pos +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: pv-pos + strategy: + type: Recreate + template: + metadata: + annotations: + kompose.cmd: C:\Program Files (x86)\kompose\kompose.exe convert -f ..\pos\docker-compose.yml + kompose.service.expose: "true" + kompose.service.nodeport: "30062" + kompose.service.type: NodePort + kompose.version: 1.34.0 (cbf2835db) + labels: + io.kompose.service: pv-pos + spec: + containers: + - args: + - bash + - -c + - python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000 + image: git.humbingo.org/docker/paisavara-pos:V29 + name: pv-pos + ports: + - containerPort: 8000 + protocol: TCP + volumeMounts: + - mountPath: /pv-pos + name: pv-pos-cm0 + restartPolicy: Always + volumes: + - configMap: + name: pv-pos-cm0 + name: pv-pos-cm0 diff --git a/paisavara/pos/pv-pos-ingress.yaml b/paisavara/pos/pv-pos-ingress.yaml new file mode 100644 index 00000000..abbe9f1e --- /dev/null +++ b/paisavara/pos/pv-pos-ingress.yaml @@ -0,0 +1,23 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + annotations: + kompose.cmd: C:\Program Files (x86)\kompose\kompose.exe convert -f ..\pos\docker-compose.yml + kompose.service.expose: "true" + kompose.service.nodeport: "30062" + kompose.service.type: NodePort + kompose.version: 1.34.0 (cbf2835db) + labels: + io.kompose.service: pv-pos + name: pv-pos +spec: + rules: + - http: + paths: + - backend: + service: + name: pv-pos + port: + number: 8013 + path: / + pathType: Prefix diff --git a/paisavara/pos/pv-pos-service.yaml b/paisavara/pos/pv-pos-service.yaml new file mode 100644 index 00000000..fa059d29 --- /dev/null +++ b/paisavara/pos/pv-pos-service.yaml @@ -0,0 +1,21 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: + kompose.cmd: C:\Program Files (x86)\kompose\kompose.exe convert -f ..\pos\docker-compose.yml + kompose.service.expose: "true" + kompose.service.nodeport: "30062" + kompose.service.type: NodePort + kompose.version: 1.34.0 (cbf2835db) + labels: + io.kompose.service: pv-pos + name: pv-pos +spec: + ports: + - name: "8013" + port: 8013 + targetPort: 8000 + nodePort: 30062 + selector: + io.kompose.service: pv-pos + type: NodePort