devops

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 …

Deepak Prasad18 min read
devops

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 …

Deepak Prasad16 min read
devops

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, …

Deepak Prasad14 min read
devops

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 …

Deepak Prasad11 min read
devops

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, …

Deepak Prasad17 min read
devops

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 …

Deepak Prasad14 min read
devops

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, …

Deepak Prasad14 min read
devops

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 …

Deepak Prasad9 min read
devops

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 …

Deepak Prasad10 min read
devops

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 …

Deepak Prasad15 min read
devops

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 …

Deepak Prasad12 min read
devops

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 …

Deepak Prasad15 min read
devops

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, …

Deepak Prasad16 min read
devops

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 …

Deepak Prasad16 min read
devops

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 …

Deepak Prasad11 min read
devops

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.

Deepak Prasad16 min read
devops

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.

Deepak Prasad24 min read
devops

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.

Deepak Prasad11 min read
devops

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.

Deepak Prasad16 min read
devops

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.

Deepak Prasad17 min read
devops

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.

Deepak Prasad14 min read
devops

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.

Deepak Prasad13 min read
devops

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.

Deepak Prasad11 min read
devops

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.

Deepak Prasad14 min read
devops

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.

Deepak Prasad13 min read
devops

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.

Deepak Prasad13 min read
devops

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.

Deepak Prasad14 min read
devops

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.

Deepak Prasad12 min read
devops

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.

Deepak Prasad14 min read
devops

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.

Deepak Prasad16 min read