Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added development.md #121

Merged
Merged
Changes from 1 commit
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
174 changes: 174 additions & 0 deletions development.md
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets rename this file from development.md to DEVELOPMENT.md. This would be more consistent in the naming convention of important files across the project.

We shouldn't move the entire README.md file into this file. Rather, lets move in the Build, Run, Troubleshooting, and Cleanup sections. Still keep the Prerequisites section as well.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm still seeing the file name as development.md instead of DEVELOPMENT.md. Can you please update the file name?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have renamed it.

Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@


# hydrophone

![Kubernetes Logo](https://raw.githubusercontent.com/kubernetes-sigs/kubespray/master/docs/img/kubernetes-logo.png)

Lightweight runner for kubernetes tests. Uses the conformance image(s) released by
the kubernetes release team to either run individual tests or the entire [Conformance suite].
Design is pretty simple, it starts the conformance image as a pod in the `conformance`
namespace, waits for it to finish and then prints out the results.

### Project Goals

- **Simplified Kubernetes Testing**: Easy-to-use tool for running Kubernetes conformance tests.
- **Official Conformance Images**: Utilize official conformance images from the Kubernetes Release Team.
- **Flexible Test Execution**: Ability to run individual test, the entire Conformance Test Suite, or anything in between.

### Project Non-Goals

- **Replacing Kubernetes Testing Frameworks**: Not intended to replace existing frameworks, but to complement them.
- **Extensive Test Development**: Focus is on running existing tests, not developing new ones.
- **Broad Tool Integration**: Limited integration with third-party tools; maintains simplicity.

### Get Started with Development
#
## PREREQUISITES
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change from PREREQUISITES to Prerequisites

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

- [go](https://go.dev/dl/)
- [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
ect.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove this line and replace it with a kind and a link to installing kind.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done




## Build

```
$ make build
go build -o bin/hydrophone main.go
```

## Install

```
go install sigs.k8s.io/hydrophone@latest
```

## Command line options

```
$ bin/hydrophone --help
Usage of bin/hydrophone:
-busybox-image string
specify an alternate busybox container image. (default "registry.k8s.io/e2e-test-images/busybox:1.36.1-1")
-cleanup
cleanup resources (pods, namespaces etc).
-conformance
run conformance tests.
-conformance-image string
specify a conformance container image of your choice. (default "registry.k8s.io/conformance:v1.29.0")
-dry-run
run in dry run mode.
-focus string
focus runs a specific e2e test. e.g. - sig-auth. allows regular expressions.
-kubeconfig string
path to the kubeconfig file.
-list-images
list all images that will be used during conformance tests.
-output-dir string
directory for logs. (defaults to current directory)
-parallel int
number of parallel threads in test framework. (default 1)
-skip string
skip specific tests. allows regular expressions.
-test-repo string
alternate registry for test images
-test-repo-list string
yaml file to override registries for test images
-verbosity int
verbosity of test framework. (default 4)
```

## Run

Ensure there is a `KUBECONFIG` environment variable specified or `$HOME/.kube/config` file present before running `hydrophone` Alternatively, you can specify the path to the kubeconfig file with the `--kubeconfig` option.

To run conformance tests use:

```
bin/hydrophone --conformance
```

To run a specific test use:

```
bin/hydrophone --focus 'Simple pod should contain last line of the log'
```

To specify a version of conformance image use:

```
bin/hydrophone --conformance-image 'registry.k8s.io/conformance:v1.29.0'
```

## Troubleshooting

Check if the pod is running:

```
kubectl get pods -n conformance
```

use `kubectl logs` or `kubectl exec` to see what is happening in the pod.

## Cleanup

Delete the pod

```
kubectl delete -n conformance pods/e2e-conformance-test
```

Delete the namespace

```
kubectl delete -n conformance pods/e2e-conformance-test && kubectl delete ns conformance
```

## Community

Please reach out for bugs, feature requests, and other issues!
The maintainers of this project are reachable via:

- [Kubernetes Slack] in the [#sig-testing] and [#k8s-conformance] channels
- [filing an issue] against this repo
- The Kubernetes [SIG-Testing Mailing List] and [SIG-Release Mailing List]

Current maintainers are [@dims] and [@rjsadow] - feel free to
reach out if you have any questions!

Pull Requests are very welcome!
If you're planning a new feature, please file an issue to discuss first.

Check the [issue tracker] for `help wanted` issues if you're unsure where to
start, or feel free to reach out to discuss. 🙂

See also: our own [contributor guide] and the Kubernetes [community page].

### Code of conduct

Participation in the Kubernetes community is governed by the [Kubernetes Code of Conduct].

<!--links-->

[Kubernetes Code of Conduct]: code-of-conduct.md
[community page]: https://kubernetes.io/community/
[contributor guide]: https://sigs.k8s.io/hydrophone/blob/main/CONTRIBUTING.md
[issue tracker]: https://github.com/kubernetes-sigs/hydrophone/issues
[@dims]: https://github.com/dims
[@rjsadow]: https://github.com/rjsadow
[filing an issue]: https://sigs.k8s.io/hydrophone/issues/new
[Kubernetes Slack]: http://slack.k8s.io/
[SIG-Testing Mailing List]: https://groups.google.com/forum/#!forum/kubernetes-sig-testing
[SIG-Release Mailing List]: https://groups.google.com/forum/#!forum/kubernetes-sig-release
[Conformance suite]: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md