Skip to content

Commit afa34db

Browse files
author
Melanie Kneisel
committed
adding misc
1 parent 07f13d0 commit afa34db

File tree

6 files changed

+2020
-0
lines changed

6 files changed

+2020
-0
lines changed

svcs/data/misc/Cargo.toml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Copyright (c) Microsoft Corporation.
2+
# Licensed under the MIT License.
3+
4+
[package]
5+
name = "osmingester"
6+
version = "0.1.0"
7+
edition = "2021"
8+
9+
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
10+
11+
[dependencies]
12+
anyhow = "1"
13+
clap = { version="3", features = ["derive"] }
14+
env_logger = "0"
15+
itertools = "0"
16+
log = "0"
17+
openssl = "0"
18+
postgres = "0"
19+
postgres-openssl = "0"
20+
reqwest = { version = "0", features = ["blocking", "stream"] }

svcs/data/misc/Dockerfile.ingest

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Copyright (c) Microsoft Corporation.
2+
# Licensed under the MIT License.
3+
4+
FROM mcr.microsoft.com/cbl-mariner/base/core:2.0 as builder
5+
6+
ENV OSM2PGSQL_VERSION=1.6.0
7+
8+
RUN tdnf repolist --refresh
9+
RUN tdnf install -y ca-certificates-microsoft wget tar gzip
10+
RUN tdnf install -y build-essential cmake boost-devel expat-devel \
11+
bzip2-devel postgresql-devel lua-devel glibc
12+
13+
RUN mkdir /osm2pgsql && wget -q -O - https://github.com/openstreetmap/osm2pgsql/archive/refs/tags/$OSM2PGSQL_VERSION.tar.gz | tar -xvz --strip-components=1 -C /osm2pgsql
14+
15+
RUN mkdir /osm2pgsql/build
16+
WORKDIR /osm2pgsql/build
17+
18+
RUN cmake ..
19+
RUN make
20+
RUN make install
21+
22+
FROM mcr.microsoft.com/cbl-mariner/base/core:2.0 as rustbuilder
23+
24+
RUN tdnf repolist --refresh
25+
RUN tdnf install -y ca-certificates-microsoft build-essential
26+
RUN tdnf install -y rust openssl-devel
27+
28+
RUN mkdir /build /build/osmingester /build/osmingester/src
29+
COPY Cargo.toml Cargo.lock /build/
30+
COPY osmingester/Cargo.toml /build/osmingester
31+
COPY osmingester/src/main.rs /build/osmingester/src
32+
WORKDIR /build
33+
RUN cargo build --release
34+
35+
FROM mcr.microsoft.com/cbl-mariner/base/core:2.0 as final
36+
37+
RUN tdnf install -y ca-certificates boost-devel expat-devel \
38+
bzip2-devel postgresql-libs lua lua-devel gdb
39+
RUN mkdir /tools
40+
41+
COPY --from=builder /usr/local/bin/osm2pgsql /usr/local/bin/osm2pgsql-replication /tools/
42+
COPY --from=rustbuilder /build/target/release/osmingester /tools
43+
WORKDIR /work

svcs/data/misc/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
2+
This directory contains material that has not be tested or used in production but might be helpful when bringing up the services portion of Soundscape.

svcs/data/misc/ingester.yaml

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# Copyright (c) Microsoft Corporation.
2+
# Licensed under the MIT License.
3+
4+
---
5+
apiVersion: v1
6+
kind: Service
7+
metadata:
8+
name: {{ .Chart.Name }}-ingester-service
9+
labels:
10+
app: {{ .Chart.Name }}
11+
tier: ingestion
12+
role: ingester-service
13+
spec:
14+
selector:
15+
app: {{ .Chart.Name }}
16+
tier: ingestion
17+
role: ingester
18+
clusterIP: None
19+
---
20+
apiVersion: apps/v1
21+
kind: StatefulSet
22+
metadata:
23+
name: {{ .Chart.Name}}-ingester
24+
spec:
25+
serviceName: {{ .Chart.Name }}-ingester-service
26+
replicas: 1
27+
selector:
28+
matchLabels:
29+
app: {{ .Chart.Name }}
30+
tier: ingestion
31+
role: ingester
32+
template:
33+
metadata:
34+
labels:
35+
app: {{ .Chart.Name }}
36+
tier: ingestion
37+
role: ingester
38+
spec:
39+
serviceAccountName: {{ .Chart.Name}}-ingester-serviceaccount
40+
securityContext:
41+
runAsUser: 1000
42+
runAsGroup: 1000
43+
fsGroup: 1000
44+
containers:
45+
- name: {{ .Chart.Name }}-ingester
46+
image: {{ .Values.containerRegistry }}/{{ .Values.ingesterImage }}:{{ required "A valid .Values.soundscapeImageVersion entry required!" .Values.soundscapeImageVersion }}
47+
command: ["/tools/osmingester"]
48+
args: ["--osm2pgsql", "/tools/osm2pgsql", "--pbf", "/config/pbf", "--mapper", "/config/soundscape.lua", "--provision-sql", "/config/provision.sql", "--provision-sql", "/config/postgis-vt-util.sql", "--provision-sql", "/config/tilefunc.sql", "--work", "/work", "--dsn", "/secret/dsn2"]
49+
securityContext:
50+
allowPrivilegeEscalation: false
51+
volumeMounts:
52+
- mountPath: /work
53+
name: {{ .Chart.Name }}-ingester-volume
54+
- mountPath: /config
55+
name: {{ .Chart.Name }}-ingester-config-volume
56+
readOnly: true
57+
- mountPath: /secret
58+
name: {{ .Chart.Name }}-database-volume
59+
readOnly: true
60+
volumes:
61+
- name: {{ .Chart.Name }}-ingester-config-volume
62+
configMap:
63+
name: {{ .Chart.Name }}-ingester-config
64+
- name: {{ .Chart.Name }}-database-volume
65+
secret:
66+
secretName: {{ .Chart.Name }}-database
67+
updateStrategy:
68+
type: RollingUpdate
69+
volumeClaimTemplates:
70+
- metadata:
71+
name: {{ .Chart.Name }}-ingester-volume
72+
spec:
73+
accessModes: ["ReadWriteOnce"]
74+
storageClassName: {{ .Chart.Name }}-sc
75+
resources:
76+
requests:
77+
storage: {{ .Values.config.ingester.workingStorage }}

0 commit comments

Comments
 (0)