Skip to content

Commit 69f545d

Browse files
author
Ruben L. Mendoza
authored
Merge pull request #214 from developmentseed/persistenceDisk_minikube
Support minikube persistent disk
2 parents b27a792 + 599b419 commit 69f545d

File tree

10 files changed

+313
-108
lines changed

10 files changed

+313
-108
lines changed

docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ services:
240240
ports:
241241
- '8081:80'
242242
volumes:
243-
- ./data/overpass-api-db:/db
243+
- ./data/overpass-api-db-data:/db
244244
env_file:
245245
- ./envs/.env.overpass
246246

osm-seed/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
apiVersion: v1
22
description: "Helm Chart to deploy the OpenStreetMap software"
33
name: osm-seed
4-
version: 0.1.0-n517.h48ac2b9
4+
version: ''
55

osm-seed/README.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,29 @@ To delete all resources created in the Helm chart:
4646
helm delete <release-name>
4747

4848

49+
## Install osm-seed on minikube cluster
50+
51+
```sh
52+
minikube delete --all
53+
minikube start --mount-string=$PWD/data/:/mnt/ --mount
54+
minikube ssh
55+
chartpress
56+
# It is necesary to create the folder in the shared folder
57+
mkdir -p $PWD/data/db-data
58+
mkdir -p $PWD/data/tiler-db-data
59+
mkdir -p $PWD/data/tiler-imposm-data
60+
mkdir -p $PWD/data/tiler-server-data
61+
mkdir -p $PWD/data/overpass-api-db-data
62+
mkdir -p $PWD/data/nominatim-db-data
63+
64+
# Install develop version
65+
helm install develop osm-seed -f osm-seed/values.yaml
66+
# Update develop version
67+
helm upgrade develop osm-seed -f osm-seed/values.yaml
68+
# Delete develop version
69+
helm delete develop
70+
```
71+
4972
### Additional Notes
5073

5174
When developing and testing locally, it is often useful to use the same `docker` context inside your minikube instance as your local machine. This avoids having to re-pull docker images from within your `minikube` VM. This can be accomplished with:

osm-seed/templates/db-pd.yaml

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,20 @@ metadata:
1010
environment: {{ .Values.environment }}
1111
release: {{ .Release.Name }}
1212
spec:
13-
storageClassName: "" # It's necessary to specify "" as the storageClassName ,so that the default storage class won't be used, see : https://kubernetes.io/docs/concepts/storage/persistent-volumes/#class-1
14-
# AWS Provider
13+
############## Minikube ##############
14+
{{- if eq .Values.cloudProvider "minikube" }}
15+
storageClassName: local-storage
16+
capacity:
17+
storage: {{ .Values.db.persistenceDisk.localVolumeSize }}
18+
accessModes:
19+
- ReadWriteOnce
20+
hostPath:
21+
path: {{ .Values.db.persistenceDisk.localVolumeHostPath | quote }}
22+
{{- end }}
23+
24+
############## AWS Provider ##############
1525
{{- if eq .Values.cloudProvider "aws" }}
26+
storageClassName: ""
1627
capacity:
1728
storage: {{ .Values.db.persistenceDisk.AWS_ElasticBlockStore_size }}
1829
accessModes:
@@ -21,14 +32,16 @@ spec:
2132
volumeID: {{ .Values.db.persistenceDisk.AWS_ElasticBlockStore_volumeID }}
2233
fsType: ext4
2334
{{- end }}
24-
# GCP Provider
35+
36+
############## GCP Provider ##############
2537
{{- if eq .Values.cloudProvider "gcp" }}
38+
storageClassName: ""
2639
capacity:
2740
storage: {{ .Values.db.persistenceDisk.GCP_gcePersistentDisk_size }}
2841
accessModes:
2942
- ReadWriteOnce
3043
gcePersistentDisk:
31-
pdName: {{ .Values.db.persistenceDisk.GCP_gcePersistentDisk_pdName}}
44+
pdName: {{ .Values.db.persistenceDisk.GCP_gcePersistentDisk_pdName }}
3245
fsType: ext4
3346
{{- end }}
3447
---
@@ -42,17 +55,29 @@ metadata:
4255
environment: {{ .Values.environment }}
4356
release: {{ .Release.Name }}
4457
spec:
58+
############## Minikube ##############
59+
{{- if eq .Values.cloudProvider "minikube" }}
60+
storageClassName: local-storage
61+
{{- else }}
62+
############## Other providers ##############
4563
storageClassName: ""
64+
{{- end }}
4665
volumeName: {{ .Release.Name }}-pv
4766
accessModes:
4867
- ReadWriteOnce
4968
resources:
5069
requests:
51-
# AWS Provider
70+
############## Minikube ##############
71+
{{- if eq .Values.cloudProvider "minikube" }}
72+
storage: {{ .Values.db.persistenceDisk.localVolumeSize }}
73+
{{- end }}
74+
75+
############## AWS Provider ##############
5276
{{- if eq .Values.cloudProvider "aws" }}
5377
storage: {{ .Values.db.persistenceDisk.AWS_ElasticBlockStore_size }}
5478
{{- end }}
55-
# GCP Provider
79+
80+
############## GCP Provider ##############
5681
{{- if eq .Values.cloudProvider "gcp" }}
5782
storage: {{ .Values.db.persistenceDisk.GCP_gcePersistentDisk_size }}
5883
{{- end }}

