Compare commits

...

5 Commits

49 changed files with 290 additions and 137 deletions

View File

@ -4,8 +4,8 @@ metadata:
name: {{ include "secrets-operator.fullname" . }}-controller-manager
labels:
app.kubernetes.io/component: manager
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/part-of: infisical-operator
control-plane: controller-manager
{{- include "secrets-operator.labels" . | nindent 4 }}
spec:

View File

@ -4,8 +4,8 @@ metadata:
name: {{ include "secrets-operator.fullname" . }}-leader-election-role
labels:
app.kubernetes.io/component: rbac
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/part-of: infisical-operator
{{- include "secrets-operator.labels" . | nindent 4 }}
rules:
- apiGroups:
@ -46,8 +46,8 @@ metadata:
name: {{ include "secrets-operator.fullname" . }}-leader-election-rolebinding
labels:
app.kubernetes.io/component: rbac
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/part-of: infisical-operator
{{- include "secrets-operator.labels" . | nindent 4 }}
roleRef:
apiGroup: rbac.authorization.k8s.io

View File

@ -185,8 +185,8 @@ metadata:
{{- end }}
labels:
app.kubernetes.io/component: rbac
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/part-of: infisical-operator
{{- include "secrets-operator.labels" . | nindent 4 }}
roleRef:
apiGroup: rbac.authorization.k8s.io

View File

@ -5,8 +5,8 @@ metadata:
name: {{ include "secrets-operator.fullname" . }}-metrics-reader
labels:
app.kubernetes.io/component: kube-rbac-proxy
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/part-of: infisical-operator
{{- include "secrets-operator.labels" . | nindent 4 }}
rules:
- nonResourceURLs:

View File

@ -4,8 +4,8 @@ metadata:
name: {{ include "secrets-operator.fullname" . }}-controller-manager-metrics-service
labels:
app.kubernetes.io/component: kube-rbac-proxy
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/part-of: infisical-operator
control-plane: controller-manager
{{- include "secrets-operator.labels" . | nindent 4 }}
spec:

View File

@ -5,8 +5,8 @@ metadata:
name: {{ include "secrets-operator.fullname" . }}-proxy-role
labels:
app.kubernetes.io/component: kube-rbac-proxy
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/part-of: infisical-operator
{{- include "secrets-operator.labels" . | nindent 4 }}
rules:
- apiGroups:
@ -28,8 +28,8 @@ metadata:
name: {{ include "secrets-operator.fullname" . }}-proxy-rolebinding
labels:
app.kubernetes.io/component: kube-rbac-proxy
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/part-of: infisical-operator
{{- include "secrets-operator.labels" . | nindent 4 }}
roleRef:
apiGroup: rbac.authorization.k8s.io

View File

@ -4,8 +4,8 @@ metadata:
name: {{ include "secrets-operator.fullname" . }}-controller-manager
labels:
app.kubernetes.io/component: rbac
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/part-of: infisical-operator
{{- include "secrets-operator.labels" . | nindent 4 }}
annotations:
{{- toYaml .Values.controllerManager.serviceAccount.annotations | nindent 4 }}

View File

@ -4,6 +4,17 @@ IMG ?= infisical/kubernetes-operator:latest
# ENVTEST_K8S_VERSION refers to the version of kubebuilder assets to be downloaded by envtest binary.
ENVTEST_K8S_VERSION = 1.25.0
VERSION ?= 1.0.0
CHANNELS ?= stable
DEFAULT_CHANNEL ?= stable
BUNDLE_IMG ?= infisical/kubernetes-operator-bundle:v$(VERSION)
OPERATOR_SDK_VERSION ?= v1.34.1
OPERATOR_SDK ?= $(LOCALBIN)/operator-sdk
# Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set)
ifeq (,$(shell go env GOBIN))
GOBIN=$(shell go env GOPATH)/bin
@ -82,6 +93,55 @@ vet: ## Run go vet against code.
test: manifests generate fmt vet envtest ## Run tests.
KUBEBUILDER_ASSETS="$(shell $(ENVTEST) use $(ENVTEST_K8S_VERSION) --bin-dir $(LOCALBIN) -p path)" go test ./... -coverprofile cover.out
# BUNDLER
##@ Bundle
.PHONY: bundle
bundle: manifests kustomize operator-sdk ## Generate bundle manifests and metadata, then validate generated files.
cd config/manager && $(KUSTOMIZE) edit set image controller=$(IMG)
$(KUSTOMIZE) build config/default | $(OPERATOR_SDK) generate bundle -q --overwrite --version $(VERSION) $(BUNDLE_METADATA_OPTS)
@echo "Applying customizations to CSV..."
chmod +x ./scripts/fix-csv.sh && ./scripts/fix-csv.sh $(VERSION)
$(OPERATOR_SDK) bundle validate ./bundle
.PHONY: bundle-build
bundle-build: ## Build the bundle image.
docker build -f bundle/bundle.Dockerfile -t $(BUNDLE_IMG) .
.PHONY: bundle-push
bundle-push: ## Push the bundle image.
$(MAKE) docker-push IMG=$(BUNDLE_IMG)
# Set bundle metadata options
ifneq ($(origin CHANNELS), undefined)
BUNDLE_CHANNELS := --channels=$(CHANNELS)
endif
ifneq ($(origin DEFAULT_CHANNEL), undefined)
BUNDLE_DEFAULT_CHANNEL := --default-channel=$(DEFAULT_CHANNEL)
endif
BUNDLE_METADATA_OPTS ?= $(BUNDLE_CHANNELS) $(BUNDLE_DEFAULT_CHANNEL)
.PHONY: operator-sdk
operator-sdk: $(OPERATOR_SDK) ## Download operator-sdk locally if necessary.
$(OPERATOR_SDK): $(LOCALBIN)
@if test -x $(LOCALBIN)/operator-sdk && ! $(LOCALBIN)/operator-sdk version | grep -q $(OPERATOR_SDK_VERSION); then \
echo "$(LOCALBIN)/operator-sdk version is not expected $(OPERATOR_SDK_VERSION). Removing it before installing."; \
rm -rf $(LOCALBIN)/operator-sdk; \
fi
@{ \
set -e ;\
mkdir -p $(dir $(OPERATOR_SDK)) ;\
OS=$(shell go env GOOS) && ARCH=$(shell go env GOARCH) && \
curl -sSLo $(OPERATOR_SDK) https://github.com/operator-framework/operator-sdk/releases/download/$(OPERATOR_SDK_VERSION)/operator-sdk_$${OS}_$${ARCH} ;\
chmod +x $(OPERATOR_SDK) ;\
}
##@ Build
.PHONY: build

View File

@ -5,8 +5,8 @@
domain: infisical.com
layout:
- go.kubebuilder.io/v3
projectName: k8-operator
repo: github.com/Infisical/infisical/k8-operator
projectName: infisical-operator
repo: github.com/Infisical/infisical/infisical-operator
resources:
- api:
crdVersion: v1
@ -15,7 +15,7 @@ resources:
domain: infisical.com
group: secrets
kind: InfisicalSecret
path: github.com/Infisical/infisical/k8-operator/api/v1alpha1
path: github.com/Infisical/infisical/infisical-operator/api/v1alpha1
version: v1alpha1
- api:
crdVersion: v1
@ -24,7 +24,7 @@ resources:
domain: infisical.com
group: secrets
kind: InfisicalPushSecretSecret
path: github.com/Infisical/infisical/k8-operator/api/v1alpha1
path: github.com/Infisical/infisical/infisical-operator/api/v1alpha1
version: v1alpha1
- api:
crdVersion: v1
@ -33,6 +33,6 @@ resources:
domain: infisical.com
group: secrets
kind: InfisicalDynamicSecret
path: github.com/Infisical/infisical/k8-operator/api/v1alpha1
path: github.com/Infisical/infisical/infisical-operator/api/v1alpha1
version: v1alpha1
version: "3"

View File

@ -6,8 +6,8 @@ metadata:
app.kubernetes.io/name: namespace
app.kubernetes.io/instance: system
app.kubernetes.io/component: manager
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/part-of: infisical-operator
app.kubernetes.io/managed-by: kustomize
name: system
---
@ -21,8 +21,8 @@ metadata:
app.kubernetes.io/name: deployment
app.kubernetes.io/instance: controller-manager
app.kubernetes.io/component: manager
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/part-of: infisical-operator
app.kubernetes.io/managed-by: kustomize
spec:
selector:
@ -99,4 +99,4 @@ spec:
cpu: 10m
memory: 64Mi
serviceAccountName: controller-manager
terminationGracePeriodSeconds: 10
terminationGracePeriodSeconds: 10

View File

@ -1,4 +1,3 @@
# Prometheus Monitor Service (Metrics)
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
@ -8,8 +7,8 @@ metadata:
app.kubernetes.io/name: servicemonitor
app.kubernetes.io/instance: controller-manager-metrics-monitor
app.kubernetes.io/component: metrics
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/part-of: infisical-operator
app.kubernetes.io/managed-by: kustomize
name: controller-manager-metrics-monitor
namespace: system

View File

@ -5,12 +5,12 @@ metadata:
app.kubernetes.io/name: clusterrole
app.kubernetes.io/instance: metrics-reader
app.kubernetes.io/component: kube-rbac-proxy
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/part-of: infisical-operator
app.kubernetes.io/managed-by: kustomize
name: metrics-reader
rules:
- nonResourceURLs:
- "/metrics"
verbs:
- get
- get

View File

@ -5,8 +5,8 @@ metadata:
app.kubernetes.io/name: clusterrole
app.kubernetes.io/instance: proxy-role
app.kubernetes.io/component: kube-rbac-proxy
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/part-of: infisical-operator
app.kubernetes.io/managed-by: kustomize
name: proxy-role
rules:
@ -21,4 +21,4 @@ rules:
resources:
- subjectaccessreviews
verbs:
- create
- create

View File

@ -5,8 +5,8 @@ metadata:
app.kubernetes.io/name: clusterrolebinding
app.kubernetes.io/instance: proxy-rolebinding
app.kubernetes.io/component: kube-rbac-proxy
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/part-of: infisical-operator
app.kubernetes.io/managed-by: kustomize
name: proxy-rolebinding
roleRef:
@ -16,4 +16,4 @@ roleRef:
subjects:
- kind: ServiceAccount
name: controller-manager
namespace: system
namespace: system

View File

@ -6,8 +6,8 @@ metadata:
app.kubernetes.io/name: service
app.kubernetes.io/instance: controller-manager-metrics-service
app.kubernetes.io/component: kube-rbac-proxy
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/part-of: infisical-operator
app.kubernetes.io/managed-by: kustomize
name: controller-manager-metrics-service
namespace: system
@ -18,4 +18,4 @@ spec:
protocol: TCP
targetPort: https
selector:
control-plane: controller-manager
control-plane: controller-manager

View File

@ -3,7 +3,7 @@ apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
app.kubernetes.io/name: k8-operator
app.kubernetes.io/name: infisical-operator
app.kubernetes.io/managed-by: kustomize
name: infisicaldynamicsecret-editor-role
rules:
@ -24,4 +24,4 @@ rules:
resources:
- infisicaldynamicsecrets/status
verbs:
- get
- get

View File

@ -3,7 +3,7 @@ apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
app.kubernetes.io/name: k8-operator
app.kubernetes.io/name: infisical-operator
app.kubernetes.io/managed-by: kustomize
name: infisicaldynamicsecret-viewer-role
rules:

View File

@ -3,7 +3,7 @@ apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
app.kubernetes.io/name: k8-operator
app.kubernetes.io/name: infisical-operator
app.kubernetes.io/managed-by: kustomize
name: infisicalpushsecret-editor-role
rules:

View File

@ -3,7 +3,7 @@ apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
app.kubernetes.io/name: k8-operator
app.kubernetes.io/name: infisical-operator
app.kubernetes.io/managed-by: kustomize
name: infisicalpushsecret-viewer-role
rules:

View File

@ -6,8 +6,8 @@ metadata:
app.kubernetes.io/name: clusterrole
app.kubernetes.io/instance: infisicalsecret-editor-role
app.kubernetes.io/component: rbac
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/part-of: infisical-operator
app.kubernetes.io/managed-by: kustomize
name: infisicalsecret-editor-role
rules:

View File

@ -6,8 +6,8 @@ metadata:
app.kubernetes.io/name: clusterrole
app.kubernetes.io/instance: infisicalsecret-viewer-role
app.kubernetes.io/component: rbac
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/part-of: infisical-operator
app.kubernetes.io/managed-by: kustomize
name: infisicalsecret-viewer-role
rules:

View File

@ -6,8 +6,8 @@ metadata:
app.kubernetes.io/name: role
app.kubernetes.io/instance: leader-election-role
app.kubernetes.io/component: rbac
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/part-of: infisical-operator
app.kubernetes.io/managed-by: kustomize
name: leader-election-role
rules:

View File

@ -5,8 +5,8 @@ metadata:
app.kubernetes.io/name: rolebinding
app.kubernetes.io/instance: leader-election-rolebinding
app.kubernetes.io/component: rbac
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/part-of: infisical-operator
app.kubernetes.io/managed-by: kustomize
name: leader-election-rolebinding
roleRef:

View File

@ -5,8 +5,8 @@ metadata:
app.kubernetes.io/name: clusterrolebinding
app.kubernetes.io/instance: manager-rolebinding
app.kubernetes.io/component: rbac
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/part-of: infisical-operator
app.kubernetes.io/managed-by: kustomize
name: manager-rolebinding
roleRef:

View File

@ -5,8 +5,8 @@ metadata:
app.kubernetes.io/name: serviceaccount
app.kubernetes.io/instance: controller-manager
app.kubernetes.io/component: rbac
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/part-of: infisical-operator
app.kubernetes.io/managed-by: kustomize
name: controller-manager
namespace: system

View File

@ -4,7 +4,7 @@ import (
"context"
"fmt"
"github.com/Infisical/infisical/k8-operator/api/v1alpha1"
"github.com/Infisical/infisical/infisical-operator/api/v1alpha1"
"github.com/go-logr/logr"
"k8s.io/apimachinery/pkg/api/meta"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"

View File

@ -15,11 +15,11 @@ import (
"sigs.k8s.io/controller-runtime/pkg/event"
"sigs.k8s.io/controller-runtime/pkg/predicate"
secretsv1alpha1 "github.com/Infisical/infisical/k8-operator/api/v1alpha1"
"github.com/Infisical/infisical/k8-operator/packages/api"
"github.com/Infisical/infisical/k8-operator/packages/constants"
controllerhelpers "github.com/Infisical/infisical/k8-operator/packages/controllerhelpers"
"github.com/Infisical/infisical/k8-operator/packages/util"
secretsv1alpha1 "github.com/Infisical/infisical/infisical-operator/api/v1alpha1"
"github.com/Infisical/infisical/infisical-operator/packages/api"
"github.com/Infisical/infisical/infisical-operator/packages/constants"
controllerhelpers "github.com/Infisical/infisical/infisical-operator/packages/controllerhelpers"
"github.com/Infisical/infisical/infisical-operator/packages/util"
"github.com/go-logr/logr"
)

View File

@ -7,10 +7,10 @@ import (
"strings"
"time"
"github.com/Infisical/infisical/k8-operator/api/v1alpha1"
"github.com/Infisical/infisical/k8-operator/packages/api"
"github.com/Infisical/infisical/k8-operator/packages/constants"
"github.com/Infisical/infisical/k8-operator/packages/util"
"github.com/Infisical/infisical/infisical-operator/api/v1alpha1"
"github.com/Infisical/infisical/infisical-operator/packages/api"
"github.com/Infisical/infisical/infisical-operator/packages/constants"
"github.com/Infisical/infisical/infisical-operator/packages/util"
"github.com/go-logr/logr"
"k8s.io/apimachinery/pkg/types"
"sigs.k8s.io/controller-runtime/pkg/client"

View File

@ -4,7 +4,7 @@ import (
"context"
"fmt"
"github.com/Infisical/infisical/k8-operator/api/v1alpha1"
"github.com/Infisical/infisical/infisical-operator/api/v1alpha1"
"k8s.io/apimachinery/pkg/api/meta"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

View File

@ -19,11 +19,11 @@ import (
"sigs.k8s.io/controller-runtime/pkg/reconcile"
"sigs.k8s.io/controller-runtime/pkg/source"
secretsv1alpha1 "github.com/Infisical/infisical/k8-operator/api/v1alpha1"
"github.com/Infisical/infisical/k8-operator/packages/api"
"github.com/Infisical/infisical/k8-operator/packages/constants"
controllerhelpers "github.com/Infisical/infisical/k8-operator/packages/controllerhelpers"
"github.com/Infisical/infisical/k8-operator/packages/util"
secretsv1alpha1 "github.com/Infisical/infisical/infisical-operator/api/v1alpha1"
"github.com/Infisical/infisical/infisical-operator/packages/api"
"github.com/Infisical/infisical/infisical-operator/packages/constants"
controllerhelpers "github.com/Infisical/infisical/infisical-operator/packages/controllerhelpers"
"github.com/Infisical/infisical/infisical-operator/packages/util"
"github.com/go-logr/logr"
)

View File

@ -8,18 +8,18 @@ import (
"strings"
tpl "text/template"
"github.com/Infisical/infisical/k8-operator/api/v1alpha1"
"github.com/Infisical/infisical/k8-operator/packages/api"
"github.com/Infisical/infisical/k8-operator/packages/constants"
"github.com/Infisical/infisical/k8-operator/packages/model"
"github.com/Infisical/infisical/k8-operator/packages/template"
"github.com/Infisical/infisical/k8-operator/packages/util"
"github.com/Infisical/infisical/infisical-operator/api/v1alpha1"
"github.com/Infisical/infisical/infisical-operator/packages/api"
"github.com/Infisical/infisical/infisical-operator/packages/constants"
"github.com/Infisical/infisical/infisical-operator/packages/model"
"github.com/Infisical/infisical/infisical-operator/packages/template"
"github.com/Infisical/infisical/infisical-operator/packages/util"
"github.com/go-logr/logr"
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/types"
"sigs.k8s.io/controller-runtime/pkg/client"
generatorUtil "github.com/Infisical/infisical/k8-operator/packages/generator"
generatorUtil "github.com/Infisical/infisical/infisical-operator/packages/generator"
infisicalSdk "github.com/infisical/go-sdk"
k8Errors "k8s.io/apimachinery/pkg/api/errors"
)

View File

@ -4,8 +4,8 @@ import (
"context"
"fmt"
"github.com/Infisical/infisical/k8-operator/api/v1alpha1"
"github.com/Infisical/infisical/k8-operator/packages/util"
"github.com/Infisical/infisical/infisical-operator/api/v1alpha1"
"github.com/Infisical/infisical/infisical-operator/packages/util"
"github.com/go-logr/logr"
"k8s.io/apimachinery/pkg/api/meta"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"

View File

@ -15,10 +15,10 @@ import (
defaultErrors "errors"
secretsv1alpha1 "github.com/Infisical/infisical/k8-operator/api/v1alpha1"
"github.com/Infisical/infisical/k8-operator/packages/api"
controllerhelpers "github.com/Infisical/infisical/k8-operator/packages/controllerhelpers"
"github.com/Infisical/infisical/k8-operator/packages/util"
secretsv1alpha1 "github.com/Infisical/infisical/infisical-operator/api/v1alpha1"
"github.com/Infisical/infisical/infisical-operator/packages/api"
controllerhelpers "github.com/Infisical/infisical/infisical-operator/packages/controllerhelpers"
"github.com/Infisical/infisical/infisical-operator/packages/util"
"github.com/go-logr/logr"
)

View File

@ -8,13 +8,13 @@ import (
"strings"
tpl "text/template"
"github.com/Infisical/infisical/k8-operator/api/v1alpha1"
"github.com/Infisical/infisical/k8-operator/packages/api"
"github.com/Infisical/infisical/k8-operator/packages/constants"
"github.com/Infisical/infisical/k8-operator/packages/crypto"
"github.com/Infisical/infisical/k8-operator/packages/model"
"github.com/Infisical/infisical/k8-operator/packages/template"
"github.com/Infisical/infisical/k8-operator/packages/util"
"github.com/Infisical/infisical/infisical-operator/api/v1alpha1"
"github.com/Infisical/infisical/infisical-operator/packages/api"
"github.com/Infisical/infisical/infisical-operator/packages/constants"
"github.com/Infisical/infisical/infisical-operator/packages/crypto"
"github.com/Infisical/infisical/infisical-operator/packages/model"
"github.com/Infisical/infisical/infisical-operator/packages/template"
"github.com/Infisical/infisical/infisical-operator/packages/util"
"github.com/go-logr/logr"
"k8s.io/apimachinery/pkg/types"

View File

@ -14,7 +14,7 @@ import (
logf "sigs.k8s.io/controller-runtime/pkg/log"
"sigs.k8s.io/controller-runtime/pkg/log/zap"
secretsv1alpha1 "github.com/Infisical/infisical/k8-operator/api/v1alpha1"
secretsv1alpha1 "github.com/Infisical/infisical/infisical-operator/api/v1alpha1"
//+kubebuilder:scaffold:imports
)

View File

@ -1,4 +1,4 @@
module github.com/Infisical/infisical/k8-operator
module github.com/Infisical/infisical/infisical-operator
go 1.21

View File

@ -24,7 +24,7 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/log"
secretsv1alpha1 "github.com/Infisical/infisical/k8-operator/api/v1alpha1"
secretsv1alpha1 "github.com/Infisical/infisical/infisical-operator/api/v1alpha1"
)
// InfisicalDynamicSecretReconciler reconciles a InfisicalDynamicSecret object

View File

@ -3,11 +3,11 @@ kind: Namespace
metadata:
labels:
app.kubernetes.io/component: manager
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/instance: system
app.kubernetes.io/managed-by: kustomize
app.kubernetes.io/name: namespace
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/part-of: infisical-operator
control-plane: controller-manager
name: infisical-operator-system
---
@ -921,11 +921,11 @@ kind: ServiceAccount
metadata:
labels:
app.kubernetes.io/component: rbac
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/instance: controller-manager
app.kubernetes.io/managed-by: kustomize
app.kubernetes.io/name: serviceaccount
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/part-of: infisical-operator
name: infisical-operator-controller-manager
namespace: infisical-operator-system
---
@ -934,11 +934,11 @@ kind: Role
metadata:
labels:
app.kubernetes.io/component: rbac
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/instance: leader-election-role
app.kubernetes.io/managed-by: kustomize
app.kubernetes.io/name: role
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/part-of: infisical-operator
name: infisical-operator-leader-election-role
namespace: infisical-operator-system
rules:
@ -1114,11 +1114,11 @@ kind: ClusterRole
metadata:
labels:
app.kubernetes.io/component: kube-rbac-proxy
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/instance: metrics-reader
app.kubernetes.io/managed-by: kustomize
app.kubernetes.io/name: clusterrole
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/part-of: infisical-operator
name: infisical-operator-metrics-reader
rules:
- nonResourceURLs:
@ -1131,11 +1131,11 @@ kind: ClusterRole
metadata:
labels:
app.kubernetes.io/component: kube-rbac-proxy
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/instance: proxy-role
app.kubernetes.io/managed-by: kustomize
app.kubernetes.io/name: clusterrole
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/part-of: infisical-operator
name: infisical-operator-proxy-role
rules:
- apiGroups:
@ -1156,11 +1156,11 @@ kind: RoleBinding
metadata:
labels:
app.kubernetes.io/component: rbac
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/instance: leader-election-rolebinding
app.kubernetes.io/managed-by: kustomize
app.kubernetes.io/name: rolebinding
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/part-of: infisical-operator
name: infisical-operator-leader-election-rolebinding
namespace: infisical-operator-system
roleRef:
@ -1177,11 +1177,11 @@ kind: ClusterRoleBinding
metadata:
labels:
app.kubernetes.io/component: rbac
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/instance: manager-rolebinding
app.kubernetes.io/managed-by: kustomize
app.kubernetes.io/name: clusterrolebinding
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/part-of: infisical-operator
name: infisical-operator-manager-rolebinding
roleRef:
apiGroup: rbac.authorization.k8s.io
@ -1197,11 +1197,11 @@ kind: ClusterRoleBinding
metadata:
labels:
app.kubernetes.io/component: kube-rbac-proxy
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/instance: proxy-rolebinding
app.kubernetes.io/managed-by: kustomize
app.kubernetes.io/name: clusterrolebinding
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/part-of: infisical-operator
name: infisical-operator-proxy-rolebinding
roleRef:
apiGroup: rbac.authorization.k8s.io
@ -1217,11 +1217,11 @@ kind: Service
metadata:
labels:
app.kubernetes.io/component: kube-rbac-proxy
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/instance: controller-manager-metrics-service
app.kubernetes.io/managed-by: kustomize
app.kubernetes.io/name: service
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/part-of: infisical-operator
control-plane: controller-manager
name: infisical-operator-controller-manager-metrics-service
namespace: infisical-operator-system
@ -1239,11 +1239,11 @@ kind: Deployment
metadata:
labels:
app.kubernetes.io/component: manager
app.kubernetes.io/created-by: k8-operator
app.kubernetes.io/created-by: infisical-operator
app.kubernetes.io/instance: controller-manager
app.kubernetes.io/managed-by: kustomize
app.kubernetes.io/name: deployment
app.kubernetes.io/part-of: k8-operator
app.kubernetes.io/part-of: infisical-operator
control-plane: controller-manager
name: infisical-operator-controller-manager
namespace: infisical-operator-system

View File

@ -18,11 +18,11 @@ import (
"sigs.k8s.io/controller-runtime/pkg/healthz"
"sigs.k8s.io/controller-runtime/pkg/log/zap"
secretsv1alpha1 "github.com/Infisical/infisical/k8-operator/api/v1alpha1"
infisicalDynamicSecretController "github.com/Infisical/infisical/k8-operator/controllers/infisicaldynamicsecret"
infisicalPushSecretController "github.com/Infisical/infisical/k8-operator/controllers/infisicalpushsecret"
infisicalSecretController "github.com/Infisical/infisical/k8-operator/controllers/infisicalsecret"
"github.com/Infisical/infisical/k8-operator/packages/template"
secretsv1alpha1 "github.com/Infisical/infisical/infisical-operator/api/v1alpha1"
infisicalDynamicSecretController "github.com/Infisical/infisical/infisical-operator/controllers/infisicaldynamicsecret"
infisicalPushSecretController "github.com/Infisical/infisical/infisical-operator/controllers/infisicalpushsecret"
infisicalSecretController "github.com/Infisical/infisical/infisical-operator/controllers/infisicalsecret"
"github.com/Infisical/infisical/infisical-operator/packages/template"
//+kubebuilder:scaffold:imports
)

View File

@ -3,7 +3,7 @@ package api
import (
"time"
"github.com/Infisical/infisical/k8-operator/packages/model"
"github.com/Infisical/infisical/infisical-operator/packages/model"
)
type GetEncryptedWorkspaceKeyRequest struct {

View File

@ -5,8 +5,8 @@ import (
"fmt"
"sync"
"github.com/Infisical/infisical/k8-operator/api/v1alpha1"
"github.com/Infisical/infisical/k8-operator/packages/constants"
"github.com/Infisical/infisical/infisical-operator/api/v1alpha1"
"github.com/Infisical/infisical/infisical-operator/packages/constants"
"github.com/go-logr/logr"
v1 "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"

View File

@ -4,7 +4,7 @@ import (
"context"
"fmt"
"github.com/Infisical/infisical/k8-operator/packages/constants"
"github.com/Infisical/infisical/infisical-operator/packages/constants"
corev1 "k8s.io/api/core/v1"
k8Errors "k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/types"

View File

@ -1,7 +1,7 @@
package generator
import (
"github.com/Infisical/infisical/k8-operator/api/v1alpha1"
"github.com/Infisical/infisical/infisical-operator/api/v1alpha1"
"github.com/sethvargo/go-password/password"
)

View File

@ -10,7 +10,7 @@ import (
authenticationv1 "k8s.io/api/authentication/v1"
"github.com/Infisical/infisical/k8-operator/api/v1alpha1"
"github.com/Infisical/infisical/infisical-operator/api/v1alpha1"
"github.com/aws/smithy-go/ptr"
infisicalSdk "github.com/infisical/go-sdk"
"sigs.k8s.io/controller-runtime/pkg/client"

View File

@ -4,8 +4,8 @@ import (
"context"
"fmt"
"github.com/Infisical/infisical/k8-operator/api/v1alpha1"
"github.com/Infisical/infisical/k8-operator/packages/model"
"github.com/Infisical/infisical/infisical-operator/api/v1alpha1"
"github.com/Infisical/infisical/infisical-operator/packages/model"
corev1 "k8s.io/api/core/v1"
k8Errors "k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/types"

View File

@ -4,9 +4,9 @@ import (
"fmt"
"strings"
"github.com/Infisical/infisical/k8-operator/api/v1alpha1"
"github.com/Infisical/infisical/k8-operator/packages/api"
"github.com/Infisical/infisical/k8-operator/packages/model"
"github.com/Infisical/infisical/infisical-operator/api/v1alpha1"
"github.com/Infisical/infisical/infisical-operator/packages/api"
"github.com/Infisical/infisical/infisical-operator/packages/model"
"github.com/go-resty/resty/v2"
infisical "github.com/infisical/go-sdk"
)

View File

@ -3,8 +3,8 @@ package util
import (
"fmt"
"github.com/Infisical/infisical/k8-operator/packages/api"
"github.com/Infisical/infisical/k8-operator/packages/model"
"github.com/Infisical/infisical/infisical-operator/packages/api"
"github.com/Infisical/infisical/infisical-operator/packages/model"
"github.com/go-resty/resty/v2"
)

94
k8-operator/scripts/fix-csv.sh Executable file
View File

@ -0,0 +1,94 @@
#!/bin/bash
CSV_FILE="bundle/manifests/infisical-operator.clusterserviceversion.yaml"
VERSION=$1
if [ ! -f "$CSV_FILE" ]; then
echo "CSV file not found: $CSV_FILE"
echo "Run 'make bundle VERSION=1.0.0' first"
exit 1
fi
if [ -z "$VERSION" ]; then
echo "VERSION is not set"
exit 1
fi
# Get base64 logo without newlines
if [ -f "./scripts/logo.png" ]; then
ICON_BASE64=$(base64 -i ./scripts/logo.png | tr -d '\n')
elif [ -f "./logo.png" ]; then
ICON_BASE64=$(base64 -i ./logo.png | tr -d '\n')
else
echo "No logo.png found - exiting"
exit 1
fi
echo "Customizing CSV: $CSV_FILE"
# Basic metadata replacements (required for OperatorHub)
sed -i.bak 's/maturity: alpha/maturity: stable/' "$CSV_FILE"
sed -i.bak 's/description: K8 Operator description. TODO./description: The Infisical Operator enables you to fetch secrets from Infisical and inject them into your Kubernetes cluster./' "$CSV_FILE"
sed -i.bak 's/displayName: K8 Operator/displayName: Infisical Kubernetes Operator/' "$CSV_FILE"
sed -i.bak 's/email: your@email.com/email: daniel@infisical.com/' "$CSV_FILE"
sed -i.bak 's/name: Maintainer Name/name: Daniel H./' "$CSV_FILE"
sed -i.bak 's/name: Provider Name/name: Infisical/' "$CSV_FILE"
sed -i.bak 's|url: https://your.domain|url: https://infisical.com|' "$CSV_FILE"
sed -i.bak 's/name: K8 Operator/name: Infisical Kubernetes Operator/' "$CSV_FILE"
sed -i.bak 's|url: https://k8-operator.domain|url: https://infisical.com|' "$CSV_FILE"
# Add categories annotation (required for OperatorHub)
sed -i.bak 's/capabilities: Basic Install/capabilities: Basic Install\
categories: Security/' "$CSV_FILE"
# Add containerImage annotation (required for OperatorHub)
sed -i.bak '/categories: Security/a\
containerImage: docker.io/infisical/kubernetes-operator:v'"$VERSION"'\
' "$CSV_FILE"
# Add icon (using temp file to avoid sed issues with special chars)
echo "$ICON_BASE64" > /tmp/icon_b64.txt
printf '%s\n' "s|base64data: \"\"|base64data: \"$ICON_BASE64\"|" | sed -i.bak -f - "$CSV_FILE"
sed -i.bak 's/mediatype: ""/mediatype: "image\/png"/' "$CSV_FILE"
rm -f /tmp/icon_b64.txt
# Fix keywords section (remove old keywords, add new ones)
# First remove any existing keyword lines after "keywords:"
sed -i.bak '/^ keywords:/,/^ [a-zA-Z]/{
/^ keywords:/!{
/^ [a-zA-Z]/!d
}
}' "$CSV_FILE"
sed -i.bak '/^ keywords:/a\
- secrets\
- security\
- infisical\
- secret-management\
' "$CSV_FILE"
sed -i.bak '/^ - k8-operator$/d' "$CSV_FILE"
# Update docker image tag to match new version
sed -i.bak "s|image: infisical/kubernetes-operator:[^[:space:]]*|image: docker.io/infisical/kubernetes-operator:v$VERSION|g" "$CSV_FILE"
rm -f "$CSV_FILE.bak"
echo "CSV customized successfully!"
# Validate the result
echo "Validating CSV syntax..."
if command -v yq >/dev/null 2>&1; then
if yq eval '.' "$CSV_FILE" > /dev/null 2>&1; then
echo "YAML syntax is valid"
else
echo "YAML syntax error"
echo "Checking with yq:"
yq eval '.' "$CSV_FILE"
fi
else
echo "yq not found - exiting"
exit 1
fi
echo "CSV customized successfully."

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB