فهرست منبع

feat(security): build tags for all the providers to disable them on demand (#5578)

Signed-off-by: Shimon Darshan <Shimon.Darshan@gmail.com>
Co-authored-by: Gergely Brautigam <skarlso777@gmail.com>
Shimon 6 ماه پیش
والد
کامیت
fd4f915d12

+ 2 - 1
Makefile

@@ -138,11 +138,12 @@ test.crds.update: cty crds.generate.tests ## Update the snapshots used by the CR
 .PHONY: build
 .PHONY: build
 build: $(addprefix build-,$(ARCH)) ## Build binary
 build: $(addprefix build-,$(ARCH)) ## Build binary
 
 
+PROVIDER ?= all_providers
 .PHONY: build-%
 .PHONY: build-%
 build-%: generate ## Build binary for the specified arch
 build-%: generate ## Build binary for the specified arch
 	@$(INFO) go build $*
 	@$(INFO) go build $*
 	$(BUILD_ARGS) GOOS=linux GOARCH=$* \
 	$(BUILD_ARGS) GOOS=linux GOARCH=$* \
-		go build -o '$(OUTPUT_DIR)/external-secrets-linux-$*' main.go
+		go build -tags $(PROVIDER) -o '$(OUTPUT_DIR)/external-secrets-linux-$*' main.go
 	@$(OK) go build $*
 	@$(OK) go build $*
 
 
 lint: golangci-lint ## Run golangci-lint (set LINT_TARGET to run on specific module)
 lint: golangci-lint ## Run golangci-lint (set LINT_TARGET to run on specific module)

+ 30 - 0
pkg/register/akeyless.go

@@ -0,0 +1,30 @@
+//go:build akeyless || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	akeyless "github.com/external-secrets/external-secrets/providers/v1/akeyless"
+)
+
+func init() {
+	// Register akeyless provider
+	esv1.Register(akeyless.NewProvider(), akeyless.ProviderSpec(), akeyless.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/alibaba.go

@@ -0,0 +1,30 @@
+//go:build alibaba || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	alibaba "github.com/external-secrets/external-secrets/providers/v1/alibaba"
+)
+
+func init() {
+	// Register alibaba provider
+	esv1.Register(alibaba.NewProvider(), alibaba.ProviderSpec(), alibaba.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/aws.go

@@ -0,0 +1,30 @@
+//go:build aws || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	aws "github.com/external-secrets/external-secrets/providers/v1/aws"
+)
+
+func init() {
+	// Register aws provider
+	esv1.Register(aws.NewProvider(), aws.ProviderSpec(), aws.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/azure.go

@@ -0,0 +1,30 @@
+//go:build azure || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	azure "github.com/external-secrets/external-secrets/providers/v1/azure/keyvault"
+)
+
+func init() {
+	// Register azure provider
+	esv1.Register(azure.NewProvider(), azure.ProviderSpec(), azure.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/beyondtrust.go

@@ -0,0 +1,30 @@
+//go:build beyondtrust || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	beyondtrust "github.com/external-secrets/external-secrets/providers/v1/beyondtrust"
+)
+
+func init() {
+	// Register beyondtrust provider
+	esv1.Register(beyondtrust.NewProvider(), beyondtrust.ProviderSpec(), beyondtrust.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/bitwarden.go

@@ -0,0 +1,30 @@
+//go:build bitwarden || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	bitwarden "github.com/external-secrets/external-secrets/providers/v1/bitwarden"
+)
+
+func init() {
+	// Register bitwarden provider
+	esv1.Register(bitwarden.NewProvider(), bitwarden.ProviderSpec(), bitwarden.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/chef.go

@@ -0,0 +1,30 @@
+//go:build chef || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	chef "github.com/external-secrets/external-secrets/providers/v1/chef"
+)
+
+func init() {
+	// Register chef provider
+	esv1.Register(chef.NewProvider(), chef.ProviderSpec(), chef.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/cloudru.go

@@ -0,0 +1,30 @@
+//go:build cloudru || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	cloudru "github.com/external-secrets/external-secrets/providers/v1/cloudru/secretmanager"
+)
+
+func init() {
+	// Register cloudru provider
+	esv1.Register(cloudru.NewProvider(), cloudru.ProviderSpec(), cloudru.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/conjur.go

@@ -0,0 +1,30 @@
+//go:build conjur || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	conjur "github.com/external-secrets/external-secrets/providers/v1/conjur"
+)
+
+func init() {
+	// Register conjur provider
+	esv1.Register(conjur.NewProvider(), conjur.ProviderSpec(), conjur.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/delinea.go

@@ -0,0 +1,30 @@
+//go:build delinea || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	delinea "github.com/external-secrets/external-secrets/providers/v1/delinea"
+)
+
+func init() {
+	// Register delinea provider
+	esv1.Register(delinea.NewProvider(), delinea.ProviderSpec(), delinea.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/device42.go

@@ -0,0 +1,30 @@
+//go:build device42 || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	device42 "github.com/external-secrets/external-secrets/providers/v1/device42"
+)
+
+func init() {
+	// Register vault provider
+	esv1.Register(device42.NewProvider(), device42.ProviderSpec(), device42.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/doppler.go

@@ -0,0 +1,30 @@
+//go:build doppler || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	doppler "github.com/external-secrets/external-secrets/providers/v1/doppler"
+)
+
+func init() {
+	// Register doppler provider
+	esv1.Register(doppler.NewProvider(), doppler.ProviderSpec(), doppler.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/fortanix.go

@@ -0,0 +1,30 @@
+//go:build fortanix || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	fortanix "github.com/external-secrets/external-secrets/providers/v1/fortanix"
+)
+
+func init() {
+	// Register fortanix provider
+	esv1.Register(fortanix.NewProvider(), fortanix.ProviderSpec(), fortanix.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/gcp.go

@@ -0,0 +1,30 @@
+//go:build gcp || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	gcp "github.com/external-secrets/external-secrets/providers/v1/gcp/secretmanager"
+)
+
+func init() {
+	// Register gcp provider
+	esv1.Register(gcp.NewProvider(), gcp.ProviderSpec(), gcp.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/github.go

@@ -0,0 +1,30 @@
+//go:build github || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	github "github.com/external-secrets/external-secrets/providers/v1/github"
+)
+
+func init() {
+	// Register github provider
+	esv1.Register(github.NewProvider(), github.ProviderSpec(), github.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/gitlab.go

@@ -0,0 +1,30 @@
+//go:build gitlab || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	gitlab "github.com/external-secrets/external-secrets/providers/v1/gitlab"
+)
+
+func init() {
+	// Register gitlab provider
+	esv1.Register(gitlab.NewProvider(), gitlab.ProviderSpec(), gitlab.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/ibm.go

@@ -0,0 +1,30 @@
+//go:build ibm || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	ibm "github.com/external-secrets/external-secrets/providers/v1/ibm"
+)
+
+func init() {
+	// Register ibm provider
+	esv1.Register(ibm.NewProvider(), ibm.ProviderSpec(), ibm.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/infisical.go

@@ -0,0 +1,30 @@
+//go:build infisical || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	infisical "github.com/external-secrets/external-secrets/providers/v1/infisical"
+)
+
+func init() {
+	// Register infisical provider
+	esv1.Register(infisical.NewProvider(), infisical.ProviderSpec(), infisical.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/keepersecurity.go

@@ -0,0 +1,30 @@
+//go:build keepersecurity || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	keepersecurity "github.com/external-secrets/external-secrets/providers/v1/keepersecurity"
+)
+
+func init() {
+	// Register keepersecurity provider
+	esv1.Register(keepersecurity.NewProvider(), keepersecurity.ProviderSpec(), keepersecurity.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/ngrok.go

@@ -0,0 +1,30 @@
+//go:build ngrok || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	ngrok "github.com/external-secrets/external-secrets/providers/v1/ngrok"
+)
+
+func init() {
+	// Register ngrok provider
+	esv1.Register(ngrok.NewProvider(), ngrok.ProviderSpec(), ngrok.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/onboardbase.go

@@ -0,0 +1,30 @@
+//go:build onboardbase || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	onboardbase "github.com/external-secrets/external-secrets/providers/v1/onboardbase"
+)
+
+func init() {
+	// Register onboardbase provider
+	esv1.Register(onboardbase.NewProvider(), onboardbase.ProviderSpec(), onboardbase.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/onepassword.go

@@ -0,0 +1,30 @@
+//go:build onepassword || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	onepassword "github.com/external-secrets/external-secrets/providers/v1/onepassword"
+)
+
+func init() {
+	// Register onepassword provider
+	esv1.Register(onepassword.NewProvider(), onepassword.ProviderSpec(), onepassword.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/onepasswordsdk.go

@@ -0,0 +1,30 @@
+//go:build onepasswordsdk || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	onepasswordsdk "github.com/external-secrets/external-secrets/providers/v1/onepasswordsdk"
+)
+
+func init() {
+	// Register onepasswordsdk provider
+	esv1.Register(onepasswordsdk.NewProvider(), onepasswordsdk.ProviderSpec(), onepasswordsdk.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/oracle.go

@@ -0,0 +1,30 @@
+//go:build oracle || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	oracle "github.com/external-secrets/external-secrets/providers/v1/oracle"
+)
+
+func init() {
+	// Register oracle provider
+	esv1.Register(oracle.NewProvider(), oracle.ProviderSpec(), oracle.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/passbolt.go

@@ -0,0 +1,30 @@
+//go:build passbolt || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	passbolt "github.com/external-secrets/external-secrets/providers/v1/passbolt"
+)
+
+func init() {
+	// Register passbolt provider
+	esv1.Register(passbolt.NewProvider(), passbolt.ProviderSpec(), passbolt.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/passworddepot.go

@@ -0,0 +1,30 @@
+//go:build passworddepot || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	passworddepot "github.com/external-secrets/external-secrets/providers/v1/passworddepot"
+)
+
+func init() {
+	// Register passworddepot provider
+	esv1.Register(passworddepot.NewProvider(), passworddepot.ProviderSpec(), passworddepot.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/previder.go

@@ -0,0 +1,30 @@
+//go:build previder || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	previder "github.com/external-secrets/external-secrets/providers/v1/previder"
+)
+
+func init() {
+	// Register previder provider
+	esv1.Register(previder.NewProvider(), previder.ProviderSpec(), previder.MaintenanceStatus())
+}

+ 1 - 72
pkg/register/providers.go

@@ -19,85 +19,14 @@ package register
 
 
 import (
 import (
 	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
 	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
-
-	akeyless "github.com/external-secrets/external-secrets/providers/v1/akeyless"
-	alibaba "github.com/external-secrets/external-secrets/providers/v1/alibaba"
-	aws "github.com/external-secrets/external-secrets/providers/v1/aws"
-	azure "github.com/external-secrets/external-secrets/providers/v1/azure/keyvault"
-	beyondtrust "github.com/external-secrets/external-secrets/providers/v1/beyondtrust"
-	bitwarden "github.com/external-secrets/external-secrets/providers/v1/bitwarden"
-	chef "github.com/external-secrets/external-secrets/providers/v1/chef"
-	cloudru "github.com/external-secrets/external-secrets/providers/v1/cloudru/secretmanager"
-	conjur "github.com/external-secrets/external-secrets/providers/v1/conjur"
-	delinea "github.com/external-secrets/external-secrets/providers/v1/delinea"
-	device42 "github.com/external-secrets/external-secrets/providers/v1/device42"
-	doppler "github.com/external-secrets/external-secrets/providers/v1/doppler"
 	fake "github.com/external-secrets/external-secrets/providers/v1/fake"
 	fake "github.com/external-secrets/external-secrets/providers/v1/fake"
-	fortanix "github.com/external-secrets/external-secrets/providers/v1/fortanix"
-	gcp "github.com/external-secrets/external-secrets/providers/v1/gcp/secretmanager"
-	github "github.com/external-secrets/external-secrets/providers/v1/github"
-	gitlab "github.com/external-secrets/external-secrets/providers/v1/gitlab"
-	ibm "github.com/external-secrets/external-secrets/providers/v1/ibm"
-	infisical "github.com/external-secrets/external-secrets/providers/v1/infisical"
-	keepersecurity "github.com/external-secrets/external-secrets/providers/v1/keepersecurity"
 	kubernetes "github.com/external-secrets/external-secrets/providers/v1/kubernetes"
 	kubernetes "github.com/external-secrets/external-secrets/providers/v1/kubernetes"
-	ngrok "github.com/external-secrets/external-secrets/providers/v1/ngrok"
-	onboardbase "github.com/external-secrets/external-secrets/providers/v1/onboardbase"
-	onepassword "github.com/external-secrets/external-secrets/providers/v1/onepassword"
-	onepasswordsdk "github.com/external-secrets/external-secrets/providers/v1/onepasswordsdk"
-	oracle "github.com/external-secrets/external-secrets/providers/v1/oracle"
-	passbolt "github.com/external-secrets/external-secrets/providers/v1/passbolt"
-	passworddepot "github.com/external-secrets/external-secrets/providers/v1/passworddepot"
-	previder "github.com/external-secrets/external-secrets/providers/v1/previder"
-	pulumi "github.com/external-secrets/external-secrets/providers/v1/pulumi"
-	scaleway "github.com/external-secrets/external-secrets/providers/v1/scaleway"
-	secretserver "github.com/external-secrets/external-secrets/providers/v1/secretserver"
-	senhasegura "github.com/external-secrets/external-secrets/providers/v1/senhasegura"
-	vault "github.com/external-secrets/external-secrets/providers/v1/vault"
-	volcengine "github.com/external-secrets/external-secrets/providers/v1/volcengine"
 	webhook "github.com/external-secrets/external-secrets/providers/v1/webhook"
 	webhook "github.com/external-secrets/external-secrets/providers/v1/webhook"
-	yandexcert "github.com/external-secrets/external-secrets/providers/v1/yandex/certificatemanager"
-	yandexlock "github.com/external-secrets/external-secrets/providers/v1/yandex/lockbox"
 )
 )
 
 
 func init() {
 func init() {
-	// Register all providers
-	esv1.Register(akeyless.NewProvider(), akeyless.ProviderSpec(), akeyless.MaintenanceStatus())
-	esv1.Register(alibaba.NewProvider(), alibaba.ProviderSpec(), alibaba.MaintenanceStatus())
-	esv1.Register(aws.NewProvider(), aws.ProviderSpec(), aws.MaintenanceStatus())
-	esv1.Register(azure.NewProvider(), azure.ProviderSpec(), azure.MaintenanceStatus())
-	esv1.Register(beyondtrust.NewProvider(), beyondtrust.ProviderSpec(), beyondtrust.MaintenanceStatus())
-	esv1.Register(bitwarden.NewProvider(), bitwarden.ProviderSpec(), bitwarden.MaintenanceStatus())
-	esv1.Register(chef.NewProvider(), chef.ProviderSpec(), chef.MaintenanceStatus())
-	esv1.Register(cloudru.NewProvider(), cloudru.ProviderSpec(), cloudru.MaintenanceStatus())
-	esv1.Register(conjur.NewProvider(), conjur.ProviderSpec(), conjur.MaintenanceStatus())
-	esv1.Register(delinea.NewProvider(), delinea.ProviderSpec(), delinea.MaintenanceStatus())
-	esv1.Register(device42.NewProvider(), device42.ProviderSpec(), device42.MaintenanceStatus())
-	esv1.Register(doppler.NewProvider(), doppler.ProviderSpec(), doppler.MaintenanceStatus())
+	// Register Kuberntetes providers
 	esv1.Register(fake.NewProvider(), fake.ProviderSpec(), fake.MaintenanceStatus())
 	esv1.Register(fake.NewProvider(), fake.ProviderSpec(), fake.MaintenanceStatus())
-	esv1.Register(fortanix.NewProvider(), fortanix.ProviderSpec(), fortanix.MaintenanceStatus())
-	esv1.Register(gcp.NewProvider(), gcp.ProviderSpec(), gcp.MaintenanceStatus())
-	esv1.Register(github.NewProvider(), github.ProviderSpec(), github.MaintenanceStatus())
-	esv1.Register(gitlab.NewProvider(), gitlab.ProviderSpec(), gitlab.MaintenanceStatus())
-	esv1.Register(ibm.NewProvider(), ibm.ProviderSpec(), ibm.MaintenanceStatus())
-	esv1.Register(infisical.NewProvider(), infisical.ProviderSpec(), infisical.MaintenanceStatus())
-	esv1.Register(keepersecurity.NewProvider(), keepersecurity.ProviderSpec(), keepersecurity.MaintenanceStatus())
 	esv1.Register(kubernetes.NewProvider(), kubernetes.ProviderSpec(), kubernetes.MaintenanceStatus())
 	esv1.Register(kubernetes.NewProvider(), kubernetes.ProviderSpec(), kubernetes.MaintenanceStatus())
-	esv1.Register(ngrok.NewProvider(), ngrok.ProviderSpec(), ngrok.MaintenanceStatus())
-	esv1.Register(onboardbase.NewProvider(), onboardbase.ProviderSpec(), onboardbase.MaintenanceStatus())
-	esv1.Register(onepassword.NewProvider(), onepassword.ProviderSpec(), onepassword.MaintenanceStatus())
-	esv1.Register(onepasswordsdk.NewProvider(), onepasswordsdk.ProviderSpec(), onepasswordsdk.MaintenanceStatus())
-	esv1.Register(oracle.NewProvider(), oracle.ProviderSpec(), oracle.MaintenanceStatus())
-	esv1.Register(passbolt.NewProvider(), passbolt.ProviderSpec(), passbolt.MaintenanceStatus())
-	esv1.Register(passworddepot.NewProvider(), passworddepot.ProviderSpec(), passworddepot.MaintenanceStatus())
-	esv1.Register(previder.NewProvider(), previder.ProviderSpec(), previder.MaintenanceStatus())
-	esv1.Register(pulumi.NewProvider(), pulumi.ProviderSpec(), pulumi.MaintenanceStatus())
-	esv1.Register(scaleway.NewProvider(), scaleway.ProviderSpec(), scaleway.MaintenanceStatus())
-	esv1.Register(secretserver.NewProvider(), secretserver.ProviderSpec(), secretserver.MaintenanceStatus())
-	esv1.Register(senhasegura.NewProvider(), senhasegura.ProviderSpec(), senhasegura.MaintenanceStatus())
-	esv1.Register(vault.NewProvider(), vault.ProviderSpec(), vault.MaintenanceStatus())
-	esv1.Register(volcengine.NewProvider(), volcengine.ProviderSpec(), volcengine.MaintenanceStatus())
 	esv1.Register(webhook.NewProvider(), webhook.ProviderSpec(), webhook.MaintenanceStatus())
 	esv1.Register(webhook.NewProvider(), webhook.ProviderSpec(), webhook.MaintenanceStatus())
-	esv1.Register(yandexcert.NewProvider(), yandexcert.ProviderSpec(), yandexcert.MaintenanceStatus())
-	esv1.Register(yandexlock.NewProvider(), yandexlock.ProviderSpec(), yandexlock.MaintenanceStatus())
 }
 }

+ 30 - 0
pkg/register/pulumi.go

@@ -0,0 +1,30 @@
+//go:build pulumi || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	pulumi "github.com/external-secrets/external-secrets/providers/v1/pulumi"
+)
+
+func init() {
+	// Register pulumi provider
+	esv1.Register(pulumi.NewProvider(), pulumi.ProviderSpec(), pulumi.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/scaleway.go

@@ -0,0 +1,30 @@
+//go:build scaleway || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	scaleway "github.com/external-secrets/external-secrets/providers/v1/scaleway"
+)
+
+func init() {
+	// Register scaleway provider
+	esv1.Register(scaleway.NewProvider(), scaleway.ProviderSpec(), scaleway.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/secretserver.go

@@ -0,0 +1,30 @@
+//go:build secretserver || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	secretserver "github.com/external-secrets/external-secrets/providers/v1/secretserver"
+)
+
+func init() {
+	// Register secretserver provider
+	esv1.Register(secretserver.NewProvider(), secretserver.ProviderSpec(), secretserver.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/senhasegura.go

@@ -0,0 +1,30 @@
+//go:build senhasegura || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	senhasegura "github.com/external-secrets/external-secrets/providers/v1/senhasegura"
+)
+
+func init() {
+	// Register senhasegura provider
+	esv1.Register(senhasegura.NewProvider(), senhasegura.ProviderSpec(), senhasegura.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/vault.go

@@ -0,0 +1,30 @@
+//go:build vault || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	vault "github.com/external-secrets/external-secrets/providers/v1/vault"
+)
+
+func init() {
+	// Register vault provider
+	esv1.Register(vault.NewProvider(), vault.ProviderSpec(), vault.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/volcengine.go

@@ -0,0 +1,30 @@
+//go:build volcengine || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	volcengine "github.com/external-secrets/external-secrets/providers/v1/volcengine"
+)
+
+func init() {
+	// Register volcengine provider
+	esv1.Register(volcengine.NewProvider(), volcengine.ProviderSpec(), volcengine.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/yandexcert.go

@@ -0,0 +1,30 @@
+//go:build yandexcert || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	yandexcert "github.com/external-secrets/external-secrets/providers/v1/yandex/certificatemanager"
+)
+
+func init() {
+	// Register yandexcert provider
+	esv1.Register(yandexcert.NewProvider(), yandexcert.ProviderSpec(), yandexcert.MaintenanceStatus())
+}

+ 30 - 0
pkg/register/yandexlock.go

@@ -0,0 +1,30 @@
+//go:build yandexlock || all_providers
+
+/*
+Copyright © 2025 ESO Maintainer Team
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package register provides explicit registration of all providers and generators.
+package register
+
+import (
+	esv1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1"
+	yandexlock "github.com/external-secrets/external-secrets/providers/v1/yandex/lockbox"
+)
+
+func init() {
+	// Register yandexlock provider
+	esv1.Register(yandexlock.NewProvider(), yandexlock.ProviderSpec(), yandexlock.MaintenanceStatus())
+}