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', }, }), }, }