2cea6dc37eb778eff682044f3f2f14a58a51a207
[arvados-k8s.git] / charts / arvados / templates / api-server-configmap.yaml
1 # Copyright (C) The Arvados Authors. All rights reserved.
2 #
3 # SPDX-License-Identifier: Apache-2.0
4
5 apiVersion: v1
6 kind: ConfigMap
7 metadata:
8   name: arvados-api-server-configmap
9   labels:
10     app: arvados-api-server
11     chart: {{ template "arvados.chart" . }}
12     release: {{ .Release.Name }}
13     heritage: {{ .Release.Service }}
14 data:
15   {{- (tpl (.Files.Glob "config/api-server/*").AsConfig . ) | nindent 2 }}
16
17 ---
18 apiVersion: v1
19 kind: ConfigMap
20 metadata:
21   name: arvados-api-server-https-configmap
22   labels:
23     app: {{ template "arvados.name" . }}
24     chart: {{ template "arvados.chart" . }}
25     release: {{ .Release.Name }}
26     heritage: {{ .Release.Service }}
27 data:
28   nginx.conf: |
29     upstream controller {
30       server                127.0.0.1:9004;
31     }
32
33     proxy_http_version 1.1;
34
35     # When Keep clients request a list of Keep services from the API server, the
36     # server will automatically return the list of available proxies if
37     # the request headers include X-External-Client: 1.  Following the example
38     # here, at the end of this section, add a line for each netmask that has
39     # direct access to Keep storage daemons to set this header value to 0.
40     geo $external_client {
41       default     1;
42       10.0.0.0/8  0;
43     }
44
45     server {
46       listen                444 ssl;
47       server_name           public-api;
48
49       ssl_certificate       /etc/nginx/ssl.crt;
50       ssl_certificate_key   /etc/nginx/ssl.key;
51
52       client_max_body_size  128m;
53
54       # Redirect plain HTTP requests to HTTPS.
55       error_page 497 301 =307 https://$host:$server_port$request_uri;
56
57       location / {
58         proxy_pass            http://controller;
59         proxy_connect_timeout 90s;
60         proxy_read_timeout    300s;
61         proxy_redirect        off;
62         proxy_set_header      X-Forwarded-Proto https;
63         proxy_set_header      Host $http_host;
64         proxy_set_header      X-External-Client $external_client;
65         proxy_set_header      X-Real-IP $remote_addr;
66         proxy_set_header      X-Forwarded-For $proxy_add_x_forwarded_for;
67       }
68     }