v0.3.0
This release adds the operational pod-policy family the plugin was
missing: NTP, Syslog, SNMP, and SNMP traps, plus the Pod Policy Group
that actually binds them to a pod in APIC. Everything new lives under
the new top-level "Pod Policies" menu group.
Compatibility: NetBox v4.6 only · Python 3.12.
Added
- Pod Policies family (PR #26). Twelve new models grouped under a
new top-level menu "Pod Policies":ACINTPPolicy+ACINTPProvider(mapsdatetimeNtpPol/
datetimeNtpProv).ACISyslogPolicy+ACISyslogRemoteDest(mapssyslogGroup/
syslogRemoteDest).ACISNMPPolicy+ACISNMPCommunity,ACISNMPClientGroup→
ACISNMPClient,ACISNMPv3User(mapssnmpPoland its
children).ACISNMPTrapPolicy+ACISNMPTrapDest(mapssnmpTrapFwdServerP
group).ACIPodPolicyGroup— binds NTP / Syslog / SNMP / SNMP-Trap
policies together (mapsfabricPodPGrp).- Migration
0012_pod_policiesadds all twelve tables plus 16
constraints (8 fabric/tenant partial uniques, 8 child uniques,
plus the partial unique enforcing "at most one preferred provider
per NTP policy").
- Fabric-scoped with optional tenant override. Every policy parent
carriesaci_fabric(mandatory) andaci_tenant(optional). Two
partialUniqueConstraints per policy (one foraci_tenant IS NULL,
one foraci_tenant IS NOT NULL) enforce per-scope uniqueness without
tripping on PostgreSQL's NULL-distinct default. - Validations.
ACINTPProvider:min_poll <= max_poll.ACINTPProvider: at most one row per policy withrole='preferred'.ACISNMPTrapDest:v3_security_levelonly meaningful when
version=v3.
- API: twelve new endpoints under
/api/plugins/aci/—
ntp-policies,ntp-providers,syslog-policies,
syslog-remote-destinations,snmp-policies,snmp-communities,
snmp-client-groups,snmp-clients,snmp-v3-users,
snmp-trap-policies,snmp-trap-destinations,pod-policy-groups. - Choices:
NTPProviderStateChoices,SyslogSeverityChoices,
SyslogFacilityChoices,SNMPAuthProtocolChoices,
SNMPPrivProtocolChoices,SNMPSecurityLevelChoices,
SNMPVersionChoices. The pre-existingEnabledDisabledChoices
is reused for everyadmin_statecolumn.
Changed
- Navigation: 19 items / 6 groups → 24 items / 7 groups. New
"Pod Policies" group exposes the five parents (Pod Policy Groups,
NTP Policies, Syslog Policies, SNMP Policies, SNMP Trap Policies).
Children reach via parent-detail "Add" buttons, same convention
established by Bundle A in v0.2.0.
Notes
- Server host fields (
ACINTPProvider.host,
ACISyslogRemoteDest.host,ACISNMPTrapDest.host,ACISNMPClient.address)
are free-formCharFields rather than IPAM-linked. NTP/syslog/SNMP
servers are routinely referenced by FQDN, and APIC accepts either,
so this mirrors APIC's free-form input. A future minor can layer on
Bundle B's deprecation-friendly IPAM linkage if any of these need to
participate in IPAM utilisation reporting. - SNMPv3 user records do not store auth/privacy secrets — secrets live
on APIC. The plugin tracks the user record for operational visibility
(which user belongs to which policy) and surfaces a note on the
detail page reminding operators to rotate secrets out-of-band.