Convert YAML to CSV Online
Convert YAML configurations to CSV tables. Free, in your browser, no file uploads.
Use cases
YAML to CSV for audits, reports, and configuration analysis
Ansible inventories to Excel
Export Ansible YAML inventories to CSV to audit hosts and variables with non-technical teams.
Kubernetes resources to spreadsheet
Convert pod, service, or deployment lists to tables for capacity and cost reports.
CI/CD pipeline analysis
Transform GitHub Actions or GitLab CI configurations into tables to detect patterns and inconsistencies.
100% private
Conversion runs in your browser. Your YAML is never sent to any server.
How it works
Three steps, no hassle
Paste or upload your YAML
Drag your .yaml or .yml file, or paste the content directly. YAML 1.2 with object sequences is supported.
Convert to table
Each sequence item becomes a CSV row. The keys from the first object are used as column headers.
Download the CSV
Download the resulting .csv file or copy it to the clipboard to open in Excel, Google Sheets, or any analysis tool.
FAQ
Got questions?
CSV is a tabular format, so conversion works best with YAML that represents a list of objects with the same keys — a sequence of mappings at the root level. Examples include an Ansible inventory file with a host list, a Kubernetes pod list exported with kubectl get pods -o yaml, or a test data file with multiple entries of the same type. Deeply nested YAML structures are flattened: nested object values can be represented as additional columns with dot-separated key paths (host.ip, host.port) or as serialized JSON in a single column.
The main cases are: exporting Ansible inventories (.yml) to Excel for auditing with the operations team, converting Kubernetes resource lists (pods, services, deployments) to spreadsheets for capacity or chargeback reports, analyzing CI/CD pipeline configurations in GitHub Actions or GitLab CI in tabular format to identify patterns or inconsistencies, and transforming application configuration data (environment variables, feature flags, microservice configuration) into tables for documentation or review.
Scalar values (strings, numbers, booleans) map directly to cells. Nested objects are flattened using dot notation: an address.city field generates an address.city column in the CSV. Lists within fields are serialized as text (e.g., '["value1","value2"]') in a single cell, since CSV has no native representation for arrays. This behavior is standard in tools like yq, csvkit, and pandas, and is the most widely accepted convention for flattening hierarchical YAML data to tabular format.
Yes. Ansible inventories in YAML format (inventory.yml) contain groups of hosts with per-host and per-group variables. Converting the inventory to CSV lets you open the result in Excel or Google Sheets to filter hosts by variable (e.g., all hosts with ansible_user=deploy), identify hosts with inconsistent configurations, share the inventory with teams that don't use Ansible, or generate infrastructure reports for security and compliance audits.
Yes, with important caveats. kubectl get pods -o yaml returns a YAML document with an items field containing a list of Pod objects, each with a deeply nested structure (metadata, spec, status with multiple sub-levels). The conversion flattens this structure: CSV columns will have paths like metadata.name, metadata.namespace, status.phase, status.podIP. This is sufficiently useful for quick analysis: identifying pods in a non-Running state, listing container images in use, or auditing labels and annotations across the platform.
YAML 1.1 (used by libyaml, PyYAML, and most tools until ~2018) interpreted certain values in ways that surprise modern users: 'yes', 'no', 'on', 'off' were automatically converted to boolean true/false, and octal numbers were written with the 0 prefix (not 0o as in YAML 1.2). YAML 1.2 (specification dated October 1, 2009, adopted by js-yaml from v4.0.0 in 2021 and by Go's gopkg.in/yaml.v3) fixed these ambiguities. If your YAML comes from Ansible (which uses PyYAML/YAML 1.1), be aware that values like 'yes' may have been converted to true during parsing.
Convert YAML to CSV: Ansible inventories, Kubernetes resources, and CI/CD reporting
YAML (YAML Ain't Markup Language, specification 1.2 dated October 1, 2009, available at yaml.org) is the dominant configuration format in the modern DevOps ecosystem: Ansible uses it for playbooks, inventories, and roles since its initial version in 2012; Kubernetes uses it for all resource manifests (Pods, Deployments, Services, ConfigMaps, Secrets) since the first public release of Kubernetes in June 2014; GitHub Actions uses it for workflow definitions since its launch in November 2019; GitLab CI/CD uses it in .gitlab-ci.yml since 2012; Docker Compose uses YAML in docker-compose.yml since version 1 in 2014. Despite being ideal for human writing and reading, YAML is a hierarchical format that does not naturally lend itself to tabular analysis, report generation, or collaboration with operations, management, or finance teams that habitually work in spreadsheets. Converting YAML to CSV bridges the gap between the configuration-as-code (Infrastructure as Code) world and the spreadsheet-based data analysis world.
The most common use case in operations and SRE is auditing Ansible inventories. An Ansible inventory in YAML can have hundreds or thousands of hosts organized in hierarchical groups, each with specific variables (ansible_host, ansible_user, ansible_port, ansible_ssh_private_key_file, application variables like app_version or db_endpoint). When the security team needs a list of all servers with their IP address, operating system, and connection user for a compliance audit (ISO 27001, SOC 2, PCI DSS), or when the finance team needs to correlate hosts with their cloud costs for the departmental chargeback process, the YAML format of the inventory is not directly consumable. Converting it to CSV and opening it in Excel or Google Sheets allows filtering, sorting, pivoting, and sharing the information without needing to know YAML or Ansible. Similarly, kubectl get pods --all-namespaces -o yaml exports the complete state of all pods in a Kubernetes cluster as a YAML document with an items list. Converting this output to CSV generates a table with columns like namespace, name, status.phase, status.podIP, spec.nodeName, containerStatuses[0].image, which is directly analyzable to identify pods with errors, audit deployed container images, or calculate workload distribution by node.
In the CI/CD context, GitHub Actions workflows (.github/workflows/*.yml) and GitLab CI pipelines (.gitlab-ci.yml) are YAML files with a structure of jobs and steps. In large repositories with dozens or hundreds of workflows, or in organizations with multiple teams managing their own pipelines, tabular analysis of configurations allows identifying patterns such as duplicated jobs, inconsistencies in the versions of actions used, non-standardized environment variables, or jobs without a defined timeout that can block pipelines indefinitely. Converting CI/CD configuration files to CSV and loading them into a spreadsheet or analysis tool like pandas or Google Sheets enables this type of audit at scale. Additionally, YAML to CSV conversion is useful for transforming feature flag data (LaunchDarkly, Unleash, Flagsmith store configurations in YAML), microservice configurations (each service has a Helm values.yaml with its deployment parameters), and test data in YAML format (pytest fixtures, Rails test data in YAML) into analyzable tables or data that can be imported into relational databases.