mirror of
https://github.com/1Password/onepassword-operator.git
synced 2025-10-22 07:28:06 +00:00
Add missing packages
- `version` is used for getting the operator version and the operator SDK version in the logs. - `k8suitl` is extracted from the operator-sdk to be able to fetch the namespace the operator is deployed to. This is used to deploy Connect in the same namespace if `MANAGE_CONNECT` is set to `true`. In the future, we may want to no rely on this, since this functionality is internal in the operator-sdk.
This commit is contained in:
49
pkg/utils/k8sutil.go
Normal file
49
pkg/utils/k8sutil.go
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
package utils
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
logf "sigs.k8s.io/controller-runtime/pkg/log"
|
||||||
|
)
|
||||||
|
|
||||||
|
var ForceRunModeEnv = "OSDK_FORCE_RUN_MODE"
|
||||||
|
|
||||||
|
type RunModeType string
|
||||||
|
|
||||||
|
const (
|
||||||
|
LocalRunMode RunModeType = "local"
|
||||||
|
ClusterRunMode RunModeType = "cluster"
|
||||||
|
)
|
||||||
|
|
||||||
|
var log = logf.Log.WithName("k8sutil")
|
||||||
|
|
||||||
|
// ErrNoNamespace indicates that a namespace could not be found for the current
|
||||||
|
// environment
|
||||||
|
var ErrNoNamespace = fmt.Errorf("namespace not found for current environment")
|
||||||
|
|
||||||
|
// ErrRunLocal indicates that the operator is set to run in local mode (this error
|
||||||
|
// is returned by functions that only work on operators running in cluster mode)
|
||||||
|
var ErrRunLocal = fmt.Errorf("operator run mode forced to local")
|
||||||
|
|
||||||
|
// GetOperatorNamespace returns the namespace the operator should be running in.
|
||||||
|
func GetOperatorNamespace() (string, error) {
|
||||||
|
if isRunModeLocal() {
|
||||||
|
return "", ErrRunLocal
|
||||||
|
}
|
||||||
|
nsBytes, err := os.ReadFile("/var/run/secrets/kubernetes.io/serviceaccount/namespace")
|
||||||
|
if err != nil {
|
||||||
|
if os.IsNotExist(err) {
|
||||||
|
return "", ErrNoNamespace
|
||||||
|
}
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
ns := strings.TrimSpace(string(nsBytes))
|
||||||
|
log.V(1).Info("Found namespace", "Namespace", ns)
|
||||||
|
return ns, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func isRunModeLocal() bool {
|
||||||
|
return os.Getenv(ForceRunModeEnv) == string(LocalRunMode)
|
||||||
|
}
|
6
version/version.go
Normal file
6
version/version.go
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
package version
|
||||||
|
|
||||||
|
var (
|
||||||
|
OperatorVersion = "1.5.0"
|
||||||
|
OperatorSDKVersion = "1.23.0"
|
||||||
|
)
|
Reference in New Issue
Block a user