| // The simple deployment of FerretDB proxy to be a bit more fluent with hscloud. |
| // - kubectl -n personal-noisersup create secret generic ferretdb --from-literal=pg_password=password --from-literal=secret_key=pg_password |
| // - kubecfg update personal/noisersup/ferretdb.jsonnet |
| // - nix run nixpkgs#mongosh "mongodb://username:password@185.236.240.50/ferretdb?authMechanism=PLAIN" |
| local kube = import '../../kube/kube.libsonnet'; |
| local postgres = import '../../kube/postgres.libsonnet'; |
| |
| { |
| local top = self, |
| local cfg = self.cfg, |
| |
| cfg:: { |
| name: 'ferretdb', |
| image: 'ghcr.io/ferretdb/ferretdb:latest', |
| namespace: 'personal-noisersup', |
| }, |
| |
| ns: kube.Namespace(cfg.namespace), |
| |
| deployment: top.ns.Contain(kube.Deployment(cfg.name)) { |
| spec+: { |
| replicas: 1, |
| template+: { |
| spec+: { |
| containers_: { |
| default: kube.Container(cfg.name) { |
| image: cfg.image, |
| ports_: { |
| http: { containerPort: 27017 }, |
| }, |
| env: [ |
| { name: 'FERRETDB_POSTGRESQL_URL', value: 'postgres://postgres:5432/ferretdb' }, |
| ], |
| }, |
| }, |
| }, |
| }, |
| }, |
| }, |
| |
| postgres: postgres { |
| cfg+: { |
| namespace: cfg.namespace, |
| appName: 'ferretdb-postgres', |
| database: 'ferretdb', |
| username: 'username', |
| password: { secretKeyRef: { name: top.cfg.name, key: 'pg_password' } }, |
| |
| storageClassName: 'waw-hdd-redundant-3', |
| }, |
| }, |
| |
| service: top.ns.Contain(kube.Service(cfg.name)) { |
| target_pod:: top.deployment.spec.template, |
| spec+: { |
| ports: [ |
| { name: 'http', port: 27017, targetPort: 27017, protocol: 'TCP' }, |
| ], |
| type: 'LoadBalancer', |
| externalTrafficPolicy: 'Local', |
| }, |
| }, |
| } |