mirror of
https://github.com/MAKS-IT-COM/maksit-certs-ui.git
synced 2026-05-16 04:48:12 +02:00
(feature): migrate to slnx, helm chart review
This commit is contained in:
parent
0f4c4cbeac
commit
830f3e7d3e
@ -18,14 +18,14 @@ Large or architectural changes are best discussed first (see [Contact](#contact)
|
|||||||
|
|
||||||
- [.NET SDK](https://dotnet.microsoft.com/download) compatible with the `TargetFramework` values in the `.csproj` files under `src/` (the main solution currently targets **.NET 10**).
|
- [.NET SDK](https://dotnet.microsoft.com/download) compatible with the `TargetFramework` values in the `.csproj` files under `src/` (the main solution currently targets **.NET 10**).
|
||||||
- Optional but recommended for end-to-end checks: **Docker** or **Podman**, as in the README installation sections.
|
- Optional but recommended for end-to-end checks: **Docker** or **Podman**, as in the README installation sections.
|
||||||
- **Visual Studio 2022** or another editor with C# support works well; the solution file is `src/MaksIT.CertsUI.sln`.
|
- **Visual Studio 2022** (17.14+) or another editor with C# support works well; the solution file is `src/MaksIT.CertsUI.slnx` (SLNX; requires a recent `dotnet` SDK, e.g. 9.0.200+).
|
||||||
|
|
||||||
### Build
|
### Build
|
||||||
|
|
||||||
From the repository root:
|
From the repository root:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
dotnet build src/MaksIT.CertsUI.sln -c Release
|
dotnet build src/MaksIT.CertsUI.slnx -c Release
|
||||||
```
|
```
|
||||||
|
|
||||||
Use `Debug` while iterating locally if you prefer.
|
Use `Debug` while iterating locally if you prefer.
|
||||||
|
|||||||
@ -1,125 +0,0 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio Version 17
|
|
||||||
VisualStudioVersion = 17.6.33815.320
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LetsEncrypt", "LetsEncrypt\LetsEncrypt.csproj", "{7DE431E5-889C-434E-AD02-9F89D7A0ED27}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Documentation", "Documentation", "{3374FDB1-C95E-4103-8E14-5BBF0BDC4E9D}"
|
|
||||||
ProjectSection(SolutionItems) = preProject
|
|
||||||
..\CHANGELOG.md = ..\CHANGELOG.md
|
|
||||||
..\CONTRIBUTING.md = ..\CONTRIBUTING.md
|
|
||||||
..\LICENSE.md = ..\LICENSE.md
|
|
||||||
..\README.md = ..\README.md
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MaksIT.Webapi", "MaksIT.Webapi\MaksIT.Webapi.csproj", "{B5F39E04-C2E3-49BF-82C2-9DEBAA949E3D}"
|
|
||||||
EndProject
|
|
||||||
Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "docker-compose", "docker-compose.dcproj", "{0233E43F-435D-4309-B20C-ECD4BFBD2E63}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MaksIT.Models", "MaksIT.Models\MaksIT.Models.csproj", "{6814169B-D4D0-40B2-9FA9-89997DD44C30}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReverseProxy", "ReverseProxy\ReverseProxy.csproj", "{BE051147-7AB7-4358-9C24-5CB40FAFF4FC}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LetsEncrypt.Tests", "LetsEncrypt.Tests\LetsEncrypt.Tests.csproj", "{65DEB577-FB14-488C-AEB1-3172F0812950}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaksIT.Webapi.Tests", "MaksIT.Webapi.Tests\MaksIT.Webapi.Tests.csproj", "{EB57DB1C-DEEE-4952-9326-FB09903651F4}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|Any CPU = Debug|Any CPU
|
|
||||||
Debug|x64 = Debug|x64
|
|
||||||
Debug|x86 = Debug|x86
|
|
||||||
Release|Any CPU = Release|Any CPU
|
|
||||||
Release|x64 = Release|x64
|
|
||||||
Release|x86 = Release|x86
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{7DE431E5-889C-434E-AD02-9F89D7A0ED27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{7DE431E5-889C-434E-AD02-9F89D7A0ED27}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{7DE431E5-889C-434E-AD02-9F89D7A0ED27}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{7DE431E5-889C-434E-AD02-9F89D7A0ED27}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{7DE431E5-889C-434E-AD02-9F89D7A0ED27}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{7DE431E5-889C-434E-AD02-9F89D7A0ED27}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{7DE431E5-889C-434E-AD02-9F89D7A0ED27}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{7DE431E5-889C-434E-AD02-9F89D7A0ED27}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{7DE431E5-889C-434E-AD02-9F89D7A0ED27}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{7DE431E5-889C-434E-AD02-9F89D7A0ED27}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{7DE431E5-889C-434E-AD02-9F89D7A0ED27}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{7DE431E5-889C-434E-AD02-9F89D7A0ED27}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{B5F39E04-C2E3-49BF-82C2-9DEBAA949E3D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{B5F39E04-C2E3-49BF-82C2-9DEBAA949E3D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{B5F39E04-C2E3-49BF-82C2-9DEBAA949E3D}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{B5F39E04-C2E3-49BF-82C2-9DEBAA949E3D}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{B5F39E04-C2E3-49BF-82C2-9DEBAA949E3D}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{B5F39E04-C2E3-49BF-82C2-9DEBAA949E3D}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{B5F39E04-C2E3-49BF-82C2-9DEBAA949E3D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{B5F39E04-C2E3-49BF-82C2-9DEBAA949E3D}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{B5F39E04-C2E3-49BF-82C2-9DEBAA949E3D}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{B5F39E04-C2E3-49BF-82C2-9DEBAA949E3D}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{B5F39E04-C2E3-49BF-82C2-9DEBAA949E3D}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{B5F39E04-C2E3-49BF-82C2-9DEBAA949E3D}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{0233E43F-435D-4309-B20C-ECD4BFBD2E63}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{0233E43F-435D-4309-B20C-ECD4BFBD2E63}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{0233E43F-435D-4309-B20C-ECD4BFBD2E63}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{0233E43F-435D-4309-B20C-ECD4BFBD2E63}.Debug|x86.ActiveCfg = Debug|x86
|
|
||||||
{0233E43F-435D-4309-B20C-ECD4BFBD2E63}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{0233E43F-435D-4309-B20C-ECD4BFBD2E63}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{0233E43F-435D-4309-B20C-ECD4BFBD2E63}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{0233E43F-435D-4309-B20C-ECD4BFBD2E63}.Release|x86.ActiveCfg = Release|x86
|
|
||||||
{6814169B-D4D0-40B2-9FA9-89997DD44C30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{6814169B-D4D0-40B2-9FA9-89997DD44C30}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{6814169B-D4D0-40B2-9FA9-89997DD44C30}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{6814169B-D4D0-40B2-9FA9-89997DD44C30}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{6814169B-D4D0-40B2-9FA9-89997DD44C30}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{6814169B-D4D0-40B2-9FA9-89997DD44C30}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{6814169B-D4D0-40B2-9FA9-89997DD44C30}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{6814169B-D4D0-40B2-9FA9-89997DD44C30}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{6814169B-D4D0-40B2-9FA9-89997DD44C30}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{6814169B-D4D0-40B2-9FA9-89997DD44C30}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{6814169B-D4D0-40B2-9FA9-89997DD44C30}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{6814169B-D4D0-40B2-9FA9-89997DD44C30}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{BE051147-7AB7-4358-9C24-5CB40FAFF4FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{BE051147-7AB7-4358-9C24-5CB40FAFF4FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{BE051147-7AB7-4358-9C24-5CB40FAFF4FC}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{BE051147-7AB7-4358-9C24-5CB40FAFF4FC}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{BE051147-7AB7-4358-9C24-5CB40FAFF4FC}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{BE051147-7AB7-4358-9C24-5CB40FAFF4FC}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{BE051147-7AB7-4358-9C24-5CB40FAFF4FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{BE051147-7AB7-4358-9C24-5CB40FAFF4FC}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{BE051147-7AB7-4358-9C24-5CB40FAFF4FC}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{BE051147-7AB7-4358-9C24-5CB40FAFF4FC}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{BE051147-7AB7-4358-9C24-5CB40FAFF4FC}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{BE051147-7AB7-4358-9C24-5CB40FAFF4FC}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{65DEB577-FB14-488C-AEB1-3172F0812950}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{65DEB577-FB14-488C-AEB1-3172F0812950}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{65DEB577-FB14-488C-AEB1-3172F0812950}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{65DEB577-FB14-488C-AEB1-3172F0812950}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{65DEB577-FB14-488C-AEB1-3172F0812950}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{65DEB577-FB14-488C-AEB1-3172F0812950}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{65DEB577-FB14-488C-AEB1-3172F0812950}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{65DEB577-FB14-488C-AEB1-3172F0812950}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{65DEB577-FB14-488C-AEB1-3172F0812950}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{65DEB577-FB14-488C-AEB1-3172F0812950}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{65DEB577-FB14-488C-AEB1-3172F0812950}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{65DEB577-FB14-488C-AEB1-3172F0812950}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{EB57DB1C-DEEE-4952-9326-FB09903651F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{EB57DB1C-DEEE-4952-9326-FB09903651F4}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{EB57DB1C-DEEE-4952-9326-FB09903651F4}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{EB57DB1C-DEEE-4952-9326-FB09903651F4}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{EB57DB1C-DEEE-4952-9326-FB09903651F4}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{EB57DB1C-DEEE-4952-9326-FB09903651F4}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{EB57DB1C-DEEE-4952-9326-FB09903651F4}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{EB57DB1C-DEEE-4952-9326-FB09903651F4}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{EB57DB1C-DEEE-4952-9326-FB09903651F4}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{EB57DB1C-DEEE-4952-9326-FB09903651F4}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{EB57DB1C-DEEE-4952-9326-FB09903651F4}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{EB57DB1C-DEEE-4952-9326-FB09903651F4}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
|
||||||
SolutionGuid = {B78BD325-B2C1-456C-8EA8-42F9B89E0351}
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
||||||
22
src/MaksIT.CertsUI.slnx
Normal file
22
src/MaksIT.CertsUI.slnx
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<Solution>
|
||||||
|
<Configurations>
|
||||||
|
<Platform Name="Any CPU" />
|
||||||
|
<Platform Name="x64" />
|
||||||
|
<Platform Name="x86" />
|
||||||
|
</Configurations>
|
||||||
|
<Folder Name="/Documentation/">
|
||||||
|
<File Path="../CHANGELOG.md" />
|
||||||
|
<File Path="../CONTRIBUTING.md" />
|
||||||
|
<File Path="../LICENSE.md" />
|
||||||
|
<File Path="../README.md" />
|
||||||
|
</Folder>
|
||||||
|
<Project Path="docker-compose.dcproj">
|
||||||
|
<Build Solution="*|Any CPU" />
|
||||||
|
</Project>
|
||||||
|
<Project Path="LetsEncrypt.Tests/LetsEncrypt.Tests.csproj" />
|
||||||
|
<Project Path="LetsEncrypt/LetsEncrypt.csproj" />
|
||||||
|
<Project Path="MaksIT.Models/MaksIT.Models.csproj" />
|
||||||
|
<Project Path="MaksIT.Webapi.Tests/MaksIT.Webapi.Tests.csproj" />
|
||||||
|
<Project Path="MaksIT.Webapi/MaksIT.Webapi.csproj" />
|
||||||
|
<Project Path="ReverseProxy/ReverseProxy.csproj" />
|
||||||
|
</Solution>
|
||||||
@ -1,4 +1,4 @@
|
|||||||
VITE_APP_TITLE=MaksIT.CertsUI
|
VITE_APP_TITLE=MaksIT.CertsUI
|
||||||
VITE_COMPANY=MaksIT
|
VITE_COMPANY=MaksIT
|
||||||
VITE_COMPANY_URL=https://maks-it.com
|
VITE_COMPANY_URL=https://maks-it.com
|
||||||
VITE_API_URL=http://172.16.0.5:8080/api
|
VITE_API_URL=http://localhost:8080/api
|
||||||
@ -1,3 +1,3 @@
|
|||||||
window.RUNTIME_CONFIG = {
|
window.RUNTIME_CONFIG = {
|
||||||
API_URL: "http://172.16.0.5:8080/api"
|
API_URL: "http://localhost:8080/api"
|
||||||
};
|
};
|
||||||
@ -13,7 +13,6 @@ services:
|
|||||||
container_name: certs-ui-client
|
container_name: certs-ui-client
|
||||||
environment:
|
environment:
|
||||||
- ASPNETCORE_ENVIRONMENT=Development
|
- ASPNETCORE_ENVIRONMENT=Development
|
||||||
- LETSENCRYPT_SERVER=http://localhost:8080
|
|
||||||
volumes:
|
volumes:
|
||||||
- ./MaksIT.WebUI:/app
|
- ./MaksIT.WebUI:/app
|
||||||
networks:
|
networks:
|
||||||
|
|||||||
@ -18,9 +18,9 @@ Port-forward API example:
|
|||||||
------------------------------------------------------------
|
------------------------------------------------------------
|
||||||
## Images
|
## Images
|
||||||
|
|
||||||
Image tag: `components.*.image.tag`, then `global.image.tag`, then Chart `appVersion`.
|
Image tag: **`global.image.tag` when set**, else **`components.*.image.tag`**. There is **no** fallback to Chart `appVersion`; set tags explicitly (chart default is `latest` per component when **`global.image.tag`** is omitted). To force one tag for all images, uncomment **`global.image.tag`** in **`values.yaml`** (see commented examples).
|
||||||
|
|
||||||
**imagePullPolicy** resolves as: `components.*.image.pullPolicy` (if set in your values), else `global.image.pullPolicy`, else `IfNotPresent`. Values may use **`always`** / **`Always`** (normalized for the Pod spec).
|
**imagePullPolicy**: **`global.image.pullPolicy` when set**, else **`components.*.image.pullPolicy`**, else **`IfNotPresent`** in the template. Chart **`values.yaml`** sets per-component **`pullPolicy: IfNotPresent`** and omits **`global.image.pullPolicy`** so components win by default. Uncomment the example under **`global.image`** to override all. Values may use **`always`** / **`Always`** (normalized for the Pod spec).
|
||||||
|
|
||||||
With **`Always`**, the chart sets pod annotation **`rollme`**: by default **`r<Release.Revision>-<unixEpoch>`** so each **`helm upgrade`** bumps the revision even when the tag is unchanged. For **`helm template`** output committed to git, revision is usually **1** and epoch is frozen until you re-render — then pass **`global.rolloutNonce`** from CI (unique per deploy, e.g. pipeline id) so the applied manifest changes every image push. Pin **`global.rollme`** to a string you bump when you need a stable, deterministic rollout key.
|
With **`Always`**, the chart sets pod annotation **`rollme`**: by default **`r<Release.Revision>-<unixEpoch>`** so each **`helm upgrade`** bumps the revision even when the tag is unchanged. For **`helm template`** output committed to git, revision is usually **1** and epoch is frozen until you re-render — then pass **`global.rolloutNonce`** from CI (unique per deploy, e.g. pipeline id) so the applied manifest changes every image push. Pin **`global.rollme`** to a string you bump when you need a stable, deterministic rollout key.
|
||||||
|
|
||||||
@ -28,6 +28,8 @@ With **`IfNotPresent`** (default), **`rollme`** is omitted; the node may keep a
|
|||||||
|
|
||||||
Pod annotation **certs-ui.io/image** is the resolved `registry/repository:tag` for debugging.
|
Pod annotation **certs-ui.io/image** is the resolved `registry/repository:tag` for debugging.
|
||||||
|
|
||||||
|
Optional per workload under **`components.<name>`**: **`livenessProbe`**, **`readinessProbe`**, **`resources`** (standard Kubernetes container fields). Omit a key to leave it unset.
|
||||||
|
|
||||||
------------------------------------------------------------
|
------------------------------------------------------------
|
||||||
## Config
|
## Config
|
||||||
|
|
||||||
|
|||||||
@ -25,6 +25,7 @@ app.kubernetes.io/name: {{ include "certs-ui.name" . }}
|
|||||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||||
helm.sh/chart: {{ include "certs-ui.chart" . }}
|
helm.sh/chart: {{ include "certs-ui.chart" . }}
|
||||||
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
{{- /* Kubernetes imagePullPolicy; accepts common casing (always / IfNotPresent). */ -}}
|
{{- /* Kubernetes imagePullPolicy; accepts common casing (always / IfNotPresent). */ -}}
|
||||||
@ -44,12 +45,15 @@ imagePullSecrets:
|
|||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
{{- /* image tag: component, global.image.tag, Chart.AppVersion */ -}}
|
{{- /* image tag: global.image.tag when set (non-empty), else components.*.image.tag. No Chart.AppVersion. */ -}}
|
||||||
{{- define "certs-ui.component.imageTag" -}}
|
{{- define "certs-ui.component.imageTag" -}}
|
||||||
{{- $root := .root }}
|
{{- $root := .root }}
|
||||||
{{- $comp := .comp }}
|
{{- $comp := .comp }}
|
||||||
{{- $g := default dict $root.Values.global.image }}
|
{{- $g := default dict $root.Values.global.image }}
|
||||||
{{- $comp.image.tag | default $g.tag | default $root.Chart.AppVersion }}
|
{{- $gt := $g.tag | default "" | toString | trim -}}
|
||||||
|
{{- $ct := $comp.image.tag | default "" | toString | trim -}}
|
||||||
|
{{- $tag := ternary $gt $ct (ne $gt "") }}
|
||||||
|
{{- required "certs-ui: set global.image.tag and/or each components.*.image.tag" $tag }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
{{- define "certs-ui.podLabels" -}}
|
{{- define "certs-ui.podLabels" -}}
|
||||||
|
|||||||
@ -1,8 +1,11 @@
|
|||||||
{{- $root := . -}}
|
{{- $root := . -}}
|
||||||
{{- $globalPull := $root.Values.global.image.pullPolicy | default "" }}
|
{{- $gimg := $root.Values.global.image | default dict -}}
|
||||||
|
{{- $globalPull := $gimg.pullPolicy | default "" | toString | trim }}
|
||||||
{{- range $compName, $comp := .Values.components }}
|
{{- range $compName, $comp := .Values.components }}
|
||||||
{{- $imageTag := include "certs-ui.component.imageTag" (dict "root" $root "comp" $comp) }}
|
{{- $imageTag := include "certs-ui.component.imageTag" (dict "root" $root "comp" $comp) }}
|
||||||
{{- $pullPolicy := include "certs-ui.normalizePullPolicy" (coalesce $comp.image.pullPolicy $globalPull "IfNotPresent") | trim }}
|
{{- $compPull := $comp.image.pullPolicy | default "" | toString | trim }}
|
||||||
|
{{- $pullRaw := ternary $globalPull $compPull (ne $globalPull "") }}
|
||||||
|
{{- $pullPolicy := include "certs-ui.normalizePullPolicy" (default "IfNotPresent" $pullRaw) | trim }}
|
||||||
{{- $alwaysPull := eq $pullPolicy "Always" }}
|
{{- $alwaysPull := eq $pullPolicy "Always" }}
|
||||||
{{- $rollEpoch := now | unixEpoch | toString }}
|
{{- $rollEpoch := now | unixEpoch | toString }}
|
||||||
{{- $rollRev := $root.Release.Revision | toString }}
|
{{- $rollRev := $root.Release.Revision | toString }}
|
||||||
@ -16,6 +19,8 @@
|
|||||||
{{- $secretName := ternary $sf.existingSecret (printf "%s-%s-secrets" (include "certs-ui.fullname" $root) $compName) (ne ($sf.existingSecret | default "") "") }}
|
{{- $secretName := ternary $sf.existingSecret (printf "%s-%s-secrets" (include "certs-ui.fullname" $root) $compName) (ne ($sf.existingSecret | default "") "") }}
|
||||||
{{- $hasCm := or (ne ($cf.existingConfigMap | default "") "") (and $cf.key (hasKey $cf "content")) }}
|
{{- $hasCm := or (ne ($cf.existingConfigMap | default "") "") (and $cf.key (hasKey $cf "content")) }}
|
||||||
{{- $hasSecret := or (ne ($sf.existingSecret | default "") "") (and $sf.key (hasKey $sf "content")) }}
|
{{- $hasSecret := or (ne ($sf.existingSecret | default "") "") (and $sf.key (hasKey $sf "content")) }}
|
||||||
|
{{- $svc := default dict $comp.service }}
|
||||||
|
{{- $tgt := default 8080 $svc.targetPort }}
|
||||||
---
|
---
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
@ -53,8 +58,6 @@ spec:
|
|||||||
- name: {{ $compName }}
|
- name: {{ $compName }}
|
||||||
image: "{{ $comp.image.registry }}/{{ $comp.image.repository }}:{{ $imageTag }}"
|
image: "{{ $comp.image.registry }}/{{ $comp.image.repository }}:{{ $imageTag }}"
|
||||||
imagePullPolicy: {{ $pullPolicy }}
|
imagePullPolicy: {{ $pullPolicy }}
|
||||||
{{ $svc := default dict $comp.service }}
|
|
||||||
{{ $tgt := default 8080 $svc.targetPort }}
|
|
||||||
ports:
|
ports:
|
||||||
- name: http
|
- name: http
|
||||||
containerPort: {{ $tgt }}
|
containerPort: {{ $tgt }}
|
||||||
@ -65,6 +68,18 @@ spec:
|
|||||||
value: {{ .value | quote }}
|
value: {{ .value | quote }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- with $comp.livenessProbe }}
|
||||||
|
livenessProbe:
|
||||||
|
{{- toYaml . | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with $comp.readinessProbe }}
|
||||||
|
readinessProbe:
|
||||||
|
{{- toYaml . | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with $comp.resources }}
|
||||||
|
resources:
|
||||||
|
{{- toYaml . | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
{{- $p := default dict $comp.persistence -}}
|
{{- $p := default dict $comp.persistence -}}
|
||||||
{{- $vols := default (list) $p.volumes -}}
|
{{- $vols := default (list) $p.volumes -}}
|
||||||
{{- $hasVols := gt (len $vols) 0 -}}
|
{{- $hasVols := gt (len $vols) 0 -}}
|
||||||
|
|||||||
@ -1,10 +1,13 @@
|
|||||||
global:
|
global:
|
||||||
imagePullSecrets: []
|
imagePullSecrets: []
|
||||||
image:
|
image:
|
||||||
tag: "" # used if component image.tag is empty; else Chart appVersion
|
# Uncomment to override every component (global wins when set). Otherwise use each components.*.image.
|
||||||
# pullPolicy: always # optional; default IfNotPresent. Use always (any casing) for same-tag registry updates.
|
# No Chart.appVersion.
|
||||||
# rollme: "" # optional; when Always — fixed rollme; bump manually to roll
|
# tag: "latest"
|
||||||
# rolloutNonce: "" # optional; when Always — set per CI run (e.g. build id) if you apply frozen manifests (git-rendered YAML); changes rollme without re-helm timing
|
# pullPolicy: IfNotPresent
|
||||||
|
# Optional rollout tuning (see NOTES): pin a fixed pod annotation or add a nonce for frozen/git-rendered manifests.
|
||||||
|
# rollme: ""
|
||||||
|
# rolloutNonce: ""
|
||||||
|
|
||||||
nameOverride: ""
|
nameOverride: ""
|
||||||
fullnameOverride: ""
|
fullnameOverride: ""
|
||||||
@ -47,7 +50,8 @@ components:
|
|||||||
image:
|
image:
|
||||||
registry: cr.maks-it.com
|
registry: cr.maks-it.com
|
||||||
repository: certs-ui/server
|
repository: certs-ui/server
|
||||||
tag: ""
|
tag: latest
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
env:
|
env:
|
||||||
- name: ASPNETCORE_ENVIRONMENT
|
- name: ASPNETCORE_ENVIRONMENT
|
||||||
value: Production
|
value: Production
|
||||||
@ -143,7 +147,8 @@ components:
|
|||||||
image:
|
image:
|
||||||
registry: cr.maks-it.com
|
registry: cr.maks-it.com
|
||||||
repository: certs-ui/client
|
repository: certs-ui/client
|
||||||
tag: ""
|
tag: latest
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
service:
|
service:
|
||||||
enabled: true
|
enabled: true
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
@ -159,12 +164,24 @@ components:
|
|||||||
window.RUNTIME_CONFIG = {
|
window.RUNTIME_CONFIG = {
|
||||||
API_URL: {{ .Values.certsClientRuntime.apiUrl | toJson }}
|
API_URL: {{ .Values.certsClientRuntime.apiUrl | toJson }}
|
||||||
};
|
};
|
||||||
|
livenessProbe:
|
||||||
|
tcpSocket:
|
||||||
|
port: http
|
||||||
|
initialDelaySeconds: 10
|
||||||
|
periodSeconds: 10
|
||||||
|
readinessProbe:
|
||||||
|
tcpSocket:
|
||||||
|
port: http
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
periodSeconds: 5
|
||||||
|
resources: {}
|
||||||
|
|
||||||
reverseproxy:
|
reverseproxy:
|
||||||
image:
|
image:
|
||||||
registry: cr.maks-it.com
|
registry: cr.maks-it.com
|
||||||
repository: certs-ui/reverseproxy
|
repository: certs-ui/reverseproxy
|
||||||
tag: ""
|
tag: latest
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
env:
|
env:
|
||||||
- name: ASPNETCORE_ENVIRONMENT
|
- name: ASPNETCORE_ENVIRONMENT
|
||||||
value: Production
|
value: Production
|
||||||
@ -175,3 +192,14 @@ components:
|
|||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
port: 8080
|
port: 8080
|
||||||
targetPort: 8080
|
targetPort: 8080
|
||||||
|
livenessProbe:
|
||||||
|
tcpSocket:
|
||||||
|
port: http
|
||||||
|
initialDelaySeconds: 15
|
||||||
|
periodSeconds: 10
|
||||||
|
readinessProbe:
|
||||||
|
tcpSocket:
|
||||||
|
port: http
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
periodSeconds: 5
|
||||||
|
resources: {}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user