Skip to content

Commit ae9afaa

Browse files
fix: fixed tilt tests and janitor issuer
1 parent 96c8ab6 commit ae9afaa

File tree

6 files changed

+172
-17
lines changed

6 files changed

+172
-17
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved.
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
apiVersion: cert-manager.io/v1
16+
kind: Issuer
17+
metadata:
18+
name: {{ .Values.webhook.certIssuer }}
19+
namespace: {{ .Release.Namespace }}
20+
labels:
21+
{{- include "janitor.labels" . | nindent 4 }}
22+
spec:
23+
selfSigned: {}
24+

distros/kubernetes/nvsentinel/charts/janitor/values.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -224,8 +224,8 @@ webhook:
224224
# Directory containing webhook TLS certs
225225
certDir: "/tmp/k8s-webhook-server/serving-certs"
226226
# Cert-manager issuer to use for webhook certificate
227-
# This issuer must exist in the same namespace
228-
certIssuer: "selfsigned-ca-issuer"
227+
# Janitor creates its own self-signed issuer
228+
certIssuer: "janitor-selfsigned-issuer"
229229

230230
# Metrics Configuration
231231
metrics:

distros/kubernetes/nvsentinel/charts/mongodb-store/templates/jobs.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -389,5 +389,5 @@ spec:
389389
{{- with $jobTolerations }}
390390
tolerations:
391391
{{- toYaml . | nindent 8 }}
392-
{{- end }}
392+
{{- end }}
393393
restartPolicy: OnFailure

distros/kubernetes/nvsentinel/charts/mongodb-store/values.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ mongodb-store:
2929
# IMPORTANT: These flags control which chart dependencies are loaded.
3030
# Both must be set correctly to avoid loading unnecessary charts.
3131

32-
useBitnami: false
33-
usePerconaOperator: true
32+
useBitnami: true
33+
usePerconaOperator: false
3434

3535
# Common Job configuration (applies to both Bitnami and Percona)
3636
# If not set, falls back to mongodb.jobTolerations and mongodb.nodeSelector for backward compatibility

distros/kubernetes/nvsentinel/values-tilt.yaml

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,83 @@ global:
7171
enabled: true
7272

7373
mongodb-store:
74+
useBitnami: true
75+
usePerconaOperator: false
76+
77+
job:
78+
nodeSelector:
79+
node-role.kubernetes.io/control-plane: ""
80+
tolerations:
81+
- operator: Exists
82+
83+
psmdb-operator:
84+
nodeSelector:
85+
node-role.kubernetes.io/control-plane: ""
86+
tolerations:
87+
- operator: Exists
88+
89+
psmdb-db:
90+
nameOverride: mongodb
91+
fullnameOverride: mongodb
92+
replsets:
93+
rs0:
94+
name: rs0
95+
size: 3
96+
configuration: |
97+
setParameter:
98+
authenticationMechanisms: "MONGODB-X509,SCRAM-SHA-256,SCRAM-SHA-1"
99+
replsetOverrides:
100+
mongodb-rs0-0:
101+
priority: 3
102+
mongodb-rs0-1:
103+
priority: 1
104+
mongodb-rs0-2:
105+
priority: 1
106+
volumeSpec:
107+
pvc:
108+
resources:
109+
requests:
110+
storage: "1Gi"
111+
nodeSelector:
112+
node-role.kubernetes.io/control-plane: ""
113+
tolerations:
114+
- operator: Exists
115+
podDisruptionBudget:
116+
maxUnavailable: 1
117+
118+
sharding:
119+
enabled: false
120+
121+
logcollector:
122+
enabled: false
123+
124+
tls:
125+
mode: requireTLS
126+
127+
secrets:
128+
keyFile: mongodb-keyfile
129+
encryptionKey: mongodb-encryption-key
130+
131+
backup:
132+
enabled: false
133+
storages: {}
134+
tasks: []
135+
volumeMounts: []
136+
137+
finalizers: []
138+
139+
psmdb:
140+
helperImages:
141+
kubectl:
142+
repository: docker.io/lachlanevenson/k8s-kubectl
143+
tag: "v1.25.4"
144+
pullPolicy: IfNotPresent
145+
mongosh:
146+
repository: ghcr.io/rtsp/docker-mongosh
147+
tag: "2.5.2"
148+
pullPolicy: IfNotPresent
149+
150+
# Bitnami configuration
74151
mongodb:
75152
replicaCount: 1
76153
nodeSelector:
@@ -165,6 +242,10 @@ health-events-analyzer:
165242
kubernetes.io/metadata.name: kube-system
166243
topologyKey: kubernetes.io/hostname
167244

