utils

package
v0.0.0-...-8bd306b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 30, 2025 License: Apache-2.0 Imports: 61 Imported by: 0

Documentation

Index

Constants

View Source
const (
	KServeDeploymentModeAnnotation = "serving.kserve.io/deploymentMode"
	KserveConfigMapName            = "inferenceservice-config"
	KServeWithServiceMeshComponent = "kserve-service-mesh"
)
View Source
const (
	IsNimRuntimeAnnotation = "runtimes.opendatahub.io/nvidia-nim"
)

Variables

View Source
var GVK = struct {
	DataScienceClusterInitialization,
	DataScienceCluster schema.GroupVersionKind
}{
	DataScienceCluster: schema.GroupVersionKind{
		Group:   "datasciencecluster.opendatahub.io",
		Version: "v1",
		Kind:    "DataScienceCluster",
	},
	DataScienceClusterInitialization: schema.GroupVersionKind{
		Group:   "dscinitialization.opendatahub.io",
		Version: "v1",
		Kind:    "DSCInitialization",
	},
}

GVK is a struct that holds the GroupVersionKind for resources we don't have direct dependency on (by means of golang API) but we still want to interact with them e.g. through unstructured objects.

View Source
var NimEqualities semantic.Equalities

Functions

func AccountFailCondition

func AccountFailCondition(gen int64, msg string) metav1.Condition

AccountFailCondition returns an AccountStatus failed condition

func AuthorinoEnabledWhenOperatorNotMissing

func AuthorinoEnabledWhenOperatorNotMissing(_, reason string) bool

AuthorinoEnabledWhenOperatorNotMissing is a helper function to check if Authorino is enabled when the Operator is not missing. This is defined by Condition.Reason=MissingOperator. In any other case, it is assumed that Authorino is enabled but DSC might not be in the Ready state and will reconcile.

func CleanupResources

func CleanupResources(ctx context.Context, account *v1.Account, kubeClient client.Client) error

CleanupResources is used for deleting the integration related resources (configmap, template, pull secret)

func ConvertToStructuredResource

func ConvertToStructuredResource(yamlContent []byte, out runtime.Object) error

func ConvertToUnstructuredResource

func ConvertToUnstructuredResource(yamlContent []byte, out *unstructured.Unstructured) error

func CreateSelfSignedCACertificate

func CreateSelfSignedCACertificate(ctx context.Context, c client.Client, secretName, domain, namespace string) error

func CreateSelfSignedCertificate

func CreateSelfSignedCertificate(ctx context.Context, c client.Client, caSecretName, caSecretNamespace, targetSecretName, targetNamespace string, sanIPs, sanDNSs []string) (*corev1.Secret, error)

func GenerateSelfSignedCACertificateAsSecret

func GenerateSelfSignedCACertificateAsSecret(ctx context.Context, name, addr, namespace string) (*corev1.Secret, error)

func GenerateSelfSignedCertificateAsSecret

func GenerateSelfSignedCertificateAsSecret(caCertSecret *corev1.Secret, targetSecretName, targetNamespace string, sanIPs, sanDNSs []string) (*corev1.Secret, error)

func GetApplicationNamespace

func GetApplicationNamespace(ctx context.Context, cli client.Client) (string, error)

GetApplicationNamespace returns the namespace where the application components are installed. defaults to: RHOAI - redhat-ods-applications, ODH: opendatahub

func GetAuthAudience

func GetAuthAudience(defaultAudience string) []string

GetAuthAudience returns the authentication audience from environment variable or default

func GetAvailableResourcesForApi

func GetAvailableResourcesForApi(config *rest.Config, groupVersion string) (*metav1.APIResourceList, error)

GetAvailableResourcesForApi returns the list of discovered resources that belong to the API specified in groupVersion. The first query to a specifig groupVersion will query the cluster API server to discover the available resources and the discovered resources will be cached and returned to subsequent invocations to prevent additional queries to the API server.

