|
|
@@ -0,0 +1,65 @@
|
|
|
+/*
|
|
|
+Copyright 2026 LocoStack.
|
|
|
+
|
|
|
+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
|
|
|
+
|
|
|
+ http://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 uvx
|
|
|
+
|
|
|
+import (
|
|
|
+ "github.com/LocoStack/loco-operator/api/v1alpha1"
|
|
|
+ corev1 "k8s.io/api/core/v1"
|
|
|
+ "k8s.io/utils/ptr"
|
|
|
+)
|
|
|
+
|
|
|
+var UvxTemplate = v1alpha1.Template{
|
|
|
+ Name: "uvx",
|
|
|
+ Spec: v1alpha1.TemplateSpec{
|
|
|
+ Runtime: v1alpha1.RuntimeSpec{
|
|
|
+ Name: "uvx",
|
|
|
+ Image: "ghcr.io/astral-sh/uv:python3.12-trixie-slim",
|
|
|
+ Env: []corev1.EnvVar{
|
|
|
+ {
|
|
|
+ Name: "HOME",
|
|
|
+ Value: "/tmp",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Name: "XDG_CACHE_HOME",
|
|
|
+ Value: "/tmp/.cache",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Name: "XDG_DATA_HOME",
|
|
|
+ Value: "/tmp/.local/share",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Name: "XDG_CONFIG_HOME",
|
|
|
+ Value: "/tmp/.config",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Name: "UV_CACHE_DIR",
|
|
|
+ Value: "/tmp/uv-cache",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ SecurityContext: &corev1.PodSecurityContext{
|
|
|
+ RunAsNonRoot: ptr.To(true),
|
|
|
+ RunAsUser: ptr.To[int64](10001),
|
|
|
+ RunAsGroup: ptr.To[int64](10001),
|
|
|
+ FSGroup: ptr.To[int64](10001),
|
|
|
+ SeccompProfile: &corev1.SeccompProfile{
|
|
|
+ Type: corev1.SeccompProfileTypeRuntimeDefault,
|
|
|
+ },
|
|
|
+ SupplementalGroups: []int64{},
|
|
|
+ },
|
|
|
+ },
|
|
|
+}
|