245+
janitor:
246+
webhook:
247+
certIssuer: "janitor-selfsigned-issuer"
248+
168249
labeler:
169250
logLevel: debug
170251
# Test kata label override with the annotation present on kata test nodes

tilt/Tiltfile

Lines changed: 62 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -116,20 +116,70 @@ yaml = helm(
116116
namespace='nvsentinel',
117117
values=values_files,
118118
)
119+
120+
local_resource(
121+
'wait-for-cert-manager-crds',
122+
cmd='''
123+
echo "Waiting for cert-manager webhook to be ready..."
124+
kubectl rollout status deployment/cert-manager-webhook -n cert-manager --timeout=300s
125+
126+
echo "Verifying CRDs..."
127+
kubectl wait --for=condition=established --timeout=60s crd/certificates.cert-manager.io crd/issuers.cert-manager.io
128+
129+
echo "cert-manager is ready"
130+
''',
131+
resource_deps=['cert-manager'],
132+
)
133+
119134
k8s_yaml(yaml)
120135

121-
k8s_resource(
122-
new_name='cert-manager-resources',
123-
objects=[
136+
tilt_values = read_yaml('../distros/kubernetes/nvsentinel/values-tilt.yaml')
137+
use_percona = tilt_values.get('mongodb-store', {}).get('usePerconaOperator', False)
138+
139+
mongodb_dep = 'mongodb' if not use_percona else 'create-mongodb-database'
140+
cert_objects = [
141+
'janitor-selfsigned-issuer:issuer',
142+
'janitor-webhook-cert:certificate',
143+
]
144+
145+
if use_percona:
146+
cert_objects.append('mongo-app-client-cert:certificate')
147+
else:
148+
cert_objects.extend([
124149
'mongo-root-ca:certificate',
125150
'mongo-ca-issuer:issuer',
126151
'selfsigned-ca-issuer:issuer',
127152
'mongo-server-cert-0:certificate',
128153
'mongo-app-client-cert:certificate',
129-
'mongo-dgxcops-client-cert:certificate',
130-
'janitor-webhook-cert:certificate'
131-
],
132-
resource_deps=['cert-manager'],
154+
])
155+
156+
k8s_resource(
157+
new_name='cert-manager-resources',
158+
objects=cert_objects,
159+
resource_deps=['wait-for-cert-manager-crds'],
160+
)
161+
162+
local_resource(
163+
'wait-for-janitor-cert',
164+
cmd='kubectl wait --for=condition=Ready --timeout=300s certificate/janitor-webhook-cert -n nvsentinel',
165+
resource_deps=['cert-manager-resources'],
166+
)
167+
168+
k8s_resource(
169+
'janitor',
170+
resource_deps=['wait-for-janitor-cert'],
171+
)
172+
173+
k8s_resource(
174+
'create-mongodb-database',
175+
resource_deps=['wait-for-cert-manager-crds', 'nvsentinel-psmdb-operator'] if use_percona else ['wait-for-cert-manager-crds'],
176+
)
177+
178+
if not use_percona:
179+
k8s_resource(
180+
'mongodb-0',
181+
new_name='mongodb',
182+
resource_deps=['wait-for-cert-manager-crds'],
133183
)
134184

135185
k8s_resource(
@@ -152,7 +202,7 @@ if not skip_kwok_nodes:
152202
new_name='kwok-fake-nodes',
153203
objects=kwok_all_node_names,
154204
resource_deps=['kwok', 'platform-connectors', 'fault-quarantine', 'fault-remediation',
155-
'labeler', 'node-drainer', 'mongodb', 'simple-health-client'
205+
'labeler', 'node-drainer', mongodb_dep, 'simple-health-client'
156206
],
157207
)
158208

@@ -178,22 +228,22 @@ k8s_resource(
178228

179229
k8s_resource(
180230
'platform-connectors',
181-
resource_deps=['mongodb']
231+
resource_deps=[mongodb_dep]
182232
)
183233

184234
k8s_resource(
185235
'fault-quarantine',
186-
resource_deps=['mongodb']
236+
resource_deps=[mongodb_dep]
187237
)
188238

189239
k8s_resource(
190240
'node-drainer',
191-
resource_deps=['mongodb']
241+
resource_deps=[mongodb_dep]
192242
)
193243

194244
k8s_resource(
195245
'fault-remediation',
196-
resource_deps=['mongodb']
246+
resource_deps=[mongodb_dep]
197247
)
198248

199249
k8s_resource(

0 commit comments

Comments
 (0)