{"nodes":[{"children":[{"children":[],"divider_before":false,"post":"","pre":"","title":"GitOps Catalog","url":"/whats-new/2025-12-23-gitops-catalog/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Helm Charts Repository Updates","url":"/whats-new/2025-12-12-helm-charts-changelog/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"What's new in OpenShift, 4.20 Edition","url":"/whats-new/2025-11-10-whatsnew-420/"}],"divider_before":false,"post":"\u003c/span\u003e","pre":"\u003cspan class=\"news-badge-text\"\u003e\u003ci class=\"fas fa-fire-alt\"\u003e\u003c/i\u003e","title":"What's New","url":"/whats-new/"},{"children":[{"children":[{"children":[{"children":[],"divider_before":false,"post":"","pre":"","title":"How to force a MachineConfig rollout","url":"/openshift-platform/day-2/fundamentals/2023-10-18-force-machineconfig-rollout/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Helpful oc / kubectl commands","url":"/openshift-platform/day-2/fundamentals/2020-04-01-oc-commands/"}],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-terminal'\u003e\u003c/i\u003e ","title":"Fundamentals","url":"/openshift-platform/day-2/fundamentals/"},{"children":[{"children":[],"divider_before":false,"post":"","pre":"","title":"Automated ETCD Backup","url":"/openshift-platform/day-2/etcd/2022-01-29-automatedetcdbackup/"}],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-database'\u003e\u003c/i\u003e ","title":"etcd","url":"/openshift-platform/day-2/etcd/"},{"children":[{"children":[],"divider_before":false,"post":"","pre":"","title":"Working with Environments","url":"/openshift-platform/day-2/labels_environmets/2022-01-12-creatingenvironment/"}],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-tags'\u003e\u003c/i\u003e ","title":"Labels \u0026 Environments","url":"/openshift-platform/day-2/labels_environmets/"},{"children":[{"children":[],"divider_before":false,"post":"","pre":"","title":"Introduction","url":"/openshift-platform/day-2/pod-placement/2021-08-26-podplacement-intro/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"NodeSelector","url":"/openshift-platform/day-2/pod-placement/2021-08-27-podplacement/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Pod Affinity/Anti-Affinity","url":"/openshift-platform/day-2/pod-placement/2021-08-28-affinity/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Node Affinity","url":"/openshift-platform/day-2/pod-placement/2021-08-29-node-affinity/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Taints and Tolerations","url":"/openshift-platform/day-2/pod-placement/2021-08-30-taints/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Topology Spread Constraints","url":"/openshift-platform/day-2/pod-placement/2021-08-31-topologyspreadcontraints/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Using Descheduler","url":"/openshift-platform/day-2/pod-placement/2021-09-01-descheduler/"}],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-crosshairs'\u003e\u003c/i\u003e ","title":"Pod Placement","url":"/openshift-platform/day-2/pod-placement/"},{"children":[{"children":[],"divider_before":false,"post":"","pre":"","title":"OpenShift Data Foundation - Noobaa Bucket Data Retention (Lifecycle)","url":"/openshift-platform/day-2/storage/2024-02-12-bucket-data-retention/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Overview of Red Hat's Multi Cloud Gateway (Noobaa)","url":"/openshift-platform/day-2/storage/2022-04-22-multi-cloud-gateway/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Understanding RWO block device handling in OpenShift","url":"/openshift-platform/day-2/storage/2021-02-27-understanding-block-devices/"}],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-hdd'\u003e\u003c/i\u003e ","title":"Storage","url":"/openshift-platform/day-2/storage/"}],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-cogs'\u003e\u003c/i\u003e ","title":"Day-2 Operations","url":"/openshift-platform/day-2/"},{"children":[{"children":[{"children":[],"divider_before":false,"post":"","pre":"","title":"The Hitchhiker's Guide to Observability Introduction - Part 1","url":"/openshift-platform/observability/observability/2025-11-23-hitchhikers-guide-to-distributed-tracing-with-opentelemetry-and-tempostack-part1/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"The Hitchhiker's Guide to Observability - Grafana Tempo - Part 2","url":"/openshift-platform/observability/observability/2025-11-24-hitchhikers-guide-to-distributed-tracing-with-opentelemetry-and-tempostack-part2/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"The Hitchhiker's Guide to Observability - Central Collector - Part 3","url":"/openshift-platform/observability/observability/2025-11-25-hitchhikers-guide-to-distributed-tracing-with-opentelemetry-and-tempostack-part3/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"The Hitchhiker's Guide to Observability - Example Applications - Part 4","url":"/openshift-platform/observability/observability/2025-11-26-hitchhikers-guide-to-distributed-tracing-with-opentelemetry-and-tempostack-part4/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"The Hitchhiker's Guide to Observability - Understanding Traces - Part 5","url":"/openshift-platform/observability/observability/2025-11-27-hitchhikers-guide-to-distributed-tracing-with-opentelemetry-and-tempostack-part5/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"The Hitchhiker's Guide to Observability - Adding A New Tenant - Part 6","url":"/openshift-platform/observability/observability/2025-11-28-hitchhikers-guide-to-distributed-tracing-with-opentelemetry-and-tempostack-part6/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"The Hitchhiker's Guide to Observability - Here Comes Grafana - Part 7","url":"/openshift-platform/observability/observability/2025-12-04-hitchhikers-guide-to-distributed-tracing-with-opentelemetry-and-tempostack-part7/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"The Hitchhiker's Guide to Observability - Limit Read Access to Traces - Part 8","url":"/openshift-platform/observability/observability/2025-12-06-hitchhikers-guide-to-distributed-tracing-with-opentelemetry-and-tempostack-part8/"}],"divider_before":false,"post":"","pre":"","title":"Observability","url":"/openshift-platform/observability/observability/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Thanos Querier vs Thanos Querier","url":"/openshift-platform/observability/2020-12-10-thanos-vs-thanos/"}],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-chart-line'\u003e\u003c/i\u003e ","title":"Observability","url":"/openshift-platform/observability/"},{"children":[{"children":[],"divider_before":false,"post":"","pre":"","title":"OKD Single node installation in a disconnected environment","url":"/openshift-platform/infrastructure/2026-02-09-okd-sno-disconnected/"}],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-industry'\u003e\u003c/i\u003e ","title":"Infrastructure","url":"/openshift-platform/infrastructure/"},{"children":[{"children":[],"divider_before":false,"post":"","pre":"","title":"OpenShift Virtualization Networking - The Overview","url":"/openshift-platform/virtualization/2025-12-29-openshift-virtualization-networking/"}],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-server'\u003e\u003c/i\u003e ","title":"Virtualization","url":"/openshift-platform/virtualization/"},{"children":[{"children":[{"children":[],"divider_before":false,"post":"","pre":"","title":"ValidatingAdmissionPolicy and how to use it","url":"/openshift-platform/security/compliance/2026-10-15-namespace-labels-validating-admission-policy/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Compliance Operator: Writing Your Own Checks with CEL and CustomRules","url":"/openshift-platform/security/compliance/2026-10-09-compliance-operator-customrules-cel/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"oc compliance command line plugin","url":"/openshift-platform/security/compliance/2021-07-20-compliance-plugin-cli/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Compliance Operator","url":"/openshift-platform/security/compliance/2021-07-19-complianceoperator/"}],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-check-circle'\u003e\u003c/i\u003e ","title":"Compliance","url":"/openshift-platform/security/compliance/"},{"children":[{"children":[{"children":[],"divider_before":false,"post":"","pre":"","title":"The Guide to OpenBao - Introduction - Part 1","url":"/openshift-platform/security/secrets-management/openbao/2026-02-11-openbao-part-1-introduction/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"The Guide to OpenBao - Standalone Installation - Part 2","url":"/openshift-platform/security/secrets-management/openbao/2026-02-12-openbao-part-2-standalone-installation/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"The Guide to OpenBao - OpenShift Deployment with Helm - Part 3","url":"/openshift-platform/security/secrets-management/openbao/2026-02-13-openbao-part-3-openshift-deployment/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"The Guide to OpenBao - Enabling TLS on OpenShift - Part 4","url":"/openshift-platform/security/secrets-management/openbao/2026-02-17-openbao-part-4-enabling-tls/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"The Guide to OpenBao - GitOps Deployment with Argo CD - Part 5","url":"/openshift-platform/security/secrets-management/openbao/2026-02-20-openbao-part-5-gitops-deployment/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"The Guide to OpenBao - Initialisation, Unsealing, and Auto-Unseal - Part 6","url":"/openshift-platform/security/secrets-management/openbao/2026-03-05-openbao-part-6-auto-unsealing/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"The Guide to OpenBao - Authentication Methods - Part 7","url":"/openshift-platform/security/secrets-management/openbao/2026-03-09-openbao-part-7-authentication-methods/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"The Guide to OpenBao - Secrets Engines KV - Part 8","url":"/openshift-platform/security/secrets-management/openbao/2026-03-25-openbao-part-8-secrets-engines-kv/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"The Guide to OpenBao - Secrets Engines PKI - Part 9","url":"/openshift-platform/security/secrets-management/openbao/2026-03-26-openbao-part-9-secrets-engines-pki/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"The Guide to OpenBao - Kubernetes Integration - Part 10","url":"/openshift-platform/security/secrets-management/openbao/2026-08-03-openbao-part-10-kubernetes-integration/"}],"divider_before":false,"post":"","pre":"","title":"OpenBao","url":"/openshift-platform/security/secrets-management/openbao/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Secrets Management - Vault on OpenShift","url":"/openshift-platform/security/secrets-management/2022-08-16-hashicorp-vault/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Secure your secrets with Sealed Secrets","url":"/openshift-platform/security/secrets-management/2021-09-25-sealed_secrets/"}],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-key'\u003e\u003c/i\u003e ","title":"Secrets Management","url":"/openshift-platform/security/secrets-management/"},{"children":[{"children":[],"divider_before":false,"post":"","pre":"","title":"Advanced Cluster Security - Authentication","url":"/openshift-platform/security/acs/2021-12-11-acsauth/"}],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-user-shield'\u003e\u003c/i\u003e ","title":"Advanced Cluster Security","url":"/openshift-platform/security/acs/"},{"children":[{"children":[],"divider_before":false,"post":"","pre":"","title":"Single log out from Keycloak and OpenShift","url":"/openshift-platform/security/authentication/2025-05-22-keycloak-openshift-singlelogout/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Step by Step - Using Keycloak Authentication in OpenShift","url":"/openshift-platform/security/authentication/2025-05-17-step-by-step-keycloak-and-openshift/"}],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-user-shield'\u003e\u003c/i\u003e ","title":"Authentication","url":"/openshift-platform/security/authentication/"},{"children":[{"children":[],"divider_before":false,"post":"","pre":"","title":"Cert-Manager Policy Approver in OpenShift","url":"/openshift-platform/security/certificates/2025-06-03-cert-manager-approver-policy/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"SSL Certificate Management for OpenShift on AWS","url":"/openshift-platform/security/certificates/2023-02-16-ssl-certificate-management/"}],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-certificate'\u003e\u003c/i\u003e ","title":"Certificates","url":"/openshift-platform/security/certificates/"},{"children":[{"children":[],"divider_before":false,"post":"","pre":"","title":"Running Falco on OpenShift 4.12","url":"/openshift-platform/security/runtime-security/2023-11-26-running-falco/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Setting up Falco on OpenShift 4.12","url":"/openshift-platform/security/runtime-security/2023-10-23-openshift-falco/"}],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-eye'\u003e\u003c/i\u003e ","title":"Runtime Security","url":"/openshift-platform/security/runtime-security/"},{"children":[{"children":[],"divider_before":false,"post":"","pre":"","title":"Introducing AdminNetworkPolicies","url":"/openshift-platform/security/network-policies/2024-11-06-using-adminnetworkpolicies-and-baselineadminnetworkpolicies/"}],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-network-wired'\u003e\u003c/i\u003e ","title":"Network Policies","url":"/openshift-platform/security/network-policies/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"RBAC Overview — an OpenShift Console plugin","url":"/openshift-platform/security/rbac/2026-06-10-rbac-overview-console-plugin/"}],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-shield-alt'\u003e\u003c/i\u003e ","title":"Security","url":"/openshift-platform/security/"},{"children":[{"children":[],"divider_before":false,"post":"","pre":"","title":"Advanced br-ex Configuration with Bonding on OpenShift","url":"/openshift-platform/networking/2026-02-05-advanced-br-ex-with-bonding/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"A second look into the Kubernetes Gateway API on OpenShift","url":"/openshift-platform/networking/2025-08-31-openshift-gateway-api-ii/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"A first look into the Kubernetes Gateway API on OpenShift","url":"/openshift-platform/networking/2025-08-29-openshift-gateway-api/"}],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-plug'\u003e\u003c/i\u003e ","title":"Networking","url":"/openshift-platform/networking/"},{"children":[{"children":[],"divider_before":false,"post":"","pre":"","title":"Red Hat Quay Registry - Integrate Keycloak","url":"/openshift-platform/quay/2025-09-19-quay-integrate-keycloak/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Stumbling into Quay: Upgrading from 3.3 to 3.4 with the quay-operator","url":"/openshift-platform/quay/2021-09-07-quay-upgrade-3.4/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Red Hat Quay Registry - Overview and Installation","url":"/openshift-platform/quay/2020-05-13-quay-tutorial1/"}],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-box'\u003e\u003c/i\u003e ","title":"Quay","url":"/openshift-platform/quay/"},{"children":[{"children":[],"divider_before":false,"post":"","pre":"","title":"Quay Deployment and Configuration using GitOps","url":"/openshift-platform/gitops/2023-11-03-quay-deployment-with-gitops/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Operator installation with Argo CD","url":"/openshift-platform/gitops/2023-03-20-operator-installation-with-argocd/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Using ServerSideApply with ArgoCD","url":"/openshift-platform/gitops/2022-11-04-argocd-and-serversideapply/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"GitOps - Argo CD","url":"/openshift-platform/gitops/2020-08-06-argocd/"}],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-code-branch'\u003e\u003c/i\u003e ","title":"GitOps","url":"/openshift-platform/gitops/"},{"children":[{"children":[],"divider_before":false,"post":"","pre":"","title":"Enable Automatic Route Creation","url":"/openshift-platform/service-mesh/2020-05-13-istio-tutorial13/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Authorization (RBAC)","url":"/openshift-platform/service-mesh/2020-05-12-istio-tutorial12/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Deploy Example Bookinfo Application","url":"/openshift-platform/service-mesh/2020-04-30-istio-tutorial11/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Service Mesh 1.1 released","url":"/openshift-platform/service-mesh/2020-04-10-istio-update/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Authentication JWT","url":"/openshift-platform/service-mesh/2020-04-09-istio-tutorial10/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Mutual TLS Authentication","url":"/openshift-platform/service-mesh/2020-04-08-istio-tutorial9/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Fault Injection","url":"/openshift-platform/service-mesh/2020-04-07-istio-tutorial8/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Limit Egress/External Traffic","url":"/openshift-platform/service-mesh/2020-04-06-istio-tutorial7/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Advanced Routing Example","url":"/openshift-platform/service-mesh/2020-04-03-istio-tutorial6/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Routing Example","url":"/openshift-platform/service-mesh/2020-04-01-istio-tutorial5/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Ingress with custom domain","url":"/openshift-platform/service-mesh/2020-03-31-istio-tutorial4/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Ingress Traffic","url":"/openshift-platform/service-mesh/2020-03-30-istio-tutorial3/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Deploy Microservices","url":"/openshift-platform/service-mesh/2020-03-29-istio-tutorial2/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Installation","url":"/openshift-platform/service-mesh/2020-03-29-istio-tutorial1/"}],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-project-diagram'\u003e\u003c/i\u003e ","title":"Service Mesh","url":"/openshift-platform/service-mesh/"},{"children":[{"children":[],"divider_before":false,"post":"","pre":"","title":"Hosted Control Planes behind a Proxy","url":"/openshift-platform/other-topics/2025-12-15-hosted-control-planes-and-proxy/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Writing Operator using Ansible","url":"/openshift-platform/other-topics/2021-01-27-writingoperatoransible/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"OpenShift Pipelines - Tekton Introduction","url":"/openshift-platform/other-topics/2020-04-16-tekton/"}],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-ellipsis-h'\u003e\u003c/i\u003e ","title":"Other Topics","url":"/openshift-platform/other-topics/"}],"divider_before":false,"post":"","pre":"\u003ci class='fab fa-redhat'\u003e\u003c/i\u003e ","title":"OpenShift Platform","url":"/openshift-platform/"},{"children":[{"children":[],"divider_before":false,"post":"","pre":"","title":"[Ep.1] Introducing the GitOps Approach","url":"/gitopscollection/2023-12-11-gitops-intro/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"[Ep.2] Choosing the right Git repository structure","url":"/gitopscollection/2023-12-28-gitops-repostructure/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"[Ep.3] Setup OpenShift GitOps/Argo CD","url":"/gitopscollection/2024-02-02-setup-argocd/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"[Ep.4] Configure App-of-Apps","url":"/gitopscollection/2024-04-02-configure_app_of_apps/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"[Ep.5] Setup \u0026 Configure Compliance Operator","url":"/gitopscollection/2024-04-25-installing-compliance-operator/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"[Ep.6] Setup \u0026 Configure Advanced Cluster Security","url":"/gitopscollection/2024-04-28-installing-advanced-cluster-security/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"[Ep.7] Configure Buckets in MinIO","url":"/gitopscollection/2024-05-17-configure-minio-buckets/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"[Ep.8] Installing OpenShift Logging","url":"/gitopscollection/2024-05-24-install-openshift-logging/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"[Ep.9] Multiple Sources for Applications","url":"/gitopscollection/2024-06-02-multisources-for-application-in-argocd/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"[Ep.10] Update Cluster Version","url":"/gitopscollection/2024-06-07-update-cluster-version-with-gitops/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"[Ep.11] Managing Certificates","url":"/gitopscollection/2024-07-04-managing-certificates-with-gitops/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"[Ep.12] Using Kustomize Post-Renderer","url":"/gitopscollection/2024-10-13-using-post-renderer/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"[Ep.13] ApplicationSet with Matrix Generator","url":"/gitopscollection/2025-04-17-applicationset-defining-namespaces/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"[Ep.14] Reusable Argo CD Application Template","url":"/gitopscollection/2025-07-17-common-template-application/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"[Ep.15] OpenShift GitOps - Argo CD Agent","url":"/gitopscollection/2026-01-14-argocd-agent/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"[Ep.16] Tuning OpenShift GitOps for performance at scale","url":"/gitopscollection/2026-03-27-openshift-gitops-performance-tuning/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"[Ep.17] Closing the gap between CI and CD with the Argo CD Image Updater","url":"/gitopscollection/2026-09-15-argocd-image-updater/"}],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-infinity'\u003e\u003c/i\u003e ","title":"GitOps Episodes","url":"/gitopscollection/"},{"children":[],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-key'\u003e\u003c/i\u003e ","title":"OpenBao Series","url":"/openshift-platform/security/secrets-management/openbao/"},{"children":[{"children":[],"divider_before":false,"post":"","pre":"","title":"Introduction to a Secure Supply Chain","url":"/securesupplychain/2023-06-15-securesupplychain-intro/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Step 1 - Listen to Events","url":"/securesupplychain/2023-06-16-securesupplychain-step1/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Step 2 - Pipelines","url":"/securesupplychain/2023-06-17-securesupplychain-step2/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Step 3 - SonarQube","url":"/securesupplychain/2023-06-18-securesupplychain-step3/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Step 4 - Verify Git Commit","url":"/securesupplychain/2023-06-19-securesupplychain-step4/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Step 5 - Build and Sign Image","url":"/securesupplychain/2023-06-20-securesupplychain-step5/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Step 6 - Scanning with ACS","url":"/securesupplychain/2023-06-21-securesupplychain-step6/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Step 7 - Generating a SBOM","url":"/securesupplychain/2023-06-22-securesupplychain-step7/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Step 8 - Updating Kubernetes Manifests","url":"/securesupplychain/2023-06-23-securesupplychain-step8/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Step 9 - Linting Kubernetes Manifests","url":"/securesupplychain/2023-06-24-securesupplychain-step9/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Step 10 - The Example Application","url":"/securesupplychain/2023-06-25-securesupplychain-step10/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Step 11 - ACS Deployment Check","url":"/securesupplychain/2023-06-26-securesupplychain-step11/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Step 12 - Verify TLog Signature","url":"/securesupplychain/2023-06-27-securesupplychain-step12/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Step 13 - Bring it to Production","url":"/securesupplychain/2023-06-28-securesupplychain-step13/"}],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-link'\u003e\u003c/i\u003e ","title":"Secure Supply Chain","url":"/securesupplychain/"},{"children":[{"children":[{"children":[],"divider_before":false,"post":"","pre":"","title":"Basic usage of git","url":"/integrations/general/2020/05/basic-usage-of-git/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Red Hat Satellite Cheat Sheet","url":"/integrations/general/2020/04/red-hat-satellite-cheat-sheet/"}],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-toolbox'\u003e\u003c/i\u003e ","title":"General","url":"/integrations/general/"},{"children":[{"children":[],"divider_before":false,"post":"","pre":"","title":"Stumbling into Azure Part II: Setting up a private ARO cluster","url":"/integrations/azure/2021-10-29-private-aro/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Stumbling into Azure Part I: Building a site-to-site VPN tunnel for testing","url":"/integrations/azure/2021-10-17-s2s-vpn/"}],"divider_before":false,"post":"","pre":"\u003ci class='fab fa-microsoft'\u003e\u003c/i\u003e ","title":"Azure","url":"/integrations/azure/"},{"children":[{"children":[],"divider_before":false,"post":"","pre":"","title":"Adventures in Java Land: JPA disconnected entities","url":"/integrations/java/2022-02-25-jpa-disconnected-entity/"}],"divider_before":false,"post":"","pre":"\u003ci class='fab fa-java'\u003e\u003c/i\u003e ","title":"Java","url":"/integrations/java/"}],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-plug'\u003e\u003c/i\u003e ","title":"Integrations","url":"/integrations/"},{"children":[{"children":[],"divider_before":false,"post":"","pre":"","title":"Creating an auditd rule to monitor Ansible Automation Platform static secrets","url":"/ansible/2026/06/creating-an-auditd-rule-to-monitor-ansible-automation-platform-static-secrets/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Using a local Renovate bot to manage Ansible collection dependencies","url":"/ansible/2026/05/using-a-local-renovate-bot-to-manage-ansible-collection-dependencies/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Onboarding to Ansible Automation Platform with Configuration as Code","url":"/ansible/2026/03/onboarding-to-ansible-automation-platform-with-configuration-as-code/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Ansible Style Guide","url":"/ansible/2021/11/ansible-style-guide/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Automation Controller and LDAP Authentication","url":"/ansible/2021/10/automation-controller-and-ldap-authentication/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Ansible Tower and downloading collections","url":"/ansible/2021/07/ansible-tower-and-downloading-collections/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Ansible - Azure Resource Manager Example","url":"/ansible/2020/04/ansible-azure-resource-manager-example/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"DO410 Ansible and Ansible Tower training notes","url":"/ansible/2020/04/do410-ansible-and-ansible-tower-training-notes/"}],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-robot'\u003e\u003c/i\u003e ","title":"Ansible Platform","url":"/ansible/"},{"children":[],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-brands fa-opensuse'\u003e\u003c/i\u003e ","title":"SUSE","url":"/suse/"},{"children":[{"children":[],"divider_before":false,"post":"","pre":"","title":"Creating a customized RHEL 10 VM image with image-builder","url":"/other/2026-04-10-customize-rhel-image-builder/"},{"children":[],"divider_before":false,"post":"","pre":"","title":"Creating a RHEL 10 VM on macOS with bootc-image-builder","url":"/other/2026-04-09-macos-rhel10-bootc/"}],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-flask'\u003e\u003c/i\u003e ","title":"Other","url":"/other/"},{"children":[],"divider_before":true,"post":"","pre":"\u003ci class='fas fa-dharmachakra'\u003e\u003c/i\u003e ","title":"Helm Repository","url":"/helm-charts/"},{"children":[],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-th'\u003e\u003c/i\u003e ","title":"GitOps Catalog","url":"/gitops-catalog/"},{"children":[],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-clipboard-check'\u003e\u003c/i\u003e ","title":"Test Cases","url":"/test-cases/"},{"children":[],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-balance-scale'\u003e\u003c/i\u003e ","title":"Legal Disclosure","url":"/legaldisclosure/"},{"children":[],"divider_before":false,"post":"","pre":"\u003ci class='fas fa-rss'\u003e\u003c/i\u003e ","title":"RSS Feeds","url":"/rss/"}]}