osm-seed/templates/nominatim-db-pd.yaml

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,20 @@ metadata:
1010
environment: {{ .Values.environment }}
1111
release: {{ .Release.Name }}
1212
spec:
13-
storageClassName: "" # It's necessary to specify "" as the storageClassName ,so that the default storage class won't be used, see : https://kubernetes.io/docs/concepts/storage/persistent-volumes/#class-1
14-
# AWS Provider
13+
############## Minikube ##############
14+
{{- if eq .Values.cloudProvider "minikube" }}
15+
storageClassName: local-storage
16+
capacity:
17+
storage: {{ .Values.db.persistenceDisk.localVolumeSize }}
18+
accessModes:
19+
- ReadWriteOnce
20+
hostPath:
21+
path: {{ .Values.db.persistenceDisk.localVolumeHostPath | quote }}
22+
{{- end }}
23+
24+
############## AWS Provider ##############
1525
{{- if eq .Values.cloudProvider "aws" }}
26+
storageClassName: ""
1627
capacity:
1728
storage: {{ .Values.nominatimDb.persistenceDisk.AWS_ElasticBlockStore_size }}
1829
accessModes:
@@ -21,8 +32,10 @@ spec:
2132
volumeID: {{ .Values.nominatimDb.persistenceDisk.AWS_ElasticBlockStore_volumeID }}
2233
fsType: ext4
2334
{{- end }}
24-
# GCP Provider
35+
36+
############## GCP Provider ##############
2537
{{- if eq .Values.cloudProvider "gcp" }}
38+
storageClassName: ""
2639
capacity:
2740
storage: {{ .Values.nominatimDb.persistenceDisk.GCP_gcePersistentDisk_size }}
2841
accessModes:
@@ -42,17 +55,29 @@ metadata:
4255
environment: {{ .Values.environment }}
4356
release: {{ .Release.Name }}
4457
spec:
58+
############## Minikube ##############
59+
{{- if eq .Values.cloudProvider "minikube" }}
60+
storageClassName: local-storage
61+
{{- else }}
62+
############## Other providers ##############
4563
storageClassName: ""
64+
{{- end }}
4665
volumeName: {{ .Release.Name }}-nominatim-pv
4766
accessModes:
4867
- ReadWriteOnce
4968
resources:
5069
requests:
51-
# AWS Provider
70+
############# Minikube ##############
71+
{{- if eq .Values.cloudProvider "minikube" }}
72+
storage: {{ .Values.nominatimDb.persistenceDisk.localVolumeSize }}
73+
{{- end }}
74+
75+
############## AWS Provider ##############
5276
{{- if eq .Values.cloudProvider "aws" }}
5377
storage: {{ .Values.nominatimDb.persistenceDisk.AWS_ElasticBlockStore_size }}
5478
{{- end }}
55-
# GCP Provider
79+
80+
############## GCP Provider ##############
5681
{{- if eq .Values.cloudProvider "gcp" }}
5782
storage: {{ .Values.nominatimDb.persistenceDisk.GCP_gcePersistentDisk_size }}
5883
{{- end }}

