diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 90c2c21e..d5d69236 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -6,10 +6,6 @@ on: - '*' tags: - 'v*' - pull_request: - branches: - - 'master' - - 'releases/v*' env: # TEST_TARGET: Name of the testing target in the Dockerfile diff --git a/.github/workflows/rpm_build.yml b/.github/workflows/rpm_build.yml index 5176988f..548eb217 100644 --- a/.github/workflows/rpm_build.yml +++ b/.github/workflows/rpm_build.yml @@ -5,10 +5,6 @@ on: - '*' tags: - 'v*' - pull_request: - branches: - - 'master' - - 'releases/v*' jobs: repo_version: diff --git a/Makefile b/Makefile index 708671a9..022d9d30 100644 --- a/Makefile +++ b/Makefile @@ -191,7 +191,7 @@ ENVTEST ?= $(LOCALBIN)/setup-envtest ## Tool Versions KUSTOMIZE_VERSION ?= v4.5.7 -CONTROLLER_TOOLS_VERSION ?= v0.11.1 +CONTROLLER_TOOLS_VERSION ?= v0.12.0 KUSTOMIZE_INSTALL_SCRIPT ?= "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" .PHONY: kustomize diff --git a/config/crd/bases/dm.cray.hpe.com_datamovementmanagers.yaml b/config/crd/bases/dm.cray.hpe.com_datamovementmanagers.yaml index 55f95d08..5b6e5355 100644 --- a/config/crd/bases/dm.cray.hpe.com_datamovementmanagers.yaml +++ b/config/crd/bases/dm.cray.hpe.com_datamovementmanagers.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.12.0 name: datamovementmanagers.dm.cray.hpe.com spec: group: dm.cray.hpe.com diff --git a/config/rbac/daemon_role.yaml b/config/rbac/daemon_role.yaml index 0c154bef..832653a0 100644 --- a/config/rbac/daemon_role.yaml +++ b/config/rbac/daemon_role.yaml @@ -2,7 +2,6 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - creationTimestamp: null name: daemon-role rules: - apiGroups: diff --git a/config/rbac/role.yaml b/config/rbac/role.yaml index eb3e5adf..ea888948 100644 --- a/config/rbac/role.yaml +++ b/config/rbac/role.yaml @@ -2,7 +2,6 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - creationTimestamp: null name: manager-role rules: - apiGroups: diff --git a/config/samples/dm_v1alpha1_datamovement.yaml b/config/samples/dm_v1alpha1_datamovement.yaml deleted file mode 100644 index 311fad0d..00000000 --- a/config/samples/dm_v1alpha1_datamovement.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: dm.cray.hpe.com/v1alpha1 -kind: DataMovement -metadata: - name: datamovement-sample -spec: diff --git a/go.mod b/go.mod index a1040119..53fe752e 100644 --- a/go.mod +++ b/go.mod @@ -3,9 +3,9 @@ module github.com/NearNodeFlash/nnf-dm go 1.19 require ( - github.com/HewlettPackard/dws v0.0.1-0.20230522154633-c78e44b892ca - github.com/NearNodeFlash/lustre-fs-operator v0.0.0-20230509135923-1259bed0fb14 - github.com/NearNodeFlash/nnf-sos v0.0.1-0.20230517131334-4653f6d4ec06 + github.com/HewlettPackard/dws v0.0.1-0.20230613201835-73abc41bd83c + github.com/NearNodeFlash/lustre-fs-operator v0.0.1-0.20230613180840-6178f2b04900 + github.com/NearNodeFlash/nnf-sos v0.0.1-0.20230613203338-ea5b2f78692b github.com/onsi/ginkgo/v2 v2.9.1 github.com/onsi/gomega v1.27.3 github.com/prometheus/client_golang v1.14.0 @@ -23,7 +23,7 @@ require ( ) require ( - github.com/NearNodeFlash/nnf-ec v0.0.0-20230512221456-5fa47fb42560 // indirect + github.com/NearNodeFlash/nnf-ec v0.0.0-20230526161255-cfb2d89b35d7 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect diff --git a/go.sum b/go.sum index 05a1ac79..9198cbaf 100644 --- a/go.sum +++ b/go.sum @@ -1,14 +1,14 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/HewlettPackard/dws v0.0.1-0.20230522154633-c78e44b892ca h1:/8umQBI4pxFBC0AtHUlLAnrc6dvbSJ6vb1FHoXKw2+Y= -github.com/HewlettPackard/dws v0.0.1-0.20230522154633-c78e44b892ca/go.mod h1:YvNzcgAPmwhl/YQj6dMwsB9OpwbI5bp/41kINfFiXX8= -github.com/NearNodeFlash/lustre-fs-operator v0.0.0-20230509135923-1259bed0fb14 h1:PNwgN1vDK+EnFIR77tFEwcWLLFQc+nuyOXkOONRC9TE= -github.com/NearNodeFlash/lustre-fs-operator v0.0.0-20230509135923-1259bed0fb14/go.mod h1:O71nfDnuK7MZZYAW9kaOFTMo48nmDlaYnzISXEPsKSw= -github.com/NearNodeFlash/nnf-ec v0.0.0-20230512221456-5fa47fb42560 h1:ewsW6a7EFrueIrjoMgS7oBCiaAU0Nc7wKwl5fW95NLg= -github.com/NearNodeFlash/nnf-ec v0.0.0-20230512221456-5fa47fb42560/go.mod h1:11Ol46sAWdqlj3WmIFTzKO+UxQX3lvWBqpe6yaiMEIg= -github.com/NearNodeFlash/nnf-sos v0.0.1-0.20230517131334-4653f6d4ec06 h1:mUldU0B3j5cUPpSPYzQn8ZGio2D97/zlJZZ4MsFXBLM= -github.com/NearNodeFlash/nnf-sos v0.0.1-0.20230517131334-4653f6d4ec06/go.mod h1:7yEpoVwoVdFfCSp6LZeKn86i0T8uX98ZtaSLQJYXnwA= +github.com/HewlettPackard/dws v0.0.1-0.20230613201835-73abc41bd83c h1:atwVAI9Gslf501a4ADo/nkJol141DgF8YR4AiMtj4E8= +github.com/HewlettPackard/dws v0.0.1-0.20230613201835-73abc41bd83c/go.mod h1:YvNzcgAPmwhl/YQj6dMwsB9OpwbI5bp/41kINfFiXX8= +github.com/NearNodeFlash/lustre-fs-operator v0.0.1-0.20230613180840-6178f2b04900 h1:jOrP2H+D5amgHIONcucYS3/kJm6QfmqAG23Ke7elunI= +github.com/NearNodeFlash/lustre-fs-operator v0.0.1-0.20230613180840-6178f2b04900/go.mod h1:O71nfDnuK7MZZYAW9kaOFTMo48nmDlaYnzISXEPsKSw= +github.com/NearNodeFlash/nnf-ec v0.0.0-20230526161255-cfb2d89b35d7 h1:y4E3b/Ta6sqv+huYQXYKZmPCMWMZtG2kV8/qgTIpzFI= +github.com/NearNodeFlash/nnf-ec v0.0.0-20230526161255-cfb2d89b35d7/go.mod h1:11Ol46sAWdqlj3WmIFTzKO+UxQX3lvWBqpe6yaiMEIg= +github.com/NearNodeFlash/nnf-sos v0.0.1-0.20230613203338-ea5b2f78692b h1:UKYwKExv3AwHLwEBKHHMDuVq3Kv9Vn2b5vcUluOe8bs= +github.com/NearNodeFlash/nnf-sos v0.0.1-0.20230613203338-ea5b2f78692b/go.mod h1:ROE7mG1W7t1APwH9gfRwDIIQqtBP04VcYVHlKcYA1P0= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= diff --git a/vendor/github.com/HewlettPackard/dws/api/v1alpha2/workflow_types.go b/vendor/github.com/HewlettPackard/dws/api/v1alpha2/workflow_types.go index 4498bdf2..25a5b338 100644 --- a/vendor/github.com/HewlettPackard/dws/api/v1alpha2/workflow_types.go +++ b/vendor/github.com/HewlettPackard/dws/api/v1alpha2/workflow_types.go @@ -23,6 +23,7 @@ import ( "github.com/HewlettPackard/dws/utils/updater" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/intstr" ) const ( @@ -105,8 +106,13 @@ type WorkflowSpec struct { // this can only be set to the next state when the current desired state has been achieved. DesiredState WorkflowState `json:"desiredState"` + // WLMID identifies the Workflow Manager (WLM), and is set by the WLM + // when it creates the workflow resource. WLMID string `json:"wlmID"` - JobID int `json:"jobID"` + + // JobID is the WLM job ID that corresponds to this workflow, and is + // set by the WLM when it creates the workflow resource. + JobID intstr.IntOrString `json:"jobID"` // UserID specifies the user ID for the workflow. The User ID is used by the various states // in the workflow to ensure the user has permissions to perform certain actions. Used in @@ -206,8 +212,8 @@ type WorkflowStatus struct { //+kubebuilder:printcolumn:name="STATE",type="string",JSONPath=".status.state",description="Current state" //+kubebuilder:printcolumn:name="READY",type="boolean",JSONPath=".status.ready",description="True if current state is achieved" //+kubebuilder:printcolumn:name="STATUS",type="string",JSONPath=".status.status",description="Indicates achievement of current state" +//+kubebuilder:printcolumn:name="JOBID",type="string",JSONPath=".spec.jobID",description="Job ID" //+kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" -//+kubebuilder:printcolumn:name="JOBID",type="integer",JSONPath=".spec.jobID",description="Job ID",priority=1 //+kubebuilder:printcolumn:name="DESIREDSTATE",type="string",JSONPath=".spec.desiredState",description="Desired state",priority=1 //+kubebuilder:printcolumn:name="DESIREDSTATECHANGE",type="date",JSONPath=".status.desiredStateChange",description="Time of most recent desiredState change",priority=1 //+kubebuilder:printcolumn:name="ELAPSEDTIMELASTSTATE",type="string",JSONPath=".status.elapsedTimeLastState",description="Duration of last state change",priority=1 diff --git a/vendor/github.com/HewlettPackard/dws/api/v1alpha2/zz_generated.deepcopy.go b/vendor/github.com/HewlettPackard/dws/api/v1alpha2/zz_generated.deepcopy.go index 84c9e9bd..2a727815 100644 --- a/vendor/github.com/HewlettPackard/dws/api/v1alpha2/zz_generated.deepcopy.go +++ b/vendor/github.com/HewlettPackard/dws/api/v1alpha2/zz_generated.deepcopy.go @@ -1358,6 +1358,7 @@ func (in *WorkflowList) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *WorkflowSpec) DeepCopyInto(out *WorkflowSpec) { *out = *in + out.JobID = in.JobID if in.DWDirectives != nil { in, out := &in.DWDirectives, &out.DWDirectives *out = make([]string, len(*in)) diff --git a/vendor/github.com/NearNodeFlash/lustre-fs-operator/config/crd/bases/lus.cray.hpe.com_lustrefilesystems.yaml b/vendor/github.com/NearNodeFlash/lustre-fs-operator/config/crd/bases/lus.cray.hpe.com_lustrefilesystems.yaml index 3abf0cef..f72a7e45 100644 --- a/vendor/github.com/NearNodeFlash/lustre-fs-operator/config/crd/bases/lus.cray.hpe.com_lustrefilesystems.yaml +++ b/vendor/github.com/NearNodeFlash/lustre-fs-operator/config/crd/bases/lus.cray.hpe.com_lustrefilesystems.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.12.0 name: lustrefilesystems.lus.cray.hpe.com spec: group: lus.cray.hpe.com diff --git a/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfaccesses.yaml b/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfaccesses.yaml index b2791d4e..ff2278cc 100644 --- a/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfaccesses.yaml +++ b/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfaccesses.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.12.0 name: nnfaccesses.nnf.cray.hpe.com spec: group: nnf.cray.hpe.com diff --git a/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfcontainerprofiles.yaml b/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfcontainerprofiles.yaml index 06868836..2182ba5d 100644 --- a/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfcontainerprofiles.yaml +++ b/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfcontainerprofiles.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.12.0 name: nnfcontainerprofiles.nnf.cray.hpe.com spec: group: nnf.cray.hpe.com diff --git a/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfdatamovements.yaml b/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfdatamovements.yaml index 043c8587..30ea8fa0 100644 --- a/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfdatamovements.yaml +++ b/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfdatamovements.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.12.0 name: nnfdatamovements.nnf.cray.hpe.com spec: group: nnf.cray.hpe.com diff --git a/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfnodeecdata.yaml b/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfnodeecdata.yaml index 2442722e..fbb4a2c9 100644 --- a/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfnodeecdata.yaml +++ b/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfnodeecdata.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.12.0 name: nnfnodeecdata.nnf.cray.hpe.com spec: group: nnf.cray.hpe.com diff --git a/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfnodes.yaml b/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfnodes.yaml index 452b9736..adb45727 100644 --- a/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfnodes.yaml +++ b/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfnodes.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.12.0 name: nnfnodes.nnf.cray.hpe.com spec: group: nnf.cray.hpe.com diff --git a/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfnodestorages.yaml b/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfnodestorages.yaml index 3e537895..b9807ce6 100644 --- a/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfnodestorages.yaml +++ b/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfnodestorages.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.12.0 name: nnfnodestorages.nnf.cray.hpe.com spec: group: nnf.cray.hpe.com diff --git a/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfportmanagers.yaml b/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfportmanagers.yaml index 7c767bc7..aab8d03e 100644 --- a/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfportmanagers.yaml +++ b/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfportmanagers.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.12.0 name: nnfportmanagers.nnf.cray.hpe.com spec: group: nnf.cray.hpe.com diff --git a/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfstorageprofiles.yaml b/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfstorageprofiles.yaml index 6934071c..ca7281a4 100644 --- a/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfstorageprofiles.yaml +++ b/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfstorageprofiles.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.12.0 name: nnfstorageprofiles.nnf.cray.hpe.com spec: group: nnf.cray.hpe.com diff --git a/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfstorages.yaml b/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfstorages.yaml index 280144cb..1c584ac7 100644 --- a/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfstorages.yaml +++ b/vendor/github.com/NearNodeFlash/nnf-sos/config/crd/bases/nnf.cray.hpe.com_nnfstorages.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.12.0 name: nnfstorages.nnf.cray.hpe.com spec: group: nnf.cray.hpe.com diff --git a/vendor/modules.txt b/vendor/modules.txt index 201b884d..9b580f1e 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1,16 +1,16 @@ -# github.com/HewlettPackard/dws v0.0.1-0.20230522154633-c78e44b892ca +# github.com/HewlettPackard/dws v0.0.1-0.20230613201835-73abc41bd83c ## explicit; go 1.19 github.com/HewlettPackard/dws/api/v1alpha2 github.com/HewlettPackard/dws/utils/dwdparse github.com/HewlettPackard/dws/utils/updater -# github.com/NearNodeFlash/lustre-fs-operator v0.0.0-20230509135923-1259bed0fb14 +# github.com/NearNodeFlash/lustre-fs-operator v0.0.1-0.20230613180840-6178f2b04900 ## explicit; go 1.19 github.com/NearNodeFlash/lustre-fs-operator/api/v1beta1 github.com/NearNodeFlash/lustre-fs-operator/config/crd/bases -# github.com/NearNodeFlash/nnf-ec v0.0.0-20230512221456-5fa47fb42560 +# github.com/NearNodeFlash/nnf-ec v0.0.0-20230526161255-cfb2d89b35d7 ## explicit; go 1.18 github.com/NearNodeFlash/nnf-ec/pkg/rfsf/pkg/models -# github.com/NearNodeFlash/nnf-sos v0.0.1-0.20230517131334-4653f6d4ec06 +# github.com/NearNodeFlash/nnf-sos v0.0.1-0.20230613203338-ea5b2f78692b ## explicit; go 1.19 github.com/NearNodeFlash/nnf-sos/api/v1alpha1 github.com/NearNodeFlash/nnf-sos/config/crd/bases