func GetDeploymentModeForKServeResource

func GetDeploymentModeForKServeResource(ctx context.Context, cli client.Client, annotations map[string]string) (constants.KServeDeploymentMode, error)

func GetEnvOr

func GetEnvOr(key, defaultValue string) string

GetEnvOr returns the value of the environment variable key if it exists, otherwise returns defaultValue

func GetGatewayInfoFromConfigMap

func GetGatewayInfoFromConfigMap(ctx context.Context, cli client.Client) (namespace, name string, err error)

GetGatewayInfoFromConfigMap parses the gateway namespace and name from the inference service ConfigMap

func GetInferenceServiceConfigMap

func GetInferenceServiceConfigMap(ctx context.Context, cli client.Client) (*corev1.ConfigMap, error)

GetInferenceServiceConfigMap retrieves the KServe inference service configuration ConfigMap

func GetIstioControlPlaneName

func GetIstioControlPlaneName(ctx context.Context, cli client.Client) (istioControlPlane string, meshNamespace string)

GetIstioControlPlaneName return the name of the Istio Control Plane and the mesh namespace. It will first try to read the environment variables, if not found will then try to read the DSCI If the required value is not available in the DSCI, it will return the default values

func GetNimModelData

func GetNimModelData(logger logr.Logger, apiKey string, runtimes []NimRuntime) (map[string]string, error)

GetNimModelData is used for fetching the model info for the given runtimes, returns configmap data

func GetNimServingRuntimeTemplate

func GetNimServingRuntimeTemplate(scheme *runtime.Scheme) (*v1alpha1.ServingRuntime, error)

GetNimServingRuntimeTemplate returns the Template used by ODH for creating serving runtimes

func IsCrdAvailable

func IsCrdAvailable(config *rest.Config, groupVersion, kind string) (bool, error)

IsCrdAvailable checks if a given CRD is present in the cluster by verifying the existence of its API.

func IsNil

func IsNil(i any) bool

func IsNotNil

func IsNotNil(i any) bool

func IsRayTLSSecret

func IsRayTLSSecret(name string) bool

func MakeNimCondition

func MakeNimCondition(condType NimConditionType, status metav1.ConditionStatus, gen int64, reason, msg string) metav1.Condition

MakeNimCondition is used for building a status condition for NIM integration

func ObjectKeyFromReference

func ObjectKeyFromReference(ref *corev1.ObjectReference) client.ObjectKey

ObjectKeyFromReference returns the ObjectKey given a ObjectReference

func RegisterSchemes

func RegisterSchemes(s *runtime.Scheme)

RegisterSchemes adds schemes of used resources to controller's scheme.

func SetAvailableResourcesForApi

func SetAvailableResourcesForApi(groupVersion string, resources *metav1.APIResourceList)

SetAvailableResourcesForApi stores the value fo resources argument in the global cache of discovered API resources. This function should never be called directly. It is exported for usage in tests.

func SetOpenshiftRouteTimeoutForIsvc

func SetOpenshiftRouteTimeoutForIsvc(route *v1.Route, isvc *kservev1beta1.InferenceService)

SetOpenshiftRouteTimeoutForIsvc sets the timeout value for Openshift routes created for inference services.

func SubstituteVariablesInQueries

func SubstituteVariablesInQueries(data string, namespace string, name string) string

func UpdateStatus

func UpdateStatus(ctx context.Context, subject types.NamespacedName, status v1.AccountStatus, kubeClient client.Client) error

UpdateStatus is used for fetching an updating the status of the account

func ValidateApiKey

func ValidateApiKey(logger logr.Logger, apiKey string, runtimes []NimRuntime) error

ValidateApiKey is used for validating the given API key by retrieving the token and pulling the given custom runtime

func VerifyIfCapabilityIsEnabled

