Skip to content
4 changes: 2 additions & 2 deletions config/repositories.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ repositories:
master: https://ghcr.io/nearnodeflash/lustre-fs-operator
useRemoteK: false
remoteReference:
build: v0.1.18
build: v0.1.19
url: https://github.com/NearNodeFlash/lustre-fs-operator.git/config/default/?ref=%s
buildConfiguration:
# Environment variables to set when calling any 'make' or 'deploy'
Expand All @@ -68,7 +68,7 @@ thirdPartyServices:
- name: storage-version-migrator
useRemoteKTar: false
kustomization: config/storage-version-migrator/kustomization.yaml
url: https://github.com/NearNodeFlash/kube-storage-version-migrator/releases/download/v0.1.2/manifests.tar
url: https://github.com/NearNodeFlash/kube-storage-version-migrator/releases/download/v0.1.3/manifests.tar
waitCmd: kubectl wait deploy -n kube-system trigger --for jsonpath='{.status.availableReplicas}=1'
- name: nnf-storedversions-maint
useRemoteFTar: false
Expand Down
2 changes: 1 addition & 1 deletion lustre-fs-operator
2 changes: 1 addition & 1 deletion nnf-dm
2 changes: 1 addition & 1 deletion nnf-integration-test
2 changes: 1 addition & 1 deletion nnf-sos
Submodule nnf-sos updated 81 files
+30 −0 .github/workflows/main.yml
+8 −0 .gitignore
+6 −0 Readme.md
+1 −1 config/dws/nnf-ruleset.yaml
+1 −1 config/manager/kustomization.yaml
+2 −3 go.mod
+4 −6 go.sum
+1 −1 internal/controller/directivebreakdown_controller.go
+4 −5 internal/controller/nnf_systemconfiguration_controller.go
+8 −9 internal/controller/nnf_systemconfiguration_controller_test.go
+18 −0 internal/controller/nnf_workflow_controller_helpers.go
+125 −0 internal/controller/nnf_workflow_controller_test.go
+15 −0 internal/controller/nnfsystemstorage_controller.go
+85 −0 internal/controller/nnfsystemstorage_controller_test.go
+3 −0 internal/controller/suite_test.go
+100 −0 internal/controller/taints.go
+12 −1 pkg/filesystem/kind.go
+426 −0 tools/nnf/README.md
+36 −0 tools/nnf/pyproject.toml
+30 −0 tools/nnf/setup.py
+65 −0 tools/nnf/src/nnf/__init__.py
+3 −0 tools/nnf/src/nnf/__main__.py
+59 −0 tools/nnf/src/nnf/commands/__init__.py
+22 −0 tools/nnf/src/nnf/commands/persistent/__init__.py
+245 −0 tools/nnf/src/nnf/commands/persistent/create.py
+94 −0 tools/nnf/src/nnf/commands/persistent/destroy.py
+62 −0 tools/nnf/src/nnf/commands/persistent/share.py
+62 −0 tools/nnf/src/nnf/commands/persistent/unshare.py
+22 −0 tools/nnf/src/nnf/commands/rabbit/__init__.py
+84 −0 tools/nnf/src/nnf/commands/rabbit/_helpers.py
+83 −0 tools/nnf/src/nnf/commands/rabbit/disable.py
+125 −0 tools/nnf/src/nnf/commands/rabbit/drain.py
+75 −0 tools/nnf/src/nnf/commands/rabbit/enable.py
+60 −0 tools/nnf/src/nnf/commands/rabbit/undrain.py
+22 −0 tools/nnf/src/nnf/commands/system/__init__.py
+185 −0 tools/nnf/src/nnf/commands/system/df.py
+205 −0 tools/nnf/src/nnf/commands/system/flowschema.py
+360 −0 tools/nnf/src/nnf/commands/system/state.py
+48 −0 tools/nnf/src/nnf/commands/system/version.py
+36 −0 tools/nnf/src/nnf/crd.py
+256 −0 tools/nnf/src/nnf/k8s.py
+47 −0 tools/nnf/src/nnf/profile.py
+486 −0 tools/nnf/src/nnf/servers.py
+34 −0 tools/nnf/src/nnf/table.py
+57 −0 tools/nnf/src/nnf/utils.py
+288 −0 tools/nnf/src/nnf/workflow.py
+1 −0 tools/nnf/tests/__init__.py
+364 −0 tools/nnf/tests/test_create_persistent.py
+152 −0 tools/nnf/tests/test_destroy_persistent.py
+124 −0 tools/nnf/tests/test_k8s.py
+82 −0 tools/nnf/tests/test_main.py
+48 −0 tools/nnf/tests/test_persistent_share.py
+48 −0 tools/nnf/tests/test_persistent_unshare.py
+37 −0 tools/nnf/tests/test_profile.py
+337 −0 tools/nnf/tests/test_rabbit_df.py
+88 −0 tools/nnf/tests/test_rabbit_disable.py
+198 −0 tools/nnf/tests/test_rabbit_drain.py
+79 −0 tools/nnf/tests/test_rabbit_enable.py
+153 −0 tools/nnf/tests/test_rabbit_undrain.py
+532 −0 tools/nnf/tests/test_servers.py
+365 −0 tools/nnf/tests/test_system_flowschema.py
+522 −0 tools/nnf/tests/test_system_state.py
+78 −0 tools/nnf/tests/test_system_version.py
+404 −0 tools/nnf/tests/test_workflow.py
+58 −1 vendor/github.com/DataWorkflowServices/dws/api/v1alpha7/persistentstorageinstance_webhook.go
+21 −0 vendor/github.com/DataWorkflowServices/dws/config/webhook/manifests.yaml
+0 −202 vendor/k8s.io/kubernetes/LICENSE
+0 −4 vendor/k8s.io/kubernetes/pkg/apis/core/OWNERS
+0 −145 vendor/k8s.io/kubernetes/pkg/apis/core/annotation_key_constants.go
+0 −24 vendor/k8s.io/kubernetes/pkg/apis/core/doc.go
+0 −502 vendor/k8s.io/kubernetes/pkg/apis/core/helper/helpers.go
+0 −31 vendor/k8s.io/kubernetes/pkg/apis/core/json.go
+0 −37 vendor/k8s.io/kubernetes/pkg/apis/core/objectreference.go
+0 −102 vendor/k8s.io/kubernetes/pkg/apis/core/register.go
+0 −58 vendor/k8s.io/kubernetes/pkg/apis/core/resource.go
+0 −42 vendor/k8s.io/kubernetes/pkg/apis/core/taint.go
+0 −30 vendor/k8s.io/kubernetes/pkg/apis/core/toleration.go
+0 −6,148 vendor/k8s.io/kubernetes/pkg/apis/core/types.go
+0 −6,256 vendor/k8s.io/kubernetes/pkg/apis/core/zz_generated.deepcopy.go
+0 −289 vendor/k8s.io/kubernetes/pkg/util/taints/taints.go
+2 −7 vendor/modules.txt
35 changes: 32 additions & 3 deletions tools/kind.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,25 @@
set -e
set -o pipefail

# This script must be run from the root of the nnf-deploy repo, not from tools/.
if [[ ! -f "tools/kind.sh" ]]; then
echo "ERROR: kind.sh must be run from the root of the nnf-deploy repo."
echo " cd \$(git -C \"\$(dirname \"\$0\")\" rev-parse --show-toplevel) && tools/kind.sh $*"
exit 1
fi

# kind v0.31.0+ is required for Kubernetes 1.35 support.
KIND_MIN_VERSION="0.31.0"
KIND_VERSION=$(kind version 2>/dev/null | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -1)
if [[ -z "$KIND_VERSION" ]]; then
echo "ERROR: kind is not installed or not in PATH."
exit 1
fi
if ! printf '%s\n%s\n' "$KIND_MIN_VERSION" "$KIND_VERSION" | sort -V -C; then
echo "ERROR: kind v$KIND_VERSION is installed but v$KIND_MIN_VERSION or later is required for Kubernetes 1.35."
exit 1
fi

usage() {
echo "Usage: $0 [--no-argocd] <CMD>"
echo
Expand Down Expand Up @@ -103,8 +122,17 @@ function inject_ca_certs {

echo "Injecting CA certificates from $certs into KIND nodes..."
for node in $(kind get nodes); do
docker cp "$certs" "$node:/usr/local/share/ca-certificates/extra-ca-certs.crt"
docker exec "$node" update-ca-certificates
# Pipe the bundle via stdin and split into individual .crt files so that
# update-ca-certificates / c_rehash does not emit
# "skipping ... it does not contain exactly one certificate or CRL".
docker exec -i "$node" bash -c '
awk "/-----BEGIN CERTIFICATE-----/{n++; f=sprintf(\"/usr/local/share/ca-certificates/extra-ca-cert-%d.crt\",n)} f{print > f}"
' < "$certs"
# The ca-certificates.crt bundle always triggers a benign c_rehash warning;
# filter it so only real warnings surface.
local uca_out
uca_out=$(docker exec "$node" update-ca-certificates 2>&1)
echo "$uca_out" | grep -Fv "skipping ca-certificates.crt" || true
docker exec "$node" systemctl restart containerd
echo " $node: done"
done
Expand Down Expand Up @@ -152,6 +180,7 @@ nodes:
kubeadmConfigPatches:
- |
kind: ClusterConfiguration
apiVersion: kubeadm.k8s.io/v1beta3
apiServer:
# enable auditing flags on the API server
extraArgs:
Expand Down Expand Up @@ -187,7 +216,7 @@ EOF
mkdir -p /tmp/nnf && dd if=/dev/zero of=/tmp/nnf/file.in bs=128 count=0 seek=$((1024 * 1024))
fi

kind create cluster --wait 60s --image=kindest/node:v1.31.2 --config $CONFIG
kind create cluster --wait 60s --image=kindest/node:v1.35.0@sha256:452d707d4862f52530247495d180205e029056831160e22870e37e3f6c1ac31f --config $CONFIG

# If corporate/custom CA certificates are available, inject them into
# each KIND node so containerd can pull from registries behind a TLS
Expand Down
Loading