diff --git a/pkg/components/exec_node.go b/pkg/components/exec_node.go index 3bff9be8..65e1b1cf 100644 --- a/pkg/components/exec_node.go +++ b/pkg/components/exec_node.go @@ -46,24 +46,12 @@ func NewExecNode( ) criConfig := ytconfig.NewCRIConfigGenerator(&spec) - - var sidecarConfig *ConfigMapBuilder - if criConfig.Service == ytv1.CRIServiceContainerd { - sidecarConfig = NewConfigMapBuilder( - l, - ytsaurus.APIProxy(), - l.GetSidecarConfigMapName(consts.JobsContainerName), - ytsaurus.GetResource().Spec.ConfigOverrides, - ) - - sidecarConfig.AddGenerator( - consts.ContainerdConfigFileName, - ConfigFormatToml, - func() ([]byte, error) { - return criConfig.GetContainerdConfig() - }, - ) - } + sidecarConfig := NewJobsSidecarConfig( + l, + ytsaurus.APIProxy(), + criConfig, + ytsaurus.GetCommonSpec().ConfigOverrides, + ) if criConfig.MonitoringPort != 0 { srv.addMonitoringPort(corev1.ServicePort{ diff --git a/pkg/components/exec_node_base.go b/pkg/components/exec_node_base.go index 8f443ddb..96d10d09 100644 --- a/pkg/components/exec_node_base.go +++ b/pkg/components/exec_node_base.go @@ -10,7 +10,9 @@ import ( ytv1 "github.com/ytsaurus/ytsaurus-k8s-operator/api/v1" + "github.com/ytsaurus/ytsaurus-k8s-operator/pkg/apiproxy" "github.com/ytsaurus/ytsaurus-k8s-operator/pkg/consts" + "github.com/ytsaurus/ytsaurus-k8s-operator/pkg/labeller" "github.com/ytsaurus/ytsaurus-k8s-operator/pkg/resources" "github.com/ytsaurus/ytsaurus-k8s-operator/pkg/ytconfig" ) @@ -110,7 +112,11 @@ func (n *baseExecNode) addCRIServiceConfig(cri *ytconfig.CRIConfigGenerator, con case ytv1.CRIServiceNone: return case ytv1.CRIServiceCRIO: - container.Env = append(container.Env, cri.GetCRIOEnv()...) + container.VolumeMounts = append(container.VolumeMounts, corev1.VolumeMount{ + Name: consts.CRIOConfigVolumeName, + MountPath: consts.CRIOConfigMountPoint, + ReadOnly: true, + }) case ytv1.CRIServiceContainerd: container.VolumeMounts = append(container.VolumeMounts, corev1.VolumeMount{ Name: consts.ContainerdConfigVolumeName, @@ -151,9 +157,13 @@ func (n *baseExecNode) addCRIServiceSidecar(cri *ytconfig.CRIConfigGenerator, po }, } - if cri.Service == ytv1.CRIServiceContainerd { + switch cri.Service { + case ytv1.CRIServiceContainerd: configPath := path.Join(consts.ContainerdConfigMountPoint, consts.ContainerdConfigFileName) container.Args = []string{"--config", configPath} + case ytv1.CRIServiceCRIO: + configPath := path.Join(consts.CRIOConfigMountPoint, consts.CRIOConfigFileName) + container.Args = []string{"--config", configPath, "--config-dir", ""} } n.addCRIServiceConfig(cri, &container) @@ -204,3 +214,40 @@ func (n *baseExecNode) sidecarConfigNeedsReload() bool { } return needsReload } + +func NewJobsSidecarConfig( + labeller *labeller.Labeller, + apiProxy apiproxy.APIProxy, + criConfig *ytconfig.CRIConfigGenerator, + configOverrides *corev1.LocalObjectReference, +) *ConfigMapBuilder { + config := NewConfigMapBuilder( + labeller, + apiProxy, + labeller.GetSidecarConfigMapName(consts.JobsContainerName), + configOverrides, + ) + + switch criConfig.Service { + case ytv1.CRIServiceNone: + config = nil + case ytv1.CRIServiceContainerd: + config.AddGenerator( + consts.ContainerdConfigFileName, + ConfigFormatToml, + func() ([]byte, error) { + return criConfig.GetContainerdConfig() + }, + ) + case ytv1.CRIServiceCRIO: + config.AddGenerator( + consts.CRIOConfigFileName, + ConfigFormatToml, + func() ([]byte, error) { + return criConfig.GetCRIOConfig() + }, + ) + } + + return config +} diff --git a/pkg/components/exec_node_remote.go b/pkg/components/exec_node_remote.go index fc38597b..fb0fd56b 100644 --- a/pkg/components/exec_node_remote.go +++ b/pkg/components/exec_node_remote.go @@ -4,6 +4,7 @@ import ( "context" corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/util/intstr" ytv1 "github.com/ytsaurus/ytsaurus-k8s-operator/api/v1" "github.com/ytsaurus/ytsaurus-k8s-operator/pkg/apiproxy" @@ -44,23 +45,20 @@ func NewRemoteExecNodes( ) criConfig := ytconfig.NewCRIConfigGenerator(&spec) + sidecarConfig := NewJobsSidecarConfig( + l, + proxy, + criConfig, + commonSpec.ConfigOverrides, + ) - var sidecarConfig *ConfigMapBuilder - if criConfig.Service == ytv1.CRIServiceContainerd { - sidecarConfig = NewConfigMapBuilder( - l, - proxy, - l.GetSidecarConfigMapName(consts.JobsContainerName), - commonSpec.ConfigOverrides, - ) - - sidecarConfig.AddGenerator( - consts.ContainerdConfigFileName, - ConfigFormatToml, - func() ([]byte, error) { - return criConfig.GetContainerdConfig() - }, - ) + if criConfig.MonitoringPort != 0 { + srv.addMonitoringPort(corev1.ServicePort{ + Name: consts.CRIServiceMonitoringPortName, + Protocol: corev1.ProtocolTCP, + Port: criConfig.MonitoringPort, + TargetPort: intstr.FromInt32(criConfig.MonitoringPort), + }) } return &RemoteExecNode{ diff --git a/pkg/consts/cmd.go b/pkg/consts/cmd.go index b743080c..ebe642b5 100644 --- a/pkg/consts/cmd.go +++ b/pkg/consts/cmd.go @@ -50,6 +50,10 @@ const ( CRIServiceSocketName = "cri.sock" + CRIOConfigVolumeName = "config-crio" + CRIOConfigMountPoint = "/config/crio" + CRIOConfigFileName = "crio.conf" + CRINamespace = "yt" CRIBaseCgroup = "/yt" diff --git a/pkg/testutil/spec_builders.go b/pkg/testutil/spec_builders.go index b5d70020..6af4803c 100644 --- a/pkg/testutil/spec_builders.go +++ b/pkg/testutil/spec_builders.go @@ -180,6 +180,8 @@ type YtsaurusBuilder struct { Ytsaurus *ytv1.Ytsaurus Overrides *corev1.ConfigMap + WithNvidiaContainerRuntime bool + // Set MinReadyInstanceCount for all components MinReadyInstanceCount *int } @@ -517,6 +519,11 @@ func (b *YtsaurusBuilder) SetupCRIJobEnvironment(node *ytv1.ExecNodesSpec) { SandboxImage: b.SandboxImage, }, } + if b.WithNvidiaContainerRuntime { + node.JobEnvironment.Runtime = &ytv1.JobRuntimeSpec{ + Nvidia: &ytv1.NvidiaRuntimeSpec{}, + } + } } func (b *YtsaurusBuilder) WithCRIJobEnvironment() { diff --git a/pkg/ytconfig/cri.go b/pkg/ytconfig/cri.go index 938b10dd..6afe39bb 100644 --- a/pkg/ytconfig/cri.go +++ b/pkg/ytconfig/cri.go @@ -12,6 +12,24 @@ import ( "github.com/ytsaurus/ytsaurus-k8s-operator/pkg/consts" ) +const ( + runtimeTypeOCI = "oci" + + runtimeNameRunc = "runc" + crioRuntimePathRunc = "/usr/libexec/crio/runc" + + runtimeNameCrun = "crun" + crioRuntimePathCrun = "/usr/libexec/crio/crun" + + runtimeNameNvidia = "nvidia" + runtimePathNvidia = "/usr/bin/nvidia-container-runtime" + + crioMonitorCgroup = "pod" + crioMonitorPath = "/usr/libexec/crio/conmon" + + shmSizeAnnotation = "io.kubernetes.cri-o.ShmSize" +) + type CRIConfigGenerator struct { Service ytv1.CRIServiceType Spec ytv1.CRIJobEnvironmentSpec @@ -69,29 +87,84 @@ func (cri *CRIConfigGenerator) GetCRIToolsEnv() []corev1.EnvVar { return env } -func (cri *CRIConfigGenerator) GetCRIOEnv() []corev1.EnvVar { - var env []corev1.EnvVar +func (cri *CRIConfigGenerator) GetCRIOConfig() ([]byte, error) { + // See https://github.com/cri-o/cri-o/blob/main/docs/crio.conf.5.md + + crioAPI := map[string]any{ + "listen": cri.GetSocketPath(), + } + + crioImage := map[string]any{} + + crioMetrics := map[string]any{} + + crioRuntimeRuntimes := map[string]any{ + runtimeNameRunc: map[string]any{ + "runtime_type": runtimeTypeOCI, + "runtime_path": crioRuntimePathRunc, + "allowed_annotations": []string{ + shmSizeAnnotation, + }, + "monitor_cgroup": crioMonitorCgroup, + "monitor_path": crioMonitorPath, + }, + runtimeNameCrun: map[string]any{ + "runtime_type": runtimeTypeOCI, + "runtime_path": crioRuntimePathCrun, + "allowed_annotations": []string{ + shmSizeAnnotation, + }, + "monitor_cgroup": crioMonitorCgroup, + "monitor_path": crioMonitorPath, + }, + } + + crioRuntime := map[string]any{ + "cgroup_manager": "cgroupfs", + "conmon_cgroup": crioMonitorCgroup, + "default_runtime": runtimeNameCrun, + "runtimes": crioRuntimeRuntimes, + } + + crio := map[string]any{ + "api": crioAPI, + "image": crioImage, + "metrics": crioMetrics, + "runtime": crioRuntime, + } + + config := map[string]any{ + "crio": crio, + } - // See https://github.com/cri-o/cri-o/blob/main/docs/crio.8.md - env = append(env, - corev1.EnvVar{Name: "CONTAINER_LISTEN", Value: cri.GetSocketPath()}, - corev1.EnvVar{Name: "CONTAINER_CGROUP_MANAGER", Value: "cgroupfs"}, - corev1.EnvVar{Name: "CONTAINER_CONMON_CGROUP", Value: "pod"}, - ) if cri.StoragePath != nil { - env = append(env, corev1.EnvVar{Name: "CONTAINER_ROOT", Value: *cri.StoragePath}) + crio["root"] = *cri.StoragePath } + if cri.Spec.SandboxImage != nil { - env = append(env, corev1.EnvVar{Name: "CONTAINER_PAUSE_IMAGE", Value: *cri.Spec.SandboxImage}) + crioImage["pause_image"] = *cri.Spec.SandboxImage } + if cri.MonitoringPort != 0 { - env = append(env, - corev1.EnvVar{Name: "CONTAINER_ENABLE_METRICS", Value: "true"}, - corev1.EnvVar{Name: "CONTAINER_METRICS_HOST", Value: ""}, - corev1.EnvVar{Name: "CONTAINER_METRICS_PORT", Value: fmt.Sprintf("%d", cri.MonitoringPort)}, - ) + crioMetrics["enable_metrics"] = true + crioMetrics["metrics_host"] = "" + crioMetrics["metrics_port"] = cri.MonitoringPort } - return env + + if cri.Runtime != nil && cri.Runtime.Nvidia != nil { + crioRuntimeRuntimes[runtimeNameNvidia] = map[string]any{ + "runtime_type": runtimeTypeOCI, + "runtime_path": runtimePathNvidia, + "allowed_annotations": []string{ + shmSizeAnnotation, + }, + "monitor_cgroup": crioMonitorCgroup, + "monitor_path": crioMonitorPath, + } + crioRuntime["default_runtime"] = runtimeNameNvidia + } + + return marshallYsonConfig(config) } func (cri *CRIConfigGenerator) GetContainerdConfig() ([]byte, error) { @@ -143,7 +216,7 @@ func (cri *CRIConfigGenerator) GetContainerdConfig() ([]byte, error) { func (cri *CRIConfigGenerator) getContainerdRuntimes() (runtimes map[string]any, defaultRuntimeName string) { runtimes = map[string]any{ - "runc": map[string]any{ + runtimeNameRunc: map[string]any{ "runtime_type": "io.containerd.runc.v2", "sandbox_mode": "podsandbox", "options": map[string]any{ @@ -151,17 +224,17 @@ func (cri *CRIConfigGenerator) getContainerdRuntimes() (runtimes map[string]any, }, }, } - defaultRuntimeName = "runc" + defaultRuntimeName = runtimeNameRunc if cri.Runtime != nil && cri.Runtime.Nvidia != nil { - runtimes["nvidia"] = map[string]any{ + runtimes[runtimeNameNvidia] = map[string]any{ "runtime_type": "io.containerd.runc.v2", "sandbox_mode": "podsandbox", "options": map[string]any{ - "BinaryName": "/usr/bin/nvidia-container-runtime", + "BinaryName": runtimePathNvidia, }, } - defaultRuntimeName = "nvidia" + defaultRuntimeName = runtimeNameNvidia } return runtimes, defaultRuntimeName diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/ConfigMap default-yt-master-init-job-config.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/ConfigMap default-yt-master-init-job-config.yaml new file mode 100644 index 00000000..5ae60f6f --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/ConfigMap default-yt-master-init-job-config.yaml @@ -0,0 +1,152 @@ +apiVersion: v1 +data: + client.yson: |- + { + "address_resolver"={ + "enable_ipv4"=%true; + "enable_ipv6"=%false; + retries=1000; + }; + logging={ + writers={ + }; + rules=[ + ]; + "flush_period"=0; + }; + driver={ + "api_version"=4; + "cluster_name"="test-ytsaurus"; + "primary_master"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + peers=[ + { + address="ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + voting=%true; + }; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + }; + "discovery_connection"={ + addresses=[ + "ds-0.discovery.ytsaurus-components.svc.cluster.local:9020"; + ]; + }; + "master_cache"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + "enable_master_cache_discovery"=%false; + }; + }; + } + init-cluster.sh: |2- + + set -e + set -x + + export YT_DRIVER_CONFIG_PATH=/config/client.yson + export YTSAURUS_VERSION="$(/usr/bin/ytserver-all --version | head -c4)" + if [ 'true' = 'true' ]; then + /usr/bin/yt create group --attr '{name=admins}' --ignore-existing + if [ $(/usr/bin/yt exists //sys/@provision_lock) = 'true' ]; then + /usr/bin/yt set //sys/schemas/tablet_cell/@acl '[{action=allow;subjects=[users;];permissions=[read;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/tablet_action/@acl '[{action=allow;subjects=[users;];permissions=[read;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/tablet_cell_bundle/@acl '[{action=allow;subjects=[users;];permissions=[read;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/user/@acl '[{action=allow;subjects=[users;];permissions=[read;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/group/@acl '[{action=allow;subjects=[users;];permissions=[read;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/rack/@acl '[{action=allow;subjects=[users;];permissions=[read;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/data_center/@acl '[{action=allow;subjects=[users;];permissions=[read;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/cluster_node/@acl '[{action=allow;subjects=[users;];permissions=[read;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/access_control_object_namespace/@acl '[{action=allow;subjects=[users;];permissions=[read;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/access_control_object_namespace_map/@acl '[{action=allow;subjects=[users;];permissions=[read;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/medium/@acl '[{action=allow;subjects=[users;];permissions=[read;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' || /usr/bin/yt set //sys/schemas/domestic_medium/@acl '[{action=allow;subjects=[users;];permissions=[read;create;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/account/@acl '[{action=allow;subjects=[users;];permissions=[read;create;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/scheduler_pool/@acl '[{action=allow;subjects=[users;];permissions=[read;create;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/scheduler_pool_tree/@acl '[{action=allow;subjects=[users;];permissions=[read;create;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/access_control_object/@acl '[{action=allow;subjects=[users;];permissions=[read;create;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/account_resource_usage_lease/@acl '[{action=allow;subjects=[users;];permissions=[read;write;create;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + fi + /usr/bin/yt create scheduler_pool_tree --attributes '{name=default; config={nodes_filter=""}}' --ignore-existing + if [ $(/usr/bin/yt exists //sys/pool_trees/@default_tree) = 'false' ]; then + /usr/bin/yt set //sys/pool_trees/@default_tree default + fi + if [ $(/usr/bin/yt exists //sys/pools) = 'false' ]; then + /usr/bin/yt link //sys/pool_trees/default //sys/pools + fi + /usr/bin/yt create scheduler_pool --attributes '{name=research; pool_tree=default}' --ignore-existing + /usr/bin/yt create map_node //home --ignore-existing + if [ $(/usr/bin/yt exists //sys/@provision_lock) = 'true' ]; then + /usr/bin/yt set //sys/@cluster_connection '{ + "cluster_name"="test-ytsaurus"; + "primary_master"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + peers=[ + { + address="ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + voting=%true; + }; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + }; + "discovery_connection"={ + addresses=[ + "ds-0.discovery.ytsaurus-components.svc.cluster.local:9020"; + ]; + }; + "master_cache"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + "enable_master_cache_discovery"=%false; + }; + }' + fi + if [ $(/usr/bin/yt exists //sys/users/admin) = 'false' ]; then + /usr/bin/yt create user --attributes '{name="admin"}' --ignore-existing + /usr/bin/yt execute set_user_password '{user=admin;new_password_sha256="5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8"}' + /usr/bin/yt create map_node '//sys/cypress_tokens/5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8' --ignore-existing + /usr/bin/yt set '//sys/cypress_tokens/5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8/@user' 'admin' + /usr/bin/yt add-member admin superusers || true + fi + + fi + if [ 'false' = 'true' ]; then + if [ $(/usr/bin/yt exists //sys/users/robot-hydra-persistence-uploader) = 'false' ]; then + /usr/bin/yt create user --attributes '{name="robot-hydra-persistence-uploader"}' --ignore-existing + /usr/bin/yt execute set_user_password '{user=robot-hydra-persistence-uploader;new_password_sha256="d9fb903c32fe851f5d5543f2f9da27330ead9bd0d85ce8f51afba5d503f027a5"}' + /usr/bin/yt create map_node '//sys/cypress_tokens/d9fb903c32fe851f5d5543f2f9da27330ead9bd0d85ce8f51afba5d503f027a5' --ignore-existing + /usr/bin/yt set '//sys/cypress_tokens/d9fb903c32fe851f5d5543f2f9da27330ead9bd0d85ce8f51afba5d503f027a5/@user' 'robot-hydra-persistence-uploader' + /usr/bin/yt create map_node //sys/admin/snapshots -r -i + /usr/bin/yt set //sys/admin/snapshots/@acl '[{action=allow;subjects=["robot-hydra-persistence-uploader";];permissions=[read;write;remove;create;];"inheritance_mode"="object_and_descendants";};]' + /usr/bin/yt set //sys/accounts/sys/@acl/end '{action=allow;subjects=["robot-hydra-persistence-uploader";];permissions=[use;];}' + fi + fi + /usr/bin/yt remove //sys/@provision_lock -f +kind: ConfigMap +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-master + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-master + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-master + ytsaurus.tech/cluster-name: test-ytsaurus + name: default-yt-master-init-job-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/ConfigMap user-yt-client-init-job-config.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/ConfigMap user-yt-client-init-job-config.yaml new file mode 100644 index 00000000..8f21eb10 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/ConfigMap user-yt-client-init-job-config.yaml @@ -0,0 +1,77 @@ +apiVersion: v1 +data: + client.yson: |- + { + "address_resolver"={ + "enable_ipv4"=%true; + "enable_ipv6"=%false; + retries=1000; + }; + logging={ + writers={ + }; + rules=[ + ]; + "flush_period"=0; + }; + driver={ + "api_version"=4; + "cluster_name"="test-ytsaurus"; + "primary_master"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + peers=[ + { + address="ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + voting=%true; + }; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + }; + "discovery_connection"={ + addresses=[ + "ds-0.discovery.ytsaurus-components.svc.cluster.local:9020"; + ]; + }; + "master_cache"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + "enable_master_cache_discovery"=%false; + }; + }; + } + init-cluster.sh: |2- + + set -e + set -x + + export YT_DRIVER_CONFIG_PATH=/config/client.yson + export YTSAURUS_VERSION="$(/usr/bin/ytserver-all --version | head -c4)" + /usr/bin/yt create user --attributes '{name="robot-ytsaurus-k8s-operator"}' --ignore-existing + /usr/bin/yt create map_node '//sys/cypress_tokens/dcd89cc6efae0df4e42a9941000a5d1f4704e17162e02fbbae2e176989421ea4' --ignore-existing + /usr/bin/yt set '//sys/cypress_tokens/dcd89cc6efae0df4e42a9941000a5d1f4704e17162e02fbbae2e176989421ea4/@user' 'robot-ytsaurus-k8s-operator' + /usr/bin/yt add-member robot-ytsaurus-k8s-operator superusers || true +kind: ConfigMap +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-client + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-client + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-client + ytsaurus.tech/cluster-name: test-ytsaurus + name: user-yt-client-init-job-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/ConfigMap yt-cypress-patch.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/ConfigMap yt-cypress-patch.yaml new file mode 100644 index 00000000..b72e27e9 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/ConfigMap yt-cypress-patch.yaml @@ -0,0 +1,106 @@ +apiVersion: v1 +data: + cypress-patch.yson: |- + { + "//sys/@cluster_connection"=[ + { + op=replace; + path="/primary_master/addresses"; + value=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + }; + { + op=replace; + path="/primary_master/peers"; + value=[ + { + address="ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + voting=%true; + }; + ]; + }; + { + op=remove; + path="/bus_client"; + }; + ]; + "<>//sys/clusters"=[ + { + op=copy; + path="/test-ytsaurus"; + from="//sys/@cluster_connection"; + }; + ]; + } + yt-client-cypress-patch.yson: |- + { + "<>//sys/clusters"=[ + { + op=copy; + path="/test-ytsaurus"; + from="//sys/@cluster_connection"; + }; + ]; + } + yt-discovery-cypress-patch.yson: |- + { + } + yt-exec-node-cypress-patch.yson: |- + { + } + yt-http-proxy-cypress-patch.yson: |- + { + } + yt-master-cypress-patch.yson: |- + { + "//sys/@cluster_connection"=[ + { + op=replace; + path="/primary_master/addresses"; + value=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + }; + { + op=replace; + path="/primary_master/peers"; + value=[ + { + address="ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + voting=%true; + }; + ]; + }; + { + op=remove; + path="/bus_client"; + }; + ]; + } + yt-timbertruck-cypress-patch.yson: |- + { + } +kind: ConfigMap +metadata: + annotations: + kubernetes.io/description: "" + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-client + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-client + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-client + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-cypress-patch + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/ConfigMap yt-discovery-config.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/ConfigMap yt-discovery-config.yaml new file mode 100644 index 00000000..005fff7f --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/ConfigMap yt-discovery-config.yaml @@ -0,0 +1,102 @@ +apiVersion: v1 +data: + ytserver-discovery.yson: |- + { + "address_resolver"={ + "enable_ipv4"=%true; + "enable_ipv6"=%false; + retries=1000; + }; + "solomon_exporter"={ + host="{POD_SHORT_HOSTNAME}"; + "instance_tags"={ + pod="{K8S_POD_NAME}"; + }; + }; + logging={ + writers={ + "info-stderr"={ + type=stderr; + "file_name"=".."; + "enable_compression"=%true; + "enable_system_messages"=%true; + }; + }; + rules=[ + { + "min_level"=info; + writers=[ + "info-stderr"; + ]; + family="plain_text"; + }; + ]; + "flush_period"=3000; + }; + "monitoring_port"=10020; + "rpc_port"=9020; + "timestamp_provider"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + }; + "cluster_connection"={ + "cluster_name"="test-ytsaurus"; + "primary_master"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + peers=[ + { + address="ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + voting=%true; + }; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + }; + "discovery_connection"={ + addresses=[ + "ds-0.discovery.ytsaurus-components.svc.cluster.local:9020"; + ]; + }; + "master_cache"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + "enable_master_cache_discovery"=%false; + }; + }; + "cypress_annotations"={ + "k8s_node_name"="{K8S_NODE_NAME}"; + "k8s_pod_name"="{K8S_POD_NAME}"; + "k8s_pod_namespace"="{K8S_POD_NAMESPACE}"; + "physical_host"="{K8S_NODE_NAME}"; + }; + "discovery_server"={ + "server_addresses"=[ + "ds-0.discovery.ytsaurus-components.svc.cluster.local:9020"; + ]; + }; + } +kind: ConfigMap +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-discovery + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-discovery + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-discovery + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-discovery-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/ConfigMap yt-exec-node-config.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/ConfigMap yt-exec-node-config.yaml new file mode 100644 index 00000000..7b3531bb --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/ConfigMap yt-exec-node-config.yaml @@ -0,0 +1,328 @@ +apiVersion: v1 +data: + ytserver-exec-node.yson: |- + { + "address_resolver"={ + "enable_ipv4"=%true; + "enable_ipv6"=%false; + retries=1000; + }; + "solomon_exporter"={ + host="{POD_SHORT_HOSTNAME}"; + "instance_tags"={ + pod="{K8S_POD_NAME}"; + }; + }; + logging={ + writers={ + "info-stderr"={ + type=stderr; + "file_name"=".."; + "enable_compression"=%true; + "enable_system_messages"=%true; + }; + }; + rules=[ + { + "min_level"=info; + writers=[ + "info-stderr"; + ]; + family="plain_text"; + }; + ]; + "flush_period"=3000; + }; + "monitoring_port"=10029; + "rpc_port"=9029; + "timestamp_provider"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + }; + "cluster_connection"={ + "cluster_name"="test-ytsaurus"; + "primary_master"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + peers=[ + { + address="ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + voting=%true; + }; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + }; + "discovery_connection"={ + addresses=[ + "ds-0.discovery.ytsaurus-components.svc.cluster.local:9020"; + ]; + }; + "master_cache"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + "enable_master_cache_discovery"=%false; + }; + }; + "cypress_annotations"={ + "k8s_node_name"="{K8S_NODE_NAME}"; + "k8s_pod_name"="{K8S_POD_NAME}"; + "k8s_pod_namespace"="{K8S_POD_NAMESPACE}"; + "physical_host"="{K8S_NODE_NAME}"; + }; + flavors=[ + exec; + ]; + "resource_limits"={ + "node_dedicated_cpu"=0.000000; + }; + "skynet_http_port"=11029; + "job_resource_manager"={ + "resource_limits"={ + "user_slots"=4; + }; + }; + "exec_node"={ + "slot_manager"={ + locations=[ + { + path="/yt/node-data/slots"; + "disk_quota"=5368709120; + "disk_usage_watermark"=536870912; + "enable_disk_quota"=%false; + }; + ]; + "job_environment"={ + type=cri; + "start_uid"=19500; + "cri_executor"={ + "runtime_endpoint"="unix:///yt/node-data/image-cache/cri.sock"; + "image_endpoint"="unix:///yt/node-data/image-cache/cri.sock"; + namespace=yt; + "base_cgroup"="/yt"; + }; + "cri_image_cache"={ + capacity=5368709120; + }; + "job_proxy_image"="docker.io/library/python:3.8-slim"; + "use_job_proxy_from_image"=%false; + }; + "do_not_set_user_id"=%true; + "enable_tmpfs"=%false; + }; + "gpu_manager"={ + "gpu_info_source"={ + type="gpu_agent"; + address="localhost:23105"; + "service_name"="NYT.NGpuAgent.NProto.GpuAgent"; + }; + }; + "job_controller"={ + "resource_limits"={ + "user_slots"=4; + }; + "gpu_manager"={ + "gpu_info_source"={ + type="gpu_agent"; + address="localhost:23105"; + "service_name"="NYT.NGpuAgent.NProto.GpuAgent"; + }; + }; + }; + "job_proxy"={ + "job_proxy_authentication_manager"={ + "cypress_cookie_manager"={ + }; + "cypress_user_manager"={ + }; + "cypress_token_authenticator"={ + secure=%true; + }; + "require_authentication"=%true; + }; + "job_proxy_logging"={ + writers={ + info={ + type=file; + "file_name"="job-proxy.info.log"; + format="plain_text"; + "enable_system_messages"=%true; + }; + stderr={ + type=stderr; + format="plain_text"; + "enable_system_messages"=%true; + }; + }; + rules=[ + { + "min_level"=info; + writers=[ + info; + ]; + family="plain_text"; + }; + { + "min_level"=error; + writers=[ + stderr; + ]; + family="plain_text"; + }; + ]; + "flush_period"=3000; + "log_manager_template"={ + writers={ + info={ + type=file; + "file_name"="job-proxy.info.log"; + format="plain_text"; + "enable_system_messages"=%true; + }; + stderr={ + type=stderr; + format="plain_text"; + "enable_system_messages"=%true; + }; + }; + rules=[ + { + "min_level"=info; + writers=[ + info; + ]; + family="plain_text"; + }; + { + "min_level"=error; + writers=[ + stderr; + ]; + family="plain_text"; + }; + ]; + "flush_period"=3000; + }; + mode=simple; + }; + "forward_all_environment_variables"=%true; + }; + "job_proxy_authentication_manager"={ + "cypress_cookie_manager"={ + }; + "cypress_user_manager"={ + }; + "cypress_token_authenticator"={ + secure=%true; + }; + "require_authentication"=%true; + }; + "job_proxy_logging"={ + writers={ + info={ + type=file; + "file_name"="job-proxy.info.log"; + format="plain_text"; + "enable_system_messages"=%true; + }; + stderr={ + type=stderr; + format="plain_text"; + "enable_system_messages"=%true; + }; + }; + rules=[ + { + "min_level"=info; + writers=[ + info; + ]; + family="plain_text"; + }; + { + "min_level"=error; + writers=[ + stderr; + ]; + family="plain_text"; + }; + ]; + "flush_period"=3000; + }; + "do_not_set_user_id"=%true; + "forward_all_environment_variables"=%true; + "use_artifact_binds"=%true; + "job_proxy_log_manager"={ + directory="/var/log/job-proxy"; + "sharding_key_length"=2; + "logs_storage_period"=604800000; + "directory_traversal_concurrency"=4; + "log_dump"={ + "buffer_size"=1048576; + "log_writer_name"=debug; + }; + }; + }; + "data_node"={ + "store_locations"=[ + ]; + "cache_locations"=[ + { + path="/yt/node-data/chunk-cache"; + quota=5368709120; + "io_config"={ + "enable_sync"=%false; + }; + }; + ]; + "block_cache"={ + "compressed_data"={ + capacity=0; + }; + "uncompressed_data"={ + capacity=0; + }; + }; + "blocks_ext_cache"={ + capacity=0; + }; + "chunk_meta_cache"={ + capacity=0; + }; + "block_meta_cache"={ + capacity=0; + }; + }; + "tablet_node"={ + "versioned_chunk_meta_cache"={ + capacity=0; + }; + }; + "caching_object_service"={ + capacity=0; + }; + } +kind: ConfigMap +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-exec-node + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-exec-node + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-exec-node + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-exec-node-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/ConfigMap yt-exec-node-jobs-config.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/ConfigMap yt-exec-node-jobs-config.yaml new file mode 100644 index 00000000..0dd55cd9 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/ConfigMap yt-exec-node-jobs-config.yaml @@ -0,0 +1,56 @@ +apiVersion: v1 +data: + crio.conf: | + [crio] + root = "/yt/node-data/image-cache" + [crio.api] + listen = "/yt/node-data/image-cache/cri.sock" + [crio.image] + [crio.metrics] + enable_metrics = true + metrics_host = "" + metrics_port = 10026 + [crio.runtime] + cgroup_manager = "cgroupfs" + conmon_cgroup = "pod" + default_runtime = "nvidia" + [crio.runtime.runtimes] + [crio.runtime.runtimes.crun] + allowed_annotations = ["io.kubernetes.cri-o.ShmSize"] + monitor_cgroup = "pod" + monitor_path = "/usr/libexec/crio/conmon" + runtime_path = "/usr/libexec/crio/crun" + runtime_type = "oci" + [crio.runtime.runtimes.nvidia] + allowed_annotations = ["io.kubernetes.cri-o.ShmSize"] + monitor_cgroup = "pod" + monitor_path = "/usr/libexec/crio/conmon" + runtime_path = "/usr/bin/nvidia-container-runtime" + runtime_type = "oci" + [crio.runtime.runtimes.runc] + allowed_annotations = ["io.kubernetes.cri-o.ShmSize"] + monitor_cgroup = "pod" + monitor_path = "/usr/libexec/crio/conmon" + runtime_path = "/usr/libexec/crio/runc" + runtime_type = "oci" +kind: ConfigMap +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-exec-node + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-exec-node + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-exec-node + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-exec-node-jobs-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/ConfigMap yt-http-proxy-config.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/ConfigMap yt-http-proxy-config.yaml new file mode 100644 index 00000000..bb877800 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/ConfigMap yt-http-proxy-config.yaml @@ -0,0 +1,115 @@ +apiVersion: v1 +data: + ytserver-http-proxy.yson: |- + { + "address_resolver"={ + "enable_ipv4"=%true; + "enable_ipv6"=%false; + retries=1000; + }; + "solomon_exporter"={ + host="{POD_SHORT_HOSTNAME}"; + "instance_tags"={ + pod="{K8S_POD_NAME}"; + }; + }; + logging={ + writers={ + "info-stderr"={ + type=stderr; + "file_name"=".."; + "enable_compression"=%true; + "enable_system_messages"=%true; + }; + }; + rules=[ + { + "min_level"=info; + writers=[ + "info-stderr"; + ]; + family="plain_text"; + }; + ]; + "flush_period"=3000; + }; + "monitoring_port"=10016; + "rpc_port"=9016; + "timestamp_provider"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + }; + "cluster_connection"={ + "cluster_name"="test-ytsaurus"; + "primary_master"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + peers=[ + { + address="ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + voting=%true; + }; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + }; + "discovery_connection"={ + addresses=[ + "ds-0.discovery.ytsaurus-components.svc.cluster.local:9020"; + ]; + }; + "master_cache"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + "enable_master_cache_discovery"=%false; + }; + }; + "cypress_annotations"={ + "k8s_node_name"="{K8S_NODE_NAME}"; + "k8s_pod_name"="{K8S_POD_NAME}"; + "k8s_pod_namespace"="{K8S_POD_NAMESPACE}"; + "physical_host"="{K8S_NODE_NAME}"; + }; + port=80; + auth={ + "cypress_cookie_manager"={ + }; + "cypress_user_manager"={ + }; + "cypress_token_authenticator"={ + secure=%true; + }; + "require_authentication"=%true; + }; + coordinator={ + enable=%true; + "default_role_filter"=default; + }; + driver={ + }; + role=""; + } +kind: ConfigMap +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-http-proxy + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-http-proxy + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-http-proxy + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-http-proxy-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/ConfigMap yt-master-config.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/ConfigMap yt-master-config.yaml new file mode 100644 index 00000000..a333c717 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/ConfigMap yt-master-config.yaml @@ -0,0 +1,137 @@ +apiVersion: v1 +data: + ytserver-master.yson: |- + { + "address_resolver"={ + "enable_ipv4"=%true; + "enable_ipv6"=%false; + retries=1000; + }; + "solomon_exporter"={ + host="{POD_SHORT_HOSTNAME}"; + "instance_tags"={ + pod="{K8S_POD_NAME}"; + }; + }; + logging={ + writers={ + "info-stderr"={ + type=stderr; + "file_name"=".."; + "enable_compression"=%true; + "enable_system_messages"=%true; + }; + }; + rules=[ + { + "min_level"=info; + writers=[ + "info-stderr"; + ]; + family="plain_text"; + }; + ]; + "flush_period"=3000; + }; + "monitoring_port"=10010; + "rpc_port"=9010; + "timestamp_provider"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + }; + "cluster_connection"={ + "cluster_name"="test-ytsaurus"; + "primary_master"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + peers=[ + { + address="ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + voting=%true; + }; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + }; + "discovery_connection"={ + addresses=[ + "ds-0.discovery.ytsaurus-components.svc.cluster.local:9020"; + ]; + }; + "master_cache"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + "enable_master_cache_discovery"=%false; + }; + }; + "cypress_annotations"={ + "k8s_node_name"="{K8S_NODE_NAME}"; + "k8s_pod_name"="{K8S_POD_NAME}"; + "k8s_pod_namespace"="{K8S_POD_NAMESPACE}"; + "physical_host"="{K8S_NODE_NAME}"; + }; + snapshots={ + path="/yt/master-data/master-snapshots"; + }; + changelogs={ + path="/yt/master-data/master-changelogs"; + "io_engine"={ + "enable_sync"=%false; + }; + }; + "use_new_hydra"=%true; + "hydra_manager"={ + "max_changelog_count_to_keep"=10; + "max_snapshot_count_to_keep"=10; + }; + "cypress_manager"={ + "default_table_replication_factor"=1; + "default_file_replication_factor"=1; + "default_journal_replication_factor"=1; + "default_journal_read_quorum"=1; + "default_journal_write_quorum"=1; + }; + "primary_master"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + peers=[ + { + address="ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + voting=%true; + }; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + }; + "secondary_masters"=[ + ]; + "discovery_server"={ + addresses=[ + "ds-0.discovery.ytsaurus-components.svc.cluster.local:9020"; + ]; + }; + } +kind: ConfigMap +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-master + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-master + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-master + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-master-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Events.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Events.yaml new file mode 100644 index 00000000..8589e5ab --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Events.yaml @@ -0,0 +1,1100 @@ +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "1" + lastTimestamp: null + message: Config ytserver-discovery.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "2" + lastTimestamp: null + message: Config ytserver-discovery.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "2" + lastTimestamp: null + message: Config ytserver-discovery.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "2" + lastTimestamp: null + message: Config ytserver-discovery.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "2" + lastTimestamp: null + message: Created YT object ds (*v1.StatefulSet) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "2" + lastTimestamp: null + message: Config ytserver-discovery.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "2" + lastTimestamp: null + message: Created YT object yt-discovery-config (*v1.ConfigMap) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "2" + lastTimestamp: null + message: Created YT object discovery (*v1.Service) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "2" + lastTimestamp: null + message: Created YT object yt-discovery-monitoring (*v1.Service) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "2" + lastTimestamp: null + message: Created YT object robot-hydra-persistence-uploader-secret (*v1.Secret) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "2" + lastTimestamp: null + message: Created YT object robot-timbertruck-secret (*v1.Secret) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Config ytserver-master.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Config ytserver-master.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Config ytserver-master.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Config ytserver-master.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Config ytserver-master.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Config ytserver-master.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Config ytserver-master.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Created YT object ms (*v1.StatefulSet) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Config ytserver-master.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Created YT object yt-master-config (*v1.ConfigMap) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Created YT object masters (*v1.Service) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Created YT object yt-master-monitoring (*v1.Service) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Config ytserver-master.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Config ytserver-master.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Config ytserver-master.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Config ytserver-master.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "4" + lastTimestamp: null + message: Config client.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "4" + lastTimestamp: null + message: Created YT object default-yt-master-init-job-config (*v1.ConfigMap) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "4" + lastTimestamp: null + message: Created YT object yt-master-init-job-default (*v1.Job) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Config ytserver-http-proxy.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Config ytserver-http-proxy.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Config ytserver-http-proxy.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Created YT object hp (*v1.StatefulSet) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Config ytserver-http-proxy.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Created YT object yt-http-proxy-config (*v1.ConfigMap) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Created YT object http-proxies (*v1.Service) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Created YT object yt-http-proxy-monitoring (*v1.Service) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Config ytserver-exec-node.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Config ytserver-exec-node.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Created YT object end (*v1.StatefulSet) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Config ytserver-exec-node.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Created YT object yt-exec-node-config (*v1.ConfigMap) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Created YT object exec-nodes (*v1.Service) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Created YT object yt-exec-node-monitoring (*v1.Service) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Config crio.conf needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Created YT object yt-exec-node-jobs-config (*v1.ConfigMap) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Config ytserver-http-proxy.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "6" + lastTimestamp: null + message: Created YT object http-proxies-lb (*v1.Service) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "7" + lastTimestamp: null + message: Created YT object yt-client-secret (*v1.Secret) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "8" + lastTimestamp: null + message: Config client.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "8" + lastTimestamp: null + message: Created YT object user-yt-client-init-job-config (*v1.ConfigMap) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "8" + lastTimestamp: null + message: Created YT object yt-client-init-job-user (*v1.Job) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "10" + lastTimestamp: null + message: Created YT object yt-cypress-patch (*v1.ConfigMap) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "10" + lastTimestamp: null + message: Skip patch apply in test + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: CypressPatch + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Job yt-client-init-job-user.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Job yt-client-init-job-user.yaml new file mode 100644 index 00000000..5be95ba3 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Job yt-client-init-job-user.yaml @@ -0,0 +1,71 @@ +apiVersion: batch/v1 +kind: Job +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-client + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-client + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-client + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-client-init-job-user + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "2" +spec: + backoffLimit: 15 + template: + metadata: + creationTimestamp: null + labels: + app.kubernetes.io/component: yt-client + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-client-init-job + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-client-init-job + ytsaurus.tech/cluster-name: test-ytsaurus + name: ytsaurus-init + namespace: ytsaurus-components + spec: + containers: + - command: + - bash + - -c + - /config/init-cluster.sh + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: ytsaurus-init + resources: {} + terminationMessagePolicy: FallbackToLogsOnError + volumeMounts: + - mountPath: /config + name: config + restartPolicy: OnFailure + volumes: + - configMap: + defaultMode: 320 + name: user-yt-client-init-job-config + name: config + ttlSecondsAfterFinished: 600 +status: + succeeded: 1 diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Job yt-master-init-job-default.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Job yt-master-init-job-default.yaml new file mode 100644 index 00000000..783deb14 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Job yt-master-init-job-default.yaml @@ -0,0 +1,71 @@ +apiVersion: batch/v1 +kind: Job +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-master + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-master + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-master + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-master-init-job-default + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "2" +spec: + backoffLimit: 15 + template: + metadata: + creationTimestamp: null + labels: + app.kubernetes.io/component: yt-master + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-master-init-job + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-master-init-job + ytsaurus.tech/cluster-name: test-ytsaurus + name: ytsaurus-init + namespace: ytsaurus-components + spec: + containers: + - command: + - bash + - -c + - /config/init-cluster.sh + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: ytsaurus-init + resources: {} + terminationMessagePolicy: FallbackToLogsOnError + volumeMounts: + - mountPath: /config + name: config + restartPolicy: OnFailure + volumes: + - configMap: + defaultMode: 320 + name: default-yt-master-init-job-config + name: config + ttlSecondsAfterFinished: 600 +status: + succeeded: 1 diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Object List.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Object List.yaml new file mode 100644 index 00000000..86710a4c --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Object List.yaml @@ -0,0 +1,443 @@ +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-master + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-master + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-master + ytsaurus.tech/cluster-name: test-ytsaurus + name: default-yt-master-init-job-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-discovery + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-discovery + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-discovery + ytsaurus.tech/cluster-name: test-ytsaurus + name: discovery + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-discovery + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-discovery + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-discovery + ytsaurus.tech/cluster-name: test-ytsaurus + name: ds + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-exec-node + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-exec-node + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-exec-node + ytsaurus.tech/cluster-name: test-ytsaurus + name: end + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-exec-node + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-exec-node + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-exec-node + ytsaurus.tech/cluster-name: test-ytsaurus + name: exec-nodes + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-http-proxy + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-http-proxy + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-http-proxy + ytsaurus.tech/cluster-name: test-ytsaurus + name: hp + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-http-proxy + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-http-proxy + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-http-proxy + ytsaurus.tech/cluster-name: test-ytsaurus + name: http-proxies + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-http-proxy + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-http-proxy + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-http-proxy + ytsaurus.tech/cluster-name: test-ytsaurus + name: http-proxies-lb + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-master + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-master + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-master + ytsaurus.tech/cluster-name: test-ytsaurus + name: masters + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-master + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-master + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-master + ytsaurus.tech/cluster-name: test-ytsaurus + name: ms + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-client + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-client + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-client + ytsaurus.tech/cluster-name: test-ytsaurus + name: user-yt-client-init-job-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-client + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-client + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-client + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-client-init-job-user + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "2" +- annotations: + kubernetes.io/description: "" + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-client + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-client + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-client + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-cypress-patch + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-discovery + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-discovery + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-discovery + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-discovery-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-discovery + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-discovery + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-discovery + yt_metrics: "true" + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-discovery-monitoring + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-exec-node + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-exec-node + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-exec-node + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-exec-node-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-exec-node + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-exec-node + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-exec-node + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-exec-node-jobs-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-exec-node + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-exec-node + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-exec-node + yt_metrics: "true" + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-exec-node-monitoring + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-http-proxy + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-http-proxy + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-http-proxy + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-http-proxy-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-http-proxy + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-http-proxy + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-http-proxy + yt_metrics: "true" + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-http-proxy-monitoring + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-master + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-master + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-master + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-master-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-master + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-master + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-master + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-master-init-job-default + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "2" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-master + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-master + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-master + yt_metrics: "true" + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-master-monitoring + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Service discovery.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Service discovery.yaml new file mode 100644 index 00000000..bc035a0e --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Service discovery.yaml @@ -0,0 +1,29 @@ +apiVersion: v1 +kind: Service +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-discovery + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-discovery + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-discovery + ytsaurus.tech/cluster-name: test-ytsaurus + name: discovery + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +spec: + clusterIP: None + publishNotReadyAddresses: true + selector: + yt_component: test-ytsaurus-yt-discovery +status: + loadBalancer: {} diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Service exec-nodes.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Service exec-nodes.yaml new file mode 100644 index 00000000..95465213 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Service exec-nodes.yaml @@ -0,0 +1,29 @@ +apiVersion: v1 +kind: Service +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-exec-node + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-exec-node + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-exec-node + ytsaurus.tech/cluster-name: test-ytsaurus + name: exec-nodes + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +spec: + clusterIP: None + publishNotReadyAddresses: true + selector: + yt_component: test-ytsaurus-yt-exec-node +status: + loadBalancer: {} diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Service http-proxies-lb.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Service http-proxies-lb.yaml new file mode 100644 index 00000000..90ecd658 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Service http-proxies-lb.yaml @@ -0,0 +1,32 @@ +apiVersion: v1 +kind: Service +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-http-proxy + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-http-proxy + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-http-proxy + ytsaurus.tech/cluster-name: test-ytsaurus + name: http-proxies-lb + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +spec: + ports: + - name: http + port: 80 + targetPort: 80 + selector: + yt_component: test-ytsaurus-yt-http-proxy + type: NodePort +status: + loadBalancer: {} diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Service http-proxies.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Service http-proxies.yaml new file mode 100644 index 00000000..5d81912b --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Service http-proxies.yaml @@ -0,0 +1,29 @@ +apiVersion: v1 +kind: Service +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-http-proxy + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-http-proxy + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-http-proxy + ytsaurus.tech/cluster-name: test-ytsaurus + name: http-proxies + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +spec: + clusterIP: None + publishNotReadyAddresses: true + selector: + yt_component: test-ytsaurus-yt-http-proxy +status: + loadBalancer: {} diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Service masters.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Service masters.yaml new file mode 100644 index 00000000..18705d44 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Service masters.yaml @@ -0,0 +1,29 @@ +apiVersion: v1 +kind: Service +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-master + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-master + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-master + ytsaurus.tech/cluster-name: test-ytsaurus + name: masters + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +spec: + clusterIP: None + publishNotReadyAddresses: true + selector: + yt_component: test-ytsaurus-yt-master +status: + loadBalancer: {} diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Service yt-discovery-monitoring.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Service yt-discovery-monitoring.yaml new file mode 100644 index 00000000..6848fff0 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Service yt-discovery-monitoring.yaml @@ -0,0 +1,32 @@ +apiVersion: v1 +kind: Service +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-discovery + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-discovery + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-discovery + yt_metrics: "true" + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-discovery-monitoring + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +spec: + ports: + - name: ytsaurus-metrics + port: 10000 + targetPort: 10020 + selector: + yt_component: test-ytsaurus-yt-discovery +status: + loadBalancer: {} diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Service yt-exec-node-monitoring.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Service yt-exec-node-monitoring.yaml new file mode 100644 index 00000000..b39068a7 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Service yt-exec-node-monitoring.yaml @@ -0,0 +1,36 @@ +apiVersion: v1 +kind: Service +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-exec-node + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-exec-node + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-exec-node + yt_metrics: "true" + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-exec-node-monitoring + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +spec: + ports: + - name: ytsaurus-metrics + port: 10000 + targetPort: 10029 + - name: cri-metrics + port: 10026 + protocol: TCP + targetPort: 10026 + selector: + yt_component: test-ytsaurus-yt-exec-node +status: + loadBalancer: {} diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Service yt-http-proxy-monitoring.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Service yt-http-proxy-monitoring.yaml new file mode 100644 index 00000000..3ce2a7f7 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Service yt-http-proxy-monitoring.yaml @@ -0,0 +1,32 @@ +apiVersion: v1 +kind: Service +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-http-proxy + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-http-proxy + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-http-proxy + yt_metrics: "true" + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-http-proxy-monitoring + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +spec: + ports: + - name: ytsaurus-metrics + port: 10000 + targetPort: 10016 + selector: + yt_component: test-ytsaurus-yt-http-proxy +status: + loadBalancer: {} diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Service yt-master-monitoring.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Service yt-master-monitoring.yaml new file mode 100644 index 00000000..e09429ec --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Service yt-master-monitoring.yaml @@ -0,0 +1,32 @@ +apiVersion: v1 +kind: Service +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-master + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-master + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-master + yt_metrics: "true" + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-master-monitoring + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +spec: + ports: + - name: ytsaurus-metrics + port: 10000 + targetPort: 10010 + selector: + yt_component: test-ytsaurus-yt-master +status: + loadBalancer: {} diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/StatefulSet ds.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/StatefulSet ds.yaml new file mode 100644 index 00000000..3c2ab087 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/StatefulSet ds.yaml @@ -0,0 +1,150 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-discovery + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-discovery + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-discovery + ytsaurus.tech/cluster-name: test-ytsaurus + name: ds + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +spec: + podManagementPolicy: Parallel + replicas: 1 + selector: + matchLabels: + yt_component: test-ytsaurus-yt-discovery + serviceName: discovery + template: + metadata: + creationTimestamp: null + labels: + app.kubernetes.io/component: yt-discovery + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-discovery + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-discovery + ytsaurus.tech/cluster-name: test-ytsaurus + spec: + containers: + - command: + - /usr/bin/ytserver-discovery + - --config + - /config/ytserver-discovery.yson + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: ytserver + ports: + - containerPort: 10020 + name: metrics + protocol: TCP + - containerPort: 9020 + name: rpc + protocol: TCP + readinessProbe: + httpGet: + path: /orchid/service + port: metrics + resources: {} + volumeMounts: + - mountPath: /config_template + name: config-template + readOnly: true + - mountPath: /config + name: config + enableServiceLinks: false + initContainers: + - command: + - bash + - -xc + - 'echo ''Init locations''; ' + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: prepare-locations + resources: {} + volumeMounts: + - mountPath: /config_template + name: config-template + readOnly: true + - mountPath: /config + name: config + - command: + - bash + - -xc + - 'echo ''Postprocess config ytserver-discovery.yson'';echo ''cp /config_template/ytserver-discovery.yson + /config/ytserver-discovery.yson; sed -i -s "s/{K8S_POD_NAME}/${K8S_POD_NAME}/g" + /config/ytserver-discovery.yson; sed -i -s "s/{K8S_POD_NAMESPACE}/${K8S_POD_NAMESPACE}/g" + /config/ytserver-discovery.yson; sed -i -s "s/{K8S_NODE_NAME}/${K8S_NODE_NAME}/g" + /config/ytserver-discovery.yson; sed -i -s "s/{POD_FQDN}/$(hostname -f)/g" + /config/ytserver-discovery.yson; sed -i -s "s/{POD_SHORT_HOSTNAME}/$(hostname + -s)/g" /config/ytserver-discovery.yson; '' > /config/postprocess-config.sh; + chmod +x ''/config/postprocess-config.sh''; source /config/postprocess-config.sh; + cat /config/ytserver-discovery.yson; ' + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: postprocess-config + resources: {} + volumeMounts: + - mountPath: /config_template + name: config-template + readOnly: true + - mountPath: /config + name: config + volumes: + - configMap: + name: yt-discovery-config + name: config-template + - emptyDir: {} + name: config + updateStrategy: {} +status: + availableReplicas: 0 + replicas: 0 diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/StatefulSet end.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/StatefulSet end.yaml new file mode 100644 index 00000000..76593907 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/StatefulSet end.yaml @@ -0,0 +1,223 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-exec-node + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-exec-node + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-exec-node + ytsaurus.tech/cluster-name: test-ytsaurus + name: end + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +spec: + podManagementPolicy: Parallel + replicas: 1 + selector: + matchLabels: + yt_component: test-ytsaurus-yt-exec-node + serviceName: exec-nodes + template: + metadata: + creationTimestamp: null + labels: + app.kubernetes.io/component: yt-exec-node + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-exec-node + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-exec-node + ytsaurus.tech/cluster-name: test-ytsaurus + spec: + containers: + - command: + - /usr/bin/ytserver-node + - --config + - /config/ytserver-exec-node.yson + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + - name: CONTAINER_RUNTIME_ENDPOINT + value: unix:///yt/node-data/image-cache/cri.sock + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: ytserver + ports: + - containerPort: 10029 + name: metrics + protocol: TCP + - containerPort: 9029 + name: rpc + protocol: TCP + readinessProbe: + httpGet: + path: /orchid/service + port: metrics + resources: {} + securityContext: + privileged: false + volumeMounts: + - mountPath: /yt/node-data + name: node-data + - mountPath: /config_template + name: config-template + readOnly: true + - mountPath: /config + name: config + - args: + - --config + - /config/crio/crio.conf + - --config-dir + - "" + command: + - tini + - -- + - crio + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + - name: CONTAINER_RUNTIME_ENDPOINT + value: unix:///yt/node-data/image-cache/cri.sock + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: jobs + ports: + - containerPort: 10026 + name: cri-metrics + protocol: TCP + resources: {} + securityContext: + privileged: true + volumeMounts: + - mountPath: /yt/node-data + name: node-data + - mountPath: /config_template + name: config-template + readOnly: true + - mountPath: /config + name: config + - mountPath: /config/crio + name: config-crio + readOnly: true + enableServiceLinks: false + initContainers: + - command: + - bash + - -xc + - 'echo ''Init locations''; mkdir -p /yt/node-data/chunk-cache; mkdir -p /yt/node-data/slots; + mkdir -p /yt/node-data/image-cache; ' + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: prepare-locations + resources: {} + securityContext: + privileged: false + volumeMounts: + - mountPath: /yt/node-data + name: node-data + - mountPath: /config_template + name: config-template + readOnly: true + - mountPath: /config + name: config + - command: + - bash + - -xc + - 'echo ''Postprocess config ytserver-exec-node.yson'';echo ''cp /config_template/ytserver-exec-node.yson + /config/ytserver-exec-node.yson; sed -i -s "s/{K8S_POD_NAME}/${K8S_POD_NAME}/g" + /config/ytserver-exec-node.yson; sed -i -s "s/{K8S_POD_NAMESPACE}/${K8S_POD_NAMESPACE}/g" + /config/ytserver-exec-node.yson; sed -i -s "s/{K8S_NODE_NAME}/${K8S_NODE_NAME}/g" + /config/ytserver-exec-node.yson; sed -i -s "s/{POD_FQDN}/$(hostname -f)/g" + /config/ytserver-exec-node.yson; sed -i -s "s/{POD_SHORT_HOSTNAME}/$(hostname + -s)/g" /config/ytserver-exec-node.yson; '' > /config/postprocess-config.sh; + chmod +x ''/config/postprocess-config.sh''; source /config/postprocess-config.sh; + cat /config/ytserver-exec-node.yson; ' + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: postprocess-config + resources: {} + securityContext: + privileged: false + volumeMounts: + - mountPath: /yt/node-data + name: node-data + - mountPath: /config_template + name: config-template + readOnly: true + - mountPath: /config + name: config + volumes: + - configMap: + name: yt-exec-node-config + name: config-template + - emptyDir: {} + name: config + - configMap: + name: yt-exec-node-jobs-config + name: config-containerd + updateStrategy: {} + volumeClaimTemplates: + - metadata: + creationTimestamp: null + name: node-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 5Gi + status: {} +status: + availableReplicas: 0 + replicas: 0 diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/StatefulSet hp.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/StatefulSet hp.yaml new file mode 100644 index 00000000..78ffd035 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/StatefulSet hp.yaml @@ -0,0 +1,156 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-http-proxy + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-http-proxy + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-http-proxy + ytsaurus.tech/cluster-name: test-ytsaurus + name: hp + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +spec: + podManagementPolicy: Parallel + replicas: 1 + selector: + matchLabels: + yt_component: test-ytsaurus-yt-http-proxy + serviceName: http-proxies + template: + metadata: + creationTimestamp: null + labels: + app.kubernetes.io/component: yt-http-proxy + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-http-proxy + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-http-proxy + ytsaurus.tech/cluster-name: test-ytsaurus + spec: + containers: + - command: + - /usr/bin/ytserver-http-proxy + - --config + - /config/ytserver-http-proxy.yson + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: ytserver + ports: + - containerPort: 10016 + name: metrics + protocol: TCP + - containerPort: 9016 + name: rpc + protocol: TCP + - containerPort: 80 + name: http + protocol: TCP + - containerPort: 443 + name: https + protocol: TCP + readinessProbe: + httpGet: + path: /ping + port: 80 + resources: {} + volumeMounts: + - mountPath: /config_template + name: config-template + readOnly: true + - mountPath: /config + name: config + enableServiceLinks: false + initContainers: + - command: + - bash + - -xc + - 'echo ''Init locations''; ' + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: prepare-locations + resources: {} + volumeMounts: + - mountPath: /config_template + name: config-template + readOnly: true + - mountPath: /config + name: config + - command: + - bash + - -xc + - 'echo ''Postprocess config ytserver-http-proxy.yson'';echo ''cp /config_template/ytserver-http-proxy.yson + /config/ytserver-http-proxy.yson; sed -i -s "s/{K8S_POD_NAME}/${K8S_POD_NAME}/g" + /config/ytserver-http-proxy.yson; sed -i -s "s/{K8S_POD_NAMESPACE}/${K8S_POD_NAMESPACE}/g" + /config/ytserver-http-proxy.yson; sed -i -s "s/{K8S_NODE_NAME}/${K8S_NODE_NAME}/g" + /config/ytserver-http-proxy.yson; sed -i -s "s/{POD_FQDN}/$(hostname -f)/g" + /config/ytserver-http-proxy.yson; sed -i -s "s/{POD_SHORT_HOSTNAME}/$(hostname + -s)/g" /config/ytserver-http-proxy.yson; '' > /config/postprocess-config.sh; + chmod +x ''/config/postprocess-config.sh''; source /config/postprocess-config.sh; + cat /config/ytserver-http-proxy.yson; ' + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: postprocess-config + resources: {} + volumeMounts: + - mountPath: /config_template + name: config-template + readOnly: true + - mountPath: /config + name: config + volumes: + - configMap: + name: yt-http-proxy-config + name: config-template + - emptyDir: {} + name: config + updateStrategy: {} +status: + availableReplicas: 0 + replicas: 0 diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/StatefulSet ms.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/StatefulSet ms.yaml new file mode 100644 index 00000000..fd25abeb --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/StatefulSet ms.yaml @@ -0,0 +1,168 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-master + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-master + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-master + ytsaurus.tech/cluster-name: test-ytsaurus + name: ms + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +spec: + podManagementPolicy: Parallel + replicas: 1 + selector: + matchLabels: + yt_component: test-ytsaurus-yt-master + serviceName: masters + template: + metadata: + creationTimestamp: null + labels: + app.kubernetes.io/component: yt-master + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-master + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-master + ytsaurus.tech/cluster-name: test-ytsaurus + spec: + containers: + - command: + - /usr/bin/ytserver-master + - --config + - /config/ytserver-master.yson + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: ytserver + ports: + - containerPort: 10010 + name: metrics + protocol: TCP + - containerPort: 9010 + name: rpc + protocol: TCP + readinessProbe: + httpGet: + path: /orchid/service + port: metrics + resources: {} + volumeMounts: + - mountPath: /yt/master-data + name: master-data + - mountPath: /config_template + name: config-template + readOnly: true + - mountPath: /config + name: config + enableServiceLinks: false + initContainers: + - command: + - bash + - -xc + - 'echo ''Init locations''; mkdir -p /yt/master-data/master-changelogs; mkdir + -p /yt/master-data/master-snapshots; ' + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: prepare-locations + resources: {} + volumeMounts: + - mountPath: /yt/master-data + name: master-data + - mountPath: /config_template + name: config-template + readOnly: true + - mountPath: /config + name: config + - command: + - bash + - -xc + - 'echo ''Postprocess config ytserver-master.yson'';echo ''cp /config_template/ytserver-master.yson + /config/ytserver-master.yson; sed -i -s "s/{K8S_POD_NAME}/${K8S_POD_NAME}/g" + /config/ytserver-master.yson; sed -i -s "s/{K8S_POD_NAMESPACE}/${K8S_POD_NAMESPACE}/g" + /config/ytserver-master.yson; sed -i -s "s/{K8S_NODE_NAME}/${K8S_NODE_NAME}/g" + /config/ytserver-master.yson; sed -i -s "s/{POD_FQDN}/$(hostname -f)/g" + /config/ytserver-master.yson; sed -i -s "s/{POD_SHORT_HOSTNAME}/$(hostname + -s)/g" /config/ytserver-master.yson; '' > /config/postprocess-config.sh; + chmod +x ''/config/postprocess-config.sh''; source /config/postprocess-config.sh; + cat /config/ytserver-master.yson; ' + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: postprocess-config + resources: {} + volumeMounts: + - mountPath: /yt/master-data + name: master-data + - mountPath: /config_template + name: config-template + readOnly: true + - mountPath: /config + name: config + volumes: + - configMap: + name: yt-master-config + name: config-template + - emptyDir: {} + name: config + updateStrategy: {} + volumeClaimTemplates: + - metadata: + creationTimestamp: null + name: master-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 5Gi + status: {} +status: + availableReplicas: 0 + replicas: 0 diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Ytsaurus.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Ytsaurus.yaml new file mode 100644 index 00000000..9b62cd9a --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime - CRI-O Test/Ytsaurus.yaml @@ -0,0 +1,160 @@ +apiVersion: cluster.ytsaurus.tech/v1 +kind: Ytsaurus +metadata: + creationTimestamp: null + generation: 1 + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "13" +spec: + coreImage: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + discovery: + instanceCount: 1 + loggers: + - minLogLevel: info + name: info-stderr + useTimestampSuffix: false + writerType: stderr + minReadyInstanceCount: 0 + resources: {} + enableFullUpdate: true + ephemeralCluster: true + execNodes: + - instanceCount: 1 + jobEnvironment: + cri: + criService: crio + runtime: + nvidia: {} + userSlots: 4 + locations: + - locationType: ChunkCache + path: /yt/node-data/chunk-cache + - locationType: Slots + path: /yt/node-data/slots + - locationType: ImageCache + path: /yt/node-data/image-cache + loggers: + - minLogLevel: info + name: info-stderr + useTimestampSuffix: false + writerType: stderr + minReadyInstanceCount: 0 + privileged: false + resources: {} + volumeClaimTemplates: + - metadata: + name: node-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 5Gi + volumeMounts: + - mountPath: /yt/node-data + name: node-data + hostNetwork: false + httpProxies: + - instanceCount: 1 + loggers: + - minLogLevel: info + name: info-stderr + useTimestampSuffix: false + writerType: stderr + minReadyInstanceCount: 0 + resources: {} + serviceType: NodePort + transport: {} + isManaged: true + jobImage: docker.io/library/python:3.8-slim + primaryMasters: + cellTag: 1 + instanceCount: 1 + locations: + - locationType: MasterChangelogs + path: /yt/master-data/master-changelogs + - locationType: MasterSnapshots + path: /yt/master-data/master-snapshots + loggers: + - minLogLevel: info + name: info-stderr + useTimestampSuffix: false + writerType: stderr + minReadyInstanceCount: 0 + resources: {} + volumeClaimTemplates: + - metadata: + name: master-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 5Gi + volumeMounts: + - mountPath: /yt/master-data + name: master-data + useIpv4: false + useIpv6: false + usePorto: false + useShortNames: true +status: + conditions: + - lastTransitionTime: null + message: Ready + observedGeneration: 1 + reason: Ready + status: "True" + type: DiscoveryReady + - lastTransitionTime: null + message: Init job successfully completed + observedGeneration: 1 + reason: InitJobCompleted + status: "True" + type: defaultMasterInitJobCompleted + - lastTransitionTime: null + message: yt-master-init-job-default completed + observedGeneration: 1 + reason: Ready + status: "True" + type: MasterReady + - lastTransitionTime: null + message: Ready + observedGeneration: 1 + reason: Ready + status: "True" + type: ExecNodeReady + - lastTransitionTime: null + message: Ready + observedGeneration: 1 + reason: Ready + status: "True" + type: HttpProxyReady + - lastTransitionTime: null + message: Init job successfully completed + observedGeneration: 1 + reason: InitJobCompleted + status: "True" + type: userYtsaurusClientInitJobCompleted + - lastTransitionTime: null + message: Ready + observedGeneration: 1 + reason: Ready + status: "True" + type: YtsaurusClientReady + - lastTransitionTime: null + message: Ready + observedGeneration: 1 + reason: Ready + status: "True" + type: TimbertruckReady + - lastTransitionTime: null + message: (devel) + observedGeneration: 1 + reason: Observed + status: "True" + type: OperatorVersion + observedGeneration: 1 + state: Running + updateStatus: {} diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/ConfigMap default-yt-master-init-job-config.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/ConfigMap default-yt-master-init-job-config.yaml new file mode 100644 index 00000000..5ae60f6f --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/ConfigMap default-yt-master-init-job-config.yaml @@ -0,0 +1,152 @@ +apiVersion: v1 +data: + client.yson: |- + { + "address_resolver"={ + "enable_ipv4"=%true; + "enable_ipv6"=%false; + retries=1000; + }; + logging={ + writers={ + }; + rules=[ + ]; + "flush_period"=0; + }; + driver={ + "api_version"=4; + "cluster_name"="test-ytsaurus"; + "primary_master"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + peers=[ + { + address="ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + voting=%true; + }; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + }; + "discovery_connection"={ + addresses=[ + "ds-0.discovery.ytsaurus-components.svc.cluster.local:9020"; + ]; + }; + "master_cache"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + "enable_master_cache_discovery"=%false; + }; + }; + } + init-cluster.sh: |2- + + set -e + set -x + + export YT_DRIVER_CONFIG_PATH=/config/client.yson + export YTSAURUS_VERSION="$(/usr/bin/ytserver-all --version | head -c4)" + if [ 'true' = 'true' ]; then + /usr/bin/yt create group --attr '{name=admins}' --ignore-existing + if [ $(/usr/bin/yt exists //sys/@provision_lock) = 'true' ]; then + /usr/bin/yt set //sys/schemas/tablet_cell/@acl '[{action=allow;subjects=[users;];permissions=[read;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/tablet_action/@acl '[{action=allow;subjects=[users;];permissions=[read;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/tablet_cell_bundle/@acl '[{action=allow;subjects=[users;];permissions=[read;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/user/@acl '[{action=allow;subjects=[users;];permissions=[read;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/group/@acl '[{action=allow;subjects=[users;];permissions=[read;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/rack/@acl '[{action=allow;subjects=[users;];permissions=[read;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/data_center/@acl '[{action=allow;subjects=[users;];permissions=[read;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/cluster_node/@acl '[{action=allow;subjects=[users;];permissions=[read;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/access_control_object_namespace/@acl '[{action=allow;subjects=[users;];permissions=[read;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/access_control_object_namespace_map/@acl '[{action=allow;subjects=[users;];permissions=[read;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/medium/@acl '[{action=allow;subjects=[users;];permissions=[read;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' || /usr/bin/yt set //sys/schemas/domestic_medium/@acl '[{action=allow;subjects=[users;];permissions=[read;create;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/account/@acl '[{action=allow;subjects=[users;];permissions=[read;create;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/scheduler_pool/@acl '[{action=allow;subjects=[users;];permissions=[read;create;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/scheduler_pool_tree/@acl '[{action=allow;subjects=[users;];permissions=[read;create;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/access_control_object/@acl '[{action=allow;subjects=[users;];permissions=[read;create;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + /usr/bin/yt set //sys/schemas/account_resource_usage_lease/@acl '[{action=allow;subjects=[users;];permissions=[read;write;create;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]' + fi + /usr/bin/yt create scheduler_pool_tree --attributes '{name=default; config={nodes_filter=""}}' --ignore-existing + if [ $(/usr/bin/yt exists //sys/pool_trees/@default_tree) = 'false' ]; then + /usr/bin/yt set //sys/pool_trees/@default_tree default + fi + if [ $(/usr/bin/yt exists //sys/pools) = 'false' ]; then + /usr/bin/yt link //sys/pool_trees/default //sys/pools + fi + /usr/bin/yt create scheduler_pool --attributes '{name=research; pool_tree=default}' --ignore-existing + /usr/bin/yt create map_node //home --ignore-existing + if [ $(/usr/bin/yt exists //sys/@provision_lock) = 'true' ]; then + /usr/bin/yt set //sys/@cluster_connection '{ + "cluster_name"="test-ytsaurus"; + "primary_master"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + peers=[ + { + address="ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + voting=%true; + }; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + }; + "discovery_connection"={ + addresses=[ + "ds-0.discovery.ytsaurus-components.svc.cluster.local:9020"; + ]; + }; + "master_cache"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + "enable_master_cache_discovery"=%false; + }; + }' + fi + if [ $(/usr/bin/yt exists //sys/users/admin) = 'false' ]; then + /usr/bin/yt create user --attributes '{name="admin"}' --ignore-existing + /usr/bin/yt execute set_user_password '{user=admin;new_password_sha256="5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8"}' + /usr/bin/yt create map_node '//sys/cypress_tokens/5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8' --ignore-existing + /usr/bin/yt set '//sys/cypress_tokens/5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8/@user' 'admin' + /usr/bin/yt add-member admin superusers || true + fi + + fi + if [ 'false' = 'true' ]; then + if [ $(/usr/bin/yt exists //sys/users/robot-hydra-persistence-uploader) = 'false' ]; then + /usr/bin/yt create user --attributes '{name="robot-hydra-persistence-uploader"}' --ignore-existing + /usr/bin/yt execute set_user_password '{user=robot-hydra-persistence-uploader;new_password_sha256="d9fb903c32fe851f5d5543f2f9da27330ead9bd0d85ce8f51afba5d503f027a5"}' + /usr/bin/yt create map_node '//sys/cypress_tokens/d9fb903c32fe851f5d5543f2f9da27330ead9bd0d85ce8f51afba5d503f027a5' --ignore-existing + /usr/bin/yt set '//sys/cypress_tokens/d9fb903c32fe851f5d5543f2f9da27330ead9bd0d85ce8f51afba5d503f027a5/@user' 'robot-hydra-persistence-uploader' + /usr/bin/yt create map_node //sys/admin/snapshots -r -i + /usr/bin/yt set //sys/admin/snapshots/@acl '[{action=allow;subjects=["robot-hydra-persistence-uploader";];permissions=[read;write;remove;create;];"inheritance_mode"="object_and_descendants";};]' + /usr/bin/yt set //sys/accounts/sys/@acl/end '{action=allow;subjects=["robot-hydra-persistence-uploader";];permissions=[use;];}' + fi + fi + /usr/bin/yt remove //sys/@provision_lock -f +kind: ConfigMap +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-master + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-master + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-master + ytsaurus.tech/cluster-name: test-ytsaurus + name: default-yt-master-init-job-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/ConfigMap test-overrides.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/ConfigMap test-overrides.yaml new file mode 100644 index 00000000..bdfe8c85 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/ConfigMap test-overrides.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +data: + place-holder: "" +kind: ConfigMap +metadata: + creationTimestamp: null + generation: 1 + name: test-overrides + namespace: ytsaurus-components + resourceVersion: "1" diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/ConfigMap user-yt-client-init-job-config.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/ConfigMap user-yt-client-init-job-config.yaml new file mode 100644 index 00000000..8f21eb10 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/ConfigMap user-yt-client-init-job-config.yaml @@ -0,0 +1,77 @@ +apiVersion: v1 +data: + client.yson: |- + { + "address_resolver"={ + "enable_ipv4"=%true; + "enable_ipv6"=%false; + retries=1000; + }; + logging={ + writers={ + }; + rules=[ + ]; + "flush_period"=0; + }; + driver={ + "api_version"=4; + "cluster_name"="test-ytsaurus"; + "primary_master"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + peers=[ + { + address="ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + voting=%true; + }; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + }; + "discovery_connection"={ + addresses=[ + "ds-0.discovery.ytsaurus-components.svc.cluster.local:9020"; + ]; + }; + "master_cache"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + "enable_master_cache_discovery"=%false; + }; + }; + } + init-cluster.sh: |2- + + set -e + set -x + + export YT_DRIVER_CONFIG_PATH=/config/client.yson + export YTSAURUS_VERSION="$(/usr/bin/ytserver-all --version | head -c4)" + /usr/bin/yt create user --attributes '{name="robot-ytsaurus-k8s-operator"}' --ignore-existing + /usr/bin/yt create map_node '//sys/cypress_tokens/dcd89cc6efae0df4e42a9941000a5d1f4704e17162e02fbbae2e176989421ea4' --ignore-existing + /usr/bin/yt set '//sys/cypress_tokens/dcd89cc6efae0df4e42a9941000a5d1f4704e17162e02fbbae2e176989421ea4/@user' 'robot-ytsaurus-k8s-operator' + /usr/bin/yt add-member robot-ytsaurus-k8s-operator superusers || true +kind: ConfigMap +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-client + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-client + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-client + ytsaurus.tech/cluster-name: test-ytsaurus + name: user-yt-client-init-job-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/ConfigMap yt-cypress-patch.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/ConfigMap yt-cypress-patch.yaml new file mode 100644 index 00000000..98fa16b5 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/ConfigMap yt-cypress-patch.yaml @@ -0,0 +1,108 @@ +apiVersion: v1 +data: + cypress-patch.yson: |- + { + "//sys/@cluster_connection"=[ + { + op=replace; + path="/primary_master/addresses"; + value=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + }; + { + op=replace; + path="/primary_master/peers"; + value=[ + { + address="ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + voting=%true; + }; + ]; + }; + { + op=remove; + path="/bus_client"; + }; + ]; + "<>//sys/clusters"=[ + { + op=copy; + path="/test-ytsaurus"; + from="//sys/@cluster_connection"; + }; + ]; + } + yt-client-cypress-patch.yson: |- + { + "<>//sys/clusters"=[ + { + op=copy; + path="/test-ytsaurus"; + from="//sys/@cluster_connection"; + }; + ]; + } + yt-discovery-cypress-patch.yson: |- + { + } + yt-exec-node-cypress-patch.yson: |- + { + } + yt-http-proxy-cypress-patch.yson: |- + { + } + yt-master-cypress-patch.yson: |- + { + "//sys/@cluster_connection"=[ + { + op=replace; + path="/primary_master/addresses"; + value=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + }; + { + op=replace; + path="/primary_master/peers"; + value=[ + { + address="ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + voting=%true; + }; + ]; + }; + { + op=remove; + path="/bus_client"; + }; + ]; + } + yt-timbertruck-cypress-patch.yson: |- + { + } +kind: ConfigMap +metadata: + annotations: + kubernetes.io/description: | + overrides-version: 1 + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-client + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-client + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-client + ytsaurus.tech/cluster-name: test-ytsaurus + ytsaurus.tech/config-overrides-version: "1" + name: yt-cypress-patch + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/ConfigMap yt-discovery-config.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/ConfigMap yt-discovery-config.yaml new file mode 100644 index 00000000..cfaf3bbc --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/ConfigMap yt-discovery-config.yaml @@ -0,0 +1,103 @@ +apiVersion: v1 +data: + ytserver-discovery.yson: |- + { + "address_resolver"={ + "enable_ipv4"=%true; + "enable_ipv6"=%false; + retries=1000; + }; + "solomon_exporter"={ + host="{POD_SHORT_HOSTNAME}"; + "instance_tags"={ + pod="{K8S_POD_NAME}"; + }; + }; + logging={ + writers={ + "info-stderr"={ + type=stderr; + "file_name"=".."; + "enable_compression"=%true; + "enable_system_messages"=%true; + }; + }; + rules=[ + { + "min_level"=info; + writers=[ + "info-stderr"; + ]; + family="plain_text"; + }; + ]; + "flush_period"=3000; + }; + "monitoring_port"=10020; + "rpc_port"=9020; + "timestamp_provider"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + }; + "cluster_connection"={ + "cluster_name"="test-ytsaurus"; + "primary_master"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + peers=[ + { + address="ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + voting=%true; + }; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + }; + "discovery_connection"={ + addresses=[ + "ds-0.discovery.ytsaurus-components.svc.cluster.local:9020"; + ]; + }; + "master_cache"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + "enable_master_cache_discovery"=%false; + }; + }; + "cypress_annotations"={ + "k8s_node_name"="{K8S_NODE_NAME}"; + "k8s_pod_name"="{K8S_POD_NAME}"; + "k8s_pod_namespace"="{K8S_POD_NAMESPACE}"; + "physical_host"="{K8S_NODE_NAME}"; + }; + "discovery_server"={ + "server_addresses"=[ + "ds-0.discovery.ytsaurus-components.svc.cluster.local:9020"; + ]; + }; + } +kind: ConfigMap +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-discovery + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-discovery + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-discovery + ytsaurus.tech/cluster-name: test-ytsaurus + ytsaurus.tech/config-overrides-version: "1" + name: yt-discovery-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/ConfigMap yt-exec-node-config.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/ConfigMap yt-exec-node-config.yaml new file mode 100644 index 00000000..c8ee547b --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/ConfigMap yt-exec-node-config.yaml @@ -0,0 +1,329 @@ +apiVersion: v1 +data: + ytserver-exec-node.yson: |- + { + "address_resolver"={ + "enable_ipv4"=%true; + "enable_ipv6"=%false; + retries=1000; + }; + "solomon_exporter"={ + host="{POD_SHORT_HOSTNAME}"; + "instance_tags"={ + pod="{K8S_POD_NAME}"; + }; + }; + logging={ + writers={ + "info-stderr"={ + type=stderr; + "file_name"=".."; + "enable_compression"=%true; + "enable_system_messages"=%true; + }; + }; + rules=[ + { + "min_level"=info; + writers=[ + "info-stderr"; + ]; + family="plain_text"; + }; + ]; + "flush_period"=3000; + }; + "monitoring_port"=10029; + "rpc_port"=9029; + "timestamp_provider"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + }; + "cluster_connection"={ + "cluster_name"="test-ytsaurus"; + "primary_master"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + peers=[ + { + address="ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + voting=%true; + }; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + }; + "discovery_connection"={ + addresses=[ + "ds-0.discovery.ytsaurus-components.svc.cluster.local:9020"; + ]; + }; + "master_cache"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + "enable_master_cache_discovery"=%false; + }; + }; + "cypress_annotations"={ + "k8s_node_name"="{K8S_NODE_NAME}"; + "k8s_pod_name"="{K8S_POD_NAME}"; + "k8s_pod_namespace"="{K8S_POD_NAMESPACE}"; + "physical_host"="{K8S_NODE_NAME}"; + }; + flavors=[ + exec; + ]; + "resource_limits"={ + "node_dedicated_cpu"=0.000000; + }; + "skynet_http_port"=11029; + "job_resource_manager"={ + "resource_limits"={ + "user_slots"=4; + }; + }; + "exec_node"={ + "slot_manager"={ + locations=[ + { + path="/yt/node-data/slots"; + "disk_quota"=5368709120; + "disk_usage_watermark"=536870912; + "enable_disk_quota"=%false; + }; + ]; + "job_environment"={ + type=cri; + "start_uid"=19500; + "cri_executor"={ + "runtime_endpoint"="unix:///yt/node-data/image-cache/containerd.sock"; + "image_endpoint"="unix:///yt/node-data/image-cache/containerd.sock"; + namespace=yt; + "base_cgroup"="/yt"; + }; + "cri_image_cache"={ + capacity=5368709120; + }; + "job_proxy_image"="docker.io/library/python:3.8-slim"; + "use_job_proxy_from_image"=%false; + }; + "do_not_set_user_id"=%true; + "enable_tmpfs"=%false; + }; + "gpu_manager"={ + "gpu_info_source"={ + type="gpu_agent"; + address="localhost:23105"; + "service_name"="NYT.NGpuAgent.NProto.GpuAgent"; + }; + }; + "job_controller"={ + "resource_limits"={ + "user_slots"=4; + }; + "gpu_manager"={ + "gpu_info_source"={ + type="gpu_agent"; + address="localhost:23105"; + "service_name"="NYT.NGpuAgent.NProto.GpuAgent"; + }; + }; + }; + "job_proxy"={ + "job_proxy_authentication_manager"={ + "cypress_cookie_manager"={ + }; + "cypress_user_manager"={ + }; + "cypress_token_authenticator"={ + secure=%true; + }; + "require_authentication"=%true; + }; + "job_proxy_logging"={ + writers={ + info={ + type=file; + "file_name"="job-proxy.info.log"; + format="plain_text"; + "enable_system_messages"=%true; + }; + stderr={ + type=stderr; + format="plain_text"; + "enable_system_messages"=%true; + }; + }; + rules=[ + { + "min_level"=info; + writers=[ + info; + ]; + family="plain_text"; + }; + { + "min_level"=error; + writers=[ + stderr; + ]; + family="plain_text"; + }; + ]; + "flush_period"=3000; + "log_manager_template"={ + writers={ + info={ + type=file; + "file_name"="job-proxy.info.log"; + format="plain_text"; + "enable_system_messages"=%true; + }; + stderr={ + type=stderr; + format="plain_text"; + "enable_system_messages"=%true; + }; + }; + rules=[ + { + "min_level"=info; + writers=[ + info; + ]; + family="plain_text"; + }; + { + "min_level"=error; + writers=[ + stderr; + ]; + family="plain_text"; + }; + ]; + "flush_period"=3000; + }; + mode=simple; + }; + "forward_all_environment_variables"=%true; + }; + "job_proxy_authentication_manager"={ + "cypress_cookie_manager"={ + }; + "cypress_user_manager"={ + }; + "cypress_token_authenticator"={ + secure=%true; + }; + "require_authentication"=%true; + }; + "job_proxy_logging"={ + writers={ + info={ + type=file; + "file_name"="job-proxy.info.log"; + format="plain_text"; + "enable_system_messages"=%true; + }; + stderr={ + type=stderr; + format="plain_text"; + "enable_system_messages"=%true; + }; + }; + rules=[ + { + "min_level"=info; + writers=[ + info; + ]; + family="plain_text"; + }; + { + "min_level"=error; + writers=[ + stderr; + ]; + family="plain_text"; + }; + ]; + "flush_period"=3000; + }; + "do_not_set_user_id"=%true; + "forward_all_environment_variables"=%true; + "use_artifact_binds"=%true; + "job_proxy_log_manager"={ + directory="/var/log/job-proxy"; + "sharding_key_length"=2; + "logs_storage_period"=604800000; + "directory_traversal_concurrency"=4; + "log_dump"={ + "buffer_size"=1048576; + "log_writer_name"=debug; + }; + }; + }; + "data_node"={ + "store_locations"=[ + ]; + "cache_locations"=[ + { + path="/yt/node-data/chunk-cache"; + quota=5368709120; + "io_config"={ + "enable_sync"=%false; + }; + }; + ]; + "block_cache"={ + "compressed_data"={ + capacity=0; + }; + "uncompressed_data"={ + capacity=0; + }; + }; + "blocks_ext_cache"={ + capacity=0; + }; + "chunk_meta_cache"={ + capacity=0; + }; + "block_meta_cache"={ + capacity=0; + }; + }; + "tablet_node"={ + "versioned_chunk_meta_cache"={ + capacity=0; + }; + }; + "caching_object_service"={ + capacity=0; + }; + } +kind: ConfigMap +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-exec-node + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-exec-node + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-exec-node + ytsaurus.tech/cluster-name: test-ytsaurus + ytsaurus.tech/config-overrides-version: "1" + name: yt-exec-node-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/ConfigMap yt-exec-node-jobs-config.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/ConfigMap yt-exec-node-jobs-config.yaml new file mode 100644 index 00000000..370a5ce9 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/ConfigMap yt-exec-node-jobs-config.yaml @@ -0,0 +1,57 @@ +apiVersion: v1 +data: + containerd.toml: | + root = "/yt/node-data/image-cache" + version = 2 + + [grpc] + address = "/yt/node-data/image-cache/containerd.sock" + gid = 0 + uid = 0 + + [metrics] + address = ":10026" + + [plugins] + [plugins."io.containerd.grpc.v1.cri"] + image_pull_progress_timeout = "5m0s" + restrict_oom_score_adj = true + [plugins."io.containerd.grpc.v1.cri".cni] + bin_dir = "/usr/local/lib/cni" + conf_dir = "/etc/cni/net.d" + [plugins."io.containerd.grpc.v1.cri".containerd] + default_runtime_name = "nvidia" + [plugins."io.containerd.grpc.v1.cri".containerd.runtimes] + [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.nvidia] + runtime_type = "io.containerd.runc.v2" + sandbox_mode = "podsandbox" + [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.nvidia.options] + BinaryName = "/usr/bin/nvidia-container-runtime" + [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc] + runtime_type = "io.containerd.runc.v2" + sandbox_mode = "podsandbox" + [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] + SystemdCgroup = false + [plugins."io.containerd.grpc.v1.cri".registry] +kind: ConfigMap +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-exec-node + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-exec-node + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-exec-node + ytsaurus.tech/cluster-name: test-ytsaurus + ytsaurus.tech/config-overrides-version: "1" + name: yt-exec-node-jobs-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/ConfigMap yt-http-proxy-config.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/ConfigMap yt-http-proxy-config.yaml new file mode 100644 index 00000000..3acc65a5 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/ConfigMap yt-http-proxy-config.yaml @@ -0,0 +1,116 @@ +apiVersion: v1 +data: + ytserver-http-proxy.yson: |- + { + "address_resolver"={ + "enable_ipv4"=%true; + "enable_ipv6"=%false; + retries=1000; + }; + "solomon_exporter"={ + host="{POD_SHORT_HOSTNAME}"; + "instance_tags"={ + pod="{K8S_POD_NAME}"; + }; + }; + logging={ + writers={ + "info-stderr"={ + type=stderr; + "file_name"=".."; + "enable_compression"=%true; + "enable_system_messages"=%true; + }; + }; + rules=[ + { + "min_level"=info; + writers=[ + "info-stderr"; + ]; + family="plain_text"; + }; + ]; + "flush_period"=3000; + }; + "monitoring_port"=10016; + "rpc_port"=9016; + "timestamp_provider"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + }; + "cluster_connection"={ + "cluster_name"="test-ytsaurus"; + "primary_master"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + peers=[ + { + address="ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + voting=%true; + }; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + }; + "discovery_connection"={ + addresses=[ + "ds-0.discovery.ytsaurus-components.svc.cluster.local:9020"; + ]; + }; + "master_cache"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + "enable_master_cache_discovery"=%false; + }; + }; + "cypress_annotations"={ + "k8s_node_name"="{K8S_NODE_NAME}"; + "k8s_pod_name"="{K8S_POD_NAME}"; + "k8s_pod_namespace"="{K8S_POD_NAMESPACE}"; + "physical_host"="{K8S_NODE_NAME}"; + }; + port=80; + auth={ + "cypress_cookie_manager"={ + }; + "cypress_user_manager"={ + }; + "cypress_token_authenticator"={ + secure=%true; + }; + "require_authentication"=%true; + }; + coordinator={ + enable=%true; + "default_role_filter"=default; + }; + driver={ + }; + role=""; + } +kind: ConfigMap +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-http-proxy + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-http-proxy + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-http-proxy + ytsaurus.tech/cluster-name: test-ytsaurus + ytsaurus.tech/config-overrides-version: "1" + name: yt-http-proxy-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/ConfigMap yt-master-config.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/ConfigMap yt-master-config.yaml new file mode 100644 index 00000000..a7e2464f --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/ConfigMap yt-master-config.yaml @@ -0,0 +1,138 @@ +apiVersion: v1 +data: + ytserver-master.yson: |- + { + "address_resolver"={ + "enable_ipv4"=%true; + "enable_ipv6"=%false; + retries=1000; + }; + "solomon_exporter"={ + host="{POD_SHORT_HOSTNAME}"; + "instance_tags"={ + pod="{K8S_POD_NAME}"; + }; + }; + logging={ + writers={ + "info-stderr"={ + type=stderr; + "file_name"=".."; + "enable_compression"=%true; + "enable_system_messages"=%true; + }; + }; + rules=[ + { + "min_level"=info; + writers=[ + "info-stderr"; + ]; + family="plain_text"; + }; + ]; + "flush_period"=3000; + }; + "monitoring_port"=10010; + "rpc_port"=9010; + "timestamp_provider"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + }; + "cluster_connection"={ + "cluster_name"="test-ytsaurus"; + "primary_master"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + peers=[ + { + address="ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + voting=%true; + }; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + }; + "discovery_connection"={ + addresses=[ + "ds-0.discovery.ytsaurus-components.svc.cluster.local:9020"; + ]; + }; + "master_cache"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + "enable_master_cache_discovery"=%false; + }; + }; + "cypress_annotations"={ + "k8s_node_name"="{K8S_NODE_NAME}"; + "k8s_pod_name"="{K8S_POD_NAME}"; + "k8s_pod_namespace"="{K8S_POD_NAMESPACE}"; + "physical_host"="{K8S_NODE_NAME}"; + }; + snapshots={ + path="/yt/master-data/master-snapshots"; + }; + changelogs={ + path="/yt/master-data/master-changelogs"; + "io_engine"={ + "enable_sync"=%false; + }; + }; + "use_new_hydra"=%true; + "hydra_manager"={ + "max_changelog_count_to_keep"=10; + "max_snapshot_count_to_keep"=10; + }; + "cypress_manager"={ + "default_table_replication_factor"=1; + "default_file_replication_factor"=1; + "default_journal_replication_factor"=1; + "default_journal_read_quorum"=1; + "default_journal_write_quorum"=1; + }; + "primary_master"={ + addresses=[ + "ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + ]; + peers=[ + { + address="ms-0.masters.ytsaurus-components.svc.cluster.local:9010"; + voting=%true; + }; + ]; + "cell_id"="65726e65-ad6b7562-10259-79747361"; + }; + "secondary_masters"=[ + ]; + "discovery_server"={ + addresses=[ + "ds-0.discovery.ytsaurus-components.svc.cluster.local:9020"; + ]; + }; + } +kind: ConfigMap +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-master + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-master + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-master + ytsaurus.tech/cluster-name: test-ytsaurus + ytsaurus.tech/config-overrides-version: "1" + name: yt-master-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Events.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Events.yaml new file mode 100644 index 00000000..bf56e2d8 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Events.yaml @@ -0,0 +1,1100 @@ +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "1" + lastTimestamp: null + message: Config ytserver-discovery.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "2" + lastTimestamp: null + message: Config ytserver-discovery.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "2" + lastTimestamp: null + message: Config ytserver-discovery.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "2" + lastTimestamp: null + message: Config ytserver-discovery.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "2" + lastTimestamp: null + message: Created YT object ds (*v1.StatefulSet) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "2" + lastTimestamp: null + message: Config ytserver-discovery.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "2" + lastTimestamp: null + message: Created YT object yt-discovery-config (*v1.ConfigMap) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "2" + lastTimestamp: null + message: Created YT object discovery (*v1.Service) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "2" + lastTimestamp: null + message: Created YT object yt-discovery-monitoring (*v1.Service) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "2" + lastTimestamp: null + message: Created YT object robot-hydra-persistence-uploader-secret (*v1.Secret) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "2" + lastTimestamp: null + message: Created YT object robot-timbertruck-secret (*v1.Secret) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Config ytserver-master.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Config ytserver-master.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Config ytserver-master.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Config ytserver-master.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Config ytserver-master.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Config ytserver-master.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Config ytserver-master.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Created YT object ms (*v1.StatefulSet) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Config ytserver-master.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Created YT object yt-master-config (*v1.ConfigMap) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Created YT object masters (*v1.Service) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Created YT object yt-master-monitoring (*v1.Service) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Config ytserver-master.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Config ytserver-master.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Config ytserver-master.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "3" + lastTimestamp: null + message: Config ytserver-master.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "4" + lastTimestamp: null + message: Config client.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "4" + lastTimestamp: null + message: Created YT object default-yt-master-init-job-config (*v1.ConfigMap) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "4" + lastTimestamp: null + message: Created YT object yt-master-init-job-default (*v1.Job) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Config ytserver-http-proxy.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Config ytserver-http-proxy.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Config ytserver-http-proxy.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Created YT object hp (*v1.StatefulSet) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Config ytserver-http-proxy.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Created YT object yt-http-proxy-config (*v1.ConfigMap) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Created YT object http-proxies (*v1.Service) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Created YT object yt-http-proxy-monitoring (*v1.Service) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Config ytserver-exec-node.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Config ytserver-exec-node.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Created YT object end (*v1.StatefulSet) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Config ytserver-exec-node.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Created YT object yt-exec-node-config (*v1.ConfigMap) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Created YT object exec-nodes (*v1.Service) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Created YT object yt-exec-node-monitoring (*v1.Service) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Config containerd.toml needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Created YT object yt-exec-node-jobs-config (*v1.ConfigMap) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Config ytserver-http-proxy.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "6" + lastTimestamp: null + message: Created YT object http-proxies-lb (*v1.Service) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "7" + lastTimestamp: null + message: Created YT object yt-client-secret (*v1.Secret) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "8" + lastTimestamp: null + message: Config client.yson needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "8" + lastTimestamp: null + message: Created YT object user-yt-client-init-job-config (*v1.ConfigMap) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "8" + lastTimestamp: null + message: Created YT object yt-client-init-job-user (*v1.Job) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "10" + lastTimestamp: null + message: Created YT object yt-cypress-patch (*v1.ConfigMap) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "10" + lastTimestamp: null + message: Skip patch apply in test + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: CypressPatch + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Job yt-client-init-job-user.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Job yt-client-init-job-user.yaml new file mode 100644 index 00000000..5be95ba3 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Job yt-client-init-job-user.yaml @@ -0,0 +1,71 @@ +apiVersion: batch/v1 +kind: Job +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-client + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-client + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-client + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-client-init-job-user + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "2" +spec: + backoffLimit: 15 + template: + metadata: + creationTimestamp: null + labels: + app.kubernetes.io/component: yt-client + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-client-init-job + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-client-init-job + ytsaurus.tech/cluster-name: test-ytsaurus + name: ytsaurus-init + namespace: ytsaurus-components + spec: + containers: + - command: + - bash + - -c + - /config/init-cluster.sh + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: ytsaurus-init + resources: {} + terminationMessagePolicy: FallbackToLogsOnError + volumeMounts: + - mountPath: /config + name: config + restartPolicy: OnFailure + volumes: + - configMap: + defaultMode: 320 + name: user-yt-client-init-job-config + name: config + ttlSecondsAfterFinished: 600 +status: + succeeded: 1 diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Job yt-master-init-job-default.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Job yt-master-init-job-default.yaml new file mode 100644 index 00000000..783deb14 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Job yt-master-init-job-default.yaml @@ -0,0 +1,71 @@ +apiVersion: batch/v1 +kind: Job +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-master + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-master + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-master + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-master-init-job-default + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "2" +spec: + backoffLimit: 15 + template: + metadata: + creationTimestamp: null + labels: + app.kubernetes.io/component: yt-master + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-master-init-job + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-master-init-job + ytsaurus.tech/cluster-name: test-ytsaurus + name: ytsaurus-init + namespace: ytsaurus-components + spec: + containers: + - command: + - bash + - -c + - /config/init-cluster.sh + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: ytsaurus-init + resources: {} + terminationMessagePolicy: FallbackToLogsOnError + volumeMounts: + - mountPath: /config + name: config + restartPolicy: OnFailure + volumes: + - configMap: + defaultMode: 320 + name: default-yt-master-init-job-config + name: config + ttlSecondsAfterFinished: 600 +status: + succeeded: 1 diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Object List.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Object List.yaml new file mode 100644 index 00000000..9b18e8a2 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Object List.yaml @@ -0,0 +1,455 @@ +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-master + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-master + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-master + ytsaurus.tech/cluster-name: test-ytsaurus + name: default-yt-master-init-job-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-discovery + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-discovery + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-discovery + ytsaurus.tech/cluster-name: test-ytsaurus + name: discovery + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-discovery + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-discovery + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-discovery + ytsaurus.tech/cluster-name: test-ytsaurus + name: ds + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-exec-node + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-exec-node + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-exec-node + ytsaurus.tech/cluster-name: test-ytsaurus + name: end + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-exec-node + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-exec-node + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-exec-node + ytsaurus.tech/cluster-name: test-ytsaurus + name: exec-nodes + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-http-proxy + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-http-proxy + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-http-proxy + ytsaurus.tech/cluster-name: test-ytsaurus + name: hp + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-http-proxy + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-http-proxy + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-http-proxy + ytsaurus.tech/cluster-name: test-ytsaurus + name: http-proxies + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-http-proxy + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-http-proxy + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-http-proxy + ytsaurus.tech/cluster-name: test-ytsaurus + name: http-proxies-lb + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-master + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-master + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-master + ytsaurus.tech/cluster-name: test-ytsaurus + name: masters + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-master + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-master + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-master + ytsaurus.tech/cluster-name: test-ytsaurus + name: ms + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + name: test-overrides + namespace: ytsaurus-components + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-client + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-client + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-client + ytsaurus.tech/cluster-name: test-ytsaurus + name: user-yt-client-init-job-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-client + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-client + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-client + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-client-init-job-user + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "2" +- annotations: + kubernetes.io/description: | + overrides-version: 1 + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-client + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-client + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-client + ytsaurus.tech/cluster-name: test-ytsaurus + ytsaurus.tech/config-overrides-version: "1" + name: yt-cypress-patch + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-discovery + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-discovery + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-discovery + ytsaurus.tech/cluster-name: test-ytsaurus + ytsaurus.tech/config-overrides-version: "1" + name: yt-discovery-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-discovery + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-discovery + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-discovery + yt_metrics: "true" + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-discovery-monitoring + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-exec-node + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-exec-node + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-exec-node + ytsaurus.tech/cluster-name: test-ytsaurus + ytsaurus.tech/config-overrides-version: "1" + name: yt-exec-node-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-exec-node + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-exec-node + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-exec-node + ytsaurus.tech/cluster-name: test-ytsaurus + ytsaurus.tech/config-overrides-version: "1" + name: yt-exec-node-jobs-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-exec-node + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-exec-node + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-exec-node + yt_metrics: "true" + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-exec-node-monitoring + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-http-proxy + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-http-proxy + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-http-proxy + ytsaurus.tech/cluster-name: test-ytsaurus + ytsaurus.tech/config-overrides-version: "1" + name: yt-http-proxy-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-http-proxy + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-http-proxy + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-http-proxy + yt_metrics: "true" + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-http-proxy-monitoring + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-master + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-master + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-master + ytsaurus.tech/cluster-name: test-ytsaurus + ytsaurus.tech/config-overrides-version: "1" + name: yt-master-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-master + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-master + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-master + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-master-init-job-default + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "2" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-master + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-master + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-master + yt_metrics: "true" + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-master-monitoring + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Service discovery.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Service discovery.yaml new file mode 100644 index 00000000..bc035a0e --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Service discovery.yaml @@ -0,0 +1,29 @@ +apiVersion: v1 +kind: Service +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-discovery + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-discovery + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-discovery + ytsaurus.tech/cluster-name: test-ytsaurus + name: discovery + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +spec: + clusterIP: None + publishNotReadyAddresses: true + selector: + yt_component: test-ytsaurus-yt-discovery +status: + loadBalancer: {} diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Service exec-nodes.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Service exec-nodes.yaml new file mode 100644 index 00000000..95465213 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Service exec-nodes.yaml @@ -0,0 +1,29 @@ +apiVersion: v1 +kind: Service +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-exec-node + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-exec-node + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-exec-node + ytsaurus.tech/cluster-name: test-ytsaurus + name: exec-nodes + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +spec: + clusterIP: None + publishNotReadyAddresses: true + selector: + yt_component: test-ytsaurus-yt-exec-node +status: + loadBalancer: {} diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Service http-proxies-lb.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Service http-proxies-lb.yaml new file mode 100644 index 00000000..90ecd658 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Service http-proxies-lb.yaml @@ -0,0 +1,32 @@ +apiVersion: v1 +kind: Service +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-http-proxy + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-http-proxy + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-http-proxy + ytsaurus.tech/cluster-name: test-ytsaurus + name: http-proxies-lb + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +spec: + ports: + - name: http + port: 80 + targetPort: 80 + selector: + yt_component: test-ytsaurus-yt-http-proxy + type: NodePort +status: + loadBalancer: {} diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Service http-proxies.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Service http-proxies.yaml new file mode 100644 index 00000000..5d81912b --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Service http-proxies.yaml @@ -0,0 +1,29 @@ +apiVersion: v1 +kind: Service +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-http-proxy + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-http-proxy + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-http-proxy + ytsaurus.tech/cluster-name: test-ytsaurus + name: http-proxies + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +spec: + clusterIP: None + publishNotReadyAddresses: true + selector: + yt_component: test-ytsaurus-yt-http-proxy +status: + loadBalancer: {} diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Service masters.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Service masters.yaml new file mode 100644 index 00000000..18705d44 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Service masters.yaml @@ -0,0 +1,29 @@ +apiVersion: v1 +kind: Service +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-master + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-master + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-master + ytsaurus.tech/cluster-name: test-ytsaurus + name: masters + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +spec: + clusterIP: None + publishNotReadyAddresses: true + selector: + yt_component: test-ytsaurus-yt-master +status: + loadBalancer: {} diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Service yt-discovery-monitoring.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Service yt-discovery-monitoring.yaml new file mode 100644 index 00000000..6848fff0 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Service yt-discovery-monitoring.yaml @@ -0,0 +1,32 @@ +apiVersion: v1 +kind: Service +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-discovery + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-discovery + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-discovery + yt_metrics: "true" + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-discovery-monitoring + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +spec: + ports: + - name: ytsaurus-metrics + port: 10000 + targetPort: 10020 + selector: + yt_component: test-ytsaurus-yt-discovery +status: + loadBalancer: {} diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Service yt-exec-node-monitoring.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Service yt-exec-node-monitoring.yaml new file mode 100644 index 00000000..b39068a7 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Service yt-exec-node-monitoring.yaml @@ -0,0 +1,36 @@ +apiVersion: v1 +kind: Service +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-exec-node + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-exec-node + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-exec-node + yt_metrics: "true" + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-exec-node-monitoring + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +spec: + ports: + - name: ytsaurus-metrics + port: 10000 + targetPort: 10029 + - name: cri-metrics + port: 10026 + protocol: TCP + targetPort: 10026 + selector: + yt_component: test-ytsaurus-yt-exec-node +status: + loadBalancer: {} diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Service yt-http-proxy-monitoring.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Service yt-http-proxy-monitoring.yaml new file mode 100644 index 00000000..3ce2a7f7 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Service yt-http-proxy-monitoring.yaml @@ -0,0 +1,32 @@ +apiVersion: v1 +kind: Service +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-http-proxy + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-http-proxy + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-http-proxy + yt_metrics: "true" + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-http-proxy-monitoring + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +spec: + ports: + - name: ytsaurus-metrics + port: 10000 + targetPort: 10016 + selector: + yt_component: test-ytsaurus-yt-http-proxy +status: + loadBalancer: {} diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Service yt-master-monitoring.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Service yt-master-monitoring.yaml new file mode 100644 index 00000000..e09429ec --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Service yt-master-monitoring.yaml @@ -0,0 +1,32 @@ +apiVersion: v1 +kind: Service +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-master + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-master + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-master + yt_metrics: "true" + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-master-monitoring + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +spec: + ports: + - name: ytsaurus-metrics + port: 10000 + targetPort: 10010 + selector: + yt_component: test-ytsaurus-yt-master +status: + loadBalancer: {} diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/StatefulSet ds.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/StatefulSet ds.yaml new file mode 100644 index 00000000..3c2ab087 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/StatefulSet ds.yaml @@ -0,0 +1,150 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-discovery + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-discovery + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-discovery + ytsaurus.tech/cluster-name: test-ytsaurus + name: ds + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +spec: + podManagementPolicy: Parallel + replicas: 1 + selector: + matchLabels: + yt_component: test-ytsaurus-yt-discovery + serviceName: discovery + template: + metadata: + creationTimestamp: null + labels: + app.kubernetes.io/component: yt-discovery + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-discovery + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-discovery + ytsaurus.tech/cluster-name: test-ytsaurus + spec: + containers: + - command: + - /usr/bin/ytserver-discovery + - --config + - /config/ytserver-discovery.yson + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: ytserver + ports: + - containerPort: 10020 + name: metrics + protocol: TCP + - containerPort: 9020 + name: rpc + protocol: TCP + readinessProbe: + httpGet: + path: /orchid/service + port: metrics + resources: {} + volumeMounts: + - mountPath: /config_template + name: config-template + readOnly: true + - mountPath: /config + name: config + enableServiceLinks: false + initContainers: + - command: + - bash + - -xc + - 'echo ''Init locations''; ' + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: prepare-locations + resources: {} + volumeMounts: + - mountPath: /config_template + name: config-template + readOnly: true + - mountPath: /config + name: config + - command: + - bash + - -xc + - 'echo ''Postprocess config ytserver-discovery.yson'';echo ''cp /config_template/ytserver-discovery.yson + /config/ytserver-discovery.yson; sed -i -s "s/{K8S_POD_NAME}/${K8S_POD_NAME}/g" + /config/ytserver-discovery.yson; sed -i -s "s/{K8S_POD_NAMESPACE}/${K8S_POD_NAMESPACE}/g" + /config/ytserver-discovery.yson; sed -i -s "s/{K8S_NODE_NAME}/${K8S_NODE_NAME}/g" + /config/ytserver-discovery.yson; sed -i -s "s/{POD_FQDN}/$(hostname -f)/g" + /config/ytserver-discovery.yson; sed -i -s "s/{POD_SHORT_HOSTNAME}/$(hostname + -s)/g" /config/ytserver-discovery.yson; '' > /config/postprocess-config.sh; + chmod +x ''/config/postprocess-config.sh''; source /config/postprocess-config.sh; + cat /config/ytserver-discovery.yson; ' + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: postprocess-config + resources: {} + volumeMounts: + - mountPath: /config_template + name: config-template + readOnly: true + - mountPath: /config + name: config + volumes: + - configMap: + name: yt-discovery-config + name: config-template + - emptyDir: {} + name: config + updateStrategy: {} +status: + availableReplicas: 0 + replicas: 0 diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/StatefulSet end.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/StatefulSet end.yaml new file mode 100644 index 00000000..f68ab9e3 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/StatefulSet end.yaml @@ -0,0 +1,229 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-exec-node + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-exec-node + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-exec-node + ytsaurus.tech/cluster-name: test-ytsaurus + name: end + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +spec: + podManagementPolicy: Parallel + replicas: 1 + selector: + matchLabels: + yt_component: test-ytsaurus-yt-exec-node + serviceName: exec-nodes + template: + metadata: + creationTimestamp: null + labels: + app.kubernetes.io/component: yt-exec-node + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-exec-node + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-exec-node + ytsaurus.tech/cluster-name: test-ytsaurus + spec: + containers: + - command: + - /usr/bin/ytserver-node + - --config + - /config/ytserver-exec-node.yson + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + - name: CONTAINERD_ADDRESS + value: /yt/node-data/image-cache/containerd.sock + - name: CONTAINERD_NAMESPACE + value: k8s.io + - name: CONTAINER_RUNTIME_ENDPOINT + value: unix:///yt/node-data/image-cache/containerd.sock + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: ytserver + ports: + - containerPort: 10029 + name: metrics + protocol: TCP + - containerPort: 9029 + name: rpc + protocol: TCP + readinessProbe: + httpGet: + path: /orchid/service + port: metrics + resources: {} + securityContext: + privileged: false + volumeMounts: + - mountPath: /yt/node-data + name: node-data + - mountPath: /config_template + name: config-template + readOnly: true + - mountPath: /config + name: config + - args: + - --config + - /config/containerd/containerd.toml + command: + - tini + - -- + - containerd + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + - name: CONTAINERD_ADDRESS + value: /yt/node-data/image-cache/containerd.sock + - name: CONTAINERD_NAMESPACE + value: k8s.io + - name: CONTAINER_RUNTIME_ENDPOINT + value: unix:///yt/node-data/image-cache/containerd.sock + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: jobs + ports: + - containerPort: 10026 + name: cri-metrics + protocol: TCP + resources: {} + securityContext: + privileged: true + volumeMounts: + - mountPath: /yt/node-data + name: node-data + - mountPath: /config_template + name: config-template + readOnly: true + - mountPath: /config + name: config + - mountPath: /config/containerd + name: config-containerd + readOnly: true + enableServiceLinks: false + initContainers: + - command: + - bash + - -xc + - 'echo ''Init locations''; mkdir -p /yt/node-data/chunk-cache; mkdir -p /yt/node-data/slots; + mkdir -p /yt/node-data/image-cache; ' + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: prepare-locations + resources: {} + securityContext: + privileged: false + volumeMounts: + - mountPath: /yt/node-data + name: node-data + - mountPath: /config_template + name: config-template + readOnly: true + - mountPath: /config + name: config + - command: + - bash + - -xc + - 'echo ''Postprocess config ytserver-exec-node.yson'';echo ''cp /config_template/ytserver-exec-node.yson + /config/ytserver-exec-node.yson; sed -i -s "s/{K8S_POD_NAME}/${K8S_POD_NAME}/g" + /config/ytserver-exec-node.yson; sed -i -s "s/{K8S_POD_NAMESPACE}/${K8S_POD_NAMESPACE}/g" + /config/ytserver-exec-node.yson; sed -i -s "s/{K8S_NODE_NAME}/${K8S_NODE_NAME}/g" + /config/ytserver-exec-node.yson; sed -i -s "s/{POD_FQDN}/$(hostname -f)/g" + /config/ytserver-exec-node.yson; sed -i -s "s/{POD_SHORT_HOSTNAME}/$(hostname + -s)/g" /config/ytserver-exec-node.yson; '' > /config/postprocess-config.sh; + chmod +x ''/config/postprocess-config.sh''; source /config/postprocess-config.sh; + cat /config/ytserver-exec-node.yson; ' + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: postprocess-config + resources: {} + securityContext: + privileged: false + volumeMounts: + - mountPath: /yt/node-data + name: node-data + - mountPath: /config_template + name: config-template + readOnly: true + - mountPath: /config + name: config + volumes: + - configMap: + name: yt-exec-node-config + name: config-template + - emptyDir: {} + name: config + - configMap: + name: yt-exec-node-jobs-config + name: config-containerd + updateStrategy: {} + volumeClaimTemplates: + - metadata: + creationTimestamp: null + name: node-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 5Gi + status: {} +status: + availableReplicas: 0 + replicas: 0 diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/StatefulSet hp.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/StatefulSet hp.yaml new file mode 100644 index 00000000..78ffd035 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/StatefulSet hp.yaml @@ -0,0 +1,156 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-http-proxy + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-http-proxy + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-http-proxy + ytsaurus.tech/cluster-name: test-ytsaurus + name: hp + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +spec: + podManagementPolicy: Parallel + replicas: 1 + selector: + matchLabels: + yt_component: test-ytsaurus-yt-http-proxy + serviceName: http-proxies + template: + metadata: + creationTimestamp: null + labels: + app.kubernetes.io/component: yt-http-proxy + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-http-proxy + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-http-proxy + ytsaurus.tech/cluster-name: test-ytsaurus + spec: + containers: + - command: + - /usr/bin/ytserver-http-proxy + - --config + - /config/ytserver-http-proxy.yson + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: ytserver + ports: + - containerPort: 10016 + name: metrics + protocol: TCP + - containerPort: 9016 + name: rpc + protocol: TCP + - containerPort: 80 + name: http + protocol: TCP + - containerPort: 443 + name: https + protocol: TCP + readinessProbe: + httpGet: + path: /ping + port: 80 + resources: {} + volumeMounts: + - mountPath: /config_template + name: config-template + readOnly: true + - mountPath: /config + name: config + enableServiceLinks: false + initContainers: + - command: + - bash + - -xc + - 'echo ''Init locations''; ' + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: prepare-locations + resources: {} + volumeMounts: + - mountPath: /config_template + name: config-template + readOnly: true + - mountPath: /config + name: config + - command: + - bash + - -xc + - 'echo ''Postprocess config ytserver-http-proxy.yson'';echo ''cp /config_template/ytserver-http-proxy.yson + /config/ytserver-http-proxy.yson; sed -i -s "s/{K8S_POD_NAME}/${K8S_POD_NAME}/g" + /config/ytserver-http-proxy.yson; sed -i -s "s/{K8S_POD_NAMESPACE}/${K8S_POD_NAMESPACE}/g" + /config/ytserver-http-proxy.yson; sed -i -s "s/{K8S_NODE_NAME}/${K8S_NODE_NAME}/g" + /config/ytserver-http-proxy.yson; sed -i -s "s/{POD_FQDN}/$(hostname -f)/g" + /config/ytserver-http-proxy.yson; sed -i -s "s/{POD_SHORT_HOSTNAME}/$(hostname + -s)/g" /config/ytserver-http-proxy.yson; '' > /config/postprocess-config.sh; + chmod +x ''/config/postprocess-config.sh''; source /config/postprocess-config.sh; + cat /config/ytserver-http-proxy.yson; ' + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: postprocess-config + resources: {} + volumeMounts: + - mountPath: /config_template + name: config-template + readOnly: true + - mountPath: /config + name: config + volumes: + - configMap: + name: yt-http-proxy-config + name: config-template + - emptyDir: {} + name: config + updateStrategy: {} +status: + availableReplicas: 0 + replicas: 0 diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/StatefulSet ms.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/StatefulSet ms.yaml new file mode 100644 index 00000000..fd25abeb --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/StatefulSet ms.yaml @@ -0,0 +1,168 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-master + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-master + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-master + ytsaurus.tech/cluster-name: test-ytsaurus + name: ms + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" +spec: + podManagementPolicy: Parallel + replicas: 1 + selector: + matchLabels: + yt_component: test-ytsaurus-yt-master + serviceName: masters + template: + metadata: + creationTimestamp: null + labels: + app.kubernetes.io/component: yt-master + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-master + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-master + ytsaurus.tech/cluster-name: test-ytsaurus + spec: + containers: + - command: + - /usr/bin/ytserver-master + - --config + - /config/ytserver-master.yson + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: ytserver + ports: + - containerPort: 10010 + name: metrics + protocol: TCP + - containerPort: 9010 + name: rpc + protocol: TCP + readinessProbe: + httpGet: + path: /orchid/service + port: metrics + resources: {} + volumeMounts: + - mountPath: /yt/master-data + name: master-data + - mountPath: /config_template + name: config-template + readOnly: true + - mountPath: /config + name: config + enableServiceLinks: false + initContainers: + - command: + - bash + - -xc + - 'echo ''Init locations''; mkdir -p /yt/master-data/master-changelogs; mkdir + -p /yt/master-data/master-snapshots; ' + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: prepare-locations + resources: {} + volumeMounts: + - mountPath: /yt/master-data + name: master-data + - mountPath: /config_template + name: config-template + readOnly: true + - mountPath: /config + name: config + - command: + - bash + - -xc + - 'echo ''Postprocess config ytserver-master.yson'';echo ''cp /config_template/ytserver-master.yson + /config/ytserver-master.yson; sed -i -s "s/{K8S_POD_NAME}/${K8S_POD_NAME}/g" + /config/ytserver-master.yson; sed -i -s "s/{K8S_POD_NAMESPACE}/${K8S_POD_NAMESPACE}/g" + /config/ytserver-master.yson; sed -i -s "s/{K8S_NODE_NAME}/${K8S_NODE_NAME}/g" + /config/ytserver-master.yson; sed -i -s "s/{POD_FQDN}/$(hostname -f)/g" + /config/ytserver-master.yson; sed -i -s "s/{POD_SHORT_HOSTNAME}/$(hostname + -s)/g" /config/ytserver-master.yson; '' > /config/postprocess-config.sh; + chmod +x ''/config/postprocess-config.sh''; source /config/postprocess-config.sh; + cat /config/ytserver-master.yson; ' + env: + - name: K8S_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: K8S_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + name: postprocess-config + resources: {} + volumeMounts: + - mountPath: /yt/master-data + name: master-data + - mountPath: /config_template + name: config-template + readOnly: true + - mountPath: /config + name: config + volumes: + - configMap: + name: yt-master-config + name: config-template + - emptyDir: {} + name: config + updateStrategy: {} + volumeClaimTemplates: + - metadata: + creationTimestamp: null + name: master-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 5Gi + status: {} +status: + availableReplicas: 0 + replicas: 0 diff --git a/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Ytsaurus.yaml b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Ytsaurus.yaml new file mode 100644 index 00000000..d67897eb --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI and NVIDIA container runtime Test/Ytsaurus.yaml @@ -0,0 +1,161 @@ +apiVersion: cluster.ytsaurus.tech/v1 +kind: Ytsaurus +metadata: + creationTimestamp: null + generation: 1 + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "13" +spec: + configOverrides: + name: test-overrides + coreImage: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 + discovery: + instanceCount: 1 + loggers: + - minLogLevel: info + name: info-stderr + useTimestampSuffix: false + writerType: stderr + minReadyInstanceCount: 0 + resources: {} + enableFullUpdate: true + ephemeralCluster: true + execNodes: + - instanceCount: 1 + jobEnvironment: + cri: {} + runtime: + nvidia: {} + userSlots: 4 + locations: + - locationType: ChunkCache + path: /yt/node-data/chunk-cache + - locationType: Slots + path: /yt/node-data/slots + - locationType: ImageCache + path: /yt/node-data/image-cache + loggers: + - minLogLevel: info + name: info-stderr + useTimestampSuffix: false + writerType: stderr + minReadyInstanceCount: 0 + privileged: false + resources: {} + volumeClaimTemplates: + - metadata: + name: node-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 5Gi + volumeMounts: + - mountPath: /yt/node-data + name: node-data + hostNetwork: false + httpProxies: + - instanceCount: 1 + loggers: + - minLogLevel: info + name: info-stderr + useTimestampSuffix: false + writerType: stderr + minReadyInstanceCount: 0 + resources: {} + serviceType: NodePort + transport: {} + isManaged: true + jobImage: docker.io/library/python:3.8-slim + primaryMasters: + cellTag: 1 + instanceCount: 1 + locations: + - locationType: MasterChangelogs + path: /yt/master-data/master-changelogs + - locationType: MasterSnapshots + path: /yt/master-data/master-snapshots + loggers: + - minLogLevel: info + name: info-stderr + useTimestampSuffix: false + writerType: stderr + minReadyInstanceCount: 0 + resources: {} + volumeClaimTemplates: + - metadata: + name: master-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 5Gi + volumeMounts: + - mountPath: /yt/master-data + name: master-data + useIpv4: false + useIpv6: false + usePorto: false + useShortNames: true +status: + conditions: + - lastTransitionTime: null + message: Ready + observedGeneration: 1 + reason: Ready + status: "True" + type: DiscoveryReady + - lastTransitionTime: null + message: Init job successfully completed + observedGeneration: 1 + reason: InitJobCompleted + status: "True" + type: defaultMasterInitJobCompleted + - lastTransitionTime: null + message: yt-master-init-job-default completed + observedGeneration: 1 + reason: Ready + status: "True" + type: MasterReady + - lastTransitionTime: null + message: Ready + observedGeneration: 1 + reason: Ready + status: "True" + type: ExecNodeReady + - lastTransitionTime: null + message: Ready + observedGeneration: 1 + reason: Ready + status: "True" + type: HttpProxyReady + - lastTransitionTime: null + message: Init job successfully completed + observedGeneration: 1 + reason: InitJobCompleted + status: "True" + type: userYtsaurusClientInitJobCompleted + - lastTransitionTime: null + message: Ready + observedGeneration: 1 + reason: Ready + status: "True" + type: YtsaurusClientReady + - lastTransitionTime: null + message: Ready + observedGeneration: 1 + reason: Ready + status: "True" + type: TimbertruckReady + - lastTransitionTime: null + message: (devel) + observedGeneration: 1 + reason: Observed + status: "True" + type: OperatorVersion + observedGeneration: 1 + state: Running + updateStatus: {} diff --git a/test/r8r/canondata/Components reconciler With CRI job environment - CRI-O Test/ConfigMap yt-exec-node-jobs-config.yaml b/test/r8r/canondata/Components reconciler With CRI job environment - CRI-O Test/ConfigMap yt-exec-node-jobs-config.yaml new file mode 100644 index 00000000..3473dfa2 --- /dev/null +++ b/test/r8r/canondata/Components reconciler With CRI job environment - CRI-O Test/ConfigMap yt-exec-node-jobs-config.yaml @@ -0,0 +1,50 @@ +apiVersion: v1 +data: + crio.conf: | + [crio] + root = "/yt/node-data/image-cache" + [crio.api] + listen = "/yt/node-data/image-cache/cri.sock" + [crio.image] + [crio.metrics] + enable_metrics = true + metrics_host = "" + metrics_port = 10026 + [crio.runtime] + cgroup_manager = "cgroupfs" + conmon_cgroup = "pod" + default_runtime = "crun" + [crio.runtime.runtimes] + [crio.runtime.runtimes.crun] + allowed_annotations = ["io.kubernetes.cri-o.ShmSize"] + monitor_cgroup = "pod" + monitor_path = "/usr/libexec/crio/conmon" + runtime_path = "/usr/libexec/crio/crun" + runtime_type = "oci" + [crio.runtime.runtimes.runc] + allowed_annotations = ["io.kubernetes.cri-o.ShmSize"] + monitor_cgroup = "pod" + monitor_path = "/usr/libexec/crio/conmon" + runtime_path = "/usr/libexec/crio/runc" + runtime_type = "oci" +kind: ConfigMap +metadata: + creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-exec-node + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-exec-node + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-exec-node + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-exec-node-jobs-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" diff --git a/test/r8r/canondata/Components reconciler With CRI job environment - CRI-O Test/Events.yaml b/test/r8r/canondata/Components reconciler With CRI job environment - CRI-O Test/Events.yaml index 1df34bec..8589e5ab 100644 --- a/test/r8r/canondata/Components reconciler With CRI job environment - CRI-O Test/Events.yaml +++ b/test/r8r/canondata/Components reconciler With CRI job environment - CRI-O Test/Events.yaml @@ -898,6 +898,46 @@ source: component: ytsaurus type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Config crio.conf needs creation + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal +- count: 1 + eventTime: null + firstTimestamp: null + involvedObject: + apiVersion: cluster.ytsaurus.tech/v1 + kind: Ytsaurus + name: test-ytsaurus + namespace: ytsaurus-components + resourceVersion: "5" + lastTimestamp: null + message: Created YT object yt-exec-node-jobs-config (*v1.ConfigMap) + metadata: + creationTimestamp: null + namespace: ytsaurus-components + reason: Reconciliation + reportingComponent: ytsaurus + reportingInstance: "" + source: + component: ytsaurus + type: Normal - count: 1 eventTime: null firstTimestamp: null diff --git a/test/r8r/canondata/Components reconciler With CRI job environment - CRI-O Test/Object List.yaml b/test/r8r/canondata/Components reconciler With CRI job environment - CRI-O Test/Object List.yaml index e14987fb..86710a4c 100644 --- a/test/r8r/canondata/Components reconciler With CRI job environment - CRI-O Test/Object List.yaml +++ b/test/r8r/canondata/Components reconciler With CRI job environment - CRI-O Test/Object List.yaml @@ -305,6 +305,25 @@ name: test-ytsaurus uid: "" resourceVersion: "1" +- creationTimestamp: null + generation: 1 + labels: + app.kubernetes.io/component: yt-exec-node + app.kubernetes.io/managed-by: ytsaurus-k8s-operator + app.kubernetes.io/name: yt-exec-node + app.kubernetes.io/part-of: yt-test-ytsaurus + yt_component: test-ytsaurus-yt-exec-node + ytsaurus.tech/cluster-name: test-ytsaurus + name: yt-exec-node-jobs-config + namespace: ytsaurus-components + ownerReferences: + - apiVersion: cluster.ytsaurus.tech/v1 + blockOwnerDeletion: true + controller: true + kind: Ytsaurus + name: test-ytsaurus + uid: "" + resourceVersion: "1" - creationTimestamp: null generation: 1 labels: diff --git a/test/r8r/canondata/Components reconciler With CRI job environment - CRI-O Test/StatefulSet end.yaml b/test/r8r/canondata/Components reconciler With CRI job environment - CRI-O Test/StatefulSet end.yaml index 1fb543a9..76593907 100644 --- a/test/r8r/canondata/Components reconciler With CRI job environment - CRI-O Test/StatefulSet end.yaml +++ b/test/r8r/canondata/Components reconciler With CRI job environment - CRI-O Test/StatefulSet end.yaml @@ -82,7 +82,12 @@ spec: readOnly: true - mountPath: /config name: config - - command: + - args: + - --config + - /config/crio/crio.conf + - --config-dir + - "" + command: - tini - -- - crio @@ -99,19 +104,6 @@ spec: valueFrom: fieldRef: fieldPath: spec.nodeName - - name: CONTAINER_LISTEN - value: /yt/node-data/image-cache/cri.sock - - name: CONTAINER_CGROUP_MANAGER - value: cgroupfs - - name: CONTAINER_CONMON_CGROUP - value: pod - - name: CONTAINER_ROOT - value: /yt/node-data/image-cache - - name: CONTAINER_ENABLE_METRICS - value: "true" - - name: CONTAINER_METRICS_HOST - - name: CONTAINER_METRICS_PORT - value: "10026" - name: CONTAINER_RUNTIME_ENDPOINT value: unix:///yt/node-data/image-cache/cri.sock image: ghcr.io/ytsaurus/ytsaurus:stable-24.2.1 @@ -131,6 +123,9 @@ spec: readOnly: true - mountPath: /config name: config + - mountPath: /config/crio + name: config-crio + readOnly: true enableServiceLinks: false initContainers: - command: @@ -208,6 +203,9 @@ spec: name: config-template - emptyDir: {} name: config + - configMap: + name: yt-exec-node-jobs-config + name: config-containerd updateStrategy: {} volumeClaimTemplates: - metadata: diff --git a/test/r8r/components_test.go b/test/r8r/components_test.go index 80c26ed7..4c115a4e 100644 --- a/test/r8r/components_test.go +++ b/test/r8r/components_test.go @@ -400,4 +400,24 @@ var _ = Describe("Components reconciler", Label("reconciler"), func() { }) It("Test", func(ctx context.Context) {}) }) + + Context("With CRI and NVIDIA container runtime", func() { + BeforeEach(func() { + ytBuilder.WithNvidiaContainerRuntime = true + ytBuilder.WithExecNodes() + ytBuilder.WithCRIJobEnvironment() + ytBuilder.WithOverrides() + }) + It("Test", func(ctx context.Context) {}) + }) + + Context("With CRI and NVIDIA container runtime - CRI-O", Label("crio"), func() { + BeforeEach(func() { + ytBuilder.WithNvidiaContainerRuntime = true + ytBuilder.CRIService = ptr.To(ytv1.CRIServiceCRIO) + ytBuilder.WithExecNodes() + ytBuilder.WithCRIJobEnvironment() + }) + It("Test", func(ctx context.Context) {}) + }) })