pkg/platform/platform.go (48 lines of code) (raw):

package platform import ( "os" "strconv" ) const ( TypeEnv = "PLATFORM_TYPE" TenancyEngineEnv = "TENANCY_ENGINE" ManageNamespaceEnv = "MANAGE_NAMESPACE" Openshift = "openshift" Kubernetes = "kubernetes" TenancyEngineCapsule = "capsule" OIDCAdminGroupName = "OIDC_ADMIN_GROUP_NAME" OIDCDeveloperGroupName = "OIDC_DEVELOPER_GROUP_NAME" ) func GetPlatformTypeEnv() string { pt, ok := os.LookupEnv(TypeEnv) if ok { return pt } return Kubernetes } // IsKubernetes returns true if platform type is kubernetes. func IsKubernetes() bool { return GetPlatformTypeEnv() == Kubernetes } // IsOpenshift returns true if platform type is openshift. func IsOpenshift() bool { return GetPlatformTypeEnv() == Openshift } // CapsuleEnabled returns true if capsule is enabled. func CapsuleEnabled() bool { return os.Getenv(TenancyEngineEnv) == TenancyEngineCapsule } // ManageNamespace returns true if namespace should be managed by the operator. // If the environment variable MANAGE_NAMESPACE is not set, it returns true. func ManageNamespace() bool { enabled, ok := os.LookupEnv(ManageNamespaceEnv) if !ok { return true } b, err := strconv.ParseBool(enabled) if err != nil { return true } return b } // GetOIDCAdminGroupName returns the name of the OIDC admin group. func GetOIDCAdminGroupName() string { return os.Getenv(OIDCAdminGroupName) } // GetOIDCDeveloperGroupName returns the name of the OIDC developer group. func GetOIDCDeveloperGroupName() string { return os.Getenv(OIDCDeveloperGroupName) }