Skip to content

Commit 237e1d5

Browse files
authored
feat: add lifecycle-manager component scaffolding (#1610)
Signed-off-by: Nathan Herz <nherz@nvidia.com>
1 parent e57940c commit 237e1d5

39 files changed

Lines changed: 3748 additions & 42 deletions

.github/dependabot.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ updates:
4141
- "/health-monitors/slurm-drain-monitor"
4242
- "/health-monitors/syslog-health-monitor"
4343
- "/janitor"
44+
- "/lifecycle-manager"
4445
- "/janitor-provider"
4546
- "/labeler"
4647
- "/metadata-collector"

.github/workflows/cleanup-untagged-images.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ jobs:
7979
- nvsentinel/log-collector
8080
- nvsentinel/file-server-cleanup
8181
- nvsentinel/janitor
82+
- nvsentinel/lifecycle-manager
8283
- nvsentinel/health-events-analyzer
8384
- nvsentinel/maintenance-notifier
8485
- nvsentinel/event-exporter

.github/workflows/container-build-test.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,8 @@ jobs:
145145
path: .
146146
- module: preflight
147147
path: .
148+
- module: lifecycle-manager
149+
path: .
148150
steps:
149151
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
150152

.github/workflows/lint-test.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ jobs:
179179
- node-drainer
180180
- fault-remediation
181181
- janitor
182+
- lifecycle-manager
182183
- preflight
183184
- tests
184185
steps:

.ko.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,3 +288,20 @@ builds:
288288
org.opencontainers.image.version: "{{.Env.VERSION}}"
289289
org.opencontainers.image.revision: "{{.Env.GIT_COMMIT}}"
290290
org.opencontainers.image.created: "{{.Env.BUILD_DATE}}"
291+
292+
- id: lifecycle-manager
293+
dir: lifecycle-manager
294+
main: .
295+
ldflags:
296+
- "-s -w"
297+
- "-X main.version={{.Env.VERSION}} -X main.commit={{.Env.GIT_COMMIT}} -X main.date={{.Env.BUILD_DATE}}"
298+
annotations:
299+
org.opencontainers.image.description: "Lifecycle manager controller for NVSentinel"
300+
labels:
301+
org.opencontainers.image.source: "https://github.com/nvidia/nvsentinel"
302+
org.opencontainers.image.licenses: "Apache-2.0"
303+
org.opencontainers.image.title: "NVSentinel Lifecycle Manager"
304+
org.opencontainers.image.description: "Lifecycle manager for GPU node validation and maintenance in NVSentinel"
305+
org.opencontainers.image.version: "{{.Env.VERSION}}"
306+
org.opencontainers.image.revision: "{{.Env.GIT_COMMIT}}"
307+
org.opencontainers.image.created: "{{.Env.BUILD_DATE}}"

Makefile

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ GO_MODULES := \
5151
node-drainer \
5252
fault-remediation \
5353
janitor \
54+
lifecycle-manager \
5455
metadata-collector \
5556
event-exporter \
5657
store-client \
@@ -79,7 +80,8 @@ PRIVATE_MODULES := \
7980
# Modules requiring kubebuilder for tests
8081
KUBEBUILDER_MODULES := \
8182
node-drainer \
82-
fault-remediation
83+
fault-remediation \
84+
lifecycle-manager
8385

8486
# Default target
8587
.PHONY: all
@@ -455,6 +457,11 @@ lint-test-janitor:
455457
@echo "Linting and testing janitor (using standardized Makefile)..."
456458
$(MAKE) -C janitor lint-test
457459

460+
.PHONY: lint-test-lifecycle-manager
461+
lint-test-lifecycle-manager:
462+
@echo "Linting and testing lifecycle-manager (using standardized Makefile)..."
463+
$(MAKE) -C lifecycle-manager lint-test
464+
458465
.PHONY: lint-test-store-client
459466
lint-test-store-client:
460467
@echo "Linting and testing store-client..."

distros/kubernetes/nvsentinel/Chart.lock

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ dependencies:
3535
- name: janitor
3636
repository: ""
3737
version: 0.1.0
38+
- name: lifecycle-manager
39+
repository: ""
40+
version: 0.1.0
3841
- name: metadata-collector
3942
repository: ""
4043
version: 0.1.0

distros/kubernetes/nvsentinel/Chart.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,9 @@ dependencies:
5555
- name: janitor
5656
version: "0.1.0"
5757
condition: global.janitor.enabled
58+
- name: lifecycle-manager
59+
version: "0.1.0"
60+
condition: global.lifecycleManager.enabled
5861
- name: janitor-provider
5962
version: "0.1.0"
6063
condition: global.janitorProvider.enabled
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Patterns to ignore when building packages.
2+
# This supports shell glob matching, relative path matching, and
3+
# negation (prefixed with !). Only one pattern per line.
4+
.DS_Store
5+
# Common VCS dirs
6+
.git/
7+
.gitignore
8+
.bzr/
9+
.bzrignore
10+
.hg/
11+
.hgignore
12+
.svn/
13+
# Common backup files
14+
*.swp
15+
*.bak
16+
*.tmp
17+
*.orig
18+
*~
19+
# Various IDEs
20+
.project
21+
.idea/
22+
*.tmproj
23+
.vscode/
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
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: v2
16+
name: lifecycle-manager
17+
description: A Helm chart for the NVSentinel node validation controller
18+
19+
type: application
20+
21+
version: 0.1.0
22+
23+
appVersion: "1.16.0"

0 commit comments

Comments
 (0)