Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

151 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Pace

Storage automation, in three different styles

Website License Python 3.11+

Website · Choosing an approach · Contributing · Troubleshooting


New here? Pick the path that matches you.

You are… Start with
Just trying out an example Quick start below — copy, paste, run.
First-time contributor CONTRIBUTING.mdmake install && make hooks gets you set up in a couple of minutes.
New to NetApp ONTAP Troubleshooting guide plus the per-style READMEs in python/ontap/, ansible/ontap/, terraform/ontap/, go/ontap/.
Stuck or have a question Open a Discussion — faster than a GitHub issue for questions.

Pace is an open-source library of ready-to-run NetApp storage automation examples, implemented three ways - side by side - so you can pick the style your team already uses.

Style Tool In a sentence
Imperative scripts Python or Go You write each step yourself.
Declarative playbooks Ansible You describe the outcome.
Stateful blueprints Terraform The tool tracks every change.

Same task, same outcome - different trade-offs in readability, idempotency, and lifecycle management.

The examples in this repository target NetApp ONTAP - see Prerequisites for the exact requirements.

Within each style, examples are grouped by the NetApp product they automate, so you can copy one product's directory without dragging in anything else:

Product Directories Status
ONTAP python/ontap/ · ansible/ontap/ · terraform/ontap/ · go/ontap/ Every example below
Console python/console/local/ · ansible/console/local/ · terraform/console/local/ · go/console/local/ Placeholder - no examples yet

Every example is indexed in catalog.yaml (machine-readable) with its product, prerequisites, run commands, and inputs/outputs. Human-readable sections live in the per-product READMEs linked below.

Visit netapp.github.io/pace for the full guided tour, live code examples, and side-by-side comparisons.


Quick start

Pick a style and run the matching block. All examples use placeholder host names and credentials - swap them for your own before running.

Imperative scripts - Python
cd python/ontap
pip install -r requirements.txt
export ONTAP_HOST=10.0.0.1 ONTAP_USER=admin ONTAP_PASS=changeme
python cluster_info.py
Declarative playbooks - Ansible
cd ansible/ontap
ansible-galaxy collection install -r requirements.yml
cp group_vars/ontap.yml.example group_vars/ontap.yml   # edit with your details
ansible-playbook -i inventory/hosts.yml cluster_info.yml
Stateful blueprints - Terraform
cd terraform/ontap/cluster-info
cp terraform.tfvars.example terraform.tfvars          # edit with your details
terraform init && terraform apply
Imperative scripts - Go
cd go/ontap/cluster_info
export ONTAP_HOST=10.0.0.1 ONTAP_USER=admin ONTAP_PASS=changeme
go run .

Each product directory has its own README with full setup steps, options, and example output.

ONTAP use case Python Ansible Terraform Go
Cluster info python/ontap/ ansible/ontap/ terraform/ontap/ go/ontap/
NFS provision python/ontap/ ansible/ontap/ terraform/ontap/ go/ontap/
CIFS provision python/ontap/ ansible/ontap/ terraform/ontap/ go/ontap/
Cluster setup python/ontap/ ansible/ontap/ go/ontap/
SnapMirror provision (source) python/ontap/ ansible/ontap/ go/ontap/
SnapMirror provision (dest) python/ontap/ ansible/ontap/ go/ontap/
SnapMirror test failover python/ontap/ ansible/ontap/ go/ontap/
SnapMirror cleanup failover python/ontap/ ansible/ontap/ go/ontap/

Prerequisites

  • ONTAP cluster reachable over HTTPS (9.8+ recommended)
  • Admin credentials, or a user with appropriate RBAC permissions
  • Network access to the cluster management LIF

Credentials are never hardcoded. Each style uses its native secret mechanism - environment variables, Ansible Vault, or Terraform sensitive variables.

SSL verification is disabled by default for self-signed certificates
Style Enable verification
Python export ONTAP_VERIFY_SSL=true
Ansible ontap_validate_certs: true in ansible/ontap/group_vars/ontap.yml
Terraform validate_certs = true in terraform.tfvars
Go Pass true as the verifySSL arg to ontapclient.New

Once CA-signed certificates are in place, we recommend turning it on.


Documentation

Link What's inside
Example catalog Machine-readable index of all use cases
Catalog spec Field definitions for catalog.yaml
Project website Guided tour, prompts, full contribution guide
Choosing an approach Decision guide and feature matrix
AI prompt catalog Prompts for planning, generating, reviewing
Platform API patterns REST conventions, auth, async jobs
Troubleshooting Common errors and fixes
Testing What to run and capture in the PR Test Report
Contributing Fork, branch, run checks, open a PR
Security policy How to report a vulnerability privately

License

Apache-2.0 © NetApp

About

Pace - An open-source library of ready-to-run NetApp storage automation examples, written in three styles: imperative (step-by-step scripts), declarative (desired-state playbooks), and stateful (infrastructure-as-code blueprints). Pick the right approach for the job.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages