diff --git a/server/templates/buildpacks.yaml b/server/templates/buildpacks.yaml index f5b706cb5..fec1e8367 100644 --- a/server/templates/buildpacks.yaml +++ b/server/templates/buildpacks.yaml @@ -99,7 +99,10 @@ spec: #command: ['tail', '-f', '/dev/null'] image: "paketobuildpacks/builder-jammy-full:latest" #List of Builders : https://paketo.io/docs/reference/builders-reference/ imagePullPolicy: Always - resources: {} + resources: + limits: + cpu: 2 + memory: 2Gi env: - name: CNB_PLATFORM_API value: "0.13" diff --git a/services/reitti/app.yaml b/services/reitti/app.yaml new file mode 100644 index 000000000..4ec585ac9 --- /dev/null +++ b/services/reitti/app.yaml @@ -0,0 +1,272 @@ +apiVersion: application.kubero.dev/v1alpha1 +kind: KuberoApp +metadata: + name: reitti + annotations: + kubero.dev/template.architecture: '["linux/amd64", "linux/arm64"]' + kubero.dev/template.description: "Reitti is a comprehensive personal location tracking and analysis application that helps you understand your movement patterns and significant places. The name 'Reitti' comes from Finnish, meaning 'route' or 'path'." + kubero.dev/template.icon: "https://avatars.githubusercontent.com/u/87373896" + kubero.dev/template.installation: "Default login credentials are admin:admin. Configure API tokens for mobile app integration and geocoding services for address resolution. Consider adjusting the Photon REGION environment variable to match your main location." + kubero.dev/template.links: '["https://www.dedicatedcode.com/projects/reitti/overview/"]' + kubero.dev/template.screenshots: '["https://raw.githubusercontent.com/dedicatedcode/reitti/main/.github/screenshots/main.png", "https://raw.githubusercontent.com/dedicatedcode/reitti/main/.github/screenshots/multiple-users.png", "https://raw.githubusercontent.com/dedicatedcode/reitti/main/.github/screenshots/statistics.png"]' + kubero.dev/template.source: "https://github.com/dedicatedcode/reitti" + kubero.dev/template.categories: '["tracking", "analytics", "privacy", "geolocation"]' + kubero.dev/template.title: "Reitti" + kubero.dev/template.website: "https://www.dedicatedcode.com/projects/reitti/" + labels: + manager: kubero +spec: + name: reitti + deploymentstrategy: docker + envVars: + - name: POSTGIS_HOST + value: reitti-postgis-postgresql + - name: POSTGIS_PORT + value: "5432" + - name: POSTGIS_DB + value: reittidb + - name: POSTGIS_USER + value: reitti + - name: POSTGIS_PASSWORD + value: reitti + - name: RABBITMQ_HOST + value: reitti-rabbitmq + - name: RABBITMQ_PORT + value: "5672" + - name: RABBITMQ_USER + value: reitti + - name: RABBITMQ_PASSWORD + value: reitti + - name: REDIS_HOST + value: reitti-redis-master + - name: REDIS_PORT + value: "6379" + - name: REDIS_USERNAME + value: "" + - name: REDIS_PASSWORD + value: reitti + - name: PHOTON_BASE_URL + value: http://reitti-photon:2322 + - name: PROCESSING_WAIT_TIME + value: "15" + - name: SERVER_PORT + value: "8080" + - name: APP_UID + value: "1000" + - name: APP_GID + value: "1000" + extraVolumes: [] + cronjobs: [] + addons: + - displayName: PostGIS (PostgreSQL with spatial extensions) + env: [] + icon: /img/addons/pgsql.svg + id: kubero-operator + kind: KuberoPostgresql + resourceDefinitions: + KuberoPostgresql: + apiVersion: application.kubero.dev/v1alpha1 + kind: KuberoPostgresql + metadata: + name: reitti-postgis-postgresql + spec: + postgresql: + global: + postgresql: + auth: + database: reittidb + password: reitti + postgresPassword: reitti + username: reitti + storageClass: standard + primary: + persistence: + size: 5Gi + image: + repository: postgis/postgis + tag: "17-3.5-alpine" + version: + latest: 0.1.8 + - displayName: Kubero Redis + env: [] + icon: /img/addons/Redis.png + id: kubero-operator + kind: KuberoRedis + resourceDefinitions: + KuberoRedis: + apiVersion: application.kubero.dev/v1alpha1 + kind: KuberoRedis + metadata: + name: reitti-redis + spec: + redis: + architecture: standalone + global: + redis: + password: reitti + storageClass: standard + master: + persistence: + size: 1Gi + version: + latest: 0.1.8 + - displayName: RabbitMQ Message Queue + env: [] + icon: /img/addons/custom.svg + id: kubero-operator + kind: KuberoCustomResource + resourceDefinitions: + Deployment: + apiVersion: apps/v1 + kind: Deployment + metadata: + name: reitti-rabbitmq + labels: + app: reitti-rabbitmq + spec: + replicas: 1 + selector: + matchLabels: + app: reitti-rabbitmq + template: + metadata: + labels: + app: reitti-rabbitmq + spec: + containers: + - name: rabbitmq + image: rabbitmq:3-management-alpine + ports: + - containerPort: 5672 + name: amqp + - containerPort: 15672 + name: management + env: + - name: RABBITMQ_DEFAULT_USER + value: reitti + - name: RABBITMQ_DEFAULT_PASS + value: reitti + volumeMounts: + - name: rabbitmq-data + mountPath: /var/lib/rabbitmq + livenessProbe: + exec: + command: ["rabbitmq-diagnostics", "check_port_connectivity"] + initialDelaySeconds: 60 + periodSeconds: 30 + timeoutSeconds: 10 + readinessProbe: + exec: + command: ["rabbitmq-diagnostics", "check_port_connectivity"] + initialDelaySeconds: 20 + periodSeconds: 10 + timeoutSeconds: 5 + volumes: + - name: rabbitmq-data + persistentVolumeClaim: + claimName: reitti-rabbitmq-pvc + Service: + apiVersion: v1 + kind: Service + metadata: + name: reitti-rabbitmq + spec: + selector: + app: reitti-rabbitmq + ports: + - port: 5672 + targetPort: 5672 + name: amqp + - port: 15672 + targetPort: 15672 + name: management + PVC: + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: reitti-rabbitmq-pvc + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 2Gi + storageClassName: standard + version: + latest: 3.0.0 + - displayName: Photon Geocoding Service + env: + - name: UPDATE_STRATEGY + value: PARALLEL + - name: REGION + value: de + icon: /img/addons/custom.svg + id: kubero-operator + kind: KuberoCustomResource + resourceDefinitions: + KuberoCustomResource: + apiVersion: apps/v1 + kind: Deployment + metadata: + name: reitti-photon + spec: + replicas: 1 + selector: + matchLabels: + app: reitti-photon + template: + metadata: + labels: + app: reitti-photon + spec: + containers: + - name: photon + image: rtuszik/photon-docker:1.0.0 + ports: + - containerPort: 2322 + env: + - name: UPDATE_STRATEGY + value: PARALLEL + - name: REGION + value: de + volumeMounts: + - name: photon-data + mountPath: /photon/data + volumes: + - name: photon-data + persistentVolumeClaim: + claimName: reitti-photon-pvc + --- + apiVersion: v1 + kind: Service + metadata: + name: reitti-photon + spec: + selector: + app: reitti-photon + ports: + - port: 2322 + targetPort: 2322 + --- + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: reitti-photon-pvc + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + storageClassName: standard + version: + latest: 1.0.0 + web: + replicaCount: 1 + worker: + replicaCount: 0 + image: + containerPort: "8080" + pullPolicy: Always + repository: dedicatedcode/reitti + tag: "latest"