blob: a3b9944f31bef0be2a6456594c6fabf152886cd0 [file] [log] [blame]
noisersupdba676d2023-08-14 02:05:24 +00001// The simple deployment of FerretDB proxy to be a bit more fluent with hscloud.
2// - kubectl -n personal-noisersup create secret generic ferretdb --from-literal=pg_password=password --from-literal=secret_key=pg_password
3// - kubecfg update personal/noisersup/ferretdb.jsonnet
4// - nix run nixpkgs#mongosh "mongodb://username:password@185.236.240.50/ferretdb?authMechanism=PLAIN"
5local kube = import '../../kube/kube.libsonnet';
6local postgres = import '../../kube/postgres.libsonnet';
7
8{
9 local top = self,
10 local cfg = self.cfg,
11
12 cfg:: {
13 name: 'ferretdb',
14 image: 'ghcr.io/ferretdb/ferretdb:latest',
15 namespace: 'personal-noisersup',
16 },
17
18 ns: kube.Namespace(cfg.namespace),
19
20 deployment: top.ns.Contain(kube.Deployment(cfg.name)) {
21 spec+: {
22 replicas: 1,
23 template+: {
24 spec+: {
25 containers_: {
26 default: kube.Container(cfg.name) {
27 image: cfg.image,
28 ports_: {
29 http: { containerPort: 27017 },
30 },
31 env: [
32 { name: 'FERRETDB_POSTGRESQL_URL', value: 'postgres://postgres:5432/ferretdb' },
33 ],
34 },
35 },
36 },
37 },
38 },
39 },
40
radex0e128492023-11-24 12:47:27 +010041 postgres: ns.Contain(postgres) {
noisersupdba676d2023-08-14 02:05:24 +000042 cfg+: {
noisersupdba676d2023-08-14 02:05:24 +000043 appName: 'ferretdb-postgres',
44 database: 'ferretdb',
45 username: 'username',
46 password: { secretKeyRef: { name: top.cfg.name, key: 'pg_password' } },
47
48 storageClassName: 'waw-hdd-redundant-3',
49 },
50 },
51
52 service: top.ns.Contain(kube.Service(cfg.name)) {
53 target_pod:: top.deployment.spec.template,
54 spec+: {
55 ports: [
56 { name: 'http', port: 27017, targetPort: 27017, protocol: 'TCP' },
57 ],
58 type: 'LoadBalancer',
59 externalTrafficPolicy: 'Local',
60 },
61 },
62}