osm-seed/templates/overpass-api-dp.yaml

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,20 @@ metadata:
1010
environment: {{ .Values.environment }}
1111
release: {{ .Release.Name }}
1212
spec:
13-
storageClassName: "" # It's necessary to specify "" as the storageClassName ,so that the default storage class won't be used, see : https://kubernetes.io/docs/concepts/storage/persistent-volumes/#class-1
14-
# AWS Provider
13+
############## Minikube ##############
14+
{{- if eq .Values.cloudProvider "minikube" }}
15+
storageClassName: local-storage
16+
capacity:
17+
storage: {{ .Values.overpassApi.persistenceDisk.localVolumeSize }}
18+
accessModes:
19+
- ReadWriteOnce
20+
hostPath:
21+
path: {{ .Values.overpassApi.persistenceDisk.localVolumeHostPath | quote }}
22+
{{- end }}
23+
24+
############## AWS Provider ##############
1525
{{- if eq .Values.cloudProvider "aws" }}
26+
storageClassName: ""
1627
capacity:
1728
storage: {{ .Values.overpassApi.persistenceDisk.AWS_ElasticBlockStore_size }}
1829
accessModes:
@@ -21,8 +32,10 @@ spec:
2132
volumeID: {{ .Values.overpassApi.persistenceDisk.AWS_ElasticBlockStore_volumeID }}
2233
fsType: ext4
2334
{{- end }}
24-
# GCP Provider
35+
36+
############## GCP Provider ##############
2537
{{- if eq .Values.cloudProvider "gcp" }}
38+
storageClassName: ""
2639
capacity:
2740
storage: {{ .Values.overpassApi.persistenceDisk.GCP_gcePersistentDisk_size }}
2841
accessModes:
@@ -42,15 +55,29 @@ metadata:
4255
environment: {{ .Values.environment }}
4356
release: {{ .Release.Name }}
4457
spec:
58+
############## Minikube ##############
59+
{{- if eq .Values.cloudProvider "minikube" }}
60+
storageClassName: local-storage
61+
{{- else }}
62+
############## Other providers ##############
4563
storageClassName: ""
64+
{{- end }}
4665
volumeName: {{ .Release.Name }}-overpass-api-pv
4766
accessModes:
4867
- ReadWriteOnce
4968
resources:
5069
requests:
70+
############## Minikube ##############
71+
{{- if eq .Values.cloudProvider "minikube" }}
72+
storage: {{ .Values.overpassApi.persistenceDisk.localVolumeSize }}
73+
{{- end }}
74+
75+
############## AWS Provider ##############
5176
{{- if eq .Values.cloudProvider "aws" }}
5277
storage: {{ .Values.overpassApi.persistenceDisk.AWS_ElasticBlockStore_size }}
5378
{{- end }}
79+
80+
############## GCP Provider ##############
5481
{{- if eq .Values.cloudProvider "gcp" }}
5582
storage: {{ .Values.overpassApi.persistenceDisk.GCP_gcePersistentDisk_size }}
5683
{{- end }}

osm-seed/templates/tiler-db-pd.yaml

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,20 @@ metadata:
1010
environment: {{ .Values.environment }}
1111
release: {{ .Release.Name }}
1212
spec:
13-
storageClassName: "" # It's necessary to specify "" as the storageClassName ,so that the default storage class won't be used, see : https://kubernetes.io/docs/concepts/storage/persistent-volumes/#class-1
14-
# AWS Provider
13+
############## Minikube ##############
14+
{{- if eq .Values.cloudProvider "minikube" }}
15+
storageClassName: local-storage
16+
capacity:
17+
storage: {{ .Values.tilerDb.persistenceDisk.localVolumeSize }}
18+
accessModes:
19+
- ReadWriteOnce
20+
hostPath:
21+
path: {{ .Values.tilerDb.persistenceDisk.localVolumeHostPath | quote }}
22+
{{- end }}
23+
24+
############## AWS Provider ##############
1525
{{- if eq .Values.cloudProvider "aws" }}
26+
storageClassName: ""
1627
capacity:
1728
storage: {{ .Values.tilerDb.persistenceDisk.AWS_ElasticBlockStore_size }}
1829
accessModes:
@@ -21,14 +32,16 @@ spec:
2132
volumeID: {{ .Values.tilerDb.persistenceDisk.AWS_ElasticBlockStore_volumeID }}
2233
fsType: ext4
2334
{{- end }}
24-
# GCP Provider
35+
36+
############## GCP Provider ##############
2537
{{- if eq .Values.cloudProvider "gcp" }}
38+
storageClassName: ""
2639
capacity:
2740
storage: {{ .Values.tilerDb.persistenceDisk.GCP_gcePersistentDisk_size }}
2841
accessModes:
2942
- ReadWriteOnce
3043
gcePersistentDisk:
31-
pdName: {{ .Values.tilerDb.persistenceDisk.GCP_gcePersistentDisk_pdName}}
44+
pdName: {{ .Values.tilerDb.persistenceDisk.GCP_gcePersistentDisk_pdName }}
3245
fsType: ext4
3346
{{- end }}
3447
---
@@ -42,15 +55,29 @@ metadata:
4255
environment: {{ .Values.environment }}
4356
release: {{ .Release.Name }}
4457
spec:
58+
############## Minikube ##############
59+
{{- if eq .Values.cloudProvider "minikube" }}
60+
storageClassName: local-storage
61+
{{- else }}
62+
############## Other providers ##############
4563
storageClassName: ""
64+
{{- end }}
4665
volumeName: {{ .Release.Name }}-tiler-db-pv
4766
accessModes:
4867
- ReadWriteOnce
4968
resources:
5069
requests:
70+
############# Minikube ##############
71+
{{- if eq .Values.cloudProvider "minikube" }}
72+
storage: {{ .Values.tilerDb.persistenceDisk.localVolumeSize }}
73+
{{- end }}
74+
75+
############## AWS Provider ##############
5176
{{- if eq .Values.cloudProvider "aws" }}
5277
storage: {{ .Values.tilerDb.persistenceDisk.AWS_ElasticBlockStore_size }}
5378
{{- end }}
79+
80+
############## GCP Provider ##############
5481
{{- if eq .Values.cloudProvider "gcp" }}
5582
storage: {{ .Values.tilerDb.persistenceDisk.GCP_gcePersistentDisk_size }}
5683
{{- end }}

osm-seed/templates/tiler-imposm-pd.yaml

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,20 @@ metadata:
1010
environment: {{ .Values.environment }}
1111
release: {{ .Release.Name }}
1212
spec:
13-
storageClassName: "" # It's necessary to specify "" as the storageClassName ,so that the default storage class won't be used, see : https://kubernetes.io/docs/concepts/storage/persistent-volumes/#class-1
14-
# AWS Provider
13+
############## Minikube ##############
14+
{{- if eq .Values.cloudProvider "minikube" }}
15+
storageClassName: local-storage
16+
capacity:
17+
storage: {{ .Values.tilerImposm.persistenceDisk.localVolumeSize }}
18+
accessModes:
19+
- ReadWriteOnce
20+
hostPath:
21+
path: {{ .Values.tilerImposm.persistenceDisk.localVolumeHostPath | quote }}
22+
{{- end }}
23+
24+
############## AWS Provider ##############
1525
{{- if eq .Values.cloudProvider "aws" }}
26+
storageClassName: ""
1627
capacity:
1728
storage: {{ .Values.tilerImposm.persistenceDisk.AWS_ElasticBlockStore_size }}
1829
accessModes:
@@ -21,14 +32,16 @@ spec:
2132
volumeID: {{ .Values.tilerImposm.persistenceDisk.AWS_ElasticBlockStore_volumeID }}
2233
fsType: ext4
2334
{{- end }}
24-
# GCP Provider
35+
36+
############## GCP Provider ##############
2537
{{- if eq .Values.cloudProvider "gcp" }}
38+
storageClassName: ""
2639
capacity:
2740
storage: {{ .Values.tilerImposm.persistenceDisk.GCP_gcePersistentDisk_size }}
2841
accessModes:
2942
- ReadWriteOnce
3043
gcePersistentDisk:
31-
pdName: {{ .Values.tilerImposm.persistenceDisk.GCP_gcePersistentDisk_pdName}}
44+
pdName: {{ .Values.tilerImposm.persistenceDisk.GCP_gcePersistentDisk_pdName }}
3245
fsType: ext4
3346
{{- end }}
3447
---
@@ -42,15 +55,29 @@ metadata:
4255
environment: {{ .Values.environment }}
4356
release: {{ .Release.Name }}
4457
spec:
58+
############## Minikube ##############
59+
{{- if eq .Values.cloudProvider "minikube" }}
60+
storageClassName: local-storage
61+
{{- else }}
62+
############## Other providers ##############
4563
storageClassName: ""
64+
{{- end }}
4665
volumeName: {{ .Release.Name }}-tiler-imposm-pv
4766
accessModes:
4867
- ReadWriteOnce
4968
resources:
5069
requests:
70+
############# Minikube ##############
71+
{{- if eq .Values.cloudProvider "minikube" }}
72+
storage: {{ .Values.tilerImposm.persistenceDisk.localVolumeSize }}
73+
{{- end }}
74+
75+
############## AWS Provider ##############
5176
{{- if eq .Values.cloudProvider "aws" }}
5277
storage: {{ .Values.tilerImposm.persistenceDisk.AWS_ElasticBlockStore_size }}
5378
{{- end }}
79+
80+
############## GCP Provider ##############
5481
{{- if eq .Values.cloudProvider "gcp" }}
5582
storage: {{ .Values.tilerImposm.persistenceDisk.GCP_gcePersistentDisk_size }}
5683
{{- end }}

0 commit comments

Comments
 (0)