yesod-mirror/k8s/configs/environments/bazel-cache/main.jsonnet

71 lines
2 KiB
Jsonnet
Raw Permalink Normal View History

local base = import 'k8s/configs/base.libsonnet';
local bazelCache = import 'k8s/configs/templates/dev/ops/bazel-cache.libsonnet';
local nginxIngress = import 'k8s/configs/templates/core/network/nginx-ingress.libsonnet';
local linuxserver = import 'k8s/configs/templates/core/linuxserver.libsonnet';
local namespace = 'bazel-cache';
local appName = 'bazel-remote-cache';
{
namespace: {
apiVersion: 'v1',
kind: 'Namespace',
metadata: {
name: namespace,
labels: {
'grpc-enabled': 'true',
},
},
},
pvc: base.RecoverableSimpleManyPvc(namespace, appName + '-data', 'nfs-client', '20Gi', {
volumeName: 'pvc-0316196b-3afd-4453-954e-3fe45c62ffc3',
nfsPath: '/volume3/fs/bazel-cache-bazel-remote-cache-data-pvc-0316196b-3afd-4453-954e-3fe45c62ffc3',
nfsServer: 'apollo1.dominion.lan',
}),
bazelCacheGrpcCert: {
apiVersion: 'cert-manager.io/v1',
kind: 'Certificate',
metadata: {
name: appName + '-grpc-cert',
namespace: namespace,
},
spec: {
secretName: appName + '-tls',
dnsNames: [
'bazel-cache.csbx.dev',
],
issuerRef: {
name: 'letsencrypt-production',
kind: 'ClusterIssuer',
},
},
},
apps: bazelCache.App(bazelCache.Params {
namespace: namespace,
name: appName,
dataClaimName: appName + '-data',
secrets: [],
configMaps: [],
extraArgs: [],
}) + {
ingress: nginxIngress.Ingress(nginxIngress.IngressParams {
namespace: namespace,
name: appName,
hosts: [
'bazel-cache.csbx.dev',
],
serviceName: appName + '-grpc',
servicePort: 9092,
tlsSecretName: appName + '-tls',
annotations: {
'nginx.ingress.kubernetes.io/backend-protocol': 'GRPC',
'nginx.ingress.kubernetes.io/proxy-body-size': '8g',
'nginx.ingress.kubernetes.io/proxy-read-timeout': '3600',
'nginx.ingress.kubernetes.io/proxy-send-timeout': '3600',
},
}),
},
}