Skip to content

Conversation

@vaishutin
Copy link

This PR introduces support for managing tags on IPAM/Prefix resources in the Netbox Operator.
• Extended the CRD to include a tags field in the PrefixSpec.
• Implemented tag handling logic in the Netbox client and controller.
• Ensures that tags are created/updated/removed accordingly when syncing Prefix objects with NetBox.

Why:
Tags are widely used in NetBox to group and organize objects. Adding tag support to the operator makes Prefix management more consistent with how NetBox is typically used, and allows users to fully automate tagging via Kubernetes manifests.

Notes:
• Backwards-compatible change (resources without tags continue to work as before).
• Includes CRD schema updates and regeneration of api/v1.

Copy link
Collaborator

@jstudler jstudler left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @vaishutin

Thanks a lot for your proposal and this MR. I think we can generally allow tags to be added to NetBox Operator resources since it will add value to some users and as long as it will be non-breaking.

After an initial review of this MR I have a few comments and questions:

What do you think?

Tenant string `json:"tenant,omitempty"`

// A list of tags that will be assigned to the resource in NetBox.
// Each tag may contain either the `name` or `slug` field (one of them is required).
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If it's either name or slug we should add a XValidation rule for this. The rule could probably be on the Tag struct.

request = extras.NewExtrasTagsListParams().WithSlug(&slug)
}

if name == "" && slug == "" {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This case should be prevented during creation on kube-api using XValidation rule in the api/CRD.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants