Skip to content

Commit eb8bf69

Browse files
committed
test/r8r: check nvidia container runtime
Signed-off-by: Konstantin Khlebnikov <[email protected]>
1 parent ee7e134 commit eb8bf69

File tree

54 files changed

+7740
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+7740
-0
lines changed

pkg/testutil/spec_builders.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,8 @@ type YtsaurusBuilder struct {
180180
Ytsaurus *ytv1.Ytsaurus
181181
Overrides *corev1.ConfigMap
182182

183+
WithNvidiaContainerRuntime bool
184+
183185
// Set MinReadyInstanceCount for all components
184186
MinReadyInstanceCount *int
185187
}
@@ -517,6 +519,11 @@ func (b *YtsaurusBuilder) SetupCRIJobEnvironment(node *ytv1.ExecNodesSpec) {
517519
SandboxImage: b.SandboxImage,
518520
},
519521
}
522+
if b.WithNvidiaContainerRuntime {
523+
node.JobEnvironment.Runtime = &ytv1.JobRuntimeSpec{
524+
Nvidia: &ytv1.NvidiaRuntimeSpec{},
525+
}
526+
}
520527
}
521528

522529
func (b *YtsaurusBuilder) WithCRIJobEnvironment() {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
apiVersion: v1
2+
data:
3+
client.yson: |-
4+
{
5+
"address_resolver"={
6+
"enable_ipv4"=%true;
7+
"enable_ipv6"=%false;
8+
retries=1000;
9+
};
10+
logging={
11+
writers={
12+
};
13+
rules=[
14+
];
15+
"flush_period"=0;
16+
};
17+
driver={
18+
"api_version"=4;
19+
"cluster_name"="test-ytsaurus";
20+
"primary_master"={
21+
addresses=[
22+
"ms-0.masters.ytsaurus-components.svc.cluster.local:9010";
23+
];
24+
peers=[
25+
{
26+
address="ms-0.masters.ytsaurus-components.svc.cluster.local:9010";
27+
voting=%true;
28+
};
29+
];
30+
"cell_id"="65726e65-ad6b7562-10259-79747361";
31+
};
32+
"discovery_connection"={
33+
addresses=[
34+
"ds-0.discovery.ytsaurus-components.svc.cluster.local:9020";
35+
];
36+
};
37+
"master_cache"={
38+
addresses=[
39+
"ms-0.masters.ytsaurus-components.svc.cluster.local:9010";
40+
];
41+
"cell_id"="65726e65-ad6b7562-10259-79747361";
42+
"enable_master_cache_discovery"=%false;
43+
};
44+
};
45+
}
46+
init-cluster.sh: |2-
47+
48+
set -e
49+
set -x
50+
51+
export YT_DRIVER_CONFIG_PATH=/config/client.yson
52+
export YTSAURUS_VERSION="$(/usr/bin/ytserver-all --version | head -c4)"
53+
if [ 'true' = 'true' ]; then
54+
/usr/bin/yt create group --attr '{name=admins}' --ignore-existing
55+
if [ $(/usr/bin/yt exists //sys/@provision_lock) = 'true' ]; then
56+
/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;];};]'
57+
/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;];};]'
58+
/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;];};]'
59+
/usr/bin/yt set //sys/schemas/user/@acl '[{action=allow;subjects=[users;];permissions=[read;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]'
60+
/usr/bin/yt set //sys/schemas/group/@acl '[{action=allow;subjects=[users;];permissions=[read;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]'
61+
/usr/bin/yt set //sys/schemas/rack/@acl '[{action=allow;subjects=[users;];permissions=[read;];};{action=allow;subjects=[admins;];permissions=[read;write;administer;create;remove;];};]'
62+
/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;];};]'
63+
/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;];};]'
64+
/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;];};]'
65+
/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;];};]'
66+
/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;];};]'
67+
/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;];};]'
68+
/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;];};]'
69+
/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;];};]'
70+
/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;];};]'
71+
/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;];};]'
72+
fi
73+
/usr/bin/yt create scheduler_pool_tree --attributes '{name=default; config={nodes_filter=""}}' --ignore-existing
74+
if [ $(/usr/bin/yt exists //sys/pool_trees/@default_tree) = 'false' ]; then
75+
/usr/bin/yt set //sys/pool_trees/@default_tree default
76+
fi
77+
if [ $(/usr/bin/yt exists //sys/pools) = 'false' ]; then
78+
/usr/bin/yt link //sys/pool_trees/default //sys/pools
79+
fi
80+
/usr/bin/yt create scheduler_pool --attributes '{name=research; pool_tree=default}' --ignore-existing
81+
/usr/bin/yt create map_node //home --ignore-existing
82+
if [ $(/usr/bin/yt exists //sys/@provision_lock) = 'true' ]; then
83+
/usr/bin/yt set //sys/@cluster_connection '{
84+
"cluster_name"="test-ytsaurus";
85+
"primary_master"={
86+
addresses=[
87+
"ms-0.masters.ytsaurus-components.svc.cluster.local:9010";
88+
];
89+
peers=[
90+
{
91+
address="ms-0.masters.ytsaurus-components.svc.cluster.local:9010";
92+
voting=%true;
93+
};
94+
];
95+
"cell_id"="65726e65-ad6b7562-10259-79747361";
96+
};
97+
"discovery_connection"={
98+
addresses=[
99+
"ds-0.discovery.ytsaurus-components.svc.cluster.local:9020";
100+
];
101+
};
102+
"master_cache"={
103+
addresses=[
104+
"ms-0.masters.ytsaurus-components.svc.cluster.local:9010";
105+
];
106+
"cell_id"="65726e65-ad6b7562-10259-79747361";
107+
"enable_master_cache_discovery"=%false;
108+
};
109+
}'
110+
fi
111+
if [ $(/usr/bin/yt exists //sys/users/admin) = 'false' ]; then
112+
/usr/bin/yt create user --attributes '{name="admin"}' --ignore-existing
113+
/usr/bin/yt execute set_user_password '{user=admin;new_password_sha256="5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8"}'
114+
/usr/bin/yt create map_node '//sys/cypress_tokens/5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8' --ignore-existing
115+
/usr/bin/yt set '//sys/cypress_tokens/5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8/@user' 'admin'
116+
/usr/bin/yt add-member admin superusers || true
117+
fi
118+
119+
fi
120+
if [ 'false' = 'true' ]; then
121+
if [ $(/usr/bin/yt exists //sys/users/robot-hydra-persistence-uploader) = 'false' ]; then
122+
/usr/bin/yt create user --attributes '{name="robot-hydra-persistence-uploader"}' --ignore-existing
123+
/usr/bin/yt execute set_user_password '{user=robot-hydra-persistence-uploader;new_password_sha256="d9fb903c32fe851f5d5543f2f9da27330ead9bd0d85ce8f51afba5d503f027a5"}'
124+
/usr/bin/yt create map_node '//sys/cypress_tokens/d9fb903c32fe851f5d5543f2f9da27330ead9bd0d85ce8f51afba5d503f027a5' --ignore-existing
125+
/usr/bin/yt set '//sys/cypress_tokens/d9fb903c32fe851f5d5543f2f9da27330ead9bd0d85ce8f51afba5d503f027a5/@user' 'robot-hydra-persistence-uploader'
126+
/usr/bin/yt create map_node //sys/admin/snapshots -r -i
127+
/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";};]'
128+
/usr/bin/yt set //sys/accounts/sys/@acl/end '{action=allow;subjects=["robot-hydra-persistence-uploader";];permissions=[use;];}'
129+
fi
130+
fi
131+
/usr/bin/yt remove //sys/@provision_lock -f
132+
kind: ConfigMap
133+
metadata:
134+
creationTimestamp: null
135+
generation: 1
136+
labels:
137+
app.kubernetes.io/component: yt-master
138+
app.kubernetes.io/managed-by: ytsaurus-k8s-operator
139+
app.kubernetes.io/name: yt-master
140+
app.kubernetes.io/part-of: yt-test-ytsaurus
141+
yt_component: test-ytsaurus-yt-master
142+
ytsaurus.tech/cluster-name: test-ytsaurus
143+
name: default-yt-master-init-job-config
144+
namespace: ytsaurus-components
145+
ownerReferences:
146+
- apiVersion: cluster.ytsaurus.tech/v1
147+
blockOwnerDeletion: true
148+
controller: true
149+
kind: Ytsaurus
150+
name: test-ytsaurus
151+
uid: ""
152+
resourceVersion: "1"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
apiVersion: v1
2+
data:
3+
client.yson: |-
4+
{
5+
"address_resolver"={
6+
"enable_ipv4"=%true;
7+
"enable_ipv6"=%false;
8+
retries=1000;
9+
};
10+
logging={
11+
writers={
12+
};
13+
rules=[
14+
];
15+
"flush_period"=0;
16+
};
17+
driver={
18+
"api_version"=4;
19+
"cluster_name"="test-ytsaurus";
20+
"primary_master"={
21+
addresses=[
22+
"ms-0.masters.ytsaurus-components.svc.cluster.local:9010";
23+
];
24+
peers=[
25+
{
26+
address="ms-0.masters.ytsaurus-components.svc.cluster.local:9010";
27+
voting=%true;
28+
};
29+
];
30+
"cell_id"="65726e65-ad6b7562-10259-79747361";
31+
};
32+
"discovery_connection"={
33+
addresses=[
34+
"ds-0.discovery.ytsaurus-components.svc.cluster.local:9020";
35+
];
36+
};
37+
"master_cache"={
38+
addresses=[
39+
"ms-0.masters.ytsaurus-components.svc.cluster.local:9010";
40+
];
41+
"cell_id"="65726e65-ad6b7562-10259-79747361";
42+
"enable_master_cache_discovery"=%false;
43+
};
44+
};
45+
}
46+
init-cluster.sh: |2-
47+
48+
set -e
49+
set -x
50+
51+
export YT_DRIVER_CONFIG_PATH=/config/client.yson
52+
export YTSAURUS_VERSION="$(/usr/bin/ytserver-all --version | head -c4)"
53+
/usr/bin/yt create user --attributes '{name="robot-ytsaurus-k8s-operator"}' --ignore-existing
54+
/usr/bin/yt create map_node '//sys/cypress_tokens/dcd89cc6efae0df4e42a9941000a5d1f4704e17162e02fbbae2e176989421ea4' --ignore-existing
55+
/usr/bin/yt set '//sys/cypress_tokens/dcd89cc6efae0df4e42a9941000a5d1f4704e17162e02fbbae2e176989421ea4/@user' 'robot-ytsaurus-k8s-operator'
56+
/usr/bin/yt add-member robot-ytsaurus-k8s-operator superusers || true
57+
kind: ConfigMap
58+
metadata:
59+
creationTimestamp: null
60+
generation: 1
61+
labels:
62+
app.kubernetes.io/component: yt-client
63+
app.kubernetes.io/managed-by: ytsaurus-k8s-operator
64+
app.kubernetes.io/name: yt-client
65+
app.kubernetes.io/part-of: yt-test-ytsaurus
66+
yt_component: test-ytsaurus-yt-client
67+
ytsaurus.tech/cluster-name: test-ytsaurus
68+
name: user-yt-client-init-job-config
69+
namespace: ytsaurus-components
70+
ownerReferences:
71+
- apiVersion: cluster.ytsaurus.tech/v1
72+
blockOwnerDeletion: true
73+
controller: true
74+
kind: Ytsaurus
75+
name: test-ytsaurus
76+
uid: ""
77+
resourceVersion: "1"
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
apiVersion: v1
2+
data:
3+
cypress-patch.yson: |-
4+
{
5+
"//sys/@cluster_connection"=[
6+
{
7+
op=replace;
8+
path="/primary_master/addresses";
9+
value=[
10+
"ms-0.masters.ytsaurus-components.svc.cluster.local:9010";
11+
];
12+
};
13+
{
14+
op=replace;
15+
path="/primary_master/peers";
16+
value=[
17+
{
18+
address="ms-0.masters.ytsaurus-components.svc.cluster.local:9010";
19+
voting=%true;
20+
};
21+
];
22+
};
23+
{
24+
op=remove;
25+
path="/bus_client";
26+
};
27+
];
28+
"<>//sys/clusters"=[
29+
{
30+
op=copy;
31+
path="/test-ytsaurus";
32+
from="//sys/@cluster_connection";
33+
};
34+
];
35+
}
36+
yt-client-cypress-patch.yson: |-
37+
{
38+
"<>//sys/clusters"=[
39+
{
40+
op=copy;
41+
path="/test-ytsaurus";
42+
from="//sys/@cluster_connection";
43+
};
44+
];
45+
}
46+
yt-discovery-cypress-patch.yson: |-
47+
{
48+
}
49+
yt-exec-node-cypress-patch.yson: |-
50+
{
51+
}
52+
yt-http-proxy-cypress-patch.yson: |-
53+
{
54+
}
55+
yt-master-cypress-patch.yson: |-
56+
{
57+
"//sys/@cluster_connection"=[
58+
{
59+
op=replace;
60+
path="/primary_master/addresses";
61+
value=[
62+
"ms-0.masters.ytsaurus-components.svc.cluster.local:9010";
63+
];
64+
};
65+
{
66+
op=replace;
67+
path="/primary_master/peers";
68+
value=[
69+
{
70+
address="ms-0.masters.ytsaurus-components.svc.cluster.local:9010";
71+
voting=%true;
72+
};
73+
];
74+
};
75+
{
76+
op=remove;
77+
path="/bus_client";
78+
};
79+
];
80+
}
81+
yt-timbertruck-cypress-patch.yson: |-
82+
{
83+
}
84+
kind: ConfigMap
85+
metadata:
86+
annotations:
87+
kubernetes.io/description: ""
88+
creationTimestamp: null
89+
generation: 1
90+
labels:
91+
app.kubernetes.io/component: yt-client
92+
app.kubernetes.io/managed-by: ytsaurus-k8s-operator
93+
app.kubernetes.io/name: yt-client
94+
app.kubernetes.io/part-of: yt-test-ytsaurus
95+
yt_component: test-ytsaurus-yt-client
96+
ytsaurus.tech/cluster-name: test-ytsaurus
97+
name: yt-cypress-patch
98+
namespace: ytsaurus-components
99+
ownerReferences:
100+
- apiVersion: cluster.ytsaurus.tech/v1
101+
blockOwnerDeletion: true
102+
controller: true
103+
kind: Ytsaurus
104+
name: test-ytsaurus
105+
uid: ""
106+
resourceVersion: "1"

0 commit comments

Comments
 (0)