From 8ff793fead7255968a0d3737f6210a8f566eec0b Mon Sep 17 00:00:00 2001 From: fayz131 Date: Thu, 2 Apr 2026 15:58:49 +0300 Subject: [PATCH 01/12] Lab 10 Helm chart with hooks and documentation --- labs/lab10/k8s/HELM.md | 341 ++++++++++++++++++ .../lab10/k8s/devops-info-service/.helmignore | 23 ++ labs/lab10/k8s/devops-info-service/Chart.yaml | 18 + .../devops-info-service/templates/NOTES.txt | 10 + .../templates/_helpers.tpl | 43 +++ .../templates/deployment.yaml | 54 +++ .../templates/hooks/post-install-job.yaml | 27 ++ .../templates/hooks/pre-install-job.yaml | 27 ++ .../templates/service.yaml | 17 + .../k8s/devops-info-service/values-dev.yaml | 26 ++ .../k8s/devops-info-service/values-prod.yaml | 25 ++ .../lab10/k8s/devops-info-service/values.yaml | 50 +++ 12 files changed, 661 insertions(+) create mode 100644 labs/lab10/k8s/HELM.md create mode 100644 labs/lab10/k8s/devops-info-service/.helmignore create mode 100644 labs/lab10/k8s/devops-info-service/Chart.yaml create mode 100644 labs/lab10/k8s/devops-info-service/templates/NOTES.txt create mode 100644 labs/lab10/k8s/devops-info-service/templates/_helpers.tpl create mode 100644 labs/lab10/k8s/devops-info-service/templates/deployment.yaml create mode 100644 labs/lab10/k8s/devops-info-service/templates/hooks/post-install-job.yaml create mode 100644 labs/lab10/k8s/devops-info-service/templates/hooks/pre-install-job.yaml create mode 100644 labs/lab10/k8s/devops-info-service/templates/service.yaml create mode 100644 labs/lab10/k8s/devops-info-service/values-dev.yaml create mode 100644 labs/lab10/k8s/devops-info-service/values-prod.yaml create mode 100644 labs/lab10/k8s/devops-info-service/values.yaml diff --git a/labs/lab10/k8s/HELM.md b/labs/lab10/k8s/HELM.md new file mode 100644 index 0000000000..d460b20a21 --- /dev/null +++ b/labs/lab10/k8s/HELM.md @@ -0,0 +1,341 @@ +# Lab 10 — Helm Package Manager + +## Chart Overview + +This lab converts the Kubernetes manifests from Lab 09 into a reusable Helm chart for the `devops-info-service` application. + +The Helm chart packages the Kubernetes Deployment and Service into reusable templates with configurable values for different environments. + +Chart location: + +labs/lab10/k8s/devops-info-service/ + + +Chart structure: + +devops-info-service/ +├── Chart.yaml +├── values.yaml +├── values-dev.yaml +├── values-prod.yaml +└── templates/ +├── deployment.yaml +├── service.yaml +├── _helpers.tpl +├── NOTES.txt +└── hooks/ +├── pre-install-job.yaml +└── post-install-job.yaml + + +### Template files + +**deployment.yaml** +Defines the Kubernetes Deployment for the FastAPI application. +Uses values for replicas, image, resources, probes, and security context. + +**service.yaml** +Defines the Kubernetes Service that exposes the application. +Service type and ports are configurable through values. + +**_helpers.tpl** +Contains reusable Helm helper templates for: +- resource naming +- labels +- selectors + +This avoids duplication and follows DRY principles. + +**values.yaml** +Default configuration for the chart. + +**values-dev.yaml** +Overrides for development environment. + +**values-prod.yaml** +Overrides for production environment. + +**hooks/** +Contains Helm lifecycle hook Jobs. + +--- + +## Configuration Guide + +The chart is configurable through Helm values. + +### Replica configuration + +replicaCount + +Controls the number of application Pods. + +### Image configuration + +image.repository +image.tag +image.pullPolicy + + +Defines the Docker image used for the Deployment. + +### Service configuration + +service.type +service.port +service.targetPort +service.nodePort + + +Controls how the application is exposed. + +### Resource configuration + +resources.requests +resources.limits + + +Defines CPU and memory allocation for the container. + +### Health checks + +livenessProbe +readinessProbe + + +Both probes use the `/health` endpoint of the FastAPI application. + +### Security configuration + +securityContext.runAsNonRoot +securityContext.runAsUser +securityContext.allowPrivilegeEscalation + + +Ensures the container runs as a non-root user. + +--- + +## Multi-Environment Configuration + +Two environment configurations were created. + +### Development environment (values-dev.yaml) +- replicaCount: 1 +- Service type: NodePort +- lower resource limits +- faster probe timings +- suitable for local kind cluster + +Install dev environment: + +helm install dev-release . -f values-dev.yaml + + +### Production environment (values-prod.yaml) +- replicaCount: 3 +- Service type: LoadBalancer +- higher resource limits +- production probe timings + +Upgrade to production configuration: + +helm upgrade dev-release devops-info-service -f values-prod.yaml + + +--- + +## Hook Implementation + +Two Helm hooks were implemented. + +### Pre-install Hook + +File: + +templates/hooks/pre-install-job.yaml + + +Purpose: +Runs a validation job before installing the application. + +Hook annotations: + +helm.sh/hook: pre-install +helm.sh/hook-weight: -5 +helm.sh/hook-delete-policy: hook-succeeded + + +### Post-install Hook + +File: + +templates/hooks/post-install-job.yaml + + +Purpose: +Runs a smoke test job after installation. + +Hook annotations: + +helm.sh/hook: post-install +helm.sh/hook-weight: 5 +helm.sh/hook-delete-policy: hook-succeeded + + +### Hook execution order + +1. Pre-install hook runs first +2. Kubernetes resources are installed +3. Post-install hook runs after installation +4. Hook Jobs are deleted after successful execution + +--- + +## Installation Evidence + +### Helm installation + +helm version + + +### Repository exploration + +helm repo add prometheus-community https://prometheus-community.github.io/helm-charts + +helm repo update +helm search repo prometheus +helm show chart prometheus-community/prometheus +helm show values prometheus-community/prometheus + + +### Chart validation + +helm lint . +helm template mychart . +helm install --dry-run --debug test-release . + + +### Install release + +helm install dev-release . -f values-dev.yaml + + +### Verify resources + +helm list +kubectl get pods +kubectl get svc +kubectl get deployment + + +### Application test + +kubectl port-forward service/dev-release-devops-info-service 8080:80 +curl http://localhost:8080 + +curl http://localhost:8080/health + + +Both endpoints returned successful responses. + +--- + +## Operations + +### Install + +helm install dev-release . -f values-dev.yaml + + +### Upgrade to production + +helm upgrade dev-release . -f values-prod.yaml + + +### Release history + +helm history dev-release + + +### Rollback + +helm rollback dev-release 1 + + +### Uninstall + +helm uninstall dev-release + + +--- + +## Testing & Validation + +The chart was validated using: + +### Lint + +helm lint . + + +### Template rendering + +helm template . + + +### Dry-run installation + +helm install --dry-run --debug test-release . + + +### Runtime validation + +kubectl get pods +kubectl get svc +kubectl port-forward +curl / +curl /health + + +All tests passed successfully. + +--- + +## Challenges & Solutions + +### ImagePullBackOff +The kind cluster had intermittent connectivity issues to Docker Hub. + +Solution: +Retried deployment and verified image availability. + +### Security Context Issue +Kubernetes could not verify non-root execution because the image used a named user. + +Solution: +Added numeric UID: + +runAsNonRoot: true +runAsUser: 1000 + + +### Default Helm Templates +The initial chart included unnecessary templates such as httproute and ingress. + +Solution: +Removed unused templates and kept only required resources. + +--- + +## What I Learned + +In this lab I learned: + +- how Helm packages Kubernetes applications into reusable charts +- how to convert static manifests into Helm templates +- how to use values.yaml for configuration +- how to manage multiple environments using values files +- how Helm hooks work +- how to install, upgrade, rollback, and uninstall Helm releases +- how Helm simplifies Kubernetes application management diff --git a/labs/lab10/k8s/devops-info-service/.helmignore b/labs/lab10/k8s/devops-info-service/.helmignore new file mode 100644 index 0000000000..0e8a0eb36f --- /dev/null +++ b/labs/lab10/k8s/devops-info-service/.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/labs/lab10/k8s/devops-info-service/Chart.yaml b/labs/lab10/k8s/devops-info-service/Chart.yaml new file mode 100644 index 0000000000..ad4efa474e --- /dev/null +++ b/labs/lab10/k8s/devops-info-service/Chart.yaml @@ -0,0 +1,18 @@ +apiVersion: v2 +name: devops-info-service +description: Helm chart for the DevOps course FastAPI info service +type: application +version: 0.1.0 +appVersion: "1.0.0" + +keywords: + - fastapi + - python + - kubernetes + - helm + +maintainers: + - name: Fayzullin + +sources: + - https://github.com/inno-devops-labs/DevOps-Core-Course diff --git a/labs/lab10/k8s/devops-info-service/templates/NOTES.txt b/labs/lab10/k8s/devops-info-service/templates/NOTES.txt new file mode 100644 index 0000000000..cfd6d4d3bb --- /dev/null +++ b/labs/lab10/k8s/devops-info-service/templates/NOTES.txt @@ -0,0 +1,10 @@ +1. Get the application URL by running these commands: + +{{- if eq .Values.service.type "NodePort" }} + kubectl port-forward service/{{ include "devops-info-service.fullname" . }} 8080:{{ .Values.service.port }} + curl http://127.0.0.1:8080 +{{- else if eq .Values.service.type "LoadBalancer" }} + kubectl get svc {{ include "devops-info-service.fullname" . }} +{{- else }} + kubectl port-forward service/{{ include "devops-info-service.fullname" . }} 8080:{{ .Values.service.port }} +{{- end }} diff --git a/labs/lab10/k8s/devops-info-service/templates/_helpers.tpl b/labs/lab10/k8s/devops-info-service/templates/_helpers.tpl new file mode 100644 index 0000000000..65e0dc68bc --- /dev/null +++ b/labs/lab10/k8s/devops-info-service/templates/_helpers.tpl @@ -0,0 +1,43 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "devops-info-service.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +*/}} +{{- define "devops-info-service.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} + +{{/* +Chart name and version +*/}} +{{- define "devops-info-service.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "devops-info-service.labels" -}} +helm.sh/chart: {{ include "devops-info-service.chart" . }} +{{ include "devops-info-service.selectorLabels" . }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "devops-info-service.selectorLabels" -}} +app.kubernetes.io/name: {{ include "devops-info-service.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} diff --git a/labs/lab10/k8s/devops-info-service/templates/deployment.yaml b/labs/lab10/k8s/devops-info-service/templates/deployment.yaml new file mode 100644 index 0000000000..8c28093ddc --- /dev/null +++ b/labs/lab10/k8s/devops-info-service/templates/deployment.yaml @@ -0,0 +1,54 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "devops-info-service.fullname" . }} + labels: + {{- include "devops-info-service.labels" . | nindent 4 }} +spec: + replicas: {{ .Values.replicaCount }} + strategy: + type: RollingUpdate + rollingUpdate: + maxSurge: 1 + maxUnavailable: 0 + selector: + matchLabels: + {{- include "devops-info-service.selectorLabels" . | nindent 6 }} + template: + metadata: + labels: + {{- include "devops-info-service.selectorLabels" . | nindent 8 }} + spec: + securityContext: + {{- toYaml .Values.podSecurityContext | nindent 8 }} + containers: + - name: {{ .Chart.Name }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + ports: + - containerPort: {{ .Values.service.targetPort }} + protocol: TCP + resources: + {{- toYaml .Values.resources | nindent 12 }} + {{- if .Values.livenessProbe.enabled }} + livenessProbe: + httpGet: + path: {{ .Values.livenessProbe.httpGet.path }} + port: {{ .Values.livenessProbe.httpGet.port }} + initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.livenessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }} + failureThreshold: {{ .Values.livenessProbe.failureThreshold }} + {{- end }} + {{- if .Values.readinessProbe.enabled }} + readinessProbe: + httpGet: + path: {{ .Values.readinessProbe.httpGet.path }} + port: {{ .Values.readinessProbe.httpGet.port }} + initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.readinessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }} + failureThreshold: {{ .Values.readinessProbe.failureThreshold }} + {{- end }} diff --git a/labs/lab10/k8s/devops-info-service/templates/hooks/post-install-job.yaml b/labs/lab10/k8s/devops-info-service/templates/hooks/post-install-job.yaml new file mode 100644 index 0000000000..85b4f09777 --- /dev/null +++ b/labs/lab10/k8s/devops-info-service/templates/hooks/post-install-job.yaml @@ -0,0 +1,27 @@ +apiVersion: batch/v1 +kind: Job +metadata: + name: "{{ include "devops-info-service.fullname" . }}-post-install" + labels: + {{- include "devops-info-service.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": post-install + "helm.sh/hook-weight": "5" + "helm.sh/hook-delete-policy": hook-succeeded +spec: + template: + metadata: + name: "{{ include "devops-info-service.fullname" . }}-post-install" + spec: + restartPolicy: Never + containers: + - name: post-install-job + image: {{ .Values.hookJobs.image }} + imagePullPolicy: {{ .Values.hookJobs.pullPolicy }} + command: + - sh + - -c + - | + echo "Post-install smoke test started" + sleep 5 + echo "Post-install smoke test completed" diff --git a/labs/lab10/k8s/devops-info-service/templates/hooks/pre-install-job.yaml b/labs/lab10/k8s/devops-info-service/templates/hooks/pre-install-job.yaml new file mode 100644 index 0000000000..76695e8ed9 --- /dev/null +++ b/labs/lab10/k8s/devops-info-service/templates/hooks/pre-install-job.yaml @@ -0,0 +1,27 @@ +apiVersion: batch/v1 +kind: Job +metadata: + name: "{{ include "devops-info-service.fullname" . }}-pre-install" + labels: + {{- include "devops-info-service.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": pre-install + "helm.sh/hook-weight": "-5" + "helm.sh/hook-delete-policy": hook-succeeded +spec: + template: + metadata: + name: "{{ include "devops-info-service.fullname" . }}-pre-install" + spec: + restartPolicy: Never + containers: + - name: pre-install-job + image: {{ .Values.hookJobs.image }} + imagePullPolicy: {{ .Values.hookJobs.pullPolicy }} + command: + - sh + - -c + - | + echo "Pre-install validation started" + sleep 5 + echo "Pre-install validation completed" diff --git a/labs/lab10/k8s/devops-info-service/templates/service.yaml b/labs/lab10/k8s/devops-info-service/templates/service.yaml new file mode 100644 index 0000000000..ddb8e07756 --- /dev/null +++ b/labs/lab10/k8s/devops-info-service/templates/service.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "devops-info-service.fullname" . }} + labels: + {{- include "devops-info-service.labels" . | nindent 4 }} +spec: + type: {{ .Values.service.type }} + selector: + {{- include "devops-info-service.selectorLabels" . | nindent 4 }} + ports: + - protocol: TCP + port: {{ .Values.service.port }} + targetPort: {{ .Values.service.targetPort }} + {{- if eq .Values.service.type "NodePort" }} + nodePort: {{ .Values.service.nodePort }} + {{- end }} diff --git a/labs/lab10/k8s/devops-info-service/values-dev.yaml b/labs/lab10/k8s/devops-info-service/values-dev.yaml new file mode 100644 index 0000000000..27a7731343 --- /dev/null +++ b/labs/lab10/k8s/devops-info-service/values-dev.yaml @@ -0,0 +1,26 @@ +replicaCount: 1 + +image: + tag: "latest" + +service: + type: NodePort + port: 80 + targetPort: 5000 + nodePort: 30081 + +resources: + requests: + cpu: "50m" + memory: "64Mi" + limits: + cpu: "100m" + memory: "128Mi" + +livenessProbe: + initialDelaySeconds: 5 + periodSeconds: 10 + +readinessProbe: + initialDelaySeconds: 3 + periodSeconds: 5 diff --git a/labs/lab10/k8s/devops-info-service/values-prod.yaml b/labs/lab10/k8s/devops-info-service/values-prod.yaml new file mode 100644 index 0000000000..634150c7f3 --- /dev/null +++ b/labs/lab10/k8s/devops-info-service/values-prod.yaml @@ -0,0 +1,25 @@ +replicaCount: 3 + +image: + tag: "latest" + +service: + type: LoadBalancer + port: 80 + targetPort: 5000 + +resources: + requests: + cpu: "200m" + memory: "256Mi" + limits: + cpu: "500m" + memory: "512Mi" + +livenessProbe: + initialDelaySeconds: 20 + periodSeconds: 5 + +readinessProbe: + initialDelaySeconds: 10 + periodSeconds: 5 diff --git a/labs/lab10/k8s/devops-info-service/values.yaml b/labs/lab10/k8s/devops-info-service/values.yaml new file mode 100644 index 0000000000..544a71398a --- /dev/null +++ b/labs/lab10/k8s/devops-info-service/values.yaml @@ -0,0 +1,50 @@ +replicaCount: 3 + +nameOverride: "" +fullnameOverride: "" + +image: + repository: fayzullin/devops-info-service + tag: "latest" + pullPolicy: Always + +service: + type: NodePort + port: 80 + targetPort: 5000 + nodePort: 30080 + +resources: + requests: + cpu: "100m" + memory: "128Mi" + limits: + cpu: "200m" + memory: "256Mi" + +livenessProbe: + enabled: true + httpGet: + path: /health + port: 5000 + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 1 + failureThreshold: 3 + +readinessProbe: + enabled: true + httpGet: + path: /health + port: 5000 + initialDelaySeconds: 5 + periodSeconds: 5 + timeoutSeconds: 1 + failureThreshold: 3 + +hookJobs: + image: busybox + pullPolicy: IfNotPresent + +podSecurityContext: {} + From d5dcfeb441fd43cfad7f4e6f8bb8ff10c272902c Mon Sep 17 00:00:00 2001 From: fayz131 Date: Thu, 9 Apr 2026 15:21:38 +0300 Subject: [PATCH 02/12] Add Lab 11 Kubernetes secrets and Vault integration --- labs/lab11/k8s/SECRETS.md | 327 ++++++++++++++++++ .../lab11/k8s/devops-info-service/.helmignore | 23 ++ labs/lab11/k8s/devops-info-service/Chart.yaml | 18 + .../devops-info-service/templates/NOTES.txt | 10 + .../templates/_helpers.tpl | 54 +++ .../templates/deployment.yaml | 66 ++++ .../templates/hooks/post-install-job.yaml | 27 ++ .../templates/hooks/pre-install-job.yaml | 27 ++ .../templates/secrets.yaml | 12 + .../templates/service.yaml | 17 + .../templates/serviceaccount.yaml | 8 + .../k8s/devops-info-service/values-dev.yaml | 36 ++ .../k8s/devops-info-service/values-prod.yaml | 32 ++ .../lab11/k8s/devops-info-service/values.yaml | 65 ++++ 14 files changed, 722 insertions(+) create mode 100644 labs/lab11/k8s/SECRETS.md create mode 100644 labs/lab11/k8s/devops-info-service/.helmignore create mode 100644 labs/lab11/k8s/devops-info-service/Chart.yaml create mode 100644 labs/lab11/k8s/devops-info-service/templates/NOTES.txt create mode 100644 labs/lab11/k8s/devops-info-service/templates/_helpers.tpl create mode 100644 labs/lab11/k8s/devops-info-service/templates/deployment.yaml create mode 100644 labs/lab11/k8s/devops-info-service/templates/hooks/post-install-job.yaml create mode 100644 labs/lab11/k8s/devops-info-service/templates/hooks/pre-install-job.yaml create mode 100644 labs/lab11/k8s/devops-info-service/templates/secrets.yaml create mode 100644 labs/lab11/k8s/devops-info-service/templates/service.yaml create mode 100644 labs/lab11/k8s/devops-info-service/templates/serviceaccount.yaml create mode 100644 labs/lab11/k8s/devops-info-service/values-dev.yaml create mode 100644 labs/lab11/k8s/devops-info-service/values-prod.yaml create mode 100644 labs/lab11/k8s/devops-info-service/values.yaml diff --git a/labs/lab11/k8s/SECRETS.md b/labs/lab11/k8s/SECRETS.md new file mode 100644 index 0000000000..60306f19ee --- /dev/null +++ b/labs/lab11/k8s/SECRETS.md @@ -0,0 +1,327 @@ +# Lab 11 — Kubernetes Secrets & HashiCorp Vault + +## 1. Kubernetes Secrets + +### Secret creation with kubectl + +A Kubernetes Secret named `app-credentials` was created using the imperative command: + +```bash +kubectl create secret generic app-credentials \ + --from-literal=username=devuser \ + --from-literal=password=devpass123 +``` + +### Viewing the secret + +```bash +kubectl get secret app-credentials -o yaml +``` + +Example output: + +apiVersion: v1 +data: + password: ZGV2cGFzczEyMw== + username: ZGV2dXNlcg== +kind: Secret +metadata: + name: app-credentials +type: Opaque + +### Decoding the values + +```bash +echo "ZGV2dXNlcg==" | base64 -d +echo +echo "ZGV2cGFzczEyMw==" | base64 -d +echo +``` + +Decoded values: + +username = devuser +password = devpass123 + +### Base64 encoding vs encryption + +Kubernetes Secrets store values in base64-encoded format. +Base64 is only encoding, not encryption. + +This means: + +anyone with access to the Secret object can decode the values +Secrets are not automatically strongly protected just because they are stored as Secret resources +Security implications + +For production environments: + +RBAC should restrict access to Secrets +encryption at rest should be enabled for etcd +external secret managers such as Vault are recommended for stronger security + +## 2. Helm Secret Integration + +### Chart structure + +The Helm chart was extended with secret management: + +labs/lab11/k8s/devops-info-service/ +├── Chart.yaml +├── values.yaml +├── values-dev.yaml +├── values-prod.yaml +└── templates/ + ├── deployment.yaml + ├── service.yaml + ├── secrets.yaml + ├── serviceaccount.yaml + ├── _helpers.tpl + ├── NOTES.txt + └── hooks/ + +### Secret template + +A new template file was added: + +templates/secrets.yaml + +This template creates a Kubernetes Secret using values from Helm configuration. + +Secret values + +Secret values are defined in: + +values.yaml with placeholder defaults +values-dev.yaml with development values +values-prod.yaml with placeholder production values +Secret consumption in Deployment + +The Deployment consumes the Secret using: + +envFrom: + - secretRef: + name: + + +### Verification inside the pod + +The Helm release was installed: + +```bash +helm install secrets-release . -f values-dev.yaml +``` + +The created Secret: + +```bash +kubectl get secrets +``` + +Example output included: + +app-credentials +secrets-release-devops-info-service-secret + +Environment variables inside the pod were verified with: + +```bash +kubectl exec -it secrets-release-devops-info-service-7b8848dbcd-7vrb2 -- env | grep -i -E 'username|password' +``` + +Output: + +password=devpass123 +username=devuser + +### Pod description verification + +```bash +kubectl describe pod secrets-release-devops-info-service-7b8848dbcd-7vrb2 +``` + +The pod description showed: + +Environment Variables from: + secrets-release-devops-info-service-secret Secret Optional: false + +The actual secret values were not shown in kubectl describe pod, only the reference to the Secret. + +## 3. Resource Management + +### Configured resources + +The Deployment includes configurable CPU and memory requests/limits. + +Example configuration: + +resources: + requests: + cpu: "50m" + memory: "64Mi" + limits: + cpu: "100m" + memory: "128Mi" + +### Requests vs limits + +Requests define the minimum amount of CPU and memory required for scheduling +Limits define the maximum amount of CPU and memory the container is allowed to use + +### Choosing values + +For this lab: + +lower values were used in development for local cluster efficiency +the chart still follows Kubernetes resource management best practices +values remain configurable through Helm + +## 4. Vault Integration + +### Vault installation + +Vault was installed using Helm: + +```bash +helm repo add hashicorp https://helm.releases.hashicorp.com +helm repo update + +helm install vault hashicorp/vault \ + --set "server.dev.enabled=true" \ + --set "injector.enabled=true" +``` + +### Vault installation verification + +```bash +kubectl get pods +``` + +Relevant running resources: + +vault-0 +vault-agent-injector-... + +### Secret creation in Vault + +Inside the Vault pod, a secret was written to the KV path: + +```bash +vault kv put secret/devops-info-service/config username="vaultuser" password="vaultpass123" +``` + +### Kubernetes auth configuration + +Vault Kubernetes authentication was configured with: + +Kubernetes auth method +policy devops-info-service +role devops-info-service + +The role was bound to the application service account: + +vault-release-devops-info-service +Vault Agent injection + +Vault annotations were enabled in the Deployment template. + +Verified annotations from the pod: + +vault.hashicorp.com/agent-inject: true +vault.hashicorp.com/agent-inject-secret-config: secret/data/devops-info-service/config +vault.hashicorp.com/agent-inject-status: injected +vault.hashicorp.com/role: devops-info-service + + +### Sidecar injection pattern + +The injected pod contained: + +init container: vault-agent-init +application container: devops-info-service +sidecar container: vault-agent + +This demonstrates the Vault Agent sidecar injection pattern: + +the init container prepares authentication and secret rendering +the sidecar agent keeps Vault integration active +the application reads secrets from files mounted into the pod + +### Proof of secret injection + +Secrets were verified inside the pod: + +```bash +kubectl exec -it vault-release-devops-info-service-64db8d7688-xlnhp -c devops-info-service -- ls -R /vault/secrets +kubectl exec -it vault-release-devops-info-service-64db8d7688-xlnhp -c devops-info-service -- cat /vault/secrets +``` + +config + +Output: + +/vault/secrets: +config + +Rendered content: + +data: map[password:vaultpass123 username:vaultuser] +metadata: map[created_time:2026-04-09T08:46:08.785957176Z custom_metadata: deletion_time: destroyed:false version:1] + +This confirms that Vault successfully injected the application secret into the pod filesystem. + +## 5. Security Analysis + +### Kubernetes Secrets + +Advantages + +built into Kubernetes +easy to create and use +simple integration with pods via env vars or mounted volumes + +Disadvantages + +values are only base64-encoded +not strongly protected without etcd encryption at rest +secret lifecycle management is limited +not ideal for larger production environments +HashiCorp Vault + +Advantages + +centralized secret management +policy-based access control +Kubernetes authentication support +sidecar injection pattern for secret delivery +better production-oriented security model + +Disadvantages + +more complex to install and configure +additional operational overhead +requires extra components and maintenance +When to use each approach + +Use Kubernetes Secrets when: + +the application is simple +the environment is small +native Kubernetes integration is sufficient + +Use Vault when: + +stronger security controls are needed +multiple applications need centralized secret management +policy-based access control is required +production-grade secret handling is needed +Production recommendations + +For production environments: + +never commit real secrets to Git +use placeholder values in Helm files +enable etcd encryption at rest +restrict access to Secrets with RBAC +prefer Vault or another external secret manager for sensitive workloads +avoid using the default service account for Vault-authenticated workloads diff --git a/labs/lab11/k8s/devops-info-service/.helmignore b/labs/lab11/k8s/devops-info-service/.helmignore new file mode 100644 index 0000000000..0e8a0eb36f --- /dev/null +++ b/labs/lab11/k8s/devops-info-service/.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/labs/lab11/k8s/devops-info-service/Chart.yaml b/labs/lab11/k8s/devops-info-service/Chart.yaml new file mode 100644 index 0000000000..ad4efa474e --- /dev/null +++ b/labs/lab11/k8s/devops-info-service/Chart.yaml @@ -0,0 +1,18 @@ +apiVersion: v2 +name: devops-info-service +description: Helm chart for the DevOps course FastAPI info service +type: application +version: 0.1.0 +appVersion: "1.0.0" + +keywords: + - fastapi + - python + - kubernetes + - helm + +maintainers: + - name: Fayzullin + +sources: + - https://github.com/inno-devops-labs/DevOps-Core-Course diff --git a/labs/lab11/k8s/devops-info-service/templates/NOTES.txt b/labs/lab11/k8s/devops-info-service/templates/NOTES.txt new file mode 100644 index 0000000000..cfd6d4d3bb --- /dev/null +++ b/labs/lab11/k8s/devops-info-service/templates/NOTES.txt @@ -0,0 +1,10 @@ +1. Get the application URL by running these commands: + +{{- if eq .Values.service.type "NodePort" }} + kubectl port-forward service/{{ include "devops-info-service.fullname" . }} 8080:{{ .Values.service.port }} + curl http://127.0.0.1:8080 +{{- else if eq .Values.service.type "LoadBalancer" }} + kubectl get svc {{ include "devops-info-service.fullname" . }} +{{- else }} + kubectl port-forward service/{{ include "devops-info-service.fullname" . }} 8080:{{ .Values.service.port }} +{{- end }} diff --git a/labs/lab11/k8s/devops-info-service/templates/_helpers.tpl b/labs/lab11/k8s/devops-info-service/templates/_helpers.tpl new file mode 100644 index 0000000000..4fbef766cc --- /dev/null +++ b/labs/lab11/k8s/devops-info-service/templates/_helpers.tpl @@ -0,0 +1,54 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "devops-info-service.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +*/}} +{{- define "devops-info-service.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} + +{{/* +Chart name and version +*/}} +{{- define "devops-info-service.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "devops-info-service.labels" -}} +helm.sh/chart: {{ include "devops-info-service.chart" . }} +{{ include "devops-info-service.selectorLabels" . }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "devops-info-service.selectorLabels" -}} +app.kubernetes.io/name: {{ include "devops-info-service.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Service account name +*/}} +{{- define "devops-info-service.serviceAccountName" -}} +{{- if .Values.serviceAccount.name }} +{{- .Values.serviceAccount.name }} +{{- else }} +{{- include "devops-info-service.fullname" . }} +{{- end }} +{{- end }} diff --git a/labs/lab11/k8s/devops-info-service/templates/deployment.yaml b/labs/lab11/k8s/devops-info-service/templates/deployment.yaml new file mode 100644 index 0000000000..c16125d672 --- /dev/null +++ b/labs/lab11/k8s/devops-info-service/templates/deployment.yaml @@ -0,0 +1,66 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "devops-info-service.fullname" . }} + labels: + {{- include "devops-info-service.labels" . | nindent 4 }} +spec: + replicas: {{ .Values.replicaCount }} + strategy: + type: RollingUpdate + rollingUpdate: + maxSurge: 1 + maxUnavailable: 0 + selector: + matchLabels: + {{- include "devops-info-service.selectorLabels" . | nindent 6 }} + template: + metadata: + labels: + {{- include "devops-info-service.selectorLabels" . | nindent 8 }} + {{- if .Values.vault.enabled }} + annotations: + vault.hashicorp.com/agent-inject: "true" + vault.hashicorp.com/role: {{ .Values.vault.role | quote }} + vault.hashicorp.com/agent-inject-secret-{{ .Values.vault.injectFileName }}: {{ .Values.vault.secretPath | quote }} + {{- end }} + spec: + serviceAccountName: {{ include "devops-info-service.serviceAccountName" . }} + securityContext: + {{- toYaml .Values.podSecurityContext | nindent 8 }} + containers: + - name: {{ .Chart.Name }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + ports: + - containerPort: {{ .Values.service.targetPort }} + protocol: TCP + resources: + {{- toYaml .Values.resources | nindent 12 }} + {{- if .Values.secret.enabled }} + envFrom: + - secretRef: + name: {{ include "devops-info-service.fullname" . }}-{{ .Values.secret.nameSuffix }} + {{- end }} + {{- if .Values.livenessProbe.enabled }} + livenessProbe: + httpGet: + path: {{ .Values.livenessProbe.httpGet.path }} + port: {{ .Values.livenessProbe.httpGet.port }} + initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.livenessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }} + failureThreshold: {{ .Values.livenessProbe.failureThreshold }} + {{- end }} + {{- if .Values.readinessProbe.enabled }} + readinessProbe: + httpGet: + path: {{ .Values.readinessProbe.httpGet.path }} + port: {{ .Values.readinessProbe.httpGet.port }} + initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.readinessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }} + failureThreshold: {{ .Values.readinessProbe.failureThreshold }} + {{- end }} diff --git a/labs/lab11/k8s/devops-info-service/templates/hooks/post-install-job.yaml b/labs/lab11/k8s/devops-info-service/templates/hooks/post-install-job.yaml new file mode 100644 index 0000000000..85b4f09777 --- /dev/null +++ b/labs/lab11/k8s/devops-info-service/templates/hooks/post-install-job.yaml @@ -0,0 +1,27 @@ +apiVersion: batch/v1 +kind: Job +metadata: + name: "{{ include "devops-info-service.fullname" . }}-post-install" + labels: + {{- include "devops-info-service.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": post-install + "helm.sh/hook-weight": "5" + "helm.sh/hook-delete-policy": hook-succeeded +spec: + template: + metadata: + name: "{{ include "devops-info-service.fullname" . }}-post-install" + spec: + restartPolicy: Never + containers: + - name: post-install-job + image: {{ .Values.hookJobs.image }} + imagePullPolicy: {{ .Values.hookJobs.pullPolicy }} + command: + - sh + - -c + - | + echo "Post-install smoke test started" + sleep 5 + echo "Post-install smoke test completed" diff --git a/labs/lab11/k8s/devops-info-service/templates/hooks/pre-install-job.yaml b/labs/lab11/k8s/devops-info-service/templates/hooks/pre-install-job.yaml new file mode 100644 index 0000000000..76695e8ed9 --- /dev/null +++ b/labs/lab11/k8s/devops-info-service/templates/hooks/pre-install-job.yaml @@ -0,0 +1,27 @@ +apiVersion: batch/v1 +kind: Job +metadata: + name: "{{ include "devops-info-service.fullname" . }}-pre-install" + labels: + {{- include "devops-info-service.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": pre-install + "helm.sh/hook-weight": "-5" + "helm.sh/hook-delete-policy": hook-succeeded +spec: + template: + metadata: + name: "{{ include "devops-info-service.fullname" . }}-pre-install" + spec: + restartPolicy: Never + containers: + - name: pre-install-job + image: {{ .Values.hookJobs.image }} + imagePullPolicy: {{ .Values.hookJobs.pullPolicy }} + command: + - sh + - -c + - | + echo "Pre-install validation started" + sleep 5 + echo "Pre-install validation completed" diff --git a/labs/lab11/k8s/devops-info-service/templates/secrets.yaml b/labs/lab11/k8s/devops-info-service/templates/secrets.yaml new file mode 100644 index 0000000000..8bf4e1d833 --- /dev/null +++ b/labs/lab11/k8s/devops-info-service/templates/secrets.yaml @@ -0,0 +1,12 @@ +{{- if .Values.secret.enabled }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "devops-info-service.fullname" . }}-{{ .Values.secret.nameSuffix }} + labels: + {{- include "devops-info-service.labels" . | nindent 4 }} +type: Opaque +stringData: + username: {{ .Values.secret.username | quote }} + password: {{ .Values.secret.password | quote }} +{{- end }} diff --git a/labs/lab11/k8s/devops-info-service/templates/service.yaml b/labs/lab11/k8s/devops-info-service/templates/service.yaml new file mode 100644 index 0000000000..ddb8e07756 --- /dev/null +++ b/labs/lab11/k8s/devops-info-service/templates/service.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "devops-info-service.fullname" . }} + labels: + {{- include "devops-info-service.labels" . | nindent 4 }} +spec: + type: {{ .Values.service.type }} + selector: + {{- include "devops-info-service.selectorLabels" . | nindent 4 }} + ports: + - protocol: TCP + port: {{ .Values.service.port }} + targetPort: {{ .Values.service.targetPort }} + {{- if eq .Values.service.type "NodePort" }} + nodePort: {{ .Values.service.nodePort }} + {{- end }} diff --git a/labs/lab11/k8s/devops-info-service/templates/serviceaccount.yaml b/labs/lab11/k8s/devops-info-service/templates/serviceaccount.yaml new file mode 100644 index 0000000000..10279cd57d --- /dev/null +++ b/labs/lab11/k8s/devops-info-service/templates/serviceaccount.yaml @@ -0,0 +1,8 @@ +{{- if .Values.serviceAccount.create }} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "devops-info-service.serviceAccountName" . }} + labels: + {{- include "devops-info-service.labels" . | nindent 4 }} +{{- end }} diff --git a/labs/lab11/k8s/devops-info-service/values-dev.yaml b/labs/lab11/k8s/devops-info-service/values-dev.yaml new file mode 100644 index 0000000000..e58a79851a --- /dev/null +++ b/labs/lab11/k8s/devops-info-service/values-dev.yaml @@ -0,0 +1,36 @@ +replicaCount: 1 + +image: + tag: "latest" + +service: + type: NodePort + port: 80 + targetPort: 5000 + nodePort: 30081 + +resources: + requests: + cpu: "50m" + memory: "64Mi" + limits: + cpu: "100m" + memory: "128Mi" + +livenessProbe: + initialDelaySeconds: 5 + periodSeconds: 10 + +readinessProbe: + initialDelaySeconds: 3 + periodSeconds: 5 + +secret: + username: "devuser" + password: "devpass123" + +vault: + enabled: true + role: "devops-info-service" + secretPath: "secret/data/devops-info-service/config" + injectFileName: "config" diff --git a/labs/lab11/k8s/devops-info-service/values-prod.yaml b/labs/lab11/k8s/devops-info-service/values-prod.yaml new file mode 100644 index 0000000000..d0893ff843 --- /dev/null +++ b/labs/lab11/k8s/devops-info-service/values-prod.yaml @@ -0,0 +1,32 @@ +replicaCount: 3 + +image: + tag: "latest" + +service: + type: LoadBalancer + port: 80 + targetPort: 5000 + +resources: + requests: + cpu: "200m" + memory: "256Mi" + limits: + cpu: "500m" + memory: "512Mi" + +livenessProbe: + initialDelaySeconds: 20 + periodSeconds: 5 + +readinessProbe: + initialDelaySeconds: 10 + periodSeconds: 5 + +secret: + username: "prod-placeholder-user" + password: "prod-placeholder-password" + +vault: + enabled: false diff --git a/labs/lab11/k8s/devops-info-service/values.yaml b/labs/lab11/k8s/devops-info-service/values.yaml new file mode 100644 index 0000000000..b3defdeb4d --- /dev/null +++ b/labs/lab11/k8s/devops-info-service/values.yaml @@ -0,0 +1,65 @@ +replicaCount: 3 + +nameOverride: "" +fullnameOverride: "" + +image: + repository: fayzullin/devops-info-service + tag: "latest" + pullPolicy: Always + +service: + type: NodePort + port: 80 + targetPort: 5000 + nodePort: 30080 + +resources: + requests: + cpu: "100m" + memory: "128Mi" + limits: + cpu: "200m" + memory: "256Mi" + +livenessProbe: + enabled: true + httpGet: + path: /health + port: 5000 + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 1 + failureThreshold: 3 + +readinessProbe: + enabled: true + httpGet: + path: /health + port: 5000 + initialDelaySeconds: 5 + periodSeconds: 5 + timeoutSeconds: 1 + failureThreshold: 3 + +hookJobs: + image: busybox + pullPolicy: IfNotPresent + +podSecurityContext: {} + +secret: + enabled: true + nameSuffix: secret + username: "placeholder-user" + password: "placeholder-password" + +serviceAccount: + create: true + name: "" + +vault: + enabled: false + role: "devops-info-service" + secretPath: "secret/data/devops-info-service/config" + injectFileName: "config" From 3549c8dbd845c07978739d1a186f4f8f64dfad60 Mon Sep 17 00:00:00 2001 From: fayz131 Date: Thu, 16 Apr 2026 23:20:26 +0300 Subject: [PATCH 03/12] lab12: configmaps and pvc --- labs/lab12/k8s/CONFIGMAPS.md | 126 ++++++++++++++++++ .../lab12/k8s/devops-info-service/.helmignore | 23 ++++ labs/lab12/k8s/devops-info-service/Chart.yaml | 18 +++ .../k8s/devops-info-service/files/config.json | 5 + .../devops-info-service/templates/NOTES.txt | 10 ++ .../templates/_helpers.tpl | 54 ++++++++ .../templates/configmap-env.yaml | 9 ++ .../templates/configmap.yaml | 9 ++ .../templates/deployment.yaml | 80 +++++++++++ .../templates/hooks/post-install-job.yaml | 27 ++++ .../templates/hooks/pre-install-job.yaml | 27 ++++ .../devops-info-service/templates/pvc.yaml | 17 +++ .../templates/secrets.yaml | 12 ++ .../templates/service.yaml | 17 +++ .../templates/serviceaccount.yaml | 8 ++ .../k8s/devops-info-service/values-dev.yaml | 39 ++++++ .../k8s/devops-info-service/values-prod.yaml | 35 +++++ .../lab12/k8s/devops-info-service/values.yaml | 73 ++++++++++ 18 files changed, 589 insertions(+) create mode 100644 labs/lab12/k8s/CONFIGMAPS.md create mode 100644 labs/lab12/k8s/devops-info-service/.helmignore create mode 100644 labs/lab12/k8s/devops-info-service/Chart.yaml create mode 100644 labs/lab12/k8s/devops-info-service/files/config.json create mode 100644 labs/lab12/k8s/devops-info-service/templates/NOTES.txt create mode 100644 labs/lab12/k8s/devops-info-service/templates/_helpers.tpl create mode 100644 labs/lab12/k8s/devops-info-service/templates/configmap-env.yaml create mode 100644 labs/lab12/k8s/devops-info-service/templates/configmap.yaml create mode 100644 labs/lab12/k8s/devops-info-service/templates/deployment.yaml create mode 100644 labs/lab12/k8s/devops-info-service/templates/hooks/post-install-job.yaml create mode 100644 labs/lab12/k8s/devops-info-service/templates/hooks/pre-install-job.yaml create mode 100644 labs/lab12/k8s/devops-info-service/templates/pvc.yaml create mode 100644 labs/lab12/k8s/devops-info-service/templates/secrets.yaml create mode 100644 labs/lab12/k8s/devops-info-service/templates/service.yaml create mode 100644 labs/lab12/k8s/devops-info-service/templates/serviceaccount.yaml create mode 100644 labs/lab12/k8s/devops-info-service/values-dev.yaml create mode 100644 labs/lab12/k8s/devops-info-service/values-prod.yaml create mode 100644 labs/lab12/k8s/devops-info-service/values.yaml diff --git a/labs/lab12/k8s/CONFIGMAPS.md b/labs/lab12/k8s/CONFIGMAPS.md new file mode 100644 index 0000000000..85f9e41fee --- /dev/null +++ b/labs/lab12/k8s/CONFIGMAPS.md @@ -0,0 +1,126 @@ +# Lab 12 — ConfigMaps & Persistent Volumes + +## 1. Application Changes + +The application was updated to support a persistent visits counter. + +### Changes: +- A visits counter is stored in `/data/visits` +- Each request to `/` increments the counter +- A new endpoint `/visits` returns the current counter +- The file is read on startup (default = 0 if not exists) + +### Endpoints: +- `GET /` — increments visits counter +- `GET /visits` — returns current visits count + +### Local Docker Test + +```bash +docker run --rm -p 5000:5000 -v "$(pwd)/data:/data" fayzullin/devops-info-service:latest +``` + +### Verification: + +Counter increased after requests +Value persisted after container restart + +## 2. ConfigMap Implementation +File-based ConfigMap + +Config file: + +{ + "appName": "devops-info-service", + "environment": "dev", + "featureFlag": true +} + +Mounted inside pod: + +```bash +kubectl exec -it -- cat /config/config.json +``` + +Output: + +{ + "appName": "devops-info-service", + "environment": "dev", + "featureFlag": true +} +Environment Variables via ConfigMap +kubectl exec -it -- printenv | grep APP_ +kubectl exec -it -- printenv | grep LOG_LEVEL + +Output: + +APP_ENV=dev +LOG_LEVEL=debug + +## 3. Persistent Volume + +### PVC + +```bash +kubectl get pvc +``` + +Output: + +lab12-release-devops-info-service-data Bound 100Mi RWO +Volume Mount + +PVC is mounted at: + +/data +Persistence Verification + +Before pod restart: + +cat /data/visits + +Output: + +2 + +After pod recreation: + +kubectl delete pod +kubectl get pods +kubectl exec -it -- cat /data/visits + +Output: + +2 + +After new request: + +curl localhost:8080/visits + +Output: + +{"visits":3} + +✅ Data persisted across pod restart + +## 4. ConfigMap vs Secret +ConfigMap Secret +Non-sensitive data Sensitive data +App config Passwords, tokens +Plain text Base64 encoded +Example: APP_ENV Example: DB_PASSWORD + +## 5. Summary + +In this lab: + +ConfigMaps were used for configuration (file + env vars) +PersistentVolumeClaim was used for data storage +Application data persisted across pod restarts +/visits endpoint confirmed correct behavior + +The application is now production-ready with: + +externalized configuration +persistent storage diff --git a/labs/lab12/k8s/devops-info-service/.helmignore b/labs/lab12/k8s/devops-info-service/.helmignore new file mode 100644 index 0000000000..0e8a0eb36f --- /dev/null +++ b/labs/lab12/k8s/devops-info-service/.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/labs/lab12/k8s/devops-info-service/Chart.yaml b/labs/lab12/k8s/devops-info-service/Chart.yaml new file mode 100644 index 0000000000..ad4efa474e --- /dev/null +++ b/labs/lab12/k8s/devops-info-service/Chart.yaml @@ -0,0 +1,18 @@ +apiVersion: v2 +name: devops-info-service +description: Helm chart for the DevOps course FastAPI info service +type: application +version: 0.1.0 +appVersion: "1.0.0" + +keywords: + - fastapi + - python + - kubernetes + - helm + +maintainers: + - name: Fayzullin + +sources: + - https://github.com/inno-devops-labs/DevOps-Core-Course diff --git a/labs/lab12/k8s/devops-info-service/files/config.json b/labs/lab12/k8s/devops-info-service/files/config.json new file mode 100644 index 0000000000..6c5b067a26 --- /dev/null +++ b/labs/lab12/k8s/devops-info-service/files/config.json @@ -0,0 +1,5 @@ +{ + "appName": "devops-info-service", + "environment": "dev", + "featureFlag": true +} diff --git a/labs/lab12/k8s/devops-info-service/templates/NOTES.txt b/labs/lab12/k8s/devops-info-service/templates/NOTES.txt new file mode 100644 index 0000000000..cfd6d4d3bb --- /dev/null +++ b/labs/lab12/k8s/devops-info-service/templates/NOTES.txt @@ -0,0 +1,10 @@ +1. Get the application URL by running these commands: + +{{- if eq .Values.service.type "NodePort" }} + kubectl port-forward service/{{ include "devops-info-service.fullname" . }} 8080:{{ .Values.service.port }} + curl http://127.0.0.1:8080 +{{- else if eq .Values.service.type "LoadBalancer" }} + kubectl get svc {{ include "devops-info-service.fullname" . }} +{{- else }} + kubectl port-forward service/{{ include "devops-info-service.fullname" . }} 8080:{{ .Values.service.port }} +{{- end }} diff --git a/labs/lab12/k8s/devops-info-service/templates/_helpers.tpl b/labs/lab12/k8s/devops-info-service/templates/_helpers.tpl new file mode 100644 index 0000000000..4fbef766cc --- /dev/null +++ b/labs/lab12/k8s/devops-info-service/templates/_helpers.tpl @@ -0,0 +1,54 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "devops-info-service.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +*/}} +{{- define "devops-info-service.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} + +{{/* +Chart name and version +*/}} +{{- define "devops-info-service.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "devops-info-service.labels" -}} +helm.sh/chart: {{ include "devops-info-service.chart" . }} +{{ include "devops-info-service.selectorLabels" . }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "devops-info-service.selectorLabels" -}} +app.kubernetes.io/name: {{ include "devops-info-service.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Service account name +*/}} +{{- define "devops-info-service.serviceAccountName" -}} +{{- if .Values.serviceAccount.name }} +{{- .Values.serviceAccount.name }} +{{- else }} +{{- include "devops-info-service.fullname" . }} +{{- end }} +{{- end }} diff --git a/labs/lab12/k8s/devops-info-service/templates/configmap-env.yaml b/labs/lab12/k8s/devops-info-service/templates/configmap-env.yaml new file mode 100644 index 0000000000..6d2e9a8e42 --- /dev/null +++ b/labs/lab12/k8s/devops-info-service/templates/configmap-env.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "devops-info-service.fullname" . }}-env + labels: + {{- include "devops-info-service.labels" . | nindent 4 }} +data: + APP_ENV: {{ .Values.environment | quote }} + LOG_LEVEL: {{ .Values.logLevel | quote }} diff --git a/labs/lab12/k8s/devops-info-service/templates/configmap.yaml b/labs/lab12/k8s/devops-info-service/templates/configmap.yaml new file mode 100644 index 0000000000..03dbfb3109 --- /dev/null +++ b/labs/lab12/k8s/devops-info-service/templates/configmap.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "devops-info-service.fullname" . }}-config + labels: + {{- include "devops-info-service.labels" . | nindent 4 }} +data: + config.json: |- +{{ .Files.Get "files/config.json" | indent 4 }} diff --git a/labs/lab12/k8s/devops-info-service/templates/deployment.yaml b/labs/lab12/k8s/devops-info-service/templates/deployment.yaml new file mode 100644 index 0000000000..a8b777aa1e --- /dev/null +++ b/labs/lab12/k8s/devops-info-service/templates/deployment.yaml @@ -0,0 +1,80 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "devops-info-service.fullname" . }} + labels: + {{- include "devops-info-service.labels" . | nindent 4 }} +spec: + replicas: {{ .Values.replicaCount }} + strategy: + type: RollingUpdate + rollingUpdate: + maxSurge: 1 + maxUnavailable: 0 + selector: + matchLabels: + {{- include "devops-info-service.selectorLabels" . | nindent 6 }} + template: + metadata: + labels: + {{- include "devops-info-service.selectorLabels" . | nindent 8 }} + {{- if .Values.vault.enabled }} + annotations: + vault.hashicorp.com/agent-inject: "true" + vault.hashicorp.com/role: {{ .Values.vault.role | quote }} + vault.hashicorp.com/agent-inject-secret-{{ .Values.vault.injectFileName }}: {{ .Values.vault.secretPath | quote }} + {{- end }} + spec: + serviceAccountName: {{ include "devops-info-service.serviceAccountName" . }} + securityContext: + {{- toYaml .Values.podSecurityContext | nindent 8 }} + volumes: + - name: config-volume + configMap: + name: {{ include "devops-info-service.fullname" . }}-config + - name: data-volume + persistentVolumeClaim: + claimName: {{ include "devops-info-service.fullname" . }}-data + containers: + - name: {{ .Chart.Name }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + ports: + - containerPort: {{ .Values.service.targetPort }} + protocol: TCP + resources: + {{- toYaml .Values.resources | nindent 12 }} + envFrom: + - configMapRef: + name: {{ include "devops-info-service.fullname" . }}-env + {{- if .Values.secret.enabled }} + - secretRef: + name: {{ include "devops-info-service.fullname" . }}-{{ .Values.secret.nameSuffix }} + {{- end }} + volumeMounts: + - name: config-volume + mountPath: /config + - name: data-volume + mountPath: /data + {{- if .Values.livenessProbe.enabled }} + livenessProbe: + httpGet: + path: {{ .Values.livenessProbe.httpGet.path }} + port: {{ .Values.livenessProbe.httpGet.port }} + initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.livenessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }} + failureThreshold: {{ .Values.livenessProbe.failureThreshold }} + {{- end }} + {{- if .Values.readinessProbe.enabled }} + readinessProbe: + httpGet: + path: {{ .Values.readinessProbe.httpGet.path }} + port: {{ .Values.readinessProbe.httpGet.port }} + initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.readinessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }} + failureThreshold: {{ .Values.readinessProbe.failureThreshold }} + {{- end }} diff --git a/labs/lab12/k8s/devops-info-service/templates/hooks/post-install-job.yaml b/labs/lab12/k8s/devops-info-service/templates/hooks/post-install-job.yaml new file mode 100644 index 0000000000..85b4f09777 --- /dev/null +++ b/labs/lab12/k8s/devops-info-service/templates/hooks/post-install-job.yaml @@ -0,0 +1,27 @@ +apiVersion: batch/v1 +kind: Job +metadata: + name: "{{ include "devops-info-service.fullname" . }}-post-install" + labels: + {{- include "devops-info-service.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": post-install + "helm.sh/hook-weight": "5" + "helm.sh/hook-delete-policy": hook-succeeded +spec: + template: + metadata: + name: "{{ include "devops-info-service.fullname" . }}-post-install" + spec: + restartPolicy: Never + containers: + - name: post-install-job + image: {{ .Values.hookJobs.image }} + imagePullPolicy: {{ .Values.hookJobs.pullPolicy }} + command: + - sh + - -c + - | + echo "Post-install smoke test started" + sleep 5 + echo "Post-install smoke test completed" diff --git a/labs/lab12/k8s/devops-info-service/templates/hooks/pre-install-job.yaml b/labs/lab12/k8s/devops-info-service/templates/hooks/pre-install-job.yaml new file mode 100644 index 0000000000..76695e8ed9 --- /dev/null +++ b/labs/lab12/k8s/devops-info-service/templates/hooks/pre-install-job.yaml @@ -0,0 +1,27 @@ +apiVersion: batch/v1 +kind: Job +metadata: + name: "{{ include "devops-info-service.fullname" . }}-pre-install" + labels: + {{- include "devops-info-service.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": pre-install + "helm.sh/hook-weight": "-5" + "helm.sh/hook-delete-policy": hook-succeeded +spec: + template: + metadata: + name: "{{ include "devops-info-service.fullname" . }}-pre-install" + spec: + restartPolicy: Never + containers: + - name: pre-install-job + image: {{ .Values.hookJobs.image }} + imagePullPolicy: {{ .Values.hookJobs.pullPolicy }} + command: + - sh + - -c + - | + echo "Pre-install validation started" + sleep 5 + echo "Pre-install validation completed" diff --git a/labs/lab12/k8s/devops-info-service/templates/pvc.yaml b/labs/lab12/k8s/devops-info-service/templates/pvc.yaml new file mode 100644 index 0000000000..862717f000 --- /dev/null +++ b/labs/lab12/k8s/devops-info-service/templates/pvc.yaml @@ -0,0 +1,17 @@ +{{- if .Values.persistence.enabled }} +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ include "devops-info-service.fullname" . }}-data + labels: + {{- include "devops-info-service.labels" . | nindent 4 }} +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: {{ .Values.persistence.size }} + {{- if .Values.persistence.storageClass }} + storageClassName: {{ .Values.persistence.storageClass | quote }} + {{- end }} +{{- end }} diff --git a/labs/lab12/k8s/devops-info-service/templates/secrets.yaml b/labs/lab12/k8s/devops-info-service/templates/secrets.yaml new file mode 100644 index 0000000000..8bf4e1d833 --- /dev/null +++ b/labs/lab12/k8s/devops-info-service/templates/secrets.yaml @@ -0,0 +1,12 @@ +{{- if .Values.secret.enabled }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "devops-info-service.fullname" . }}-{{ .Values.secret.nameSuffix }} + labels: + {{- include "devops-info-service.labels" . | nindent 4 }} +type: Opaque +stringData: + username: {{ .Values.secret.username | quote }} + password: {{ .Values.secret.password | quote }} +{{- end }} diff --git a/labs/lab12/k8s/devops-info-service/templates/service.yaml b/labs/lab12/k8s/devops-info-service/templates/service.yaml new file mode 100644 index 0000000000..ddb8e07756 --- /dev/null +++ b/labs/lab12/k8s/devops-info-service/templates/service.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "devops-info-service.fullname" . }} + labels: + {{- include "devops-info-service.labels" . | nindent 4 }} +spec: + type: {{ .Values.service.type }} + selector: + {{- include "devops-info-service.selectorLabels" . | nindent 4 }} + ports: + - protocol: TCP + port: {{ .Values.service.port }} + targetPort: {{ .Values.service.targetPort }} + {{- if eq .Values.service.type "NodePort" }} + nodePort: {{ .Values.service.nodePort }} + {{- end }} diff --git a/labs/lab12/k8s/devops-info-service/templates/serviceaccount.yaml b/labs/lab12/k8s/devops-info-service/templates/serviceaccount.yaml new file mode 100644 index 0000000000..10279cd57d --- /dev/null +++ b/labs/lab12/k8s/devops-info-service/templates/serviceaccount.yaml @@ -0,0 +1,8 @@ +{{- if .Values.serviceAccount.create }} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "devops-info-service.serviceAccountName" . }} + labels: + {{- include "devops-info-service.labels" . | nindent 4 }} +{{- end }} diff --git a/labs/lab12/k8s/devops-info-service/values-dev.yaml b/labs/lab12/k8s/devops-info-service/values-dev.yaml new file mode 100644 index 0000000000..7a69be080f --- /dev/null +++ b/labs/lab12/k8s/devops-info-service/values-dev.yaml @@ -0,0 +1,39 @@ +replicaCount: 1 + +image: + tag: "latest" + +service: + type: NodePort + port: 80 + targetPort: 5000 + nodePort: 30081 + +resources: + requests: + cpu: "50m" + memory: "64Mi" + limits: + cpu: "100m" + memory: "128Mi" + +livenessProbe: + initialDelaySeconds: 5 + periodSeconds: 10 + +readinessProbe: + initialDelaySeconds: 3 + periodSeconds: 5 + +secret: + username: "devuser" + password: "devpass123" + +vault: + enabled: true + role: "devops-info-service" + secretPath: "secret/data/devops-info-service/config" + injectFileName: "config" + +environment: "dev" +logLevel: "debug" diff --git a/labs/lab12/k8s/devops-info-service/values-prod.yaml b/labs/lab12/k8s/devops-info-service/values-prod.yaml new file mode 100644 index 0000000000..9ad7c2972f --- /dev/null +++ b/labs/lab12/k8s/devops-info-service/values-prod.yaml @@ -0,0 +1,35 @@ +replicaCount: 3 + +image: + tag: "latest" + +service: + type: LoadBalancer + port: 80 + targetPort: 5000 + +resources: + requests: + cpu: "200m" + memory: "256Mi" + limits: + cpu: "500m" + memory: "512Mi" + +livenessProbe: + initialDelaySeconds: 20 + periodSeconds: 5 + +readinessProbe: + initialDelaySeconds: 10 + periodSeconds: 5 + +secret: + username: "prod-placeholder-user" + password: "prod-placeholder-password" + +vault: + enabled: false + +environment: "prod" +logLevel: "info" diff --git a/labs/lab12/k8s/devops-info-service/values.yaml b/labs/lab12/k8s/devops-info-service/values.yaml new file mode 100644 index 0000000000..c9249afc52 --- /dev/null +++ b/labs/lab12/k8s/devops-info-service/values.yaml @@ -0,0 +1,73 @@ +replicaCount: 3 + +nameOverride: "" +fullnameOverride: "" + +image: + repository: fayzullin/devops-info-service + tag: "latest" + pullPolicy: Always + +service: + type: NodePort + port: 80 + targetPort: 5000 + nodePort: 30080 + +resources: + requests: + cpu: "100m" + memory: "128Mi" + limits: + cpu: "200m" + memory: "256Mi" + +livenessProbe: + enabled: true + httpGet: + path: /health + port: 5000 + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 1 + failureThreshold: 3 + +readinessProbe: + enabled: true + httpGet: + path: /health + port: 5000 + initialDelaySeconds: 5 + periodSeconds: 5 + timeoutSeconds: 1 + failureThreshold: 3 + +hookJobs: + image: busybox + pullPolicy: IfNotPresent + +podSecurityContext: {} + +secret: + enabled: true + nameSuffix: secret + username: "placeholder-user" + password: "placeholder-password" + +serviceAccount: + create: true + name: "" + +vault: + enabled: false + role: "devops-info-service" + secretPath: "secret/data/devops-info-service/config" + injectFileName: "config" + +environment: "dev" +logLevel: "info" + +persistence: + enabled: true + size: 100Mi + storageClass: "" From 3c36826a220727c04da20bc2dc1394690c3405dc Mon Sep 17 00:00:00 2001 From: fayz131 Date: Sun, 26 Apr 2026 18:40:22 +0300 Subject: [PATCH 04/12] Add Lab 13 ArgoCD GitOps setup --- labs/lab12/k8s/devops-info-service/values-dev.yaml | 1 - labs/lab12/k8s/devops-info-service/values.yaml | 2 +- labs/lab13/k8s/ARGOCD.md | 0 3 files changed, 1 insertion(+), 2 deletions(-) create mode 100644 labs/lab13/k8s/ARGOCD.md diff --git a/labs/lab12/k8s/devops-info-service/values-dev.yaml b/labs/lab12/k8s/devops-info-service/values-dev.yaml index 7a69be080f..9bbb909d71 100644 --- a/labs/lab12/k8s/devops-info-service/values-dev.yaml +++ b/labs/lab12/k8s/devops-info-service/values-dev.yaml @@ -7,7 +7,6 @@ service: type: NodePort port: 80 targetPort: 5000 - nodePort: 30081 resources: requests: diff --git a/labs/lab12/k8s/devops-info-service/values.yaml b/labs/lab12/k8s/devops-info-service/values.yaml index c9249afc52..6573de3901 100644 --- a/labs/lab12/k8s/devops-info-service/values.yaml +++ b/labs/lab12/k8s/devops-info-service/values.yaml @@ -12,7 +12,7 @@ service: type: NodePort port: 80 targetPort: 5000 - nodePort: 30080 + nodePort: null resources: requests: diff --git a/labs/lab13/k8s/ARGOCD.md b/labs/lab13/k8s/ARGOCD.md new file mode 100644 index 0000000000..e69de29bb2 From bedf6d2b8355dab2fa07a29d718b3ef8d3103a52 Mon Sep 17 00:00:00 2001 From: fayz131 Date: Sun, 26 Apr 2026 18:58:53 +0300 Subject: [PATCH 05/12] Add ArgoCD application and fix optional NodePort --- .../templates/service.yaml | 2 +- labs/lab13/k8s/argocd/application.yaml | 21 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 labs/lab13/k8s/argocd/application.yaml diff --git a/labs/lab12/k8s/devops-info-service/templates/service.yaml b/labs/lab12/k8s/devops-info-service/templates/service.yaml index ddb8e07756..c855680e79 100644 --- a/labs/lab12/k8s/devops-info-service/templates/service.yaml +++ b/labs/lab12/k8s/devops-info-service/templates/service.yaml @@ -12,6 +12,6 @@ spec: - protocol: TCP port: {{ .Values.service.port }} targetPort: {{ .Values.service.targetPort }} - {{- if eq .Values.service.type "NodePort" }} + {{- if .Values.service.nodePort }} nodePort: {{ .Values.service.nodePort }} {{- end }} diff --git a/labs/lab13/k8s/argocd/application.yaml b/labs/lab13/k8s/argocd/application.yaml new file mode 100644 index 0000000000..095771804d --- /dev/null +++ b/labs/lab13/k8s/argocd/application.yaml @@ -0,0 +1,21 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: devops-info-app + namespace: argocd +spec: + project: default + source: + repoURL: https://github.com/fayz131/DevOps-Core-Course.git + targetRevision: lab13 + path: labs/lab12/k8s/devops-info-service + helm: + valueFiles: + - values-dev.yaml + destination: + server: https://kubernetes.default.svc + namespace: default + syncPolicy: + syncOptions: + - CreateNamespace=true +x From 79013a744ebf10328db8223a2a8814117847c741 Mon Sep 17 00:00:00 2001 From: fayz131 Date: Sun, 26 Apr 2026 19:09:44 +0300 Subject: [PATCH 06/12] Fix ArgoCD application and optional NodePort --- labs/lab13/k8s/argocd/application.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/labs/lab13/k8s/argocd/application.yaml b/labs/lab13/k8s/argocd/application.yaml index 095771804d..6b676b922d 100644 --- a/labs/lab13/k8s/argocd/application.yaml +++ b/labs/lab13/k8s/argocd/application.yaml @@ -18,4 +18,3 @@ spec: syncPolicy: syncOptions: - CreateNamespace=true -x From 9b4521003d4098794f1cc4c4e69c010cd0eece9b Mon Sep 17 00:00:00 2001 From: fayz131 Date: Sun, 26 Apr 2026 19:16:34 +0300 Subject: [PATCH 07/12] Add dev and prod ArgoCD apps --- labs/lab13/k8s/argocd/application-dev.yaml | 23 +++++++++++++++++++++ labs/lab13/k8s/argocd/application-prod.yaml | 20 ++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 labs/lab13/k8s/argocd/application-dev.yaml create mode 100644 labs/lab13/k8s/argocd/application-prod.yaml diff --git a/labs/lab13/k8s/argocd/application-dev.yaml b/labs/lab13/k8s/argocd/application-dev.yaml new file mode 100644 index 0000000000..8cbf3177a2 --- /dev/null +++ b/labs/lab13/k8s/argocd/application-dev.yaml @@ -0,0 +1,23 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: devops-info-app-dev + namespace: argocd +spec: + project: default + source: + repoURL: https://github.com/fayz131/DevOps-Core-Course.git + targetRevision: lab13 + path: labs/lab12/k8s/devops-info-service + helm: + valueFiles: + - values-dev.yaml + destination: + server: https://kubernetes.default.svc + namespace: dev + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true diff --git a/labs/lab13/k8s/argocd/application-prod.yaml b/labs/lab13/k8s/argocd/application-prod.yaml new file mode 100644 index 0000000000..7798abd4e1 --- /dev/null +++ b/labs/lab13/k8s/argocd/application-prod.yaml @@ -0,0 +1,20 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: devops-info-app-prod + namespace: argocd +spec: + project: default + source: + repoURL: https://github.com/fayz131/DevOps-Core-Course.git + targetRevision: lab13 + path: labs/lab12/k8s/devops-info-service + helm: + valueFiles: + - values-prod.yaml + destination: + server: https://kubernetes.default.svc + namespace: prod + syncPolicy: + syncOptions: + - CreateNamespace=true From 61ba1fa8dfcaf30febc38f792f7357c0171f20cb Mon Sep 17 00:00:00 2001 From: fayz131 Date: Tue, 28 Apr 2026 09:36:25 +0300 Subject: [PATCH 08/12] Use IfNotPresent image pull policy --- labs/lab12/k8s/devops-info-service/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/labs/lab12/k8s/devops-info-service/values.yaml b/labs/lab12/k8s/devops-info-service/values.yaml index 6573de3901..ff1393f5d6 100644 --- a/labs/lab12/k8s/devops-info-service/values.yaml +++ b/labs/lab12/k8s/devops-info-service/values.yaml @@ -6,7 +6,7 @@ fullnameOverride: "" image: repository: fayzullin/devops-info-service tag: "latest" - pullPolicy: Always + pullPolicy: IfNotPresent service: type: NodePort From 4cbeaf3014cbda5f7f0409c6571e50e54d7d74c0 Mon Sep 17 00:00:00 2001 From: fayz131 Date: Tue, 28 Apr 2026 11:28:20 +0300 Subject: [PATCH 09/12] Add Lab 13 ArgoCD documentation --- labs/lab13/k8s/ARGOCD.md | 286 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 286 insertions(+) diff --git a/labs/lab13/k8s/ARGOCD.md b/labs/lab13/k8s/ARGOCD.md index e69de29bb2..454905e1d2 100644 --- a/labs/lab13/k8s/ARGOCD.md +++ b/labs/lab13/k8s/ARGOCD.md @@ -0,0 +1,286 @@ +# Lab 13 — GitOps with ArgoCD + +## 1. ArgoCD Setup + +ArgoCD was installed into a dedicated namespace using Helm. + +Commands used: + +```bash +kubectl create namespace argocd +helm install argocd argo/argo-cd -n argocd \ + --set redis.image.repository=docker.io/library/redis \ + --set redis.image.tag=8.2.3-alpine +``` + +Verification: + +```bash +kubectl get pods -n argocd +``` + +All ArgoCD components were running, including: + +argocd-server +argocd-repo-server +argocd-application-controller +argocd-redis +argocd-applicationset-controller + +The UI was accessed using port-forward: + +```bash +kubectl port-forward svc/argocd-server -n argocd 8081:443 +``` + +URL: + +https://localhost:8081 + +Username: + +admin + +The initial password was retrieved with: + +```bash +kubectl -n argocd get secret argocd-initial-admin-secret \ + -o jsonpath="{.data.password}" | base64 -d +``` + +## 2. Application Configuration + +ArgoCD Application manifests were created in: + +labs/lab13/k8s/argocd/ + +Files: + +application.yaml +application-dev.yaml +application-prod.yaml + +The application source points to the GitHub repository: + +https://github.com/fayz131/DevOps-Core-Course.git + +Target revision: + +lab13 + +Helm chart path: + +labs/lab12/k8s/devops-info-service + +The Application deploys the Helm chart from Git into Kubernetes, following the GitOps model. + +## 3. Initial Application Deployment + +The base application was applied using: + +kubectl apply -f labs/lab13/k8s/argocd/application.yaml + +ArgoCD detected the application and synced it to the cluster. + +Verification: + +kubectl get applications -n argocd + +Example output: + +NAME SYNC STATUS HEALTH STATUS +devops-info-app Synced Healthy + +Application resources were created in the default namespace. + +## 4. Multi-Environment Deployment + +Two additional ArgoCD Applications were created: + +devops-info-app-dev +devops-info-app-prod +Dev environment + +Namespace: + +dev + +Values file: + +values-dev.yaml + +Sync policy: + +automated: + prune: true + selfHeal: true + +This means dev automatically syncs changes from Git and self-heals manual drift. + +### Prod environment + +Namespace: + +prod + +Values file: + +values-prod.yaml + +Sync policy: + +manual + +Production remains manual to allow controlled releases and review before deployment. + +Verification: + +```bash +kubectl get pods -n dev +kubectl get pods -n prod +kubectl get applications -n argocd +``` + + +Output: + +devops-info-app-dev Synced Healthy +devops-info-app-prod Synced Progressing + +Prod pods were running: + +devops-info-app-prod-devops-info-service-... 1/1 Running +devops-info-app-prod-devops-info-service-... 1/1 Running +devops-info-app-prod-devops-info-service-... 1/1 Running + +## 5. GitOps Workflow + +The Helm chart is stored in Git and ArgoCD reads it from the lab13 branch. + +When configuration changes are committed and pushed to Git, ArgoCD detects the difference between: + +desired state in Git +actual state in the Kubernetes cluster + +If the cluster does not match Git, ArgoCD marks the application as OutOfSync. + +Manual sync or auto-sync then applies the Git-defined state to the cluster. + +## 6. Self-Healing Evidence + +### Manual scale drift test + +The dev Deployment was manually scaled to 5 replicas: + +```bash +kubectl scale deployment devops-info-app-dev-devops-info-service -n dev --replicas=5 +kubectl get deployment -n dev +``` + + +Output immediately after manual change: + +NAME READY UP-TO-DATE AVAILABLE +devops-info-app-dev-devops-info-service 1/5 1 1 + +After 30 seconds, ArgoCD self-healing reverted the Deployment back to the Git-defined state: + +```bash +kubectl get deployment -n dev +``` + +Output: + +NAME READY UP-TO-DATE AVAILABLE +devops-info-app-dev-devops-info-service 1/1 1 1 + +This proves ArgoCD detected configuration drift and restored the desired Git state. + +### Pod deletion test + +A pod was manually deleted: + +```bash +kubectl delete pod -n dev -l app.kubernetes.io/name=devops-info-service +kubectl get pods -n dev -w +``` + +Output: + +pod "devops-info-app-dev-devops-info-service-6bc8d7dbfc-r5d5h" deleted +devops-info-app-dev-devops-info-service-6bc8d7dbfc-wjlww 0/1 Running +devops-info-app-dev-devops-info-service-6bc8d7dbfc-wjlww 1/1 Running + +This demonstrates Kubernetes self-healing. The Deployment controller recreated the deleted pod automatically. + +## 7. Kubernetes Self-Healing vs ArgoCD Self-Healing + +Kubernetes self-healing: + +recreates deleted pods +keeps ReplicaSets and Deployments at their desired replica count +works inside the cluster + +ArgoCD self-healing: + +compares cluster state with Git state +reverts manual changes that drift from Git +keeps Kubernetes configuration aligned with the repository + +In this lab: + +pod deletion was fixed by Kubernetes +manual scaling to 5 replicas was reverted by ArgoCD +## 8. Sync Policy Explanation + +Dev uses auto-sync because it is suitable for rapid iteration and testing. + +Prod uses manual sync because production deployments should be controlled, reviewed, and released intentionally. + +This separation is a common GitOps best practice. + +## 9. Challenges and Solutions +Redis image pull issue + +The default ArgoCD Redis image was pulled from AWS ECR and failed due to network issues. + +Solution: + +helm upgrade argocd argo/argo-cd -n argocd \ + --set redis.image.repository=docker.io/library/redis \ + --set redis.image.tag=8.2.3-alpine +Application image pull issue + +The kind cluster had intermittent network issues when pulling from Docker Hub. + +Solution: + +loaded the local image into kind +changed image pull policy to IfNotPresent +kind load docker-image fayzullin/devops-info-service:latest --name lab9 +NodePort conflict + +The Service initially failed because a fixed NodePort was already allocated. + +Solution: + +made nodePort optional in the Helm template +set nodePort: null in values + +## 10. Summary + +This lab implemented GitOps continuous delivery using ArgoCD. + +Completed: + +ArgoCD installed via Helm +UI accessed through port-forward +Applications deployed from Git +Helm chart synced by ArgoCD +dev and prod environments configured +dev auto-sync enabled +prod manual sync configured +self-healing tested +Kubernetes pod recovery tested + +Git is now the source of truth for Kubernetes application deployment. From 33c28e89eaa93b85601964de372ea97cc13bc015 Mon Sep 17 00:00:00 2001 From: fayz131 Date: Tue, 28 Apr 2026 11:47:18 +0300 Subject: [PATCH 10/12] Use local-friendly service type for prod --- labs/lab12/k8s/devops-info-service/values-prod.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/labs/lab12/k8s/devops-info-service/values-prod.yaml b/labs/lab12/k8s/devops-info-service/values-prod.yaml index 9ad7c2972f..dd487179c9 100644 --- a/labs/lab12/k8s/devops-info-service/values-prod.yaml +++ b/labs/lab12/k8s/devops-info-service/values-prod.yaml @@ -4,7 +4,7 @@ image: tag: "latest" service: - type: LoadBalancer + type: ClusterIP port: 80 targetPort: 5000 From 236afb0fb99054d35a60c62c710c189f36de503c Mon Sep 17 00:00:00 2001 From: fayz131 Date: Tue, 28 Apr 2026 12:21:57 +0300 Subject: [PATCH 11/12] Finalize Lab 13 with screenshots --- labs/lab13/k8s/ARGOCD.md | 34 +++++++++++++++++++++ labs/lab13/screenshots/argocd-overview.png | Bin 0 -> 97638 bytes labs/lab13/screenshots/dev-app.png | Bin 0 -> 81145 bytes 3 files changed, 34 insertions(+) create mode 100644 labs/lab13/screenshots/argocd-overview.png create mode 100644 labs/lab13/screenshots/dev-app.png diff --git a/labs/lab13/k8s/ARGOCD.md b/labs/lab13/k8s/ARGOCD.md index 454905e1d2..6ae5ecd6cb 100644 --- a/labs/lab13/k8s/ARGOCD.md +++ b/labs/lab13/k8s/ARGOCD.md @@ -48,6 +48,27 @@ kubectl -n argocd get secret argocd-initial-admin-secret \ -o jsonpath="{.data.password}" | base64 -d ``` +### ArgoCD CLI + +The ArgoCD CLI was installed: + +```bash +curl -sSL -o argocd \ +https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64 + +chmod +x argocd +sudo mv argocd /usr/local/bin/ +``` + +Login via CLI: + +argocd login localhost:8083 --insecure + +Verification: + +argocd app list +argocd app get devops-info-app-dev + ## 2. Application Configuration ArgoCD Application manifests were created in: @@ -284,3 +305,16 @@ self-healing tested Kubernetes pod recovery tested Git is now the source of truth for Kubernetes application deployment. + +## 11. Screenshots + +The following screenshots were captured from ArgoCD UI: + +- `labs/lab13/screenshots/argocd-overview.png` — all applications (dev, prod) +- `labs/lab13/screenshots/dev-app.png` — dev application details +- `labs/lab13/screenshots/prod-app.png` — prod application details + +These screenshots show: +- Sync status (Synced) +- Health status (Healthy) +- Deployed resources diff --git a/labs/lab13/screenshots/argocd-overview.png b/labs/lab13/screenshots/argocd-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..960121829b3b87053f3dfd3b01ca1e5a9909eb1e GIT binary patch literal 97638 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 Z><9({Sml3N`M|s&tJnhh&t>{I|JmY@d?f$? literal 0 HcmV?d00001 From 26a458e685e667724b210a185e50818ade6ce871 Mon Sep 17 00:00:00 2001 From: fayz131 Date: Tue, 28 Apr 2026 12:24:28 +0300 Subject: [PATCH 12/12] Finalize Lab 13 with screenshot --- labs/lab13/screenshots/prod-app.png | Bin 0 -> 84749 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 labs/lab13/screenshots/prod-app.png diff --git a/labs/lab13/screenshots/prod-app.png b/labs/lab13/screenshots/prod-app.png new file mode 100644 index 0000000000000000000000000000000000000000..d438755d60c6c8911d9cb432f739f7613225d0a9 GIT binary patch literal 84749 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 literal 0 HcmV?d00001