func VerifyIfCapabilityIsEnabled(ctx context.Context, cli client.Client, capabilityName string, enabledWhen func(status, reason string) bool) (bool, error)

VerifyIfCapabilityIsEnabled checks if given DSCI capability is enabled. It only fails if client call to fetch DSCI fails. In other cases it assumes capability is not enabled.

func VerifyIfComponentIsEnabled

func VerifyIfComponentIsEnabled(ctx context.Context, cli client.Client, componentName string) (bool, error)

VerifyIfComponentIsEnabled will query the DCS in the cluster and see if the desired componentName is enabled

func VerifyIfMeshAuthorizationIsEnabled

func VerifyIfMeshAuthorizationIsEnabled(ctx context.Context, cli client.Client) (bool, error)

VerifyIfMeshAuthorizationIsEnabled func checks if Authorization has been configured for ODH platform. That check is done by verifying the presence of an Istio AuthorizationPolicy resource. This resource is expected to be present for both the ODH managed and unmanaged setups of the authorization capability. If it is not present, it is inferred that the authorization capability is not available.

Types

type HttpClient

type HttpClient interface {
	Do(*http.Request) (*http.Response, error)
}
var NimHttpClient HttpClient

type NIMCleanupRunner

type NIMCleanupRunner struct {
	Client client.Client
	Logger logr.Logger
}

NIMCleanupRunner is a Runnable used for cleaning up NIM when disabled

func (*NIMCleanupRunner) Start

func (r *NIMCleanupRunner) Start(ctx context.Context) error

type NimCatalogQuery

type NimCatalogQuery struct {
	Query    string `json:"query"`
	Page     int    `json:"page"`
	PageSize int    `json:"pageSize"`
}

NimCatalogQuery is used for constructing a query for NIM catalog fetch

type NimCatalogResponse

type NimCatalogResponse struct {
	ResultPageTotal int `json:"resultPageTotal"`
	Params          struct {
		Page int `json:"page"`
	} `json:"params"`
	Results []struct {
		GroupValue string `json:"groupValue"`
		Resources  []struct {
			ResourceId string `json:"resourceId"`
			Attributes []struct {
				Key   string `json:"key"`
				Value string `json:"value"`
			} `json:"attributes"`
			Name string `json:"name"`
		} `json:"resources"`
	} `json:"results"`
}

NimCatalogResponse represents the NIM catalog fetch response

type NimConditionType

type NimConditionType string
const (
	NimConditionAccountStatus    NimConditionType = "AccountStatus"
	NimConditionTemplateUpdate   NimConditionType = "TemplateUpdate"
	NimConditionSecretUpdate     NimConditionType = "SecretUpdate"
	NimConditionConfigMapUpdate  NimConditionType = "ConfigMapUpdate"
	NimConditionAPIKeyValidation NimConditionType = "APIKeyValidation"
)

func (NimConditionType) String

func (r NimConditionType) String() string

type NimModel

type NimModel struct {
	Name             string   `json:"name"`
	DisplayName      string   `json:"displayName"`
	ShortDescription string   `json:"shortDescription"`
	Namespace        string   `json:"namespace"`
	Tags             []string `json:"tags"`
	LatestTag        string   `json:"latestTag"`
	UpdatedDate      string   `json:"updatedDate"`
}

NimModel is a representation of NIM model info

type NimRuntime

type NimRuntime struct {
	Resource string
	Version  string
	Org      string
	Team     string
	Image    string
	Name     string
}

NimRuntime is a representation of a NIM custom runtime

func GetAvailableNimRuntimes

func GetAvailableNimRuntimes(logger logr.Logger) ([]NimRuntime, error)

GetAvailableNimRuntimes is used for fetching a list of available NIM custom runtimes

type NimTokenResponse

type NimTokenResponse struct {
	Token     string `json:"token"`
	ExpiresIn int    `json:"expires_in"`
}

NimTokenResponse represents the NIM token response

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL