Skip to content

Commit d08ab54

Browse files
authored
Add spreadsheet config server (#432)
Signed-off-by: achour94 <[email protected]>
1 parent bf1184a commit d08ab54

File tree

10 files changed

+119
-0
lines changed

10 files changed

+119
-0
lines changed

.github/workflows/main.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ on:
4747
- voltage_init_server_updated
4848
- case_import_server_updated
4949
- gridadmin_app_updated
50+
- spreadsheet_config_server_updated
5051

5152
jobs:
5253
build:

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ http://localhost:5011/swagger-ui.html // case-validation-server
214214
http://localhost:5033/swagger-ui.html // user-admin-server
215215
http://localhost:5030/swagger-ui.html // sensitivity-analysis-server
216216
http://localhost:5031/swagger-ui.html // shortcircuit-server
217+
http://localhost:5035/swagger-ui.html // spreadsheet-config-server
217218
http://localhost:5037/swagger-ui.html // timeseries-server
218219
http://localhost:5038/swagger-ui.html // voltage-init-server
219220
http://localhost:5039/swagger-ui.html // case-import-server
@@ -412,6 +413,7 @@ http://<INGRESS_HOST>/shortcircuit-server/swagger-ui.html
412413
http://<INGRESS_HOST>/timeseries-server/swagger-ui.html
413414
http://<INGRESS_HOST>/voltage-init-server/swagger-ui.html
414415
http://<INGRESS_HOST>/case-import-server/swagger-ui.html
416+
http://<INGRESS_HOST>/spreadsheet-config-server/swagger-ui.html
415417
```
416418

417419
## How to use a local docker image into Minikube?

docker-compose/docker-compose.base.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,38 @@ services:
129129
limits:
130130
memory: 384m
131131

132+
spreadsheet-config-server:
133+
profiles:
134+
- all
135+
- suite
136+
- study
137+
- study-light
138+
- merging
139+
- dynamic-mapping
140+
- dynamic-simulation
141+
- import
142+
image: gridsuite/spreadsheet-config-server:latest
143+
ports:
144+
- 5035:80
145+
volumes:
146+
- $PWD/../../k8s/resources/common/config/spreadsheet-config-server-application.yml:/config/specific/application.yml:Z
147+
- $PWD/../../k8s/resources/common/config/common-application.yml:/config/common/application.yml:Z
148+
restart: unless-stopped
149+
depends_on:
150+
logspout:
151+
condition: "service_started"
152+
required: false
153+
command: --server.port=80 --spring.config.additional-location=/config/
154+
sysctls:
155+
- net.ipv4.ip_unprivileged_port_start=0 # for docker < 20.03.0
156+
environment:
157+
- JAVA_TOOL_OPTIONS=-Xmx96m
158+
memswap_limit: 384m
159+
deploy:
160+
resources:
161+
limits:
162+
memory: 384m
163+
132164
report-server:
133165
profiles:
134166
- all

docker-compose/technical/create-postgres-databases.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ psql --username $POSTGRES_USER --dbname $POSTGRES_DEFAULT_DB <<-EOSQL
2929
create database "${DATABASE_PREFIX_NAME}voltageinit";
3030
create database "${DATABASE_PREFIX_NAME}loadflow";
3131
create database "${DATABASE_PREFIX_NAME}stateestimation";
32+
create database "${DATABASE_PREFIX_NAME}spreadsheetconfig";
3233
EOSQL
3334
}
3435

k8s/live/local/kustomization.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ resources:
4848
- shortcircuit-server-ingress.yaml
4949
- timeseries-server-ingress.yaml
5050
- voltage-init-server-ingress.yaml
51+
- spreadsheet-config-server-ingress.yaml
5152

5253
configMapGenerator:
5354
- name: gridapps-env-configmap
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
apiVersion: networking.k8s.io/v1
2+
kind: Ingress
3+
metadata:
4+
name: spreadsheet-config-server-ingress
5+
annotations:
6+
nginx.ingress.kubernetes.io/configuration-snippet: |
7+
# our containers host at '/' so can't possibly make a difference between
8+
# '/XXX/' and '/XXX' (trailing slash) (which would respectively become
9+
# '/' and '' inside the container but an empty path doesn't exist in http)
10+
# so always redirect '/XXX' to '/XXX/' in the client outside the container
11+
rewrite ^/spreadsheet-config-server$ /spreadsheet-config-server/ permanent;
12+
13+
# springfox swagger-ui uses X-Forwarded-Prefix to find the
14+
# base url when behind a reverse proxy.
15+
# nginx-ingress-controller has an annotation to do the same thing
16+
# (nginx.ingress.kubernetes.io/x-forwarded-prefix)
17+
# but it only works when using rewrite-target, which we can't use because
18+
# we have properly encoded slashs in urls
19+
proxy_set_header X-Forwarded-Prefix /spreadsheet-config-server/;
20+
21+
# using this instead of standard rewrite as a workaround to avoid decoding slashes in urls
22+
# we sometimes have ids in the urls that contain properly encoded slashes
23+
if ($request_uri ~ "^/spreadsheet-config-server(/.*)") {
24+
proxy_pass http://upstream_balancer$1;
25+
break;
26+
}
27+
spec:
28+
rules:
29+
- http:
30+
paths:
31+
- path: /spreadsheet-config-server(/|$)
32+
pathType: Prefix
33+
backend:
34+
service:
35+
name: spreadsheet-config-server
36+
port:
37+
number: 80

k8s/resources/common/config/spreadsheet-config-server-application.yml

Whitespace-only changes.

k8s/resources/common/kustomization.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ resources:
3434
- config-notification-server-service.yaml
3535
- user-admin-server-deployment.yaml
3636
- user-admin-server-service.yaml
37+
- spreadsheet-config-server-deployment.yaml
38+
- spreadsheet-config-server-service.yaml
3739

3840
configMapGenerator:
3941
- name: default-backend-htdocs-configmap
@@ -89,3 +91,6 @@ configMapGenerator:
8991
- name: user-admin-server-configmap-specific
9092
files:
9193
- application.yml=config/user-admin-server-application.yml
94+
- name: spreadsheet-config-server-configmap-specific
95+
files:
96+
- application.yml=config/spreadsheet-config-server-application.yml
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: spreadsheet-config-server
5+
labels:
6+
name: spreadsheet-config-server
7+
version: "1"
8+
app.kubernetes.io/component: gridsuite-springboot
9+
gridsuite.org/springboot-with-database: "true"
10+
annotations:
11+
gridsuite.org/size: springboot-xxs
12+
spec:
13+
selector:
14+
matchLabels:
15+
name: spreadsheet-config-server
16+
template:
17+
metadata:
18+
labels:
19+
name: spreadsheet-config-server
20+
spec:
21+
containers:
22+
- name: main
23+
image: docker.io/gridsuite/spreadsheet-config-server:latest
24+
volumeMounts:
25+
- mountPath: /config/specific
26+
name: spreadsheet-config-server-configmap-specific-volume
27+
volumes:
28+
- name: spreadsheet-config-server-configmap-specific-volume
29+
configMap:
30+
name: spreadsheet-config-server-configmap-specific
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
labels:
5+
name: spreadsheet-config-server
6+
app.kubernetes.io/component: gridsuite-springboot
7+
name: spreadsheet-config-server
8+
spec:
9+
selector:
10+
name: spreadsheet-config-server

0 commit comments

Comments
 (0)