mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-04-25 16:36:21 +02:00
116 lines
3 KiB
Jsonnet
116 lines
3 KiB
Jsonnet
|
|
|
||
|
|
local k8s = import "k8s.jsonnet";
|
||
|
|
|
||
|
|
local ns = {
|
||
|
|
apiVersion: "v1",
|
||
|
|
kind: "Namespace",
|
||
|
|
metadata: {
|
||
|
|
name: "trustgraph",
|
||
|
|
},
|
||
|
|
"spec": {
|
||
|
|
},
|
||
|
|
};
|
||
|
|
|
||
|
|
k8s + {
|
||
|
|
|
||
|
|
// Extract resources usnig the engine
|
||
|
|
package:: function(patterns)
|
||
|
|
local resources = [ns] + std.flattenArrays([
|
||
|
|
p.create(self) for p in std.objectValues(patterns)
|
||
|
|
]);
|
||
|
|
local resourceList = {
|
||
|
|
apiVersion: "v1",
|
||
|
|
kind: "List",
|
||
|
|
items: resources,
|
||
|
|
};
|
||
|
|
resourceList,
|
||
|
|
|
||
|
|
volume:: function(name)
|
||
|
|
{
|
||
|
|
local volume = self,
|
||
|
|
name: name,
|
||
|
|
with_size:: function(size) self + { size: size },
|
||
|
|
add:: function() [
|
||
|
|
{
|
||
|
|
apiVersion: "v1",
|
||
|
|
kind: "PersistentVolume",
|
||
|
|
metadata: {
|
||
|
|
name: volume.name,
|
||
|
|
},
|
||
|
|
spec: {
|
||
|
|
accessModes: [ "ReadWriteOnce" ],
|
||
|
|
capacity: {
|
||
|
|
storage: volume.size,
|
||
|
|
},
|
||
|
|
persistentVolumeReclaimPolicy: "Delete",
|
||
|
|
hostPath: {
|
||
|
|
path: "/data/pv-" + volume.name,
|
||
|
|
},
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
apiVersion: "v1",
|
||
|
|
kind: "PersistentVolumeClaim",
|
||
|
|
metadata: {
|
||
|
|
name: volume.name,
|
||
|
|
namespace: "trustgraph",
|
||
|
|
},
|
||
|
|
spec: {
|
||
|
|
accessModes: [ "ReadWriteOnce" ],
|
||
|
|
resources: {
|
||
|
|
requests: {
|
||
|
|
storage: volume.size,
|
||
|
|
}
|
||
|
|
},
|
||
|
|
}
|
||
|
|
}
|
||
|
|
],
|
||
|
|
|
||
|
|
volRef:: function() {
|
||
|
|
name: volume.name,
|
||
|
|
persistentVolumeClaim: { claimName: volume.name },
|
||
|
|
}
|
||
|
|
|
||
|
|
},
|
||
|
|
|
||
|
|
service:: function(containers)
|
||
|
|
{
|
||
|
|
local service = self,
|
||
|
|
name: containers.name,
|
||
|
|
ports: [],
|
||
|
|
with_port::
|
||
|
|
function(src, dest, name)
|
||
|
|
self + {
|
||
|
|
ports: super.ports + [
|
||
|
|
{ src: src, dest: dest, name: name }
|
||
|
|
]
|
||
|
|
},
|
||
|
|
add:: function() [
|
||
|
|
{
|
||
|
|
apiVersion: "v1",
|
||
|
|
kind: "Service",
|
||
|
|
metadata: {
|
||
|
|
name: service.name,
|
||
|
|
namespace: "trustgraph",
|
||
|
|
},
|
||
|
|
spec: {
|
||
|
|
selector: {
|
||
|
|
app: service.name,
|
||
|
|
},
|
||
|
|
type: "LoadBalancer",
|
||
|
|
ports: [
|
||
|
|
{
|
||
|
|
port: port.src,
|
||
|
|
targetPort: port.dest,
|
||
|
|
name: port.name,
|
||
|
|
}
|
||
|
|
for port in service.ports
|
||
|
|
],
|
||
|
|
}
|
||
|
|
}
|
||
|
|
],
|
||
|
|
},
|
||
|
|
|
||
|
|
}
|
||
|
|
|