-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathcreateApiRule.js
53 lines (50 loc) · 1.17 KB
/
createApiRule.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
module.exports = {
createApiRule: createApiRule
}
function createApiRule(svcName, svcPort, host, clusterName) {
let forwardUrl = host + '.' + clusterName;
const supportedMethodsList = [
'GET',
'POST',
'PUT',
'PATCH',
'DELETE',
'HEAD',
];
const access_strategy = {
path: '/.*',
methods: supportedMethodsList,
mutators: [
{
handler: 'header',
config: {
headers: {
"x-forwarded-host": forwardUrl,
}
},
}
],
accessStrategies: [
{
handler: 'noop'
},
],
};
const apiRuleTemplate = {
apiVersion: 'gateway.kyma-project.io/v1beta1',
kind: 'APIRule',
metadata: {
name: host,
},
spec: {
gateway: 'kyma-gateway.kyma-system.svc.cluster.local',
host: host,
service: {
name: svcName,
port: svcPort,
},
rules: [access_strategy],
},
};
return apiRuleTemplate;
}