From 5cc18471460eedfe67ce67274ed182589ec2dcc1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 14 Sep 2024 19:17:57 +0000 Subject: [PATCH 1/4] Bump send, express and serve-static Bumps [send](https://github.com/pillarjs/send), [express](https://github.com/expressjs/express) and [serve-static](https://github.com/expressjs/serve-static). These dependencies needed to be updated together. Updates `send` from 0.18.0 to 0.19.0 - [Release notes](https://github.com/pillarjs/send/releases) - [Changelog](https://github.com/pillarjs/send/blob/master/HISTORY.md) - [Commits](https://github.com/pillarjs/send/compare/0.18.0...0.19.0) Updates `express` from 4.18.2 to 4.21.0 - [Release notes](https://github.com/expressjs/express/releases) - [Changelog](https://github.com/expressjs/express/blob/4.21.0/History.md) - [Commits](https://github.com/expressjs/express/compare/4.18.2...4.21.0) Updates `serve-static` from 1.15.0 to 1.16.2 - [Release notes](https://github.com/expressjs/serve-static/releases) - [Changelog](https://github.com/expressjs/serve-static/blob/v1.16.2/HISTORY.md) - [Commits](https://github.com/expressjs/serve-static/compare/v1.15.0...v1.16.2) --- updated-dependencies: - dependency-name: send dependency-type: direct:production - dependency-name: express dependency-type: direct:production - dependency-name: serve-static dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- package-lock.json | 277 ++++++++++++++++++++++++++++++++++------------ package.json | 6 +- 2 files changed, 211 insertions(+), 72 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0006c990..5a0c54fa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -164,7 +164,7 @@ "events": "^3.3.0", "evp_bytestokey": "^1.0.3", "execa": "^5.1.1", - "express": "^4.18.2", + "express": "^4.21.0", "ext": "^1.7.0", "fast-deep-equal": "^3.1.3", "fast-glob": "^3.2.12", @@ -421,10 +421,10 @@ "select-hose": "^2.0.0", "selfsigned": "^2.1.1", "semver": "^6.3.0", - "send": "^0.18.0", + "send": "^0.19.0", "serialize-javascript": "^6.0.1", "serve-index": "^1.9.1", - "serve-static": "^1.15.0", + "serve-static": "^1.16.2", "setimmediate": "^1.0.5", "setprototypeof": "^1.2.0", "sha.js": "^2.4.11", @@ -3646,20 +3646,20 @@ "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "dependencies": { "bytes": "3.1.2", - "content-type": "~1.0.4", + "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", + "qs": "6.13.0", + "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" }, @@ -3881,12 +3881,18 @@ } }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4700,6 +4706,22 @@ "node": ">= 10" } }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", @@ -5000,6 +5022,25 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-module-lexer": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.1.tgz", @@ -5159,36 +5200,36 @@ } }, "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", + "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.1", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.5.0", + "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -5204,6 +5245,22 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, + "node_modules/express/node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/express/node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -5344,12 +5401,12 @@ } }, "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "dependencies": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -5360,6 +5417,14 @@ "node": ">= 0.8" } }, + "node_modules/finalhandler/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/find-cache-dir": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", @@ -5485,9 +5550,12 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/gensync": { "version": "1.0.0-beta.2", @@ -5506,14 +5574,18 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5591,6 +5663,17 @@ "node": ">=8" } }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -5625,6 +5708,17 @@ "node": ">=4" } }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", @@ -5706,6 +5800,17 @@ "minimalistic-assert": "^1.0.1" } }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -6701,9 +6806,12 @@ } }, "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/merge-stream": { "version": "2.0.0", @@ -7077,9 +7185,12 @@ } }, "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -7337,9 +7448,9 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" }, "node_modules/path-type": { "version": "4.0.0", @@ -8020,11 +8131,11 @@ } }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -8095,9 +8206,9 @@ } }, "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -8589,9 +8700,9 @@ } }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -8682,19 +8793,43 @@ } }, "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dependencies": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "0.19.0" }, "engines": { "node": ">= 0.8.0" } }, + "node_modules/serve-static/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -8761,13 +8896,17 @@ "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==" }, "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" diff --git a/package.json b/package.json index 569b090f..1c771bd0 100644 --- a/package.json +++ b/package.json @@ -181,7 +181,7 @@ "events": "^3.3.0", "evp_bytestokey": "^1.0.3", "execa": "^5.1.1", - "express": "^4.18.2", + "express": "^4.21.0", "ext": "^1.7.0", "fast-deep-equal": "^3.1.3", "fast-glob": "^3.2.12", @@ -438,10 +438,10 @@ "select-hose": "^2.0.0", "selfsigned": "^2.1.1", "semver": "^6.3.0", - "send": "^0.18.0", + "send": "^0.19.0", "serialize-javascript": "^6.0.1", "serve-index": "^1.9.1", - "serve-static": "^1.15.0", + "serve-static": "^1.16.2", "setimmediate": "^1.0.5", "setprototypeof": "^1.2.0", "sha.js": "^2.4.11", From 175fd8bf8ee4608af7c01e2854dc5ea1f5d4f3b5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 13 Oct 2024 07:37:10 +0000 Subject: [PATCH 2/4] Bump cookie and express Bumps [cookie](https://github.com/jshttp/cookie) and [express](https://github.com/expressjs/express). These dependencies needed to be updated together. Updates `cookie` from 0.5.0 to 1.0.1 - [Release notes](https://github.com/jshttp/cookie/releases) - [Commits](https://github.com/jshttp/cookie/compare/v0.5.0...v1.0.1) Updates `express` from 4.21.0 to 4.21.1 - [Release notes](https://github.com/expressjs/express/releases) - [Changelog](https://github.com/expressjs/express/blob/4.21.1/History.md) - [Commits](https://github.com/expressjs/express/compare/4.21.0...4.21.1) --- updated-dependencies: - dependency-name: cookie dependency-type: direct:production - dependency-name: express dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- package-lock.json | 26 +++++++++++++------------- package.json | 4 ++-- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/package-lock.json b/package-lock.json index e7e32a56..ae6907d8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -93,7 +93,7 @@ "content-disposition": "^0.5.4", "content-type": "^1.0.5", "convert-source-map": "^1.9.0", - "cookie": "^0.5.0", + "cookie": "^1.0.1", "cookie-signature": "^1.0.6", "core-js-compat": "^3.30.1", "core-util-is": "^1.0.3", @@ -164,7 +164,7 @@ "events": "^3.3.0", "evp_bytestokey": "^1.0.3", "execa": "^5.1.1", - "express": "^4.21.0", + "express": "^4.21.1", "ext": "^1.7.0", "fast-deep-equal": "^3.1.3", "fast-glob": "^3.2.12", @@ -4273,11 +4273,11 @@ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.1.tgz", + "integrity": "sha512-Xd8lFX4LM9QEEwxQpF9J9NTUh8pmdJO0cyRJhFiDoLTk2eH8FXlRv2IFGYVadZpqI3j8fhNrSdKCeYPxiAhLXw==", "engines": { - "node": ">= 0.6" + "node": ">=18" } }, "node_modules/cookie-signature": { @@ -5211,16 +5211,16 @@ } }, "node_modules/express": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", - "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -5257,9 +5257,9 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "node_modules/express/node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", "engines": { "node": ">= 0.6" } diff --git a/package.json b/package.json index a16d537c..98f7fdb9 100644 --- a/package.json +++ b/package.json @@ -110,7 +110,7 @@ "content-disposition": "^0.5.4", "content-type": "^1.0.5", "convert-source-map": "^1.9.0", - "cookie": "^0.5.0", + "cookie": "^1.0.1", "cookie-signature": "^1.0.6", "core-js-compat": "^3.30.1", "core-util-is": "^1.0.3", @@ -181,7 +181,7 @@ "events": "^3.3.0", "evp_bytestokey": "^1.0.3", "execa": "^5.1.1", - "express": "^4.21.0", + "express": "^4.21.1", "ext": "^1.7.0", "fast-deep-equal": "^3.1.3", "fast-glob": "^3.2.12", From de0e7f2e6714d2b0ad366556f1f9d11ffd2d0e13 Mon Sep 17 00:00:00 2001 From: "s.djellali" Date: Wed, 16 Oct 2024 12:56:21 +0200 Subject: [PATCH 3/4] update --- .dockerignore | 10 +- Dockerfile | 10 +- chart/.helmignore | 23 +++ chart/Chart.lock | 9 + chart/Chart.yaml | 36 ++++ chart/README.md | 123 ++++++++++++ chart/templates/NOTES.txt | 22 ++ chart/templates/_helpers.tpl | 62 ++++++ chart/templates/deployment.yaml | 203 +++++++++++++++++++ chart/templates/hpa.yaml | 32 +++ chart/templates/ingress.yaml | 61 ++++++ chart/templates/secret.yaml | 10 + chart/templates/service.yaml | 15 ++ chart/templates/serviceaccount.yaml | 13 ++ chart/templates/tests/test-connection.yaml | 15 ++ chart/values.yaml | 222 +++++++++++++++++++++ 16 files changed, 859 insertions(+), 7 deletions(-) create mode 100644 chart/.helmignore create mode 100644 chart/Chart.lock create mode 100644 chart/Chart.yaml create mode 100644 chart/README.md create mode 100644 chart/templates/NOTES.txt create mode 100644 chart/templates/_helpers.tpl create mode 100644 chart/templates/deployment.yaml create mode 100644 chart/templates/hpa.yaml create mode 100644 chart/templates/ingress.yaml create mode 100644 chart/templates/secret.yaml create mode 100644 chart/templates/service.yaml create mode 100644 chart/templates/serviceaccount.yaml create mode 100644 chart/templates/tests/test-connection.yaml create mode 100644 chart/values.yaml diff --git a/.dockerignore b/.dockerignore index a95e493a..864aac39 100644 --- a/.dockerignore +++ b/.dockerignore @@ -3,7 +3,11 @@ docker/data *Dockerfile *.md .dockerignore -.env* -*.sqlite* nginx.conf -supervisord.conf \ No newline at end of file +supervisord.conf +*.md +.github +.idea +docker-compose +docs +chart diff --git a/Dockerfile b/Dockerfile index c35ea1d9..0938fe84 100644 --- a/Dockerfile +++ b/Dockerfile @@ -41,13 +41,15 @@ RUN addgroup --g 1000 -S www && \ chown -R mercator:www /var/www /var/lib/nginx /var/log/nginx /etc/nginx/http.d # Clone sources from Github -WORKDIR /var/www/ -RUN git clone https://github.com/dbarzin/mercator.git/ +#WORKDIR /var/www/ +#RUN git clone https://github.com/dbarzin/mercator.git/ +RUN mkdir /var/www/mercator WORKDIR /var/www/mercator +COPY . . # Copy config files -RUN cp docker/nginx.conf /etc/nginx/http.d/default.conf -RUN cp docker/supervisord.conf /etc/supervisord.conf +COPY docker/nginx.conf /etc/nginx/http.d/default.conf +COPY docker/supervisord.conf /etc/supervisord.conf # change owner RUN chown -R mercator:www /var/www/mercator diff --git a/chart/.helmignore b/chart/.helmignore new file mode 100644 index 00000000..0e8a0eb3 --- /dev/null +++ b/chart/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/chart/Chart.lock b/chart/Chart.lock new file mode 100644 index 00000000..672b047d --- /dev/null +++ b/chart/Chart.lock @@ -0,0 +1,9 @@ +dependencies: +- name: redis + repository: oci://registry-1.docker.io/bitnamicharts + version: 20.1.7 +- name: postgresql + repository: oci://registry-1.docker.io/bitnamicharts + version: 16.0.1 +digest: sha256:432a55311d15e571a708a4299fc288c4c78c3ca9bf891172021568bf6a20c7eb +generated: "2024-10-06T20:21:49.987133+02:00" diff --git a/chart/Chart.yaml b/chart/Chart.yaml new file mode 100644 index 00000000..e86768c3 --- /dev/null +++ b/chart/Chart.yaml @@ -0,0 +1,36 @@ +apiVersion: v2 +name: mercator +description: A Helm chart for running Mercator via Kubernetes +home: https://github.com/dbarzin/mercator +maintainers: + - name: Mercator + url: https://github.com/dbarzin/mercator/chart +dependencies: + - condition: redis.enabled + name: redis + repository: oci://registry-1.docker.io/bitnamicharts + version: 20.x.x + - condition: postgresql.enabled + name: postgresql + repository: oci://registry-1.docker.io/bitnamicharts + version: 16.x.x +# A chart can be either an 'application' or a 'library' chart. +# +# Application charts are a collection of templates that can be packaged into versioned archives +# to be deployed. +# +# Library charts provide useful utilities or functions for the chart developer. They're included as +# a dependency of application charts to inject those utilities and functions into the rendering +# pipeline. Library charts do not define any templates and therefore cannot be deployed. +type: application + +# This is the chart version. This version number should be incremented each time you make changes +# to the chart and its templates, including the app version. +# Versions are expected to follow Semantic Versioning (https://semver.org/) +version: 0.1.0 + +# This is the version number of the application being deployed. This version number should be +# incremented each time you make changes to the application. Versions are not expected to +# follow Semantic Versioning. They should reflect the version the application is using. +# It is recommended to use it with quotes. +appVersion: "0.1.0" diff --git a/chart/README.md b/chart/README.md new file mode 100644 index 00000000..bef0d12a --- /dev/null +++ b/chart/README.md @@ -0,0 +1,123 @@ +# Mercator Helm Chart +## TL;DR + +```bash +helm install mercator . +``` + +## Introduction + +This chart bootstraps **Mercator** deployment on a [Kubernetes](https://kubernetes.io/) cluster using the [Helm](https://helm.sh/) package manager. + +## Prerequisites +- Kubernetes 1.23+ +- Helm 3.8.0+ + +## Persistence +The Mercator chart relies on the PostgreSQL chart persistence. This means that Mercator does not persist anything. + +## Parameters +This part provides an overview of all the configurable parameters used in the `values.yaml` file for deploying the Mercator application using a Helm chart. + +### Global parameters + +| Parameter | Description | Default Value | +|------------------------------------------------|------------------------------------------------------------------------------|----------------------------| +| **replicaCount** | Number of application replicas to deploy. | `1` | +| **image.repository** | Docker image repository for the Mercator application. | `ghcr.io/dbarzin/mercator` | +| **image.pullPolicy** | Specifies when to pull the Docker image (`Always`, `IfNotPresent`, `Never`). | `IfNotPresent` | +| **image.tag** | Tag of the Docker image. | `"latest"` | +| **imagePullSecrets** | Secrets to use for pulling private Docker images. | `[]` | +| **serviceAccount.create** | Specifies whether a service account should be created. | `true` | +| **serviceAccount.automount** | Automatically mount the ServiceAccount’s API credentials. | `true` | +| **serviceAccount.annotations** | Annotations to add to the service account. | `{}` | +| **serviceAccount.name** | Name of the service account to use or create. | `""` | +| **podAnnotations** | Annotations to add to the pod. | `{}` | +| **podLabels** | Labels to add to the pod. | `{}` | +| **podSecurityContext** | Security context for the pod. | `{}` | +| **securityContext** | Security context for the container, e.g., user permissions. | `{}` | +| **service.type** | Kubernetes service type (`ClusterIP`, `NodePort`, `LoadBalancer`). | `ClusterIP` | +| **service.port** | Port exposed by the service. | `80` | +| **ingress.enabled** | Enable or disable ingress resource creation. | `false` | +| **resources** | Resource limits and requests for the application. | `{}` | +| **livenessProbe.httpGet.path** | HTTP path for liveness probe. | `/` | +| **livenessProbe.httpGet.port** | Port for liveness probe. | `http` | +| **readinessProbe.httpGet.path** | HTTP path for readiness probe. | `/` | +| **readinessProbe.httpGet.port** | Port for readiness probe. | `http` | +| **autoscaling.enabled** | Enable or disable horizontal pod autoscaling. | `false` | +| **autoscaling.minReplicas** | Minimum number of replicas for autoscaling. | `1` | +| **autoscaling.maxReplicas** | Maximum number of replicas for autoscaling. | `100` | +| **autoscaling.targetCPUUtilizationPercentage** | Target CPU utilization for autoscaling. | `80` | +| **volumes** | Additional volumes for the deployment. | `[]` | +| **volumeMounts** | Additional volume mounts for the deployment. | `[]` | +| **nodeSelector** | Node selector for scheduling pods. | `{}` | +| **tolerations** | Tolerations for scheduling pods. | `[]` | +| **affinity** | Affinity rules for scheduling pods. | `{}` | + +### Mercator parameters + +| Parameter | Description | Default Value | +|--------------------------------------------|------------------------------------------------------------------------------|------------------------------| +| **debug** | Enable debug mode for the application. | `false` | +| **environment** | Environment to deploy (`development`, `production`). | `"development"` | +| **key** | Secret key for the application. | `""` | +| **reverse_proxy** | URL for the reverse proxy used by the application. | `"http://localhost"` | +| **use_demo_data** | Specify if demo data should be used (1 for true, 0 for false). | `1` | + +### Mercator LDAP parameters + +| Parameter | Description | Default Value | +|--------------------------------------------|------------------------------------------------------------------------------|------------------------------| +| **ldap.enabled** | Enable or disable LDAP integration. | `false` | +| **ldap.type** | Type of LDAP server (e.g., Active Directory). | `"AD"` | +| **ldap.host** | LDAP server host. | `"127.0.0.1"` | +| **ldap.username** | LDAP bind user credentials. | `"cn=user,dc=local,dc=com"` | +| **ldap.password** | Password for the LDAP bind user. | `"secret"` | +| **ldap.base_dn** | Base DN for LDAP queries. | `"dc=local,dc=com"` | +| **ldap.service.number** | LDAP service port number. | `"389"` | +| **ldap.scope** | Scope for LDAP queries. | `"ou=Accounting,dc=com"` | + +### Mercator SMTP parameters +| Parameter | Description | Default Value | +|--------------------------------------------|------------------------------------------------------------------------------|------------------------------| +| **smtp.host** | SMTP server host for sending emails. | `"smtp.mailtrap.io"` | +| **smtp.port** | SMTP server port. | `"25"` | +| **smtp.username** | SMTP username for authentication. | `""` | +| **smtp.password** | SMTP password for authentication. | `""` | + +### Mercator AWS parameters +| Parameter | Description | Default Value | +|--------------------------------------------|------------------------------------------------------------------------------|------------------------------| +| **aws.access_key_id** | AWS access key ID. | `""` | +| **aws.secret_access_key** | AWS secret access key. | `""` | +| **aws.default_region** | Default AWS region. | `"us-east-1"` | +| **aws.bucket** | AWS S3 bucket name. | `""` | + +### Mercator PUSHER parameters +| Parameter | Description | Default Value | +|--------------------------------------------|------------------------------------------------------------------------------|------------------------------| +| **pusher.app_id** | Pusher app ID. | `""` | +| **pusher.app_key** | Pusher app key. | `""` | +| **pusher.app_secret** | Pusher app secret. | `""` | + +### Mercator KEYCLOAK parameters +| Parameter | Description | Default Value | +|--------------------------------------------|------------------------------------------------------------------------------|------------------------------| +| **keycloak.enabled** | Enable or disable Keycloak integration. | `false` | +| **keycloak.client_id** | Keycloak client ID. | `""` | +| **keycloak.client_secret** | Keycloak client secret. | `""` | +| **keycloak.redirect_uri** | Redirect URI for Keycloak integration. | `""` | +| **keycloak.base_url** | Base URL of Keycloak server. | `""` | +| **keycloak.realm** | Keycloak realm name. | `""` | + +### Mercator database parameters + +| Parameter | Description | Default Value | +|--------------------------------------------|------------------------------------------------------------------------------|------------------------------| +| **secret.postgres.postgresPassword** | PostgreSQL password for the application. | `"2ù_-qeeYT21!8zA2~"` | +| **postgresql.enabled** | Enable or disable PostgreSQL deployment. | `true` | +| **postgresql.auth.username** | PostgreSQL username for authentication. | `"mercator_user"` | +| **postgresql.auth.database** | PostgreSQL database name. | `"mercator"` | +| **redis.enabled** | Enable or disable Redis deployment. | `true` | +| **redis.auth.enabled** | Enable or disable Redis authentication. | `true` | +| **redis.auth.password** | Password for Redis authentication. diff --git a/chart/templates/NOTES.txt b/chart/templates/NOTES.txt new file mode 100644 index 00000000..b9719937 --- /dev/null +++ b/chart/templates/NOTES.txt @@ -0,0 +1,22 @@ +1. Get the application URL by running these commands: +{{- if .Values.ingress.enabled }} +{{- range $host := .Values.ingress.hosts }} + {{- range .paths }} + http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }} + {{- end }} +{{- end }} +{{- else if contains "NodePort" .Values.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "chart.fullname" . }}) + export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo http://$NODE_IP:$NODE_PORT +{{- else if contains "LoadBalancer" .Values.service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch its status by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "chart.fullname" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "chart.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") + echo http://$SERVICE_IP:{{ .Values.service.port }} +{{- else if contains "ClusterIP" .Values.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "chart.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT +{{- end }} diff --git a/chart/templates/_helpers.tpl b/chart/templates/_helpers.tpl new file mode 100644 index 00000000..7ba5edc2 --- /dev/null +++ b/chart/templates/_helpers.tpl @@ -0,0 +1,62 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "chart.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "chart.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "chart.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "chart.labels" -}} +helm.sh/chart: {{ include "chart.chart" . }} +{{ include "chart.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "chart.selectorLabels" -}} +app.kubernetes.io/name: {{ include "chart.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Create the name of the service account to use +*/}} +{{- define "chart.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "chart.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} diff --git a/chart/templates/deployment.yaml b/chart/templates/deployment.yaml new file mode 100644 index 00000000..3e4a182a --- /dev/null +++ b/chart/templates/deployment.yaml @@ -0,0 +1,203 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "chart.fullname" . }} + labels: + {{- include "chart.labels" . | nindent 4 }} +spec: + {{- if not .Values.autoscaling.enabled }} + replicas: {{ .Values.replicaCount }} + {{- end }} + selector: + matchLabels: + {{- include "chart.selectorLabels" . | nindent 6 }} + template: + metadata: + {{- with .Values.podAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + {{- include "chart.labels" . | nindent 8 }} + {{- with .Values.podLabels }} + {{- toYaml . | nindent 8 }} + {{- end }} + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + serviceAccountName: {{ include "chart.serviceAccountName" . }} + securityContext: + {{- toYaml .Values.podSecurityContext | nindent 8 }} + initContainers: + - name: check-db-ready + image: "bitnami/postgresql:17-debian-12" + command: [ 'sh', '-c', + 'until pg_isready -h {{ .Values.postgresql.fullnameOverride }} -p 5432 -d {{ .Values.postgresql.auth.database }} -U {{ .Values.postgresql.auth.username }} ; + do echo waiting for database; sleep 10; done;' ] + containers: + - name: {{ .Chart.Name }} + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + ports: + - name: http + containerPort: {{ .Values.service.port }} + protocol: TCP + livenessProbe: + {{- toYaml .Values.livenessProbe | nindent 12 }} + readinessProbe: + {{- toYaml .Values.readinessProbe | nindent 12 }} + resources: + {{- toYaml .Values.resources | nindent 12 }} + env: + - name: NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: APP_NAME + value: {{ .Chart.Name | quote }} + - name: REDIS_HOST + value: {{ .Values.redis.fullnameOverride | quote }} + - name: REDIS_PASSWORD + value: "null" + - name: REDIS_PORT + value: "6379" + - name: DB_CONNECTION + value: "pgsql" + - name: DB_HOST + value: {{ .Values.postgresql.fullnameOverride | quote }} + - name: DB_PORT + value: "5432" + - name: DB_DATABASE + value: {{ .Values.postgresql.auth.database | quote }} + - name: DB_USERNAME + value: {{ .Values.postgresql.auth.username | quote }} + - name: DB_PASSWORD + value: {{ .Values.secret.postgres.password }} + - name: BROADCAST_DRIVER + value: "log" + - name: CACHE_DRIVER + value: "file" + - name: QUEUE_CONNECTION + value: "sync" + - name: SESSION_DRIVER + value: "file" + - name: SESSION_LIFETIME + value: "120" + - name: LOG_CHANNEL + value: "stack" + - name: MAIL_MAILER + value: "smtp" + - name: MAIL_HOST + value: {{ .Values.smtp.host | quote }} + - name: MAIL_PORT + value: {{ .Values.smtp.port | quote }} + - name: MAIL_USERNAME + value: {{ .Values.smtp.username | quote }} + - name: MAIL_PASSWORD + value: {{ .Values.smtp.password | quote }} + - name: MAIL_ENCRYPTION + value: {{ .Values.smtp.encryption | quote }} + - name: MAIL_FROM_ADDRESS + value: {{ .Values.smtp.from_address | quote }} + - name: MAIL_FROM_NAME + value: {{ .Chart.Name | quote }} + - name: AWS_ACCESS_KEY_ID + value: {{ .Values.aws.access_key_id | quote }} + - name: AWS_SECRET_ACCESS_KEY + value: {{ .Values.aws.secret_access_key | quote }} + - name: AWS_DEFAULT_REGION + value: {{ .Values.aws.default_region | quote }} + - name: AWS_BUCKET + value: {{ .Values.aws.bucket | quote }} + - name: PUSHER_APP_ID + value: {{ .Values.pusher.app_id | quote }} + - name: PUSHER_APP_KEY + value: {{ .Values.pusher.app_key | quote }} + - name: PUSHER_APP_SECRET + value: {{ .Values.pusher.app_secret | quote }} + - name: PUSHER_APP_CLUSTER + value: {{ .Values.pusher.app_cluster | quote }} + - name: MIX_PUSHER_APP_KEY + value: {{ .Values.pusher.app_key | quote }} + - name: MIX_PUSHER_APP_CLUSTER + value: {{ .Values.pusher.app_cluster | quote }} + {{- if .Values.keycloak.enabled }} + - name: KEYCLOAK + value: "enabled" + - name: KEYCLOAK_CLIENT_ID + value: {{ .Values.keycloak.client_id | quote }} + - name: KEYCLOAK_CLIENT_SECRET + value: {{ .Values.keycloak.client_secret | quote }} + - name: KEYCLOAK_REDIRECT_URI + value: {{ .Values.keycloak.redirect_uri | quote }} + - name: KEYCLOAK_BASE_URL + value: {{ .Values.keycloak.base_url | quote }} + - name: KEYCLOAK_REALM + value: {{ .Values.keycloak.realm | quote }} + {{- else }} + - name: KEYCLOAK + value: "disable" + {{- end }} + {{- if .Values.ldap.enabled }} + - name: LDAP_TYPE + value: {{ .Values.ldap.type | quote }} + - name: LDAP_LOGGING + value: {{ .Values.ldap.logging }} + - name: LDAP_CONNECTION + value: {{ .Values.ldap.connection | quote }} + - name: LDAP_HOST + value: {{ .Values.ldap.host | quote }} + - name: LDAP_USERNAME + value: {{ .Values.ldap.username | quote }} + - name: LDAP_PASSWORD + value: {{ .Values.ldap.password | quote }} + - name: LDAP_PORT + value: {{ .Values.ldap.service.number | quote }} + - name: LDAP_BASE_DN + value: {{ .Values.ldap.base_dn | quote }} + - name: LDAP_TIMEOUT + value: {{ .Values.ldap.timeout | quote }} + - name: LDAP_SSL + value: {{ .Values.ldap.service.ssl }} + - name: LDAP_TLS + value: {{ .Values.ldap.service.tls }} + - name: LDAP_SCOPE + value: {{ .Values.ldap.scope | quote }} + - name: LDAP_GROUPS + value: {{ .Values.ldap.groups | quote }} + {{- end }} + - name: APP_DEBUG + value: {{ .Values.debug | quote }} + - name: APP_ENV + value: {{ .Values.environment | quote }} + - name: APP_KEY + value: {{ .Values.key | quote }} + - name: APP_URL + value: {{ .Values.reverse_proxy | quote }} + - name: USE_DEMO_DATA + value: {{ .Values.use_demo_data | quote }} + + {{- with .Values.volumeMounts }} + volumeMounts: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.volumes }} + volumes: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} diff --git a/chart/templates/hpa.yaml b/chart/templates/hpa.yaml new file mode 100644 index 00000000..a91f61bd --- /dev/null +++ b/chart/templates/hpa.yaml @@ -0,0 +1,32 @@ +{{- if .Values.autoscaling.enabled }} +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: {{ include "chart.fullname" . }} + labels: + {{- include "chart.labels" . | nindent 4 }} +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ include "chart.fullname" . }} + minReplicas: {{ .Values.autoscaling.minReplicas }} + maxReplicas: {{ .Values.autoscaling.maxReplicas }} + metrics: + {{- if .Values.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }} + {{- end }} + {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }} + {{- end }} +{{- end }} diff --git a/chart/templates/ingress.yaml b/chart/templates/ingress.yaml new file mode 100644 index 00000000..63c1311c --- /dev/null +++ b/chart/templates/ingress.yaml @@ -0,0 +1,61 @@ +{{- if .Values.ingress.enabled -}} +{{- $fullName := include "chart.fullname" . -}} +{{- $svcPort := .Values.service.port -}} +{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} + {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} + {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}} + {{- end }} +{{- end }} +{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1 +{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1beta1 +{{- else -}} +apiVersion: extensions/v1beta1 +{{- end }} +kind: Ingress +metadata: + name: {{ $fullName }} + labels: + {{- include "chart.labels" . | nindent 4 }} + {{- with .Values.ingress.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} + ingressClassName: {{ .Values.ingress.className }} + {{- end }} + {{- if .Values.ingress.tls }} + tls: + {{- range .Values.ingress.tls }} + - hosts: + {{- range .hosts }} + - {{ . | quote }} + {{- end }} + secretName: {{ .secretName }} + {{- end }} + {{- end }} + rules: + {{- range .Values.ingress.hosts }} + - host: {{ .host | quote }} + http: + paths: + {{- range .paths }} + - path: {{ .path }} + {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} + pathType: {{ .pathType }} + {{- end }} + backend: + {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} + service: + name: {{ $fullName }} + port: + number: {{ $svcPort }} + {{- else }} + serviceName: {{ $fullName }} + servicePort: {{ $svcPort }} + {{- end }} + {{- end }} + {{- end }} +{{- end }} diff --git a/chart/templates/secret.yaml b/chart/templates/secret.yaml new file mode 100644 index 00000000..f8a17256 --- /dev/null +++ b/chart/templates/secret.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "chart.fullname" . }}-postgresql + labels: + {{- include "chart.labels" . | nindent 4 }} +type: Opaque +data: + password: {{ .Values.secret.postgres.password | b64enc | quote }} + postgres-password: {{ .Values.secret.postgres.postgresPassword | b64enc | quote }} diff --git a/chart/templates/service.yaml b/chart/templates/service.yaml new file mode 100644 index 00000000..dfc5b3a3 --- /dev/null +++ b/chart/templates/service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "chart.fullname" . }} + labels: + {{- include "chart.labels" . | nindent 4 }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.service.port }} + targetPort: http + protocol: TCP + name: http + selector: + {{- include "chart.selectorLabels" . | nindent 4 }} diff --git a/chart/templates/serviceaccount.yaml b/chart/templates/serviceaccount.yaml new file mode 100644 index 00000000..1df93501 --- /dev/null +++ b/chart/templates/serviceaccount.yaml @@ -0,0 +1,13 @@ +{{- if .Values.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "chart.serviceAccountName" . }} + labels: + {{- include "chart.labels" . | nindent 4 }} + {{- with .Values.serviceAccount.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +automountServiceAccountToken: {{ .Values.serviceAccount.automount }} +{{- end }} diff --git a/chart/templates/tests/test-connection.yaml b/chart/templates/tests/test-connection.yaml new file mode 100644 index 00000000..8dfed872 --- /dev/null +++ b/chart/templates/tests/test-connection.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Pod +metadata: + name: "{{ include "chart.fullname" . }}-test-connection" + labels: + {{- include "chart.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": test +spec: + containers: + - name: wget + image: busybox + command: ['wget'] + args: ['{{ include "chart.fullname" . }}:{{ .Values.service.port }}'] + restartPolicy: Never diff --git a/chart/values.yaml b/chart/values.yaml new file mode 100644 index 00000000..1043d2e1 --- /dev/null +++ b/chart/values.yaml @@ -0,0 +1,222 @@ +# Default values for chart. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +replicaCount: 1 + +image: + repository: ghcr.io/dbarzin/mercator + pullPolicy: IfNotPresent + # Overrides the image tag whose default is the chart appVersion. + tag: "latest" + +imagePullSecrets: [] +nameOverride: "" +fullnameOverride: "" + +serviceAccount: + # Specifies whether a service account should be created + create: true + # Automatically mount a ServiceAccount's API credentials? + automount: true + # Annotations to add to the service account + annotations: {} + # The name of the service account to use. + # If not set and create is true, a name is generated using the fullname template + name: "" + +podAnnotations: {} +podLabels: {} + +podSecurityContext: {} + # fsGroup: 2000 + +securityContext: {} + # capabilities: + # drop: + # - ALL + # readOnlyRootFilesystem: true + # runAsNonRoot: true + # runAsUser: 1000 + +service: + type: ClusterIP + port: 80 + +ingress: + enabled: false + # className: "" + # annotations: {} + # kubernetes.io/ingress.class: nginx + # kubernetes.io/tls-acme: "true" + # hosts: + # - host: chart-example.local + # paths: + # - path: / + # pathType: ImplementationSpecific + # tls: [] + # - secretName: chart-example-tls + # hosts: + # - chart-example.local + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # limits: + # cpu: 100m + # memory: 128Mi + # requests: + # cpu: 100m + # memory: 128Mi + +debug: false +environment: "development" +key: "" +reverse_proxy: "http://localhost" +use_demo_data: 1 + +ldap: + enabled: false + type: "AD" + logging: true + connection: "default" + host: "127.0.0.1" + username: "cn=user,dc=local,dc=com" + password: "secret" + base_dn: "dc=local,dc=com" + timeout: "5" + service: + number: "389" + ssl: false + tls: false + scope: "ou=Accounting,ou=Groups,dc=planetexpress,dc=com" + groups: "Delivering,Help Desk" + +smtp: + host: "smtp.mailtrap.io" + port: "25" + username: "" + password: "" + encryption: "" + from_address: "" + +aws: + access_key_id: "" + secret_access_key: "" + default_region: "us-east-1" + bucket: "" + +pusher: + app_id: "" + app_key: "" + app_secret: "" + app_cluster: "mt1" + +keycloak: + enabled: false + client_id: "" # Client Name (on Keycloak) + client_secret: "" # Client Secret + redirect_uri: "" # /login/keycloak/callback + base_url: "" # + realm: "" # Realm Name + +livenessProbe: + httpGet: + path: / + port: http +readinessProbe: + httpGet: + path: / + port: http + +autoscaling: + enabled: false + minReplicas: 1 + maxReplicas: 100 + targetCPUUtilizationPercentage: 80 + # targetMemoryUtilizationPercentage: 80 + +# Additional volumes on the output Deployment definition. +volumes: [] +# - name: foo +# secret: +# secretName: mysecret +# optional: false + +# Additional volumeMounts on the output Deployment definition. +volumeMounts: [] +# - name: foo +# mountPath: "/etc/foo" +# readOnly: true + +nodeSelector: {} + +tolerations: [] + +affinity: {} + +secret: + postgres: + postgresPassword: "2ù_-qeeYT21!8zA2~" + password: "1ù_-qeeRH21!8zA1~" + + +postgresql: + fullnameOverride: "postgresql" + enabled: true + auth: + username: "mercator_user" + database: "mercator" + existingSecret: "mercator-postgresql" + architecture: standalone + primary: + ## PostgreSQL Primary resource requests and limits + ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ + ## @param postgresql.primary.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if primary.resources is set (primary.resources is recommended for production). + ## More information: https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15 + ## + resourcesPreset: "nano" + ## @param postgresql.primary.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads) + ## Example: + ## resources: + ## requests: + ## cpu: 2 + ## memory: 512Mi + ## limits: + ## cpu: 3 + ## memory: 1024Mi + ## + resources: {} + +redis: + fullnameOverride: "redis" + enabled: true + auth: + enabled: true + ## Redis® password (both master and slave). Defaults to a random 10-character alphanumeric string if not set and auth.enabled is true. + ## It should always be set using the password value or in the existingSecret to avoid issues + ## with Airflow. + ## The password value is ignored if existingSecret is set + password: "" + existingSecret: "" + architecture: standalone + master: + ## Redis® master resource requests and limits + ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ + ## @param redis.master.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if master.resources is set (master.resources is recommended for production). + ## More information: https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15 + ## + resourcesPreset: "nano" + ## @param redis.master.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads) + ## Example: + ## resources: + ## requests: + ## cpu: 2 + ## memory: 512Mi + ## limits: + ## cpu: 3 + ## memory: 1024Mi + ## + resources: {} \ No newline at end of file From f81dc479fc29a8ac87d2b388e8e5143b5f263cc8 Mon Sep 17 00:00:00 2001 From: "s.djellali" Date: Mon, 21 Oct 2024 23:10:00 +0200 Subject: [PATCH 4/4] update --- {chart => _helm_chart/chart}/.helmignore | 0 {chart => _helm_chart/chart}/Chart.lock | 0 {chart => _helm_chart/chart}/Chart.yaml | 0 {chart => _helm_chart/chart}/README.md | 0 .../chart}/templates/NOTES.txt | 0 .../chart}/templates/_helpers.tpl | 0 .../chart}/templates/deployment.yaml | 0 .../chart}/templates/hpa.yaml | 0 .../chart}/templates/ingress.yaml | 0 .../chart}/templates/secret.yaml | 0 .../chart}/templates/service.yaml | 0 .../chart}/templates/serviceaccount.yaml | 0 .../templates/tests/test-connection.yaml | 0 {chart => _helm_chart/chart}/values.yaml | 0 _helm_chart/index/index.yaml | 27 +++++++++++++++++++ 15 files changed, 27 insertions(+) rename {chart => _helm_chart/chart}/.helmignore (100%) rename {chart => _helm_chart/chart}/Chart.lock (100%) rename {chart => _helm_chart/chart}/Chart.yaml (100%) rename {chart => _helm_chart/chart}/README.md (100%) rename {chart => _helm_chart/chart}/templates/NOTES.txt (100%) rename {chart => _helm_chart/chart}/templates/_helpers.tpl (100%) rename {chart => _helm_chart/chart}/templates/deployment.yaml (100%) rename {chart => _helm_chart/chart}/templates/hpa.yaml (100%) rename {chart => _helm_chart/chart}/templates/ingress.yaml (100%) rename {chart => _helm_chart/chart}/templates/secret.yaml (100%) rename {chart => _helm_chart/chart}/templates/service.yaml (100%) rename {chart => _helm_chart/chart}/templates/serviceaccount.yaml (100%) rename {chart => _helm_chart/chart}/templates/tests/test-connection.yaml (100%) rename {chart => _helm_chart/chart}/values.yaml (100%) create mode 100644 _helm_chart/index/index.yaml diff --git a/chart/.helmignore b/_helm_chart/chart/.helmignore similarity index 100% rename from chart/.helmignore rename to _helm_chart/chart/.helmignore diff --git a/chart/Chart.lock b/_helm_chart/chart/Chart.lock similarity index 100% rename from chart/Chart.lock rename to _helm_chart/chart/Chart.lock diff --git a/chart/Chart.yaml b/_helm_chart/chart/Chart.yaml similarity index 100% rename from chart/Chart.yaml rename to _helm_chart/chart/Chart.yaml diff --git a/chart/README.md b/_helm_chart/chart/README.md similarity index 100% rename from chart/README.md rename to _helm_chart/chart/README.md diff --git a/chart/templates/NOTES.txt b/_helm_chart/chart/templates/NOTES.txt similarity index 100% rename from chart/templates/NOTES.txt rename to _helm_chart/chart/templates/NOTES.txt diff --git a/chart/templates/_helpers.tpl b/_helm_chart/chart/templates/_helpers.tpl similarity index 100% rename from chart/templates/_helpers.tpl rename to _helm_chart/chart/templates/_helpers.tpl diff --git a/chart/templates/deployment.yaml b/_helm_chart/chart/templates/deployment.yaml similarity index 100% rename from chart/templates/deployment.yaml rename to _helm_chart/chart/templates/deployment.yaml diff --git a/chart/templates/hpa.yaml b/_helm_chart/chart/templates/hpa.yaml similarity index 100% rename from chart/templates/hpa.yaml rename to _helm_chart/chart/templates/hpa.yaml diff --git a/chart/templates/ingress.yaml b/_helm_chart/chart/templates/ingress.yaml similarity index 100% rename from chart/templates/ingress.yaml rename to _helm_chart/chart/templates/ingress.yaml diff --git a/chart/templates/secret.yaml b/_helm_chart/chart/templates/secret.yaml similarity index 100% rename from chart/templates/secret.yaml rename to _helm_chart/chart/templates/secret.yaml diff --git a/chart/templates/service.yaml b/_helm_chart/chart/templates/service.yaml similarity index 100% rename from chart/templates/service.yaml rename to _helm_chart/chart/templates/service.yaml diff --git a/chart/templates/serviceaccount.yaml b/_helm_chart/chart/templates/serviceaccount.yaml similarity index 100% rename from chart/templates/serviceaccount.yaml rename to _helm_chart/chart/templates/serviceaccount.yaml diff --git a/chart/templates/tests/test-connection.yaml b/_helm_chart/chart/templates/tests/test-connection.yaml similarity index 100% rename from chart/templates/tests/test-connection.yaml rename to _helm_chart/chart/templates/tests/test-connection.yaml diff --git a/chart/values.yaml b/_helm_chart/chart/values.yaml similarity index 100% rename from chart/values.yaml rename to _helm_chart/chart/values.yaml diff --git a/_helm_chart/index/index.yaml b/_helm_chart/index/index.yaml new file mode 100644 index 00000000..ce1ecc93 --- /dev/null +++ b/_helm_chart/index/index.yaml @@ -0,0 +1,27 @@ +apiVersion: v1 +entries: + mercator: + - apiVersion: v2 + appVersion: 0.1.0 + created: "2024-10-21T23:07:28.6495447+02:00" + dependencies: + - condition: redis.enabled + name: redis + repository: oci://registry-1.docker.io/bitnamicharts + version: 20.x.x + - condition: postgresql.enabled + name: postgresql + repository: oci://registry-1.docker.io/bitnamicharts + version: 16.x.x + description: A Helm chart for running Mercator via Kubernetes + digest: c437dc49191df995bb3fb56e116605af2d0f2cd56e213b787ad40f2e3612a5f0 + home: https://github.com/dbarzin/mercator + maintainers: + - name: Mercator + url: https://github.com/dbarzin/mercator/chart + name: mercator + type: application + urls: + - https://github.com/siddjellali/mercator/tree/master/_helm_chart/index/mercator-0.1.0.tgz + version: 0.1.0 +generated: "2024-10-21T23:07:28.6420429+02:00"