initial scaffold
This commit is contained in:
		
							
								
								
									
										16
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | ||||
| # Overpass kubernetes service | ||||
|  | ||||
| ### Overview | ||||
| Deploys an overpass instance with the following features: | ||||
| - single pod | ||||
| - no rate limiting | ||||
| - no duplicate request blocking | ||||
| - no authentication | ||||
| - specifiable earth file as input | ||||
| - slowest temporal resolution of 1 day | ||||
|  | ||||
| ### Deployment | ||||
| TBD | ||||
|  | ||||
| ### Usage | ||||
| After applying the an overlay that deploys `<namespace>` the service will be available (cluster) internally at `overpass.<namespace>.svc.cluster.local:12345 `. | ||||
							
								
								
									
										77
									
								
								base/configmap.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								base/configmap.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,77 @@ | ||||
| apiVersion: v1 | ||||
| kind: ConfigMap | ||||
| metadata: | ||||
|   name: overpass-config | ||||
| data: | ||||
|   ##### FROM https://github.com/wiktorn/Overpass-API | ||||
|   # takes the value of either init or clone. Defaults to clone. | ||||
|   # we use init because we want lower than default time resolution | ||||
|   OVERPASS_MODE: "init" | ||||
|  | ||||
|   # attic, yes, or no. Passed as --keep-attic, --meta, or nothing to update_database and init. Defaults to no. | ||||
|   OVERPASS_META: "no" | ||||
|    | ||||
|   # (init mode only) url to a "planet" file (e.g. https://planet.openstreetmap.org/planet/planet-latest.osm.bz2) | ||||
|   OVERPASS_PLANET_URL: "https://planet.openstreetmap.org/planet/planet-latest.osm.bz2" | ||||
|    | ||||
|   # (clone mode only) the url to clone a copy of Overpass from. Defaults to https://dev.overpass-api.de/api_drolbr/, which uses minute diffs. | ||||
|   # OVERPASS_CLONE_SOURCE: "" | ||||
|    | ||||
|   # url to a diff directory for updating the instance (e.g. https://planet.openstreetmap.org/replication/minute/). | ||||
|   # intentionally use the lower resolution | ||||
|   OVERPASS_DIFF_URL: "https://planet.openstreetmap.org/replication/day/" | ||||
|    | ||||
|   # (init mode only) takes values of no, gz or lz4. Specifies compression mode of the Overpass database. Defaults to gz. | ||||
|   # keep the default here | ||||
|   # OVERPASS_COMPRESSION: "" | ||||
|    | ||||
|   # integer, desired load from area generation. Controls the ratio of sleep to work. A value of 1 will make the system sleep 99x times longer than it works, a value of 50 will result in sleep and work in equal measure, and a value of 100 will only sleep 3 seconds between each execution. Defaults to 1. | ||||
|   OVERPASS_RULES_LOAD: "" | ||||
|    | ||||
|   # integer, the delay between updates (seconds). | ||||
|   OVERPASS_UPDATE_SLEEP: "" | ||||
|    | ||||
|   # cookie-jar compatible content to be used when fetching planet.osm files and updates. | ||||
|   # OVERPASS_COOKIE_JAR_CONTENTS: "" | ||||
|    | ||||
|   # commands to be run before passing the planet.osm file to update_database, e.g. conversion from pbf to osm.bz2 using osmium. | ||||
|   # OVERPASS_PLANET_PREPROCESS: "" | ||||
|    | ||||
|   # commands to be run before passing the diff.osc file to update_database, e.g. extracting geo specific regions | ||||
|   # OVERPASS_DIFF_PREPROCESS: "" | ||||
|    | ||||
|   # set to yes if you want to use oauth_cookie_client to update cookies before each update. Settings are read from /secrets/oauth-settings.json. Read the documentation here. | ||||
|   # USE_OAUTH_COOKIE_CLIENT: "" | ||||
|  | ||||
|   # number of fcgiwarp processes. Defaults to 4. Use higher values if you notice performance problems.4# | ||||
|   # we want to be able to handle more concurrent requests | ||||
|   OVERPASS_FASTCGI_PROCESSES: "8" | ||||
|  | ||||
|   # set the maximum allowed number of concurrent accesses from a single IP address. | ||||
|   # all requests are from the same anyway backend and we don't expose the service => no rate limiting | ||||
|   # OVERPASS_RATE_LIMIT: "" | ||||
|  | ||||
|   # set the maximum amount of time units (available time). | ||||
|   OVERPASS_TIME: "" | ||||
|  | ||||
|   # set the maximum amount of RAM (available space) in bytes. | ||||
|   # in accordance with the kubernetes *enforced* limits | ||||
|   # about 8 GB | ||||
|   OVERPASS_SPACE: "8000000000" | ||||
|  | ||||
|   # set the maximum timeout for queries (default: 1000s). Translates to send/recv timeout for fastcgi_wrap. | ||||
|   # we want requests to be fairly snappy, and we fail gracefully if they take too long | ||||
|   OVERPASS_MAX_TIMEOUT: "60s" | ||||
|  | ||||
|   # if false initial area generation and the area updater process will be disabled. Default true. | ||||
|   OVERPASS_USE_AREAS: "true" | ||||
|  | ||||
|   # shell commands to execute to verify that image is healthy. exit 1 in case of failures, exit 0 when container is healthy. Default healthcheck queries overpass and verifies that there is reponse returned | ||||
|   # left empty since we use kubernetes health checks | ||||
|   # OVERPASS_HEALTHCHECK: "" | ||||
|  | ||||
|   # if false the container will keep running after init is complete. Otherwise container will be stopped after initialization process is complete. Default true | ||||
|   OVERPASS_STOP_AFTER_INIT: "false" | ||||
|  | ||||
|   # if yes, duplicate queries (same query from the same IP address) will be allowed. Default no. | ||||
|   OVERPASS_ALLOW_DUPLICATE_QUERIES: "yes" | ||||
							
								
								
									
										40
									
								
								base/deployment.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								base/deployment.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,40 @@ | ||||
| apiVersion: apps/v1 | ||||
| kind: Deployment | ||||
| metadata: | ||||
|   name: overpass | ||||
| spec: | ||||
|   selector: | ||||
|     matchLabels: | ||||
|       app: overpass | ||||
|   template: | ||||
|     metadata: | ||||
|       labels: | ||||
|         app: overpass | ||||
|     spec: | ||||
|       containers: | ||||
|       - name: overpass | ||||
|         image: overpass # the actual image name is specified in the kustomization.yaml | ||||
|         resources: | ||||
|           requests: | ||||
|             memory: "1Gi" | ||||
|             cpu: "50m" | ||||
|           limits: | ||||
|             memory: "9Gi" | ||||
|             # we don't expect high CPU usage even during many requests | ||||
|             cpu: "1" | ||||
|         envFrom: | ||||
|         - configMapRef: | ||||
|             name: overpass-config | ||||
|         ports: | ||||
|         - containerPort: 12345 | ||||
|  | ||||
|         # readinessProbe: TODO | ||||
|         # livenessProbe: TODO | ||||
|  | ||||
|         volumeMounts: | ||||
|         - name: overpass-data | ||||
|           mountPath: /database | ||||
|       volumes: | ||||
|       - name: overpass-data | ||||
|         persistentVolumeClaim: | ||||
|           claimName: overpass-data | ||||
							
								
								
									
										16
									
								
								base/kustomization.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								base/kustomization.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | ||||
| apiVersion: kustomize.config.k8s.io/v1beta1 | ||||
| kind: Kustomization | ||||
|  | ||||
| resources: | ||||
|   - namespace.yaml | ||||
|   # - pvc.yaml | ||||
|   - deployment.yaml | ||||
|   - configmap.yaml | ||||
|   - service.yaml | ||||
|   - pvc.yaml | ||||
|  | ||||
|  | ||||
| images: | ||||
|   - name: overpass | ||||
|     newName: wiktorn/overpass-api | ||||
|     newTag: "0.7.56.9" | ||||
							
								
								
									
										4
									
								
								base/namespace.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								base/namespace.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| apiVersion: v1 | ||||
| kind: Namespace | ||||
| metadata: | ||||
|   name: placeholder | ||||
							
								
								
									
										10
									
								
								base/pvc.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								base/pvc.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| apiVersion: v1 | ||||
| kind: PersistentVolumeClaim | ||||
| metadata: | ||||
|   name: overpass-data | ||||
| spec: | ||||
|   resources: | ||||
|     requests: | ||||
|       storage: 15Gi | ||||
|   accessModes: | ||||
|     - ReadWriteMany | ||||
							
								
								
									
										10
									
								
								base/service.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								base/service.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| apiVersion: v1 | ||||
| kind: Service | ||||
| metadata: | ||||
|   name: overpass | ||||
| spec: | ||||
|   selector: | ||||
|     app: overpass | ||||
|   ports: | ||||
|   - port: 12345 | ||||
|     targetPort: 12345 | ||||
							
								
								
									
										8
									
								
								overlays/prod/kustomization.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								overlays/prod/kustomization.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| apiVersion: kustomize.config.k8s.io/v1beta1 | ||||
| kind: Kustomization | ||||
|  | ||||
| resources: | ||||
|   - ../../base | ||||
|  | ||||
| namespace: overpass-prod | ||||
|  | ||||
							
								
								
									
										7
									
								
								overlays/stg/configmap.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								overlays/stg/configmap.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| apiVersion: v1 | ||||
| kind: ConfigMap | ||||
| metadata: | ||||
|   name: overpass-config | ||||
| data: | ||||
|   # only monaco | ||||
|   OVERPASS_PLANET_URL: "https://planet.openstreetmap.org/TODO" | ||||
							
								
								
									
										15
									
								
								overlays/stg/kustomization.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								overlays/stg/kustomization.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| apiVersion: kustomize.config.k8s.io/v1beta1 | ||||
| kind: Kustomization | ||||
|  | ||||
| resources: | ||||
|   - ../../base | ||||
|  | ||||
| namespace: overpass-stg | ||||
|  | ||||
| metadata: | ||||
|   labels: | ||||
|     env: stg | ||||
|  | ||||
| patches: | ||||
|   - path: configmap.yaml | ||||
|   - path: pvc.yaml | ||||
							
								
								
									
										9
									
								
								overlays/stg/pvc.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								overlays/stg/pvc.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| apiVersion: v1 | ||||
| kind: PersistentVolumeClaim | ||||
| metadata: | ||||
|   name: overpass-data | ||||
| spec: | ||||
|   storageClassName: "nfs-client" | ||||
|   # resources: | ||||
|   #   requests: | ||||
|   #     storage: 10Gi | ||||
		Reference in New Issue
	
	Block a user