Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,13 @@ repos:
files: ^helm/
language: system
pass_filenames: false
- id: make-helm-unittest
name: Make Helm Unittest
entry: make helm-unittest
types: [yaml]
files: ^helm/
language: system
pass_filenames: false
# https://github.com/golangci/golangci-lint/blob/main/.pre-commit-hooks.yaml
- id: make-golangci-lint
name: make-golangci-lint
Expand Down
8 changes: 8 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,14 @@ helm-validate: helm-dependency-update helm-lint ## Validate Helm charts.
helm-docs: helm-docs-bin ## Run helm-docs.
$(HELM_DOCS) --chart-search-root=helm

.PHONY: helm-unittest
helm-unittest: ## Run helm-unittest.
@if ! helm plugin list | grep -q "unittest"; then \
helm plugin install https://github.com/helm-unittest/helm-unittest ;\
fi
@echo "Running helm unittest for slurm-operator chart"
@helm unittest helm/slurm-operator

.PHONY: helm-lint
helm-lint: ## Lint Helm charts.
find "helm/" -depth -mindepth 1 -maxdepth 1 -type d -print0 | xargs -0r -n1 helm lint --strict
Expand Down
1 change: 1 addition & 0 deletions helm/slurm-operator/.helmignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,4 @@
.vscode/
# Development files
skaffold.yaml
tests/
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
manifest should match snapshot:
1: |
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/instance: test-release
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: slurm-operator
app.kubernetes.io/version: 1.2.3
helm.sh/chart: slurm-operator-1.2.3
name: slurm-operator
namespace: test-namespace
spec:
replicas: 1
revisionHistoryLimit: 0
selector:
matchLabels:
app.kubernetes.io/instance: test-release
app.kubernetes.io/name: slurm-operator
template:
metadata:
labels:
app.kubernetes.io/instance: test-release
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: slurm-operator
app.kubernetes.io/version: 1.2.3
helm.sh/chart: slurm-operator-1.2.3
spec:
containers:
- args:
- --accounting-workers
- "4"
- --controller-workers
- "4"
- --loginset-workers
- "4"
- --nodeset-workers
- "4"
- --restapi-workers
- "4"
- --token-workers
- "4"
- --slurmclient-workers
- "2"
- --zap-log-level
- info
- --health-addr
- :8081
- --metrics-addr
- :8080
image: ghcr.io/slinkyproject/slurm-operator:1.2.3
imagePullPolicy: IfNotPresent
livenessProbe:
httpGet:
path: /healthz
port: 8081
name: slurm-operator
readinessProbe:
httpGet:
path: /readyz
port: 8081
hostname: slurm-operator
priorityClassName: null
serviceAccountName: test-release-slurm-operator
140 changes: 140 additions & 0 deletions helm/slurm-operator/tests/__snapshot__/operator_rbac_test.yaml.snap
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
manifest should match snapshot:
1: |
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app.kubernetes.io/instance: test-release
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: slurm-operator
app.kubernetes.io/version: 1.2.3
helm.sh/chart: slurm-operator-1.2.3
name: test-release-slurm-operator
namespace: test-namespace
2: |
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: test-release-slurm-operator
namespace: test-namespace
rules:
- apiGroups:
- ""
resources:
- configmaps
- events
- persistentvolumeclaims
- pods
- secrets
- services
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- ""
resources:
- nodes
verbs:
- get
- list
- watch
- patch
- apiGroups:
- ""
resources:
- pods/status
verbs:
- get
- patch
- update
- apiGroups:
- apps
resources:
- controllerrevisions
- deployments
- statefulsets
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- policy
resources:
- poddisruptionbudgets
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- slinky.slurm.net
resources:
- accountings
- controllers
- loginsets
- nodesets
- restapis
- tokens
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- slinky.slurm.net
resources:
- accountings/finalizers
- controllers/finalizers
- loginsets/finalizers
- nodesets/finalizers
- restapis/finalizers
- tokens/finalizers
verbs:
- update
- apiGroups:
- slinky.slurm.net
resources:
- accountings/status
- controllers/status
- loginsets/status
- nodesets/status
- restapis/status
- tokens/status
verbs:
- get
- patch
- update
3: |
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
app.kubernetes.io/instance: test-release
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: slurm-operator
app.kubernetes.io/version: 1.2.3
helm.sh/chart: slurm-operator-1.2.3
name: test-release-slurm-operator
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: test-release-slurm-operator
subjects:
- kind: ServiceAccount
name: test-release-slurm-operator
namespace: test-namespace
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
manifest should match snapshot:
1: |
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/instance: test-release
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: slurm-operator
app.kubernetes.io/version: 1.2.3
helm.sh/chart: slurm-operator-1.2.3
name: slurm-operator
namespace: test-namespace
spec:
clusterIP: None
ports:
- name: metrics
port: 8080
protocol: TCP
targetPort: 8080
- name: health
port: 8081
protocol: TCP
targetPort: 8081
selector:
app.kubernetes.io/instance: test-release
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: slurm-operator
app.kubernetes.io/version: 1.2.3
helm.sh/chart: slurm-operator-1.2.3
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
manifest should match snapshot:
1: |
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/instance: test-release
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: slurm-operator-webhook
app.kubernetes.io/version: 1.2.3
helm.sh/chart: slurm-operator-1.2.3
name: slurm-operator-webhook
namespace: test-namespace
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/instance: test-release
app.kubernetes.io/name: slurm-operator-webhook
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
type: RollingUpdate
template:
metadata:
labels:
app.kubernetes.io/instance: test-release
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: slurm-operator-webhook
app.kubernetes.io/version: 1.2.3
helm.sh/chart: slurm-operator-1.2.3
spec:
containers:
- args:
- --zap-log-level
- info
- --health-addr
- :8081
image: ghcr.io/slinkyproject/slurm-operator-webhook:1.2.3
imagePullPolicy: IfNotPresent
livenessProbe:
httpGet:
path: /healthz
port: 8081
name: webhook
readinessProbe:
httpGet:
path: /readyz
port: 8081
volumeMounts:
- mountPath: /tmp/k8s-webhook-server/serving-certs/
name: certificates
readOnly: true
hostname: slurm-operator-webhook
priorityClassName: null
serviceAccountName: slurm-operator-webhook
volumes:
- name: certificates
secret:
defaultMode: 420
secretName: slurm-operator-webhook-ca
Loading