From fef137018398f4a5f17838b291d08979fcccee04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20K=C3=A4stner?= Date: Tue, 17 Feb 2026 14:38:14 +0100 Subject: [PATCH] Add kubebuilder markers for ApplyConfiguration generation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add +kubebuilder:ac:generate and +kubebuilder:ac:output:package markers to API doc.go files to enable automatic generation of typed ApplyConfiguration builders for all API groups. ApplyConfiguration types are required for Server-Side Apply (SSA), which allows controllers to declaratively manage individual fields of shared resources without conflicts. Generated builders provide type-safe construction of partial objects used in Apply calls, replacing unstructured patches and reducing the risk of runtime errors. Additionally, set `ssa: true` in the PROJECT file for all resources and add missing +genclient markers to ensure controller-runtime generates the corresponding Apply method on typed clients. Signed-off-by: Felix Kästner --- PROJECT | 31 +++++++++++++++++++ api/cisco/nx/v1alpha1/bgpconfig_types.go | 1 + api/cisco/nx/v1alpha1/bordergateway_types.go | 1 + api/cisco/nx/v1alpha1/doc.go | 2 ++ .../nx/v1alpha1/interfaceconfig_types.go | 1 + api/cisco/nx/v1alpha1/lldpconfig_types.go | 1 + .../v1alpha1/managementaccessconfig_types.go | 1 + api/cisco/nx/v1alpha1/nveconfig_types.go | 1 + api/cisco/nx/v1alpha1/system_types.go | 1 + api/cisco/nx/v1alpha1/vpcdomain_types.go | 1 + api/cisco/xe/v1alpha1/doc.go | 2 ++ api/cisco/xr/v1alpha1/doc.go | 2 ++ api/core/v1alpha1/acl_types.go | 1 + api/core/v1alpha1/banner_types.go | 1 + api/core/v1alpha1/bgp_peer_types.go | 1 + api/core/v1alpha1/bgp_types.go | 1 + api/core/v1alpha1/certificate_types.go | 1 + api/core/v1alpha1/device_types.go | 1 + api/core/v1alpha1/dhcprelay_types.go | 1 + api/core/v1alpha1/dns_types.go | 1 + api/core/v1alpha1/doc.go | 2 ++ api/core/v1alpha1/evpninstance_types.go | 1 + api/core/v1alpha1/interface_types.go | 1 + api/core/v1alpha1/isis_types.go | 1 + api/core/v1alpha1/lldp_types.go | 1 + api/core/v1alpha1/managementaccess_types.go | 1 + api/core/v1alpha1/ntp_types.go | 1 + api/core/v1alpha1/nve_types.go | 1 + api/core/v1alpha1/ospf_types.go | 1 + api/core/v1alpha1/pim_types.go | 1 + api/core/v1alpha1/prefixset_types.go | 1 + api/core/v1alpha1/routingpolicy_types.go | 1 + api/core/v1alpha1/snmp_types.go | 1 + api/core/v1alpha1/syslog_types.go | 1 + api/core/v1alpha1/user_types.go | 1 + api/core/v1alpha1/vlan_types.go | 1 + api/core/v1alpha1/vrf_types.go | 1 + 37 files changed, 71 insertions(+) diff --git a/PROJECT b/PROJECT index 24face925..19fa2e812 100644 --- a/PROJECT +++ b/PROJECT @@ -16,6 +16,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true controller: true domain: networking.metal.ironcore.dev kind: Interface @@ -27,6 +28,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true controller: true domain: networking.metal.ironcore.dev kind: Device @@ -35,6 +37,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true controller: true domain: networking.metal.ironcore.dev kind: Banner @@ -43,6 +46,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true controller: true domain: networking.metal.ironcore.dev kind: User @@ -51,6 +55,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true controller: true domain: networking.metal.ironcore.dev kind: DNS @@ -59,6 +64,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true controller: true domain: networking.metal.ironcore.dev kind: NTP @@ -67,6 +73,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true controller: true domain: networking.metal.ironcore.dev kind: AccessControlList @@ -75,6 +82,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true controller: true domain: networking.metal.ironcore.dev kind: Certificate @@ -83,6 +91,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true controller: true domain: networking.metal.ironcore.dev kind: SNMP @@ -91,6 +100,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true controller: true domain: networking.metal.ironcore.dev kind: Syslog @@ -99,6 +109,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true controller: true domain: networking.metal.ironcore.dev kind: ManagementAccess @@ -107,6 +118,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true controller: true domain: networking.metal.ironcore.dev kind: ISIS @@ -115,6 +127,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true controller: true domain: networking.metal.ironcore.dev kind: VRF @@ -126,6 +139,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true controller: true domain: metal.ironcore.dev group: networking @@ -135,6 +149,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true controller: true domain: networking.metal.ironcore.dev kind: BGP @@ -146,6 +161,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true controller: true domain: networking.metal.ironcore.dev kind: BGPPeer @@ -157,6 +173,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true controller: true domain: networking.metal.ironcore.dev kind: OSPF @@ -165,6 +182,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true controller: true domain: cisco.networking.metal.ironcore.dev group: nx @@ -174,6 +192,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true domain: cisco.networking.metal.ironcore.dev group: nx kind: ManagementAccessConfig @@ -182,6 +201,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true controller: true domain: networking.metal.ironcore.dev kind: VLAN @@ -190,6 +210,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true controller: true domain: networking.metal.ironcore.dev kind: EVPNInstance @@ -198,6 +219,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true controller: true domain: networking.metal.ironcore.dev kind: PrefixSet @@ -209,6 +231,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true controller: true domain: networking.metal.ironcore.dev kind: RoutingPolicy @@ -220,6 +243,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true controller: true domain: cisco.networking.metal.ironcore.dev group: nx @@ -229,6 +253,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true controller: true domain: cisco.networking.metal.ironcore.dev group: nx @@ -238,6 +263,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true controller: true domain: networking.metal.ironcore.dev kind: NetworkVirtualizationEdge @@ -249,6 +275,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true domain: cisco.networking.metal.ironcore.dev group: nx kind: NetworkVirtualizationEdgeConfig @@ -260,6 +287,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true domain: cisco.networking.metal.ironcore.dev group: nx kind: InterfaceConfig @@ -268,6 +296,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true controller: true domain: networking.metal.ironcore.dev kind: LLDP @@ -276,6 +305,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true domain: cisco.networking.metal.ironcore.dev group: nx kind: BGPConfig @@ -284,6 +314,7 @@ resources: - api: crdVersion: v1 namespaced: true + ssa: true controller: true domain: networking.metal.ironcore.dev kind: DHCPRelay diff --git a/api/cisco/nx/v1alpha1/bgpconfig_types.go b/api/cisco/nx/v1alpha1/bgpconfig_types.go index 04518993e..a438865b2 100644 --- a/api/cisco/nx/v1alpha1/bgpconfig_types.go +++ b/api/cisco/nx/v1alpha1/bgpconfig_types.go @@ -51,6 +51,7 @@ type BGPConfigUnicastAddressFamily struct { ExportGatewayIP *bool `json:"exportGatewayIP,omitempty"` } +// +genclient // +kubebuilder:object:root=true // +kubebuilder:resource:path=bgpconfigs // +kubebuilder:resource:singular=bgpconfig diff --git a/api/cisco/nx/v1alpha1/bordergateway_types.go b/api/cisco/nx/v1alpha1/bordergateway_types.go index 8b60b249e..f954c051a 100644 --- a/api/cisco/nx/v1alpha1/bordergateway_types.go +++ b/api/cisco/nx/v1alpha1/bordergateway_types.go @@ -156,6 +156,7 @@ type BorderGatewayStatus struct { Conditions []metav1.Condition `json:"conditions,omitempty"` } +// +genclient // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:path=bordergateways diff --git a/api/cisco/nx/v1alpha1/doc.go b/api/cisco/nx/v1alpha1/doc.go index b99e20a9d..6fa17ddfc 100644 --- a/api/cisco/nx/v1alpha1/doc.go +++ b/api/cisco/nx/v1alpha1/doc.go @@ -2,6 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 // Package v1alpha1 contains API Schema definitions for the nx.cisco.networking.metal.ironcore.dev v1alpha1 API group. +// +kubebuilder:ac:generate=true +// +kubebuilder:ac:output:package="applyconfiguration" // +kubebuilder:validation:Required // +kubebuilder:object:generate=true // +groupName=nx.cisco.networking.metal.ironcore.dev diff --git a/api/cisco/nx/v1alpha1/interfaceconfig_types.go b/api/cisco/nx/v1alpha1/interfaceconfig_types.go index 83d4589ac..827ea4a37 100644 --- a/api/cisco/nx/v1alpha1/interfaceconfig_types.go +++ b/api/cisco/nx/v1alpha1/interfaceconfig_types.go @@ -79,6 +79,7 @@ const ( SpanningTreePortTypeNetwork SpanningTreePortType = "Network" ) +// +genclient // +kubebuilder:object:root=true // +kubebuilder:resource:path=interfaceconfigs // +kubebuilder:resource:singular=interfaceconfig diff --git a/api/cisco/nx/v1alpha1/lldpconfig_types.go b/api/cisco/nx/v1alpha1/lldpconfig_types.go index f2e5173b5..431ca94a3 100644 --- a/api/cisco/nx/v1alpha1/lldpconfig_types.go +++ b/api/cisco/nx/v1alpha1/lldpconfig_types.go @@ -28,6 +28,7 @@ type LLDPConfigSpec struct { HoldTime int16 `json:"holdTime,omitempty"` } +// +genclient // +kubebuilder:object:root=true // +kubebuilder:resource:path=lldpconfigs // +kubebuilder:resource:singular=lldpconfig diff --git a/api/cisco/nx/v1alpha1/managementaccessconfig_types.go b/api/cisco/nx/v1alpha1/managementaccessconfig_types.go index a08bfc413..13b938175 100644 --- a/api/cisco/nx/v1alpha1/managementaccessconfig_types.go +++ b/api/cisco/nx/v1alpha1/managementaccessconfig_types.go @@ -44,6 +44,7 @@ type SSH struct { AccessControlListName string `json:"accessControlListName,omitempty"` } +// +genclient // +kubebuilder:object:root=true // +kubebuilder:resource:path=managementaccessconfigs // +kubebuilder:resource:singular=managementaccessconfig diff --git a/api/cisco/nx/v1alpha1/nveconfig_types.go b/api/cisco/nx/v1alpha1/nveconfig_types.go index 5fbfbdb05..23caff122 100644 --- a/api/cisco/nx/v1alpha1/nveconfig_types.go +++ b/api/cisco/nx/v1alpha1/nveconfig_types.go @@ -53,6 +53,7 @@ type VLANListItem struct { RangeMax int16 `json:"rangeMax,omitempty"` } +// +genclient // +kubebuilder:object:root=true // +kubebuilder:resource:path=networkvirtualizationedgeconfigs // +kubebuilder:resource:singular=networkvirtualizationedgeconfig diff --git a/api/cisco/nx/v1alpha1/system_types.go b/api/cisco/nx/v1alpha1/system_types.go index da522d305..b77cd489d 100644 --- a/api/cisco/nx/v1alpha1/system_types.go +++ b/api/cisco/nx/v1alpha1/system_types.go @@ -53,6 +53,7 @@ type SystemStatus struct { Conditions []metav1.Condition `json:"conditions,omitempty"` } +// +genclient // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:path=systems diff --git a/api/cisco/nx/v1alpha1/vpcdomain_types.go b/api/cisco/nx/v1alpha1/vpcdomain_types.go index 491aaf017..225694119 100644 --- a/api/cisco/nx/v1alpha1/vpcdomain_types.go +++ b/api/cisco/nx/v1alpha1/vpcdomain_types.go @@ -262,6 +262,7 @@ const ( StatusDown Status = "Down" ) +// +genclient // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:path=vpcdomains diff --git a/api/cisco/xe/v1alpha1/doc.go b/api/cisco/xe/v1alpha1/doc.go index 6b4cc95ce..15f553f2d 100644 --- a/api/cisco/xe/v1alpha1/doc.go +++ b/api/cisco/xe/v1alpha1/doc.go @@ -2,6 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 // Package v1alpha1 contains API Schema definitions for the xe.cisco.networking.metal.ironcore.dev v1alpha1 API group. +// +kubebuilder:ac:generate=true +// +kubebuilder:ac:output:package="applyconfiguration" // +kubebuilder:validation:Required // +kubebuilder:object:generate=true // +groupName=xe.cisco.networking.metal.ironcore.dev diff --git a/api/cisco/xr/v1alpha1/doc.go b/api/cisco/xr/v1alpha1/doc.go index a021a491a..3158b37ec 100644 --- a/api/cisco/xr/v1alpha1/doc.go +++ b/api/cisco/xr/v1alpha1/doc.go @@ -2,6 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 // Package v1alpha1 contains API Schema definitions for the xr.cisco.networking.metal.ironcore.dev v1alpha1 API group. +// +kubebuilder:ac:generate=true +// +kubebuilder:ac:output:package="applyconfiguration" // +kubebuilder:validation:Required // +kubebuilder:object:generate=true // +groupName=xr.cisco.networking.metal.ironcore.dev diff --git a/api/core/v1alpha1/acl_types.go b/api/core/v1alpha1/acl_types.go index 9a02afcf5..5205a6a2f 100644 --- a/api/core/v1alpha1/acl_types.go +++ b/api/core/v1alpha1/acl_types.go @@ -112,6 +112,7 @@ type AccessControlListStatus struct { Conditions []metav1.Condition `json:"conditions,omitempty"` } +// +genclient // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:path=accesscontrollists diff --git a/api/core/v1alpha1/banner_types.go b/api/core/v1alpha1/banner_types.go index 918a84de6..aba96c85a 100644 --- a/api/core/v1alpha1/banner_types.go +++ b/api/core/v1alpha1/banner_types.go @@ -59,6 +59,7 @@ type BannerStatus struct { Conditions []metav1.Condition `json:"conditions,omitempty"` } +// +genclient // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:path=banners diff --git a/api/core/v1alpha1/bgp_peer_types.go b/api/core/v1alpha1/bgp_peer_types.go index b952d68ce..7b234601b 100644 --- a/api/core/v1alpha1/bgp_peer_types.go +++ b/api/core/v1alpha1/bgp_peer_types.go @@ -226,6 +226,7 @@ const ( BGPAddressFamilyL2vpnEvpn BGPAddressFamilyType = "L2vpnEvpn" ) +// +genclient // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:path=bgppeers diff --git a/api/core/v1alpha1/bgp_types.go b/api/core/v1alpha1/bgp_types.go index f0a94f37a..0ef61634b 100644 --- a/api/core/v1alpha1/bgp_types.go +++ b/api/core/v1alpha1/bgp_types.go @@ -173,6 +173,7 @@ type BGPStatus struct { Conditions []metav1.Condition `json:"conditions,omitempty"` } +// +genclient // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:path=bgp diff --git a/api/core/v1alpha1/certificate_types.go b/api/core/v1alpha1/certificate_types.go index e0f38e2fd..2482cb25d 100644 --- a/api/core/v1alpha1/certificate_types.go +++ b/api/core/v1alpha1/certificate_types.go @@ -48,6 +48,7 @@ type CertificateStatus struct { Conditions []metav1.Condition `json:"conditions,omitempty"` } +// +genclient // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:path=certificates diff --git a/api/core/v1alpha1/device_types.go b/api/core/v1alpha1/device_types.go index b9b362029..ca9189453 100644 --- a/api/core/v1alpha1/device_types.go +++ b/api/core/v1alpha1/device_types.go @@ -274,6 +274,7 @@ const ( DevicePhaseFailed DevicePhase = "Failed" ) +// +genclient // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:path=devices diff --git a/api/core/v1alpha1/dhcprelay_types.go b/api/core/v1alpha1/dhcprelay_types.go index ab5f41e71..c076612e7 100644 --- a/api/core/v1alpha1/dhcprelay_types.go +++ b/api/core/v1alpha1/dhcprelay_types.go @@ -68,6 +68,7 @@ type DHCPRelayStatus struct { ConfiguredInterfaces []string `json:"configuredInterfaces,omitempty"` } +// +genclient // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:path=dhcprelays diff --git a/api/core/v1alpha1/dns_types.go b/api/core/v1alpha1/dns_types.go index dfe872550..6063f5d17 100644 --- a/api/core/v1alpha1/dns_types.go +++ b/api/core/v1alpha1/dns_types.go @@ -75,6 +75,7 @@ type DNSStatus struct { Conditions []metav1.Condition `json:"conditions,omitempty"` } +// +genclient // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:path=dns diff --git a/api/core/v1alpha1/doc.go b/api/core/v1alpha1/doc.go index 97d4fff7e..fc185d7e4 100644 --- a/api/core/v1alpha1/doc.go +++ b/api/core/v1alpha1/doc.go @@ -2,6 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 // Package v1alpha1 contains API Schema definitions for the networking.metal.ironcore.dev v1alpha1 API group. +// +kubebuilder:ac:generate=true +// +kubebuilder:ac:output:package="applyconfiguration" // +kubebuilder:validation:Required // +kubebuilder:object:generate=true // +groupName=networking.metal.ironcore.dev diff --git a/api/core/v1alpha1/evpninstance_types.go b/api/core/v1alpha1/evpninstance_types.go index 2141b695d..31bb1c46d 100644 --- a/api/core/v1alpha1/evpninstance_types.go +++ b/api/core/v1alpha1/evpninstance_types.go @@ -108,6 +108,7 @@ type EVPNInstanceStatus struct { Conditions []metav1.Condition `json:"conditions,omitempty"` } +// +genclient // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:path=evpninstances diff --git a/api/core/v1alpha1/interface_types.go b/api/core/v1alpha1/interface_types.go index 410593ee2..02a414ddd 100644 --- a/api/core/v1alpha1/interface_types.go +++ b/api/core/v1alpha1/interface_types.go @@ -537,6 +537,7 @@ const ( NeighborPortMismatch NeighborValidation = "PortMismatch" ) +// +genclient // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:path=interfaces diff --git a/api/core/v1alpha1/isis_types.go b/api/core/v1alpha1/isis_types.go index 4f9aa4561..7964b53f0 100644 --- a/api/core/v1alpha1/isis_types.go +++ b/api/core/v1alpha1/isis_types.go @@ -102,6 +102,7 @@ type ISISStatus struct { Conditions []metav1.Condition `json:"conditions,omitempty"` } +// +genclient // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:path=isis diff --git a/api/core/v1alpha1/lldp_types.go b/api/core/v1alpha1/lldp_types.go index 865f415da..09fb45ef7 100644 --- a/api/core/v1alpha1/lldp_types.go +++ b/api/core/v1alpha1/lldp_types.go @@ -63,6 +63,7 @@ type LLDPStatus struct { Conditions []metav1.Condition `json:"conditions,omitempty"` } +// +genclient // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:path=lldps diff --git a/api/core/v1alpha1/managementaccess_types.go b/api/core/v1alpha1/managementaccess_types.go index ad4253cad..d03cdd68f 100644 --- a/api/core/v1alpha1/managementaccess_types.go +++ b/api/core/v1alpha1/managementaccess_types.go @@ -129,6 +129,7 @@ type ManagementAccessStatus struct { Conditions []metav1.Condition `json:"conditions,omitempty"` } +// +genclient // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:path=managementaccesses diff --git a/api/core/v1alpha1/ntp_types.go b/api/core/v1alpha1/ntp_types.go index eae8854a1..122de5768 100644 --- a/api/core/v1alpha1/ntp_types.go +++ b/api/core/v1alpha1/ntp_types.go @@ -72,6 +72,7 @@ type NTPStatus struct { Conditions []metav1.Condition `json:"conditions,omitempty"` } +// +genclient // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:path=ntp diff --git a/api/core/v1alpha1/nve_types.go b/api/core/v1alpha1/nve_types.go index bb369c070..ee3c07d93 100644 --- a/api/core/v1alpha1/nve_types.go +++ b/api/core/v1alpha1/nve_types.go @@ -123,6 +123,7 @@ type NetworkVirtualizationEdgeStatus struct { HostReachability string `json:"hostReachability,omitempty"` } +// +genclient // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:path=networkvirtualizationedges diff --git a/api/core/v1alpha1/ospf_types.go b/api/core/v1alpha1/ospf_types.go index 74cb2f3f9..c36b12fd1 100644 --- a/api/core/v1alpha1/ospf_types.go +++ b/api/core/v1alpha1/ospf_types.go @@ -175,6 +175,7 @@ const ( OSPFNeighborStateFull OSPFNeighborState = "Full" ) +// +genclient // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:path=ospf diff --git a/api/core/v1alpha1/pim_types.go b/api/core/v1alpha1/pim_types.go index 4fef5ff56..f299ee284 100644 --- a/api/core/v1alpha1/pim_types.go +++ b/api/core/v1alpha1/pim_types.go @@ -89,6 +89,7 @@ type PIMStatus struct { Conditions []metav1.Condition `json:"conditions,omitempty"` } +// +genclient // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:path=pim diff --git a/api/core/v1alpha1/prefixset_types.go b/api/core/v1alpha1/prefixset_types.go index 4b6edb0c8..077bcd705 100644 --- a/api/core/v1alpha1/prefixset_types.go +++ b/api/core/v1alpha1/prefixset_types.go @@ -87,6 +87,7 @@ type PrefixSetStatus struct { Conditions []metav1.Condition `json:"conditions,omitempty"` } +// +genclient // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:path=prefixsets diff --git a/api/core/v1alpha1/routingpolicy_types.go b/api/core/v1alpha1/routingpolicy_types.go index 00328c79a..aa93002c3 100644 --- a/api/core/v1alpha1/routingpolicy_types.go +++ b/api/core/v1alpha1/routingpolicy_types.go @@ -199,6 +199,7 @@ type RoutingPolicyStatus struct { Conditions []metav1.Condition `json:"conditions,omitempty"` } +// +genclient // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:path=routingpolicies diff --git a/api/core/v1alpha1/snmp_types.go b/api/core/v1alpha1/snmp_types.go index e0141e427..176336a1f 100644 --- a/api/core/v1alpha1/snmp_types.go +++ b/api/core/v1alpha1/snmp_types.go @@ -127,6 +127,7 @@ type SNMPStatus struct { Conditions []metav1.Condition `json:"conditions,omitempty"` } +// +genclient // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:path=snmp diff --git a/api/core/v1alpha1/syslog_types.go b/api/core/v1alpha1/syslog_types.go index 944adafe1..c94971639 100644 --- a/api/core/v1alpha1/syslog_types.go +++ b/api/core/v1alpha1/syslog_types.go @@ -102,6 +102,7 @@ type SyslogStatus struct { Conditions []metav1.Condition `json:"conditions,omitempty"` } +// +genclient // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:path=syslogs diff --git a/api/core/v1alpha1/user_types.go b/api/core/v1alpha1/user_types.go index a5cdf606a..237ac93fd 100644 --- a/api/core/v1alpha1/user_types.go +++ b/api/core/v1alpha1/user_types.go @@ -82,6 +82,7 @@ type UserStatus struct { Conditions []metav1.Condition `json:"conditions,omitempty"` } +// +genclient // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:path=users diff --git a/api/core/v1alpha1/vlan_types.go b/api/core/v1alpha1/vlan_types.go index 085c2a226..1cf631a10 100644 --- a/api/core/v1alpha1/vlan_types.go +++ b/api/core/v1alpha1/vlan_types.go @@ -65,6 +65,7 @@ type VLANStatus struct { BridgedBy *LocalObjectReference `json:"bridgedBy,omitempty"` } +// +genclient // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:path=vlans diff --git a/api/core/v1alpha1/vrf_types.go b/api/core/v1alpha1/vrf_types.go index 2c4f95fa7..9261e3a52 100644 --- a/api/core/v1alpha1/vrf_types.go +++ b/api/core/v1alpha1/vrf_types.go @@ -111,6 +111,7 @@ type VRFStatus struct { Conditions []metav1.Condition `json:"conditions,omitempty"` } +// +genclient // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:path=vrfs