diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 40c1bc5..3676f36 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -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**). - 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 From the repository root: ```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. diff --git a/src/MaksIT.CertsUI.sln b/src/MaksIT.CertsUI.sln deleted file mode 100644 index 8c1e257..0000000 --- a/src/MaksIT.CertsUI.sln +++ /dev/null @@ -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 diff --git a/src/MaksIT.CertsUI.slnx b/src/MaksIT.CertsUI.slnx new file mode 100644 index 0000000..1b30467 --- /dev/null +++ b/src/MaksIT.CertsUI.slnx @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/MaksIT.WebUI/.env.prod b/src/MaksIT.WebUI/.env.prod index 9470eae..bc8d02d 100644 --- a/src/MaksIT.WebUI/.env.prod +++ b/src/MaksIT.WebUI/.env.prod @@ -1,4 +1,4 @@ VITE_APP_TITLE=MaksIT.CertsUI VITE_COMPANY=MaksIT VITE_COMPANY_URL=https://maks-it.com -VITE_API_URL=http://172.16.0.5:8080/api \ No newline at end of file +VITE_API_URL=http://localhost:8080/api \ No newline at end of file diff --git a/src/MaksIT.WebUI/public/config.js b/src/MaksIT.WebUI/public/config.js index 6e9b5f4..92c0e00 100644 --- a/src/MaksIT.WebUI/public/config.js +++ b/src/MaksIT.WebUI/public/config.js @@ -1,3 +1,3 @@ window.RUNTIME_CONFIG = { - API_URL: "http://172.16.0.5:8080/api" + API_URL: "http://localhost:8080/api" }; \ No newline at end of file diff --git a/src/docker-compose.override.yml b/src/docker-compose.override.yml index ef76fd0..acf3d8b 100644 --- a/src/docker-compose.override.yml +++ b/src/docker-compose.override.yml @@ -13,7 +13,6 @@ services: container_name: certs-ui-client environment: - ASPNETCORE_ENVIRONMENT=Development - - LETSENCRYPT_SERVER=http://localhost:8080 volumes: - ./MaksIT.WebUI:/app networks: diff --git a/src/helm/templates/NOTES.txt b/src/helm/templates/NOTES.txt index 3e0790c..36bd3bf 100644 --- a/src/helm/templates/NOTES.txt +++ b/src/helm/templates/NOTES.txt @@ -18,9 +18,9 @@ Port-forward API example: ------------------------------------------------------------ ## 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-`** 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. +Optional per workload under **`components.`**: **`livenessProbe`**, **`readinessProbe`**, **`resources`** (standard Kubernetes container fields). Omit a key to leave it unset. + ------------------------------------------------------------ ## Config diff --git a/src/helm/templates/_helpers.tpl b/src/helm/templates/_helpers.tpl index 86aeb4e..3f4533b 100644 --- a/src/helm/templates/_helpers.tpl +++ b/src/helm/templates/_helpers.tpl @@ -25,6 +25,7 @@ app.kubernetes.io/name: {{ include "certs-ui.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} helm.sh/chart: {{ include "certs-ui.chart" . }} +app.kubernetes.io/managed-by: {{ .Release.Service }} {{- end }} {{- /* Kubernetes imagePullPolicy; accepts common casing (always / IfNotPresent). */ -}} @@ -44,12 +45,15 @@ imagePullSecrets: {{- 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" -}} {{- $root := .root }} {{- $comp := .comp }} {{- $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 }} {{- define "certs-ui.podLabels" -}} diff --git a/src/helm/templates/deployments.yaml b/src/helm/templates/deployments.yaml index f291e82..a999228 100644 --- a/src/helm/templates/deployments.yaml +++ b/src/helm/templates/deployments.yaml @@ -1,8 +1,11 @@ {{- $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 }} {{- $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" }} {{- $rollEpoch := now | unixEpoch | 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 "") "") }} {{- $hasCm := or (ne ($cf.existingConfigMap | default "") "") (and $cf.key (hasKey $cf "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 kind: Deployment @@ -53,8 +58,6 @@ spec: - name: {{ $compName }} image: "{{ $comp.image.registry }}/{{ $comp.image.repository }}:{{ $imageTag }}" imagePullPolicy: {{ $pullPolicy }} - {{ $svc := default dict $comp.service }} - {{ $tgt := default 8080 $svc.targetPort }} ports: - name: http containerPort: {{ $tgt }} @@ -65,6 +68,18 @@ spec: value: {{ .value | quote }} {{- 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 -}} {{- $vols := default (list) $p.volumes -}} {{- $hasVols := gt (len $vols) 0 -}} diff --git a/src/helm/values.yaml b/src/helm/values.yaml index 37d3380..e7e3cb7 100644 --- a/src/helm/values.yaml +++ b/src/helm/values.yaml @@ -1,10 +1,13 @@ global: imagePullSecrets: [] image: - tag: "" # used if component image.tag is empty; else Chart appVersion - # pullPolicy: always # optional; default IfNotPresent. Use always (any casing) for same-tag registry updates. - # rollme: "" # optional; when Always — fixed rollme; bump manually to roll - # 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 + # Uncomment to override every component (global wins when set). Otherwise use each components.*.image. + # No Chart.appVersion. + # tag: "latest" + # pullPolicy: IfNotPresent + # Optional rollout tuning (see NOTES): pin a fixed pod annotation or add a nonce for frozen/git-rendered manifests. + # rollme: "" + # rolloutNonce: "" nameOverride: "" fullnameOverride: "" @@ -47,7 +50,8 @@ components: image: registry: cr.maks-it.com repository: certs-ui/server - tag: "" + tag: latest + pullPolicy: IfNotPresent env: - name: ASPNETCORE_ENVIRONMENT value: Production @@ -143,7 +147,8 @@ components: image: registry: cr.maks-it.com repository: certs-ui/client - tag: "" + tag: latest + pullPolicy: IfNotPresent service: enabled: true type: ClusterIP @@ -159,12 +164,24 @@ components: window.RUNTIME_CONFIG = { API_URL: {{ .Values.certsClientRuntime.apiUrl | toJson }} }; + livenessProbe: + tcpSocket: + port: http + initialDelaySeconds: 10 + periodSeconds: 10 + readinessProbe: + tcpSocket: + port: http + initialDelaySeconds: 5 + periodSeconds: 5 + resources: {} reverseproxy: image: registry: cr.maks-it.com repository: certs-ui/reverseproxy - tag: "" + tag: latest + pullPolicy: IfNotPresent env: - name: ASPNETCORE_ENVIRONMENT value: Production @@ -175,3 +192,14 @@ components: type: ClusterIP port: 8080 targetPort: 8080 + livenessProbe: + tcpSocket: + port: http + initialDelaySeconds: 15 + periodSeconds: 10 + readinessProbe: + tcpSocket: + port: http + initialDelaySeconds: 5 + periodSeconds: 5 + resources: {}