Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Ingest server #370

Draft
wants to merge 37 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
b0ffc26
Implement ingestion python code
Sep 26, 2024
e12cbf3
Shorter names in code
Sep 26, 2024
c2a5123
FIx logging and add some testing
Sep 29, 2024
81308ce
More testing and pivot to full onboarding of new device
Oct 1, 2024
68f3bfe
Small fixes to make tests pass
Oct 2, 2024
76ef6a8
Get interface ingestion working
Oct 3, 2024
f2f4b9a
Use Integrated NICs as well as Slot NICs
Oct 3, 2024
b0a3396
Use all NICs and add IP address info
Oct 7, 2024
f5c0084
Refactor - extract conditional
Oct 7, 2024
bc612fa
Add graphql query to get server details
Oct 7, 2024
0f21f46
Use json query to fetch existing Nautobot device info
Oct 7, 2024
08381b3
Fix bad description in sync script
Oct 9, 2024
86cc7db
Re-wire ingestion back to original core credential scheme
Oct 9, 2024
dc3b964
Formatting Changes by ruff
Oct 9, 2024
9dc35c4
Formatting changes by ruff --unsafe-fixes
Oct 9, 2024
88b3420
Fix python format
Oct 9, 2024
6d15235
Changes to appease ruff
Oct 9, 2024
485c48f
Make the discovery operation idempotent
Oct 9, 2024
633e158
refactor: extract method
Oct 9, 2024
2ef5162
Fix Ironic args
Oct 15, 2024
c50544c
Handle upgrading of DHCP lease to permanent assignment
Oct 17, 2024
8f0562c
Add content-type headers to redfish api client
Oct 17, 2024
8dc4409
Parse additional IP gateway and DHCP info from DRAC interfaces
Oct 17, 2024
1b0ee20
Configure permanent IP address on a DRAC that booted DHCP
Oct 17, 2024
dd1ebe7
Reduce verbosity of logging from urllib
Oct 17, 2024
50492eb
Set created devices to "Active" - I don't think we use this for anything
Oct 17, 2024
06a2dc6
Add discovered node to Ironic
Oct 18, 2024
6d6f15f
Reformat marckdown
Oct 21, 2024
a5aefc9
Check BMC credentials every time and increase verbosity of logging
Oct 21, 2024
b008038
Set nautobot interface type based on name
Oct 21, 2024
d5c8dca
Make password changes work on iLo (need to use require redfish session)
Oct 21, 2024
2c5cee5
Make shorter stack traces on HTTP Exceptions
Oct 22, 2024
08dc88c
Fetch switches from nautobot in single query and get base mac addrs
Oct 22, 2024
cde1382
Remove unused parts of graphql query, they were causing errors
Oct 22, 2024
0c296e5
Refactor
Oct 22, 2024
667249d
Downgrade fatal error to a warning in the case of missing LLDP info
Oct 22, 2024
d577b00
Add SNMP settings to bmc-bios
Oct 23, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions containers/argo_utils/code/argo_python/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,18 @@ A quick helper method to write kubernetes secrets. This accomplishes a couple th
1) Allows us to share sensitive data to subsequent steps in the workflow
2) Sets metadata.ownerReferences to the workflow where it is cleaned up once the workflow is

note: to add the ownerReference for garbage collection, the Pod's uid needs to be obtained. This can either be done by
providing get permission on the pods resource for the service account running this Pod, or by passing the Pod uid into
the container with something like:
note: to add the ownerReference for garbage collection, the Pod's uid needs to
be obtained. This can either be done by providing get permission on the pods
resource for the service account running this Pod, or by passing the Pod uid
into the container with something like:

```yaml
env:
- name: WF_UID
value: "{{workflow.uid}}"
- name: WF_NAME
value: "{{workflow.name}}"
- name: WF_NS
value: "{{workflow.namespace}}"
env:name: WF_UID
value: "{{workflow.uid}}"
- name: WF_NAME
value: "{{workflow.name}}"
- name: WF_NS
value: "{{workflow.namespace}}"
```

### Example
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
{
"@odata.context": "/redfish/v1/$metadata#EthernetInterface.EthernetInterface",
"@odata.id": "/redfish/v1/Managers/iDRAC.Embedded.1/EthernetInterfaces/NIC.1",
"@odata.type": "#EthernetInterface.v1_10_0.EthernetInterface",
"AutoNeg": true,
"Description": "Management Network Interface",
"EthernetInterfaceType": "Physical",
"FQDN": "",
"FullDuplex": true,
"HostName": "idrac-33GSW04",
"IPv4Addresses": [
{
"Address": "10.46.96.156",
"AddressOrigin": "Static",
"Gateway": "10.46.96.129",
"SubnetMask": "255.255.255.192"
}
],
"[email protected]": 1,
"IPv6AddressPolicyTable": [],
"[email protected]": 0,
"IPv6Addresses": [
{
"Address": "::",
"AddressOrigin": null,
"AddressState": "Preferred",
"PrefixLength": 64
},
{
"Address": "::",
"AddressOrigin": null,
"AddressState": "Preferred",
"PrefixLength": 64
},
{
"Address": "::",
"AddressOrigin": null,
"AddressState": null,
"PrefixLength": 64
},
{
"Address": "::",
"AddressOrigin": null,
"AddressState": null,
"PrefixLength": 64
},
{
"Address": "::",
"AddressOrigin": null,
"AddressState": null,
"PrefixLength": 64
},
{
"Address": "::",
"AddressOrigin": null,
"AddressState": null,
"PrefixLength": 64
},
{
"Address": "::",
"AddressOrigin": null,
"AddressState": null,
"PrefixLength": 64
},
{
"Address": "::",
"AddressOrigin": null,
"AddressState": null,
"PrefixLength": 64
},
{
"Address": "::",
"AddressOrigin": null,
"AddressState": null,
"PrefixLength": 64
},
{
"Address": "::",
"AddressOrigin": null,
"AddressState": null,
"PrefixLength": 64
},
{
"Address": "::",
"AddressOrigin": null,
"AddressState": null,
"PrefixLength": 64
},
{
"Address": "::",
"AddressOrigin": null,
"AddressState": null,
"PrefixLength": 64
},
{
"Address": "::",
"AddressOrigin": null,
"AddressState": null,
"PrefixLength": 64
},
{
"Address": "::",
"AddressOrigin": null,
"AddressState": null,
"PrefixLength": 64
},
{
"Address": "::",
"AddressOrigin": null,
"AddressState": null,
"PrefixLength": 64
},
{
"Address": "fe80::feaa:ffeb:8f73:7e9f",
"AddressOrigin": null,
"AddressState": "Preferred",
"PrefixLength": 64
}
],
"[email protected]": 16,
"IPv6DefaultGateway": "::",
"IPv6StaticAddresses": [
{
"Address": "::",
"PrefixLength": 64
}
],
"[email protected]": 1,
"Id": "NIC.1",
"InterfaceEnabled": true,
"Links": {
"Chassis": {
"@odata.id": "/redfish/v1/Chassis/System.Embedded.1"
}
},
"MACAddress": "a8:3c:a5:35:43:86",
"MTUSize": 1500,
"MaxIPv6StaticAddresses": 1,
"Name": "Manager Ethernet Interface",
"NameServers": [
"0.0.0.0",
"0.0.0.0",
"::",
"::"
],
"[email protected]": 4,
"PermanentMACAddress": "a8:3c:a5:35:43:86",
"SpeedMbps": 1000,
"Status": {
"Health": "OK",
"State": "Enabled"
},
"VLAN": {
"VLANEnable": false,
"VLANId": 1
}
}
Loading
Loading