Add the ability to specify node profiles in the multus validation test.
This addresses a few points of early feedback on the validation tool.
Statements below critique the tool's behavior before this patch.
1. The tool assumes all daemons are on public and cluster network, which
means users who have a significantly smaller cluster net (a
design choice) cannot run a single test to determine if Rook is
likely to install correctly.
2. The tool does not have placement options to select only a subset of
Kubernetes nodes to run validation on.
3. Users of multus seem to have a dedicated pool of storage nodes more
often than the average Rook install. This makes sense for security-
and perforance-minded users. The tool cannot run a single test to
verify storage-only and general-workload nodes at one time.
These points are addressed by allowing users to specify configurations
for different "NodeTypes."
Each NodeType config has options for selecting the number of OSDs as
well as the number of other (non-OSD) Ceph daemons. This limits the
unnecessary exhaustion of cluster network addresses from critique 1.
Each NodeType config has its own placement (critique 2).
Users can define as many NodeTypes as needed to test the network for
their planned CephCluster. Specifically, this allows the tool to test
storage-only nodes and generalized-workload nodes at the same time. An
arbitrary number of NodeTypes are allowed to support even more highly
specialized cluster setups, such as multiple tiers of storage nodes
where some storage-only nodes may run more OSDs than others.
Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
(cherry picked from commit 0c721e05d5)
The GH action to set up Golang (actions/setup-go) has cache
functionality. For cache hits, this saves ~2 minutes for each run. In
order for the cache to hit, caching must not be disabled, and the code
must be checked out before setting up Golang.
Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
(cherry picked from commit bf9e5dc1f5)
# Conflicts:
# .github/workflows/golangci-lint.yaml
The issues are fixed from the clean disk action
repo and we shouldn't require any workaround. Also,
I'm not using git revert to revert the commit is earlier
clean disk action was mentioned in every CI which was
duplicate and now we have placed the action to composite yaml
Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit e14f8c7710)
Since `google-cloud-sdk` is renamed with `google-cloud-cli`,
the github action is failing to remove the older name and this
is causing ci issues. Applying changes suggested by community to
manually remove some packages to resolve the issue.
Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit 3267576307)
Fixes: #12930
This patch introduces a .snyk policy file that lets snyk suppress the warnings
about the MPL license in projects pulled in as dependencies.
Additinally, this fixes a typo in the name of the snyk workflow
file
Signed-off-by: Michael Adam <obnox@samba.org>
Co-authored-by: Travis Nielsen <tnielsen@redhat.com>
Co-authored-by: Blaine Gardner <b.blaine.gardner@gmail.com>
(cherry picked from commit d3bc9aafee)
krew is itself a plugin and it is wrong wording
to use krew plugin intead it should be kubectl
pluging.
Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit 47c0038136)
Update the multus canary test to reflect modern knowledge about how it
should be configured.
No longer test for the network device in OSD pods. Pods will utterly
fail to start if Multus is unable to attach interfaces.
Instead, look to the OSD map to test the connections more wholistically.
OSDs must have map IPs that include both public and cluster network.
This implicitly tests that the interfaces exist in the Pod, and it
additionally verifies other details, like Ceph `*_network` configs are
set propertly.
Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
(cherry picked from commit 3e2e906ea7)
This is the latest available version.
The previously used version v2.0.0 was very outdated.
Fixes: #12883
Co-authored-by: subham rai subhamkrai <srai@redhat.com>
Signed-off-by: Michael Adam <obnox@samba.org>
Signed-off-by: Subham Rai subhamkrai <srai@redhat.com>
signed-off-by: Travis Nielsen <tnielsen@redhat.com>
Co-authored-by: Travis Nielsen <tnielsen@redhat.com>
(cherry picked from commit cef43e1155)
This simplifies the docs-check workflow definition by extracting functionality
directly coded into the workflow file into new make targets 'check-docs'
and 'check-helm-docs' and replacing the code in the workflow file by the simple invocation of
new make targets. As a side effect, it makes it easily possible for a
developer to check locally if they forgot to commit any autogenerated
docs.
Signed-off-by: Michael Adam <obnox@samba.org>
(cherry picked from commit 04670d3f76)
it was confusing if we are calling a ceph cluster name
or k8s cluster name, so re-named
Signed-off-by: parth-gr <paarora@redhat.com>
(cherry picked from commit 98c4567219)
we don't want to wait for extra 10min once the ci passed,
so we'll add a check if `debug-ci` label is added or debug runner
is triggered from UI then only start tmate. Also, updaing the
development doc and rook test doc.
Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit a223b6777b)
Run make go.mod.update to update the go modules to
the latest references.
Signed-off-by: travisn <tnielsen@redhat.com>
(cherry picked from commit 138624a3b0)
The go package dependencies (go.mod and go.sum) were created
under the pkg/apis directory to simplify the dependencies for
other projects referencing the rook repo. The downside is that
the dependabot can no longer open a working and valid PR since
the bot is not aware of the go.mod and go.sum in the apis directory.
Since the reduction of dependencies for vault in #12455,
the list of extra dependencies is not quite so extensive.
We are putting effort into shrinking the dependency list instead
of using the modules files in the apis subdirectory.
Note that #12419 updated the dependencies for the latest controller
runtime which also increased the size of the modules
list in the pkgs subdirectory, which means the difference
in dependencies in the pkgs subdirectory is no longer
signficant anyway.
Signed-off-by: travisn <tnielsen@redhat.com>
(cherry picked from commit 1a4917de78)
# Conflicts:
# .github/workflows/update_dependabot_bundler_pr.yml
moving the toolbox-operator creation early in
ci, so that by the time we wait for others pods
to come up, toolbox-operator will be ready or
will wait for 180s.
Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit bffa766b4f)
The build and release actions will rarely ever need to be
debugged. To make them more efficient and reduce their
runtime, we remove the tmate action so it won't add 10
unnecessary minutes to the end of the action.
Signed-off-by: travisn <tnielsen@redhat.com>
(cherry picked from commit 90a95ce57d)
I missed adding the action which free some disk space
which may help with low resource issues.
Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit 2eee0c7e1e)
While running object test we need some more time
to run the cosi test completely so increasing the timeout
Also update timeout of ntegration-tests-on-release.yaml
Signed-off-by: parth-gr <paarora@redhat.com>
(cherry picked from commit 8617e2e924)
the wait command is provided by kubernetes so
instead of using manually shell hack using the wait
command
Signed-off-by: parth-gr <paarora@redhat.com>
(cherry picked from commit 64d3df4fcd)
recentally, upgrade tests are getting
longer than 30m to pass since reef upgrade.
So, increasing the timeout to 40m.
Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit 07bb18feba)
adding github action to free space in runner
which will help us avoiding mon low space error
Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit 334a632ecd)
with reef, we are now upgrading 2 ceph versions which
takes time to complete the ci.
Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit e139fd20be)
The object suite was being skipped in master and release
branches. Since the object suite was only running in PRs
it was not noticed if there were any issues in the master
branch or release branches. Now we run it in these branches
in addition to the PRs.
Signed-off-by: travisn <tnielsen@redhat.com>
(cherry picked from commit 8fd46a46d3)
Added a new flag `--v2-port-enable` to enable the v2 mon port.
Signed-off-by: Nikhil-Ladha <nikhilladha1999@gmail.com>
(cherry picked from commit 5daddbe379)
The previous client loader routine assumed KUBECONFIG would be set in
CLI environments. Instead, now take this approach:
1. If KUBECONFIG is set, that is the de-facto override that informs the
tool it is being run in a CLI environment.
2. Otherwise, try creating a client from the default kube config file.
3. If that fails, assume the tool is running in a Kubernetes Pod.
This will continue supporting dev/test environments so that building the
rook container is not necessary for development. It also allows support
for highly opinionated environments (like deployed by OpenShift CSVs)
where it's not possible to install the Rook operator without also
deploying a CephCluster.
Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
(cherry picked from commit cc9514ad6c)
the upgrade suite for version 1.27.x is failing
due
```
debug 2023-07-24T19:11:20.264+0000 7f3395a82c80 -1 error: monitor data filesystem reached concerning levels of available storage space (available: 5% 4.4 GiB)
you may adjust 'mon data avail crit' to a lower value to make this go away (default: 5%)
```
so adding mon setting to start on `compact` also adding
other setting present in cluster-test.yaml.
Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit e8e8a4673a)
with detached mode, we don't need to wait for the
tests to complete. Now, we can get inside tmate before
the tests start and we can monitor the tests.
By default, this mode will wait at the end of the job for
a user to connect and then to terminate the tmate session.
If no user has connected within 10 minutes after the post-job step started,
it will terminate the tmate session and quit gracefully.
Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit f171e1c037)
set the csi subvolume to pin type distributed and pin setting 1
So to statically balance the PVs across all MDS ranks
Signed-off-by: parth-gr <paarora@redhat.com>
(cherry picked from commit 53413e5a24)
update test files to support the next version of ceph, ceph reef v18
Signed-off-by: Javier <sjavierlopez@gmail.com>
(cherry picked from commit 46cb9435a6)
we need make `limit-access-to-actor: false` and also
in the right place where tmate `uses` is called for
composite yaml.
Signed-off-by: subhamkrai <srai@redhat.com>
(cherry picked from commit ab297afa0e)
we need to wait for the rgw pod to be delete and not
only the cephobjectsore, sometime the pod could be in
terminating state. Also, in some place it require proper
command to wait for pod to be ready/delete and get the
pod name only.
Signed-off-by: subhamkrai <srai@redhat.com>
For v1.12 update the minimum K8s version supported to v1.22,
and run CI against the most recent six versions.
Signed-off-by: Sheetal Pamecha <spamecha@redhat.com>
The linter requires updating wait.Poll methods to more recent
given the new dependencies for the controller runtime.
Signed-off-by: travisn <tnielsen@redhat.com>