@vaharoni/devops 1.2.13 → 1.2.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (323) hide show
  1. package/dist/chunk-N7EX3HJH.js +139 -0
  2. package/dist/chunk-RZ46YYZZ.js +420 -0
  3. package/dist/chunk-WKP7EQNU.js +421 -0
  4. package/dist/devops.d.ts +0 -2
  5. package/dist/devops.js +3235 -91
  6. package/dist/index.d.ts +972 -4
  7. package/dist/index.js +67 -3
  8. package/dist/plugins.d.ts +95 -4
  9. package/dist/plugins.js +20 -6
  10. package/dist/src/target-templates/README.md +1 -0
  11. package/dist/src/target-templates/cluster-resource-options/README.md +2 -0
  12. package/dist/src/target-templates/cluster-resource-options/dns-test/dns-test.yaml +60 -0
  13. package/dist/src/target-templates/cluster-resource-options/milvus/production/milvus-values.yaml +2 -0
  14. package/dist/src/target-templates/cluster-resource-options/milvus/staging/milvus-values.yaml +2 -0
  15. package/dist/src/target-templates/cluster-resource-options/monitoring-ingress/monitoring-ingress.yaml +62 -0
  16. package/dist/src/target-templates/cluster-resource-options/postgres/daily-operator-restart.yaml +54 -0
  17. package/dist/src/target-templates/cluster-resource-options/postgres/production/cluster/PodDisruptionBudget.yaml +27 -0
  18. package/dist/src/target-templates/cluster-resource-options/postgres/production/cluster/SGCluster.yaml +47 -0
  19. package/dist/src/target-templates/cluster-resource-options/postgres/production/cluster/StackGres-alerts.yaml +191 -0
  20. package/dist/src/target-templates/cluster-resource-options/postgres/production/configurations/06-SGDistributedLogs.yaml +11 -0
  21. package/dist/src/target-templates/cluster-resource-options/postgres/production/configurations/07-SGObjectStorage.yaml +18 -0
  22. package/dist/src/target-templates/cluster-resource-options/postgres/production/configurations/08-SGScript.yaml +12 -0
  23. package/dist/src/target-templates/cluster-resource-options/postgres/stackgres-ui-ingress.yaml +35 -0
  24. package/dist/src/target-templates/cluster-resource-options/postgres/staging/cluster/SGCluster.yaml +42 -0
  25. package/dist/src/target-templates/cluster-resource-options/postgres/staging/configurations/07-SGObjectStorage.yaml +18 -0
  26. package/dist/src/target-templates/cluster-resource-options/postgres/staging/configurations/08-SGScript.yaml +12 -0
  27. package/dist/src/target-templates/cluster-resource-options/prefect/production/prefect-values.yaml +14 -0
  28. package/dist/src/target-templates/cluster-resource-options/prefect/staging/prefect-values.yaml +14 -0
  29. package/dist/src/target-templates/cluster-resource-options/redis/production/redis-values.yaml +20 -0
  30. package/dist/src/target-templates/cluster-resource-options/redis/staging/redis-values.yaml +8 -0
  31. package/dist/src/target-templates/infra-variants/README.md +2 -0
  32. package/dist/src/target-templates/infra-variants/digitalocean/.devops/config/constants.yaml +18 -0
  33. package/dist/src/target-templates/infra-variants/digitalocean/.github/workflows/k8s-build.yaml +91 -0
  34. package/dist/src/target-templates/infra-variants/gcloud/.devops/config/constants.yaml +15 -0
  35. package/dist/src/target-templates/infra-variants/gcloud/.devops/manifests/ingress.yaml.hb +22 -0
  36. package/dist/src/target-templates/infra-variants/gcloud/.github/workflows/k8s-build.yaml +95 -0
  37. package/dist/src/target-templates/infra-variants/hetzner/.devops/config/constants.yaml +18 -0
  38. package/dist/src/target-templates/infra-variants/hetzner/.devops/infra/hetzner/abandoned/harbor-values.yaml +30 -0
  39. package/dist/src/target-templates/infra-variants/hetzner/.devops/infra/hetzner/abandoned/hcloud-config.yaml +134 -0
  40. package/dist/src/target-templates/infra-variants/hetzner/.devops/infra/hetzner/cert-manager.yaml +25 -0
  41. package/dist/src/target-templates/infra-variants/hetzner/.devops/infra/hetzner/harbor-cert.yaml +13 -0
  42. package/dist/src/target-templates/infra-variants/hetzner/.devops/infra/hetzner/harbor-values.yaml +76 -0
  43. package/dist/src/target-templates/infra-variants/hetzner/.devops/infra/hetzner/hcloud-config.yaml +113 -0
  44. package/dist/src/target-templates/infra-variants/hetzner/.devops/infra/hetzner/ingress-nginx-annotations.yaml +49 -0
  45. package/dist/src/target-templates/infra-variants/hetzner/.devops/infra/hetzner/ingress-nginx-configmap.yaml +8 -0
  46. package/dist/src/target-templates/infra-variants/hetzner/.devops/infra/hetzner/retain-storage-class.yaml +8 -0
  47. package/dist/src/target-templates/infra-variants/hetzner/.github/workflows/k8s-build.yaml +93 -0
  48. package/dist/src/target-templates/lang-variants-common/README.md +4 -0
  49. package/dist/src/target-templates/lang-variants-common/python/.cursor/rules/monorepo-python.mdc +56 -0
  50. package/dist/src/target-templates/lang-variants-common/python/.devops/config/images.yaml +89 -0
  51. package/dist/src/target-templates/lang-variants-common/python/.devops/docker-images/python-services/python-exec.sh +8 -0
  52. package/dist/src/target-templates/lang-variants-common/python/.devops/docker-images/python-services/python-run.sh +8 -0
  53. package/dist/src/target-templates/lang-variants-common/python/.devops/docker-images/python-services.Dockerfile +29 -0
  54. package/dist/src/target-templates/lang-variants-common/python/.devops/manifests/_index.yaml +21 -0
  55. package/dist/src/target-templates/lang-variants-common/python/.devops/manifests/prefect.yaml.hb +63 -0
  56. package/dist/src/target-templates/lang-variants-common/python/applications/example-data-pipeline/pyproject.toml +14 -0
  57. package/dist/src/target-templates/lang-variants-common/python/applications/example-data-pipeline/src/example_data_pipeline/main.py +38 -0
  58. package/dist/src/target-templates/lang-variants-common/python/applications/example-python/pyproject.toml +20 -0
  59. package/dist/src/target-templates/lang-variants-common/python/applications/example-python/src/example_python/__init__.py +0 -0
  60. package/dist/src/target-templates/lang-variants-common/python/applications/example-python/src/example_python/main.py +13 -0
  61. package/dist/src/target-templates/lang-variants-common/python/applications/example-python/src/example_python/scripts.py +17 -0
  62. package/dist/src/target-templates/lang-variants-common/python/applications/example-python/tests/__init__.py +0 -0
  63. package/dist/src/target-templates/lang-variants-common/python/devopspy +3 -0
  64. package/dist/src/target-templates/lang-variants-common/python/libs/example-python-lib/pyproject.toml +11 -0
  65. package/dist/src/target-templates/lang-variants-common/python/libs/example-python-lib/src/example_python_lib/__init__.py +2 -0
  66. package/dist/src/target-templates/lang-variants-common/python/pyproject.toml +16 -0
  67. package/dist/src/target-templates/lang-variants-common/typescript/.cursor/rules/monorepo-typescript.mdc +51 -0
  68. package/dist/src/target-templates/lang-variants-common/typescript/.devops/config/images.yaml +69 -0
  69. package/dist/src/target-templates/lang-variants-common/typescript/.devops/docker-images/cloudrun.Dockerfile +31 -0
  70. package/dist/src/target-templates/lang-variants-common/typescript/.devops/docker-images/common/docker-common.sh +23 -0
  71. package/dist/src/target-templates/lang-variants-common/typescript/.devops/docker-images/node-services/node-exec.sh +8 -0
  72. package/dist/src/target-templates/lang-variants-common/typescript/.devops/docker-images/node-services/node-run.sh +8 -0
  73. package/dist/src/target-templates/lang-variants-common/typescript/.devops/docker-images/node-services.Dockerfile +31 -0
  74. package/dist/src/target-templates/lang-variants-common/typescript/.devops/env.example.yaml +23 -0
  75. package/dist/src/target-templates/lang-variants-common/typescript/.devops/manifests/_index.yaml +19 -0
  76. package/dist/src/target-templates/lang-variants-common/typescript/.devops/manifests/cron-jobs.yaml.hb +56 -0
  77. package/dist/src/target-templates/lang-variants-common/typescript/.devops/manifests/db-migrate-job.yaml.hb +43 -0
  78. package/dist/src/target-templates/lang-variants-common/typescript/.devops/manifests/deployment-debug.yaml.hb +42 -0
  79. package/dist/src/target-templates/lang-variants-common/typescript/.devops/manifests/deployment-process.yaml.hb +48 -0
  80. package/dist/src/target-templates/lang-variants-common/typescript/.devops/manifests/deployment-web.yaml.hb +54 -0
  81. package/dist/src/target-templates/lang-variants-common/typescript/.devops/manifests/ingress.yaml.hb +21 -0
  82. package/dist/src/target-templates/lang-variants-common/typescript/.devops/manifests/service.yaml.hb +15 -0
  83. package/dist/src/target-templates/lang-variants-common/typescript/.envrc +5 -0
  84. package/dist/src/target-templates/lang-variants-common/typescript/.github/actions/build-image@v1/action.yaml +81 -0
  85. package/dist/src/target-templates/lang-variants-common/typescript/.github/actions/connect-to-digital-ocean@v1/action.yaml +29 -0
  86. package/dist/src/target-templates/lang-variants-common/typescript/.github/actions/connect-to-gke@v1/action.yaml +43 -0
  87. package/dist/src/target-templates/lang-variants-common/typescript/.github/actions/connect-to-hetzner@v1/action.yaml +31 -0
  88. package/dist/src/target-templates/lang-variants-common/typescript/.github/actions/db-migrate@v1/action.yaml +23 -0
  89. package/dist/src/target-templates/lang-variants-common/typescript/.github/actions/deploy-image-cloudrun@v1/action.yaml +71 -0
  90. package/dist/src/target-templates/lang-variants-common/typescript/.github/actions/deploy-image-k8s@v1/action.yaml +37 -0
  91. package/dist/src/target-templates/lang-variants-common/typescript/.github/actions/setup-prereq@v1/action.yaml +24 -0
  92. package/dist/src/target-templates/lang-variants-common/typescript/applications/example-node/index.ts +30 -0
  93. package/dist/src/target-templates/lang-variants-common/typescript/applications/example-node/package.json +26 -0
  94. package/dist/src/target-templates/lang-variants-common/typescript/applications/example-node/tsconfig.json +3 -0
  95. package/dist/src/target-templates/lang-variants-common/typescript/applications/jobs/README.md +68 -0
  96. package/dist/src/target-templates/lang-variants-common/typescript/applications/jobs/index.ts +1 -0
  97. package/dist/src/target-templates/lang-variants-common/typescript/applications/jobs/package.json +30 -0
  98. package/dist/src/target-templates/lang-variants-common/typescript/applications/jobs/tsconfig.json +3 -0
  99. package/dist/src/target-templates/lang-variants-common/typescript/config/.env.development +1 -0
  100. package/dist/src/target-templates/lang-variants-common/typescript/config/.env.global +4 -0
  101. package/dist/src/target-templates/lang-variants-common/typescript/config/.env.test +1 -0
  102. package/dist/src/target-templates/lang-variants-common/typescript/devops +3 -0
  103. package/dist/src/target-templates/lang-variants-common/typescript/libs/example-node-lib/index.ts +3 -0
  104. package/dist/src/target-templates/lang-variants-common/typescript/libs/example-node-lib/package.json +12 -0
  105. package/dist/src/target-templates/lang-variants-common/typescript/libs/example-node-lib/tsconfig.json +3 -0
  106. package/dist/src/target-templates/lang-variants-common/typescript/tmp/.gitkeep +0 -0
  107. package/dist/src/target-templates/lang-variants-common/typescript/tsconfig.json +27 -0
  108. package/dist/src/target-templates/lang-variants-prisma/README.md +3 -0
  109. package/dist/src/target-templates/lang-variants-prisma/python/.cursor/rules/prisma-python.mdc +55 -0
  110. package/dist/src/target-templates/lang-variants-prisma/python/.cursor/rules/testing-python.mdc +89 -0
  111. package/dist/src/target-templates/lang-variants-prisma/python/db/db/__init__.py +0 -0
  112. package/dist/src/target-templates/lang-variants-prisma/python/db/db/db_client_test.py +46 -0
  113. package/dist/src/target-templates/lang-variants-prisma/python/db/pyproject.toml +14 -0
  114. package/dist/src/target-templates/lang-variants-prisma/typescript/.cursor/rules/prisma-typescript.mdc +54 -0
  115. package/dist/src/target-templates/lang-variants-prisma/typescript/.cursor/rules/testing-typescript.mdc +103 -0
  116. package/dist/src/target-templates/lang-variants-prisma/typescript/db/db-client-test.ts +142 -0
  117. package/dist/src/target-templates/lang-variants-prisma/typescript/db/db-client.ts +19 -0
  118. package/dist/src/target-templates/lang-variants-prisma/typescript/db/env.yaml +4 -0
  119. package/dist/src/target-templates/lang-variants-prisma/typescript/db/package.json +17 -0
  120. package/dist/src/target-templates/lang-variants-prisma/typescript/db/prisma/schema.prisma +24 -0
  121. package/dist/src/target-templates/lang-variants-prisma/typescript/db/prisma-setup-vitest.ts +27 -0
  122. package/dist/src/target-templates/lang-variants-prisma/typescript/db/tsconfig.json +3 -0
  123. package/dist/src/target-templates/lang-variants-prisma/typescript/dml/package.json +7 -0
  124. package/dist/src/target-templates/lang-variants-prisma/typescript/dml/tsconfig.json +3 -0
  125. package/package.json +3 -2
  126. package/src/cli/core/exec.ts +2 -4
  127. package/src/cli/core/run.ts +2 -4
  128. package/src/cli/extensions/prisma.ts +2 -4
  129. package/src/libs/init-generator.ts +2 -4
  130. package/src/pkg-root.ts +14 -0
  131. package/src/plugins.ts +2 -4
  132. package/dist/app-support/crypto/aes.d.ts +0 -15
  133. package/dist/app-support/crypto/aes.d.ts.map +0 -1
  134. package/dist/app-support/crypto/aes.js +0 -56
  135. package/dist/app-support/crypto/aes.spec.d.ts +0 -2
  136. package/dist/app-support/crypto/aes.spec.d.ts.map +0 -1
  137. package/dist/app-support/crypto/aes.spec.js +0 -58
  138. package/dist/app-support/crypto/index.d.ts +0 -16
  139. package/dist/app-support/crypto/index.d.ts.map +0 -1
  140. package/dist/app-support/crypto/index.js +0 -31
  141. package/dist/app-support/crypto/internal-token.d.ts +0 -20
  142. package/dist/app-support/crypto/internal-token.d.ts.map +0 -1
  143. package/dist/app-support/crypto/internal-token.js +0 -42
  144. package/dist/app-support/crypto/internal-token.spec.d.ts +0 -2
  145. package/dist/app-support/crypto/internal-token.spec.d.ts.map +0 -1
  146. package/dist/app-support/crypto/internal-token.spec.js +0 -45
  147. package/dist/app-support/crypto/secret.d.ts +0 -3
  148. package/dist/app-support/crypto/secret.d.ts.map +0 -1
  149. package/dist/app-support/crypto/secret.js +0 -12
  150. package/dist/app-support/crypto/secret.spec.d.ts +0 -2
  151. package/dist/app-support/crypto/secret.spec.d.ts.map +0 -1
  152. package/dist/app-support/crypto/secret.spec.js +0 -15
  153. package/dist/app-support/discovery/dev-discovery-loader.d.ts +0 -2
  154. package/dist/app-support/discovery/dev-discovery-loader.d.ts.map +0 -1
  155. package/dist/app-support/discovery/dev-discovery-loader.js +0 -30
  156. package/dist/app-support/discovery/service-endpoint.d.ts +0 -2
  157. package/dist/app-support/discovery/service-endpoint.d.ts.map +0 -1
  158. package/dist/app-support/discovery/service-endpoint.js +0 -10
  159. package/dist/cli/common.d.ts +0 -89
  160. package/dist/cli/common.d.ts.map +0 -1
  161. package/dist/cli/common.js +0 -246
  162. package/dist/cli/common.spec.d.ts +0 -2
  163. package/dist/cli/common.spec.d.ts.map +0 -1
  164. package/dist/cli/common.spec.js +0 -64
  165. package/dist/cli/core/affected.d.ts +0 -9
  166. package/dist/cli/core/affected.d.ts.map +0 -1
  167. package/dist/cli/core/affected.js +0 -101
  168. package/dist/cli/core/cloudrun.d.ts +0 -9
  169. package/dist/cli/core/cloudrun.d.ts.map +0 -1
  170. package/dist/cli/core/cloudrun.js +0 -119
  171. package/dist/cli/core/console.d.ts +0 -10
  172. package/dist/cli/core/console.d.ts.map +0 -1
  173. package/dist/cli/core/console.js +0 -50
  174. package/dist/cli/core/constant.d.ts +0 -9
  175. package/dist/cli/core/constant.d.ts.map +0 -1
  176. package/dist/cli/core/constant.js +0 -20
  177. package/dist/cli/core/env.d.ts +0 -9
  178. package/dist/cli/core/env.d.ts.map +0 -1
  179. package/dist/cli/core/env.js +0 -65
  180. package/dist/cli/core/exec.d.ts +0 -9
  181. package/dist/cli/core/exec.d.ts.map +0 -1
  182. package/dist/cli/core/exec.js +0 -48
  183. package/dist/cli/core/image.d.ts +0 -9
  184. package/dist/cli/core/image.d.ts.map +0 -1
  185. package/dist/cli/core/image.js +0 -153
  186. package/dist/cli/core/index.d.ts +0 -16
  187. package/dist/cli/core/index.d.ts.map +0 -1
  188. package/dist/cli/core/index.js +0 -15
  189. package/dist/cli/core/init.d.ts +0 -9
  190. package/dist/cli/core/init.d.ts.map +0 -1
  191. package/dist/cli/core/init.js +0 -219
  192. package/dist/cli/core/job.d.ts +0 -9
  193. package/dist/cli/core/job.d.ts.map +0 -1
  194. package/dist/cli/core/job.js +0 -65
  195. package/dist/cli/core/namespace.d.ts +0 -9
  196. package/dist/cli/core/namespace.d.ts.map +0 -1
  197. package/dist/cli/core/namespace.js +0 -67
  198. package/dist/cli/core/prep-build.d.ts +0 -10
  199. package/dist/cli/core/prep-build.d.ts.map +0 -1
  200. package/dist/cli/core/prep-build.js +0 -109
  201. package/dist/cli/core/registry.d.ts +0 -9
  202. package/dist/cli/core/registry.d.ts.map +0 -1
  203. package/dist/cli/core/registry.js +0 -66
  204. package/dist/cli/core/run-many.d.ts +0 -10
  205. package/dist/cli/core/run-many.d.ts.map +0 -1
  206. package/dist/cli/core/run-many.js +0 -48
  207. package/dist/cli/core/run.d.ts +0 -9
  208. package/dist/cli/core/run.d.ts.map +0 -1
  209. package/dist/cli/core/run.js +0 -35
  210. package/dist/cli/core/test.d.ts +0 -9
  211. package/dist/cli/core/test.d.ts.map +0 -1
  212. package/dist/cli/core/test.js +0 -26
  213. package/dist/cli/extensions/dml.d.ts +0 -9
  214. package/dist/cli/extensions/dml.d.ts.map +0 -1
  215. package/dist/cli/extensions/dml.js +0 -114
  216. package/dist/cli/extensions/index.d.ts +0 -9
  217. package/dist/cli/extensions/index.d.ts.map +0 -1
  218. package/dist/cli/extensions/index.js +0 -8
  219. package/dist/cli/extensions/internal-curl.d.ts +0 -10
  220. package/dist/cli/extensions/internal-curl.d.ts.map +0 -1
  221. package/dist/cli/extensions/internal-curl.js +0 -41
  222. package/dist/cli/extensions/jwt.d.ts +0 -9
  223. package/dist/cli/extensions/jwt.d.ts.map +0 -1
  224. package/dist/cli/extensions/jwt.js +0 -25
  225. package/dist/cli/extensions/prisma.d.ts +0 -9
  226. package/dist/cli/extensions/prisma.d.ts.map +0 -1
  227. package/dist/cli/extensions/prisma.js +0 -23
  228. package/dist/cli/extensions/redis-bitnami.d.ts +0 -11
  229. package/dist/cli/extensions/redis-bitnami.d.ts.map +0 -1
  230. package/dist/cli/extensions/redis-bitnami.js +0 -74
  231. package/dist/cli/extensions/redis-ha.d.ts +0 -11
  232. package/dist/cli/extensions/redis-ha.d.ts.map +0 -1
  233. package/dist/cli/extensions/redis-ha.js +0 -51
  234. package/dist/cli/extensions/stackgres.d.ts +0 -10
  235. package/dist/cli/extensions/stackgres.d.ts.map +0 -1
  236. package/dist/cli/extensions/stackgres.js +0 -117
  237. package/dist/cli/extensions/template.d.ts +0 -9
  238. package/dist/cli/extensions/template.d.ts.map +0 -1
  239. package/dist/cli/extensions/template.js +0 -121
  240. package/dist/devops.d.ts.map +0 -1
  241. package/dist/index.d.ts.map +0 -1
  242. package/dist/libs/affected-entities.d.ts +0 -15
  243. package/dist/libs/affected-entities.d.ts.map +0 -1
  244. package/dist/libs/affected-entities.js +0 -52
  245. package/dist/libs/cloudrun-helpers.d.ts +0 -16
  246. package/dist/libs/cloudrun-helpers.d.ts.map +0 -1
  247. package/dist/libs/cloudrun-helpers.js +0 -81
  248. package/dist/libs/config.d.ts +0 -7
  249. package/dist/libs/config.d.ts.map +0 -1
  250. package/dist/libs/config.js +0 -102
  251. package/dist/libs/digital-ocean/container-reg.d.ts +0 -6
  252. package/dist/libs/digital-ocean/container-reg.d.ts.map +0 -1
  253. package/dist/libs/digital-ocean/container-reg.js +0 -74
  254. package/dist/libs/discovery/dependencies.d.ts +0 -19
  255. package/dist/libs/discovery/dependencies.d.ts.map +0 -1
  256. package/dist/libs/discovery/dependencies.js +0 -62
  257. package/dist/libs/discovery/dependencies.spec.d.ts +0 -2
  258. package/dist/libs/discovery/dependencies.spec.d.ts.map +0 -1
  259. package/dist/libs/discovery/dependencies.spec.js +0 -21
  260. package/dist/libs/discovery/images.d.ts +0 -5
  261. package/dist/libs/discovery/images.d.ts.map +0 -1
  262. package/dist/libs/discovery/images.js +0 -45
  263. package/dist/libs/discovery/index.d.ts +0 -6
  264. package/dist/libs/discovery/index.d.ts.map +0 -1
  265. package/dist/libs/discovery/index.js +0 -67
  266. package/dist/libs/discovery/process-common.d.ts +0 -25
  267. package/dist/libs/discovery/process-common.d.ts.map +0 -1
  268. package/dist/libs/discovery/process-common.js +0 -40
  269. package/dist/libs/discovery/process-package-json.d.ts +0 -3
  270. package/dist/libs/discovery/process-package-json.d.ts.map +0 -1
  271. package/dist/libs/discovery/process-package-json.js +0 -40
  272. package/dist/libs/discovery/process-pyproject-toml.d.ts +0 -3
  273. package/dist/libs/discovery/process-pyproject-toml.d.ts.map +0 -1
  274. package/dist/libs/discovery/process-pyproject-toml.js +0 -49
  275. package/dist/libs/git-helpers.d.ts +0 -8
  276. package/dist/libs/git-helpers.d.ts.map +0 -1
  277. package/dist/libs/git-helpers.js +0 -20
  278. package/dist/libs/hetzner/reg-secret.d.ts +0 -3
  279. package/dist/libs/hetzner/reg-secret.d.ts.map +0 -1
  280. package/dist/libs/hetzner/reg-secret.js +0 -39
  281. package/dist/libs/init-generator.d.ts +0 -41
  282. package/dist/libs/init-generator.d.ts.map +0 -1
  283. package/dist/libs/init-generator.js +0 -123
  284. package/dist/libs/k8s-constants.d.ts +0 -13
  285. package/dist/libs/k8s-constants.d.ts.map +0 -1
  286. package/dist/libs/k8s-constants.js +0 -91
  287. package/dist/libs/k8s-db.d.ts +0 -18
  288. package/dist/libs/k8s-db.d.ts.map +0 -1
  289. package/dist/libs/k8s-db.js +0 -73
  290. package/dist/libs/k8s-generate.d.ts +0 -17
  291. package/dist/libs/k8s-generate.d.ts.map +0 -1
  292. package/dist/libs/k8s-generate.js +0 -193
  293. package/dist/libs/k8s-helpers.d.ts +0 -11
  294. package/dist/libs/k8s-helpers.d.ts.map +0 -1
  295. package/dist/libs/k8s-helpers.js +0 -42
  296. package/dist/libs/k8s-image-config.d.ts +0 -8
  297. package/dist/libs/k8s-image-config.d.ts.map +0 -1
  298. package/dist/libs/k8s-image-config.js +0 -113
  299. package/dist/libs/k8s-job-waiter.d.ts +0 -8
  300. package/dist/libs/k8s-job-waiter.d.ts.map +0 -1
  301. package/dist/libs/k8s-job-waiter.js +0 -84
  302. package/dist/libs/k8s-namespace.d.ts +0 -7
  303. package/dist/libs/k8s-namespace.d.ts.map +0 -1
  304. package/dist/libs/k8s-namespace.js +0 -27
  305. package/dist/libs/k8s-redis-bitnami.d.ts +0 -6
  306. package/dist/libs/k8s-redis-bitnami.d.ts.map +0 -1
  307. package/dist/libs/k8s-redis-bitnami.js +0 -31
  308. package/dist/libs/k8s-redis-ha.d.ts +0 -3
  309. package/dist/libs/k8s-redis-ha.d.ts.map +0 -1
  310. package/dist/libs/k8s-redis-ha.js +0 -15
  311. package/dist/libs/k8s-secrets-manager.d.ts +0 -6
  312. package/dist/libs/k8s-secrets-manager.d.ts.map +0 -1
  313. package/dist/libs/k8s-secrets-manager.js +0 -64
  314. package/dist/libs/validate-env.d.ts +0 -56
  315. package/dist/libs/validate-env.d.ts.map +0 -1
  316. package/dist/libs/validate-env.js +0 -214
  317. package/dist/libs/validate-env.spec.d.ts +0 -2
  318. package/dist/libs/validate-env.spec.d.ts.map +0 -1
  319. package/dist/libs/validate-env.spec.js +0 -168
  320. package/dist/plugins.d.ts.map +0 -1
  321. package/dist/types/index.d.ts +0 -939
  322. package/dist/types/index.d.ts.map +0 -1
  323. package/dist/types/index.js +0 -82
@@ -0,0 +1,18 @@
1
+ apiVersion: stackgres.io/v1beta1
2
+ kind: SGObjectStorage
3
+ metadata:
4
+ namespace: db-production
5
+ name: backupconfig
6
+ spec:
7
+ type: s3Compatible
8
+ s3Compatible:
9
+ bucket: $PROJECT_NAME-backups
10
+ endpoint: https://hel1.your-objectstorage.com
11
+ awsCredentials:
12
+ secretKeySelectors:
13
+ accessKeyId:
14
+ name: s3-backup-bucket-secret
15
+ key: accessKey
16
+ secretAccessKey:
17
+ name: s3-backup-bucket-secret
18
+ key: secretKey
@@ -0,0 +1,12 @@
1
+ apiVersion: stackgres.io/v1
2
+ kind: SGScript
3
+ metadata:
4
+ name: create-db-script
5
+ namespace: db-production
6
+ spec:
7
+ managedVersions: true
8
+ continueOnError: false
9
+ scripts:
10
+ - name: create-database
11
+ script: |
12
+ CREATE DATABASE $PROJECT_NAME WITH OWNER postgres;
@@ -0,0 +1,35 @@
1
+ apiVersion: v1
2
+ kind: Service
3
+ metadata:
4
+ name: stackgres-ui-workaround-svc
5
+ labels:
6
+ app: stackgres
7
+ namespace: stackgres
8
+ spec:
9
+ selector:
10
+ stackgres.io/restapi: "true"
11
+ ports:
12
+ - protocol: TCP
13
+ port: 80
14
+ targetPort: 9080
15
+ ---
16
+ apiVersion: networking.k8s.io/v1
17
+ kind: Ingress
18
+ metadata:
19
+ name: stackgres-ui
20
+ namespace: stackgres
21
+ labels:
22
+ app: stackgres
23
+ spec:
24
+ ingressClassName: nginx
25
+ rules:
26
+ - host: db.$APEX_DOMAIN
27
+ http:
28
+ paths:
29
+ - path: /
30
+ pathType: Prefix
31
+ backend:
32
+ service:
33
+ name: stackgres-ui-workaround-svc
34
+ port:
35
+ number: 80
@@ -0,0 +1,42 @@
1
+ apiVersion: stackgres.io/v1
2
+ kind: SGCluster
3
+ metadata:
4
+ namespace: db-staging
5
+ name: db-staging
6
+ spec:
7
+ postgres:
8
+ version: '17.4'
9
+ extensions:
10
+ # - name: 'pg_repack'
11
+ - name: 'pg_trgm' # required for prefect
12
+ instances: 1
13
+ # sgInstanceProfile: 'size-m'
14
+ profile: 'testing'
15
+ pods:
16
+ persistentVolume:
17
+ size: '10Gi'
18
+ storageClass: 'hcloud-volumes-retain'
19
+ scheduling:
20
+ tolerations:
21
+ - key: "stackgres"
22
+ operator: "Exists"
23
+ effect: "NoSchedule"
24
+ configurations:
25
+ # sgPostgresConfig: 'pgconfig'
26
+ # sgPoolingConfig: 'poolconfig'
27
+ backups:
28
+ - sgObjectStorage: 'backupconfig'
29
+ # cronSchedule: '30 02 */4 * *'
30
+ cronSchedule: '30 02 * * *'
31
+ retention: 4
32
+ # distributedLogs:
33
+ # sgDistributedLogs: 'distributedlogs'
34
+ managedSql:
35
+ scripts:
36
+ - sgScript: create-db-script
37
+ postgresServices:
38
+ primary:
39
+ type: ClusterIP
40
+ replicas:
41
+ type: ClusterIP
42
+ prometheusAutobind: true
@@ -0,0 +1,18 @@
1
+ apiVersion: stackgres.io/v1beta1
2
+ kind: SGObjectStorage
3
+ metadata:
4
+ namespace: db-staging
5
+ name: backupconfig
6
+ spec:
7
+ type: s3Compatible
8
+ s3Compatible:
9
+ bucket: $PROJECT_NAME-backups
10
+ endpoint: https://hel1.your-objectstorage.com
11
+ awsCredentials:
12
+ secretKeySelectors:
13
+ accessKeyId:
14
+ name: s3-backup-bucket-secret
15
+ key: accessKey
16
+ secretAccessKey:
17
+ name: s3-backup-bucket-secret
18
+ key: secretKey
@@ -0,0 +1,12 @@
1
+ apiVersion: stackgres.io/v1
2
+ kind: SGScript
3
+ metadata:
4
+ name: create-db-script
5
+ namespace: db-staging
6
+ spec:
7
+ managedVersions: true
8
+ continueOnError: false
9
+ scripts:
10
+ - name: create-database
11
+ script: |
12
+ CREATE DATABASE $PROJECT_NAME WITH OWNER postgres;
@@ -0,0 +1,14 @@
1
+ ingress:
2
+ enabled: true
3
+ host:
4
+ hostname: "prefect-production.staging.com"
5
+ server:
6
+ uiConfig:
7
+ prefectUiApiUrl: "https://prefect-production.staging.com/api"
8
+
9
+ # We use the environment's stackgres postgres instance
10
+ postgresql:
11
+ enabled: false
12
+ secret:
13
+ create: false
14
+ name: prefect-server-postgresql-connection
@@ -0,0 +1,14 @@
1
+ ingress:
2
+ enabled: true
3
+ host:
4
+ hostname: "prefect-staging.staging.com"
5
+ server:
6
+ uiConfig:
7
+ prefectUiApiUrl: "https://prefect-staging.staging.com/api"
8
+
9
+ # We use the environment's stackgres postgres instance
10
+ postgresql:
11
+ enabled: false
12
+ secret:
13
+ create: false
14
+ name: prefect-server-postgresql-connection
@@ -0,0 +1,20 @@
1
+ architecture: replication
2
+ global:
3
+ defaultStorageClass: hcloud-volumes-retain
4
+ master:
5
+ resources:
6
+ requests:
7
+ cpu: 1
8
+ memory: 256Mi
9
+ limits:
10
+ cpu: 3
11
+ memory: 1024Mi
12
+ replica:
13
+ replicaCount: 1
14
+ resources:
15
+ requests:
16
+ cpu: 1
17
+ memory: 256Mi
18
+ limits:
19
+ cpu: 3
20
+ memory: 1024Mi
@@ -0,0 +1,8 @@
1
+ architecture: standalone
2
+ global:
3
+ defaultStorageClass: hcloud-volumes-retain
4
+ master:
5
+ resources:
6
+ limits:
7
+ cpu: 1
8
+ memory: 256Mi
@@ -0,0 +1,2 @@
1
+ During `./devops init`, the user is asked to select an infra variant.
2
+ The files under the selected `$OPTION` are copied under the root project folder.
@@ -0,0 +1,18 @@
1
+ # These will be used when generating kubernetes entities
2
+ project-name: $PROJECT_NAME
3
+
4
+ # Supported: hetzner, digitalocean, or gcloud
5
+ infra: digitalocean
6
+
7
+ # Only relevant for Digital Ocean. Determines the number of versions to keep for each docker image.
8
+ image-versions-to-keep: 5
9
+
10
+ registry-base-url: registry.digitalocean.com
11
+ # What comes before <image-name>:<tag>. Can be empty.
12
+ registry-image-path-prefix: $REGISTRY_IMAGE_PATH_PREFIX
13
+
14
+ # production and staging are supported by default
15
+ extra-remote-environments: []
16
+
17
+ # development and test are supported by default
18
+ extra-local-environments: []
@@ -0,0 +1,91 @@
1
+ name: "Monorepo Build and Deploy"
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - staging
7
+ - production
8
+
9
+ permissions:
10
+ contents: read
11
+ packages: read
12
+ # For deploying images to Cloud Run
13
+ # id-token: write
14
+
15
+ jobs:
16
+ build_images:
17
+ runs-on: ubuntu-latest
18
+ strategy:
19
+ matrix:
20
+ include:
21
+ - image_name: main-node
22
+ - image_name: main-python
23
+ cache_path: /root/.cache/uv
24
+ steps:
25
+ # Fetch the last 50 commits so that devops affected works
26
+ - name: Checkout repo and history
27
+ uses: actions/checkout@v4
28
+ with:
29
+ fetch-depth: 50
30
+
31
+ - name: Setup prerequesites
32
+ uses: ./.github/actions/setup-prereq@v1
33
+
34
+ - name: Connect to Digital Ocean
35
+ uses: ./.github/actions/connect-to-digital-ocean@v1
36
+ with:
37
+ access_token: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }}
38
+ cluster_name: ${{ secrets.DIGITALOCEAN_CLUSTER_NAME }}
39
+
40
+ # For deploying images to Cloud Run
41
+ # - name: Connect to Cloud Run
42
+ # uses: ./.github/actions/connect-to-cloud-run@v1
43
+ # with:
44
+ # project_id: ${{ vars.GCP_PROJECT_ID }}
45
+ # project_number: ${{ vars.GCP_PROJECT_NUMBER }}
46
+ # region: ${{ vars.GCP_ARTIFACT_REGISTRY_REGION }}
47
+
48
+ - name: Build image
49
+ uses: ./.github/actions/build-image@v1
50
+ with:
51
+ image_name: ${{ matrix.image_name }}
52
+ cache_path: ${{ matrix.cache_path || '/root/.bun/install/cache' }}
53
+
54
+ db_migrate_and_deploy:
55
+ needs: [build_images]
56
+ runs-on: ubuntu-latest
57
+ steps:
58
+ # Fetch the last 50 commits so that devops affected works
59
+ - name: Checkout repo and history
60
+ uses: actions/checkout@v4
61
+ with:
62
+ fetch-depth: 50
63
+
64
+ - name: Setup prerequesites
65
+ uses: ./.github/actions/setup-prereq@v1
66
+
67
+ - name: Connect to Digital Ocean
68
+ uses: ./.github/actions/connect-to-digital-ocean@v1
69
+ with:
70
+ access_token: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }}
71
+ cluster_name: ${{ secrets.DIGITALOCEAN_CLUSTER_NAME }}
72
+
73
+ # For deploying images to Cloud Run
74
+ # - name: Connect to Cloud Run
75
+ # uses: ./.github/actions/connect-to-cloud-run@v1
76
+ # with:
77
+ # project_id: ${{ vars.GCP_PROJECT_ID }}
78
+ # project_number: ${{ vars.GCP_PROJECT_NUMBER }}
79
+ # region: ${{ vars.GCP_ARTIFACT_REGISTRY_REGION }}
80
+
81
+ - name: Run DB Migrate
82
+ uses: ./.github/actions/db-migrate@v1
83
+
84
+ # Repeat per image (it checks if the image is affected and deploys it if it is)
85
+ - name: Deploy main node
86
+ uses: ./.github/actions/deploy-image-k8s@v1
87
+ with: { "image_name": "main-node" }
88
+
89
+ - name: Deploy main python
90
+ uses: ./.github/actions/deploy-image-k8s@v1
91
+ with: { "image_name": "main-python" }
@@ -0,0 +1,15 @@
1
+ # These will be used when generating kubernetes entities
2
+ project-name: $PROJECT_NAME
3
+
4
+ # Supported: hetzner, digitalocean, or gcloud
5
+ infra: gcloud
6
+
7
+ registry-base-url: gcr.io
8
+ # What comes before <image-name>:<tag>. Can be empty.
9
+ registry-image-path-prefix: $GCLOUD_PROJECT_ID
10
+
11
+ # production and staging are supported by default
12
+ extra-remote-environments: []
13
+
14
+ # development and test are supported by default
15
+ extra-local-environments: []
@@ -0,0 +1,22 @@
1
+ apiVersion: networking.k8s.io/v1
2
+ kind: Ingress
3
+ metadata:
4
+ name: {{app_name}}
5
+ namespace: {{namespace}}
6
+ labels:
7
+ app: {{app_name}}
8
+ env: {{monorepo_env}}
9
+ annotations:
10
+ kubernetes.io/ingress.class: "gce"
11
+ spec:
12
+ rules:
13
+ - host: {{subdomain}}.{{domain_name}}
14
+ http:
15
+ paths:
16
+ - path: /
17
+ pathType: Prefix
18
+ backend:
19
+ service:
20
+ name: {{service_name}}
21
+ port:
22
+ number: 80
@@ -0,0 +1,95 @@
1
+ name: "Monorepo Build and Deploy"
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - staging
7
+ - production
8
+
9
+ permissions:
10
+ contents: read
11
+ packages: read
12
+ # For deploying images to Cloud Run
13
+ # id-token: write
14
+
15
+ jobs:
16
+ build_images:
17
+ runs-on: ubuntu-latest
18
+ strategy:
19
+ matrix:
20
+ include:
21
+ - image_name: main-node
22
+ - image_name: main-python
23
+ cache_path: /root/.cache/uv
24
+ steps:
25
+ # Fetch the last 50 commits so that devops affected works
26
+ - name: Checkout repo and history
27
+ uses: actions/checkout@v4
28
+ with:
29
+ fetch-depth: 50
30
+
31
+ - name: Setup prerequesites
32
+ uses: ./.github/actions/setup-prereq@v1
33
+
34
+ - name: Connect to Google Cloud GKE
35
+ uses: ./.github/actions/connect-to-gke@v1
36
+ with:
37
+ project_id: ${{ secrets.GCLOUD_PROJECT_ID }}
38
+ zone: ${{ secrets.GCLOUD_ZONE }}
39
+ cluster_name: ${{ secrets.GCLOUD_CLUSTER_NAME }}
40
+ service_account_key: ${{ secrets.GCLOUD_SA_KEY }}
41
+
42
+ # For deploying images to Cloud Run
43
+ # - name: Connect to Cloud Run
44
+ # uses: ./.github/actions/connect-to-cloud-run@v1
45
+ # with:
46
+ # project_id: ${{ vars.GCP_PROJECT_ID }}
47
+ # project_number: ${{ vars.GCP_PROJECT_NUMBER }}
48
+ # region: ${{ vars.GCP_ARTIFACT_REGISTRY_REGION }}
49
+
50
+ - name: Build image
51
+ uses: ./.github/actions/build-image@v1
52
+ with:
53
+ image_name: ${{ matrix.image_name }}
54
+ cache_path: ${{ matrix.cache_path || '/root/.bun/install/cache' }}
55
+
56
+ db_migrate_and_deploy:
57
+ needs: [build_images]
58
+ runs-on: ubuntu-latest
59
+ steps:
60
+ # Fetch the last 50 commits so that devops affected works
61
+ - name: Checkout repo and history
62
+ uses: actions/checkout@v4
63
+ with:
64
+ fetch-depth: 50
65
+
66
+ - name: Setup prerequesites
67
+ uses: ./.github/actions/setup-prereq@v1
68
+
69
+ - name: Connect to Google Cloud GKE
70
+ uses: ./.github/actions/connect-to-gke@v1
71
+ with:
72
+ project_id: ${{ secrets.GCLOUD_PROJECT_ID }}
73
+ zone: ${{ secrets.GCLOUD_ZONE }}
74
+ cluster_name: ${{ secrets.GCLOUD_CLUSTER_NAME }}
75
+ service_account_key: ${{ secrets.GCLOUD_SA_KEY }}
76
+
77
+ # For deploying images to Cloud Run
78
+ # - name: Connect to Cloud Run
79
+ # uses: ./.github/actions/connect-to-cloud-run@v1
80
+ # with:
81
+ # project_id: ${{ vars.GCP_PROJECT_ID }}
82
+ # project_number: ${{ vars.GCP_PROJECT_NUMBER }}
83
+ # region: ${{ vars.GCP_ARTIFACT_REGISTRY_REGION }}
84
+
85
+ - name: Run DB Migrate
86
+ uses: ./.github/actions/db-migrate@v1
87
+
88
+ # Repeat per image (it checks if the image is affected and deploys it if it is)
89
+ - name: Deploy main node
90
+ uses: ./.github/actions/deploy-image-k8s@v1
91
+ with: { "image_name": "main-node" }
92
+
93
+ - name: Deploy main python
94
+ uses: ./.github/actions/deploy-image-k8s@v1
95
+ with: { "image_name": "main-python" }
@@ -0,0 +1,18 @@
1
+ # These will be used when generating kubernetes entities
2
+ project-name: $PROJECT_NAME
3
+
4
+ # Supported: hetzner, digitalocean, or gcloud
5
+ infra: hetzner
6
+
7
+ # Only relevant for Digital Ocean. Determines the number of versions to keep for each docker image.
8
+ image-versions-to-keep: 5
9
+
10
+ registry-base-url: $REGISTRY_BASE_URL
11
+ # What comes before <image-name>:<tag>. Can be empty.
12
+ registry-image-path-prefix: $PROJECT_NAME
13
+
14
+ # production and staging are supported by default
15
+ extra-remote-environments: []
16
+
17
+ # development and test are supported by default
18
+ extra-local-environments: []
@@ -0,0 +1,30 @@
1
+ # While this works when setting Cloudflare TLS encryption mode to "full", it fails when too big layers are attempted to be pushed
2
+ expose:
3
+ type: ingress
4
+ ingress:
5
+ hosts:
6
+ core: $REGISTRY_BASE_URL
7
+ className: "nginx"
8
+ annotations:
9
+ nginx.ingress.kubernetes.io/ssl-redirect: "false"
10
+ nginx.ingress.kubernetes.io/proxy-body-size: "0"
11
+ ingress.kubernetes.io/ssl-redirect: "false"
12
+ ingress.kubernetes.io/proxy-body-size: "0"
13
+ tls:
14
+ enabled: false
15
+ externalURL: https://$REGISTRY_BASE_URL
16
+ persistence:
17
+ enabled: true
18
+ persistentVolumeClaim:
19
+ registry:
20
+ storageClass: "hcloud-volumes"
21
+ accessMode: ReadWriteOnce
22
+ size: 20Gi
23
+ jobservice:
24
+ storageClass: "hcloud-volumes"
25
+ accessMode: ReadWriteOnce
26
+ size: 5Gi
27
+ chartmuseum:
28
+ storageClass: "hcloud-volumes"
29
+ accessMode: ReadWriteOnce
30
+ size: 5Gi
@@ -0,0 +1,134 @@
1
+ ---
2
+ cluster_name: $PROJECT_NAME
3
+ kubeconfig_path: "./kubeconfig"
4
+ k3s_version: v1.32.2+k3s1
5
+
6
+ networking:
7
+ ssh:
8
+ port: 22
9
+ use_agent: false # set to true if your key has a passphrase
10
+ public_key_path: "~/.ssh/id_hcloud.pub"
11
+ private_key_path: "~/.ssh/id_hcloud"
12
+ allowed_networks:
13
+ ssh:
14
+ - 0.0.0.0/0
15
+ api: # this will firewall port 6443 on the nodes
16
+ - 0.0.0.0/0
17
+ public_network:
18
+ ipv4: false
19
+ ipv6: false
20
+ private_network:
21
+ enabled: true
22
+ subnet: 10.0.0.0/16
23
+ existing_network_name: "cluster-network"
24
+ cni:
25
+ enabled: true
26
+ encryption: false
27
+ mode: flannel
28
+
29
+ # cluster_cidr: 10.244.0.0/16 # optional: a custom IPv4/IPv6 network CIDR to use for pod IPs
30
+ # service_cidr: 10.43.0.0/16 # optional: a custom IPv4/IPv6 network CIDR to use for service IPs. Warning, if you change this, you should also change cluster_dns!
31
+ # cluster_dns: 10.43.0.10 # optional: IPv4 Cluster IP for coredns service. Needs to be an address from the service_cidr range
32
+
33
+
34
+ # manifests:
35
+ # cloud_controller_manager_manifest_url: "https://github.com/hetznercloud/hcloud-cloud-controller-manager/releases/download/v1.23.0/ccm-networks.yaml"
36
+ # csi_driver_manifest_url: "https://raw.githubusercontent.com/hetznercloud/csi-driver/v2.12.0/deploy/kubernetes/hcloud-csi.yml"
37
+ # system_upgrade_controller_deployment_manifest_url: "https://github.com/rancher/system-upgrade-controller/releases/download/v0.14.2/system-upgrade-controller.yaml"
38
+ # system_upgrade_controller_crd_manifest_url: "https://github.com/rancher/system-upgrade-controller/releases/download/v0.14.2/crd.yaml"
39
+ # cluster_autoscaler_manifest_url: "https://raw.githubusercontent.com/kubernetes/autoscaler/master/cluster-autoscaler/cloudprovider/hetzner/examples/cluster-autoscaler-run-on-master.yaml"
40
+ # cluster_autoscaler_container_image_tag: "v1.32.0"
41
+
42
+ # datastore:
43
+ # mode: etcd # etcd (default) or external
44
+ # external_datastore_endpoint: postgres://....
45
+
46
+ schedule_workloads_on_masters: false
47
+
48
+ # image: rocky-9 # optional: default is ubuntu-24.04
49
+ # autoscaling_image: 103908130 # optional, defaults to the `image` setting
50
+ # snapshot_os: microos # optional: specified the os type when using a custom snapshot
51
+
52
+ masters_pool:
53
+ instance_type: cpx21
54
+ instance_count: 1 # for HA; you can also create a single master cluster for dev and testing (not recommended for production)
55
+ locations: # You can choose a single location for single master clusters or if you prefer to have all masters in the same location. For regional clusters (which are only available in the eu-central network zone), each master needs to be placed in a separate location.
56
+ # - fsn1
57
+ # - hel1
58
+ - nbg1
59
+
60
+ worker_node_pools:
61
+ - name: small-static
62
+ instance_type: cpx21
63
+ instance_count: 2
64
+ location: nbg1
65
+ # image: debian-11
66
+ # labels:
67
+ # - key: purpose
68
+ # value: blah
69
+ # taints:
70
+ # - key: something
71
+ # value: value1:NoSchedule
72
+ # - name: medium-autoscaled
73
+ # instance_type: cpx31
74
+ # location: fsn1
75
+ # autoscaling:
76
+ # enabled: true
77
+ # min_instances: 0
78
+ # max_instances: 3
79
+
80
+ embedded_registry_mirror:
81
+ enabled: false # Enables fast p2p distribution of container images between nodes for faster pod startup. Check if your k3s version is compatible before enabling this option. You can find more information at https://docs.k3s.io/installation/registry-mirror
82
+
83
+ protect_against_deletion: true
84
+
85
+ create_load_balancer_for_the_kubernetes_api: false # Just a heads up: right now, we can’t limit access to the load balancer by IP through the firewall. This feature hasn’t been added by Hetzner yet.
86
+
87
+ # See https://github.com/vitobotta/hetzner-k3s/blob/main/docs/Private_clusters_with_public_network_interface_disabled.md
88
+ post_create_commands:
89
+ - apt update
90
+ - apt upgrade -y
91
+ - apt install ifupdown resolvconf -y
92
+ - apt autoremove -y hc-utils
93
+ - apt purge -y hc-utils
94
+ - echo "auto enp7s0" > /etc/network/interfaces.d/60-private
95
+ - echo "iface enp7s0 inet dhcp" >> /etc/network/interfaces.d/60-private
96
+ - echo " post-up ip route add default via 10.0.0.1" >> /etc/network/interfaces.d/60-private
97
+ - echo "[Resolve]" > /etc/systemd/resolved.conf
98
+ - echo "DNS=1.1.1.1 1.0.0.1" >> /etc/systemd/resolved.conf
99
+ - ifdown enp7s0
100
+ - ifup enp7s0
101
+ - systemctl start resolvconf
102
+ - systemctl enable resolvconf
103
+ - echo "nameserver 1.1.1.1" >> /etc/resolvconf/resolv.conf.d/head
104
+ - echo "nameserver 1.0.0.1" >> /etc/resolvconf/resolv.conf.d/head
105
+ - resolvconf --enable-updates
106
+ - resolvconf -u
107
+
108
+ # additional_packages:
109
+ # - somepackage
110
+
111
+ # post_create_commands:
112
+ # - apt update
113
+ # - apt upgrade -y
114
+ # - apt autoremove -y
115
+
116
+ # kube_api_server_args:
117
+ # - arg1
118
+ # - ...
119
+ # kube_scheduler_args:
120
+ # - arg1
121
+ # - ...
122
+ # kube_controller_manager_args:
123
+ # - arg1
124
+ # - ...
125
+ # kube_cloud_controller_manager_args:
126
+ # - arg1
127
+ # - ...
128
+ # kubelet_args:
129
+ # - arg1
130
+ # - ...
131
+ # kube_proxy_args:
132
+ # - arg1
133
+ # - ...
134
+ # api_server_hostname: k8s.example.com # optional: DNS for the k8s API LoadBalancer. After the script has run, create a DNS record with the address of the API LoadBalancer.
@@ -0,0 +1,25 @@
1
+ apiVersion: v1
2
+ kind: Secret
3
+ metadata:
4
+ name: cloudflare-api-token-secret
5
+ namespace: cert-manager
6
+ type: Opaque
7
+ stringData:
8
+ api-token: $CLOUDFLARE_API_TOKEN
9
+ ---
10
+ apiVersion: cert-manager.io/v1
11
+ kind: ClusterIssuer
12
+ metadata:
13
+ name: letsencrypt-dns01
14
+ spec:
15
+ acme:
16
+ server: https://acme-v02.api.letsencrypt.org/directory
17
+ email: $EMAIL_ADDRESS
18
+ privateKeySecretRef:
19
+ name: letsencrypt-dns01-private-key
20
+ solvers:
21
+ - dns01:
22
+ cloudflare:
23
+ apiTokenSecretRef:
24
+ name: cloudflare-api-token-secret
25
+ key: api-token
@@ -0,0 +1,13 @@
1
+ apiVersion: cert-manager.io/v1
2
+ kind: Certificate
3
+ metadata:
4
+ name: tls-secret
5
+ namespace: harbor
6
+ spec:
7
+ secretName: tls-secret
8
+ issuerRef:
9
+ name: letsencrypt-dns01
10
+ kind: ClusterIssuer
11
+ commonName: $REGISTRY_BASE_URL
12
+ dnsNames:
13
+ - $REGISTRY_BASE_URL