Manage Secrets and Sensitive Data in Terraform
Learn Terraform sensitive data on Ubuntu — sensitive variables and outputs, CLI redaction vs state persistence, TF_VAR and tfvars patterns, ephemeral values and restrictions, write-only arguments, saved plans, Vault …
Terraform Validation, Preconditions, Postconditions and Checks
Learn Terraform custom conditions on Ubuntu — variable validation, lifecycle preconditions and postconditions, check blocks with assert, evaluation timing, failure behavior on Terraform 1.15.8, and how language-level …
Terraform Lifecycle Meta-Arguments with Examples
Learn Terraform lifecycle meta-arguments on Ubuntu — lifecycle block syntax, create_before_destroy, prevent_destroy, ignore_changes and ignore_changes all, replace_triggered_by, replacement ordering, drift handling, …
Terraform Dynamic Blocks with Examples
Learn Terraform dynamic blocks on Ubuntu — syntax, for_each, iterator, conditional nested blocks, docker_container lab, nested dynamic example, dynamic vs resource for_each, dynamic vs for expression, limitations, and …
Terraform count vs for_each with Examples
Learn Terraform count vs for_each on Ubuntu — numeric vs keyed instances, count.index, conditional count, each.key and each.value, maps and sets, list conversion, state addresses, index-shift lab, module repetition, …
Terraform Functions with Practical Examples
Learn Terraform built-in functions on Ubuntu — string, numeric, collection, type conversion, jsonencode, yamlencode, base64, file, templatefile, timestamp, uuid, try, can, composition patterns, terraform console, and …
Terraform Expressions and Operators with Examples
Learn Terraform expressions on Ubuntu — references, arithmetic, comparison, and logical operators, conditional expressions, for and splat syntax, string templates, collection access, unknown values, type conversion, …
Terraform Local Values with Examples
Learn Terraform local values on Ubuntu — locals block syntax, local.NAME references, derived values from variables, maps, functions, conditionals, multiple locals blocks, locals vs variables, and common errors on …
Terraform Output Values with Examples
Learn Terraform output values on Ubuntu — output block syntax, resource attributes, terraform output, -raw, -json, jq, sensitive and complex outputs, state storage, shell automation, and common output errors on Terraform …
Terraform Variables: Types, tfvars and Precedence
Learn Terraform input variables on Ubuntu — variable block syntax, types, terraform.tfvars, auto.tfvars, -var-file, -var, TF_VAR, CLI variable precedence on Terraform 1.15.8, validation, nullable, sensitive, and common …
Terraform Resource References and Dependencies
Learn Terraform resource references and dependencies on Ubuntu — implicit ordering from attribute references, explicit depends_on, terraform graph, file-order vs graph order, dependency cycles, unknown values during …
Terraform Data Sources with Examples
Learn Terraform data sources on Ubuntu with the Docker provider — data block syntax, query existing infrastructure, attribute references, feeding values into resources, resource vs data comparison, depends_on, count and …
Terraform Resources: resource Block with Examples
Learn the Terraform resource block on Ubuntu — syntax, type and local name, arguments and attributes, addresses and references, create and update with terraform_data, Docker verification, replacement and deletion, …
Terraform Provider Version Constraints and Lock File
Learn how Terraform provider version constraints, .terraform.lock.hcl, terraform init -upgrade, and terraform providers lock work on Ubuntu — with required_version vs required_providers explained and real lock-file …
Terraform Data Types: List, Set, Map, Tuple and Object
Learn Terraform data types on Ubuntu — string, number, bool, list, set, map, tuple, object, optional attributes, any, null, list vs set, map vs object, type conversions, terraform console type(), and common type errors …
Cordon, Drain and Uncordon Kubernetes Nodes
Use kubectl cordon, drain, and uncordon to mark a node unschedulable, evict workloads safely with PodDisruptionBudget awareness, and return the node to service after maintenance.
Configure a Highly Available Kubernetes Control Plane with kubeadm
Build a kubeadm HA control plane with stacked etcd, HAProxy and Keepalived, control-plane joins, and tested API-server and load-balancer failover.
Check Kubernetes Cluster, Client and Node Versions
Check Kubernetes API-server, kubectl, kubelet, kubeadm, container runtime, and control-plane versions, then compare supported version skew.
Kubernetes Runtime Security with Falco
Deploy Falco on Kubernetes with Helm and modern eBPF, verify syscall collection, trigger runtime alerts, and write and tune custom rules.
Kubernetes Incident Response and Forensics
Investigate a Kubernetes incident with Falco and audit logs, preserve evidence, contain workloads and nodes, rotate credentials, and redeploy safely.
Kubernetes Audit Logging with Policy Examples
Enable Kubernetes audit logging on a kubeadm API server, apply a focused policy, generate test events, and trace RBAC, Secret, exec, and denied requests.
Build Immutable Containers in Kubernetes
Build immutable Kubernetes containers with digest-pinned images, read-only roots, non-root execution, dropped capabilities, and explicit writable volumes.
Secure Container Image Promotion in CI/CD
Promote one container image digest through Trivy scanning, SBOM archival, Cosign signing, registry copy, and Kubernetes drift verification.
Enable Istio Mutual TLS with PeerAuthentication
Configure Istio PeerAuthentication in PERMISSIVE and STRICT modes, verify workload certificates and sidecar TLS behavior, and block plaintext clients that lack mesh identity.
Scan Kubernetes YAML with Kubesec and KubeLinter
Scan Kubernetes YAML with Kubesec and KubeLinter, compare findings, lint rendered Helm and Kustomize manifests, enforce CI checks, and verify remediation.
Sign and Verify Container Images with Cosign
Sign and verify container images with Cosign using local keys and keyless identities, attach SPDX attestations, and test failed verification.
Allow Trusted Images with ImagePolicyWebhook
Configure Kubernetes ImagePolicyWebhook with an HTTPS ImageReview service, digest rules, TTL caching, and fail-open or fail-closed admission tests.
Generate and Scan Container SBOMs with Trivy
Generate CycloneDX and SPDX SBOMs with Trivy, rescan stored inventories for vulnerabilities, compare formats, and archive digest-linked release artifacts.
Build Secure Minimal Container Images
Build secure minimal container images with multi-stage Dockerfiles, distroless bases, non-root users, digest pins, secret mounts, and runtime checks.
Encrypt Kubernetes Pod Traffic with Cilium WireGuard
Enable Cilium transparent WireGuard encryption on a running cluster, verify peers and handshake state, capture plaintext versus encrypted cross-node Pod traffic, and document what traffic stays outside the tunnel.






