Skip to content

Commit

Permalink
Last release preparations (#84)
Browse files Browse the repository at this point in the history
* change to 2.0.0, remove pre release opt from vs code publishing as preparation for release

* update READMEs

* add demo, add code of conduct


Co-authored-by: Eyal Bukchin <[email protected]>
  • Loading branch information
aviramha and eyalb181 authored May 26, 2022
1 parent 081502e commit ca2faac
Show file tree
Hide file tree
Showing 9 changed files with 131 additions and 109 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -95,17 +95,17 @@ jobs:
- run: npm install -g vsce typescript esbuild
- run: cp CHANGELOG.md LICENSE vscode-ext/
- run: mv /tmp/artifacts/x86_64-unknown-linux-gnu/libmirrord_layer.so vscode-ext/
- run: cd vscode-ext && npm install && tsc && vsce publish ${{ steps.version.outputs.version }} --allow-star-activation --target linux-x64 --pre-release
- run: cd vscode-ext && npm install && tsc && vsce publish ${{ steps.version.outputs.version }} --allow-star-activation --target linux-x64
env:
VSCE_PAT: ${{ secrets.VSCE_PAT }}
- run: rm vscode-ext/libmirrord_layer.so
- run: mv /tmp/artifacts/x86_64-apple-darwin/libmirrord_layer.dylib vscode-ext/
- run: cd vscode-ext && npm install && tsc && vsce publish ${{ steps.version.outputs.version }} --allow-star-activation --target darwin-x64 --pre-release
- run: cd vscode-ext && npm install && tsc && vsce publish ${{ steps.version.outputs.version }} --allow-star-activation --target darwin-x64
env:
VSCE_PAT: ${{ secrets.VSCE_PAT }}
- run: rm vscode-ext/libmirrord_layer.dylib
- run: mv /tmp/artifacts/aarch64-apple-darwin/libmirrord_layer.dylib vscode-ext/
- run: cd vscode-ext && npm install && tsc && vsce publish ${{ steps.version.outputs.version }} --allow-star-activation --target darwin-arm64 --pre-release
- run: cd vscode-ext && npm install && tsc && vsce publish ${{ steps.version.outputs.version }} --allow-star-activation --target darwin-arm64
env:
VSCE_PAT: ${{ secrets.VSCE_PAT }}

Expand Down
78 changes: 78 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@

# Contributor Covenant Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to make participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment
include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.

## Scope

This Code of Conduct applies within all project spaces, and it also applies when
an individual is representing the project or its community in public spaces.
Examples of representing a project or community include using an official
project e-mail address, posting via an official social media account, or acting
as an appointed representative at an online or offline event. Representation of
a project may be further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at [email protected]. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq

8 changes: 4 additions & 4 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ members = [
]

[workspace.package]
version = "2.0.3-rc.1"
version = "2.0.0"
edition = "2021"
license = "MIT"
readme = "README.md"
Expand Down
73 changes: 34 additions & 39 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,70 +1,63 @@
<p align="center">
<img src="images/icon.png">
</p>
<h1 align="center">mirrord</h1>
<div align="center">

mirrord lets you easily mirror traffic from your Kubernetes cluster to your development environment. It comes as both [Visual Studio Code](https://code.visualstudio.com/) extension and a CLI tool.
![mirrord logo dark](./images/logo_dark.png#gh-dark-mode-only)

</div>

<div align="center">

![mirrord logo light](./images/logo_light.png#gh-light-mode-only)

</div>

mirrord lets you easily mirror traffic from your Kubernetes cluster to your development environment. It comes as both [Visual Studio Code](https://code.visualstudio.com/) extension and a CLI tool.

## Getting Started
- [VSCode Extension](#vscode-extension)
- [CLI Tool](#cli-tool)
> mirrord uses your machine's default kubeconfig for access to the Kubernetes API.
> Make sure your local process is listening on the same port as the remote pod.
---
## VSCode Extension
### Installation
Get the extension [here](https://marketplace.visualstudio.com/items?itemName=MetalBear.mirrord).

### How to use

* Click "Enable mirrord" on the status bar
* Start debugging your project
* Click "Start mirrord" on the status bar
* Choose pod to mirror traffic from
* To stop mirroring, click "Stop mirrord" (or stop debugging)
* The debugged process will start with mirrord, and receive traffic

<p align="center">
<img src="https://i.imgur.com/LujQb1u.gif" width="738">
<img src="./images/demo.gif" width="60%">
</p>

The extension listens on the remote port 80, and uses the k8s namespace 'default', but both of those are configurable through the settings button. The extension automatically detects which local port your debugged process listens on and directs the mirrored traffic to it.
If you prefer to direct traffic to a different local port, edit launch.json:

`{
"mirrord": {
"port": "<port to send traffic to>"
}
}`

---
## CLI Tool
### Installation
`npm install -g mirrord`

### How to use
`mirrord <pod name>`
```sh
curl -fsSL https://raw.githubusercontent.com/metalbear-co/mirrord/main/scripts/install.sh | bash
```

<p align="center">
<img src="https://i.imgur.com/EgyBxI9.gif" width="538">
</p>
* Windows isn't supported currently (you can use WSL)

For more options, run:
### How to use
```sh
mirrord exec <process command> --pod-name <name of the pod to impersonate>
```
e.g.

`mirrord --help`
```sh
mirrord exec node app.js --pod-name my-pod
```

---

## How it works
mirrord works by letting you select a pod to mirror traffic from. It launches a privileged pod on the same nodewhich enters the namespace of the selected pod and captures traffic from it.



For more technical information, see [TECHNICAL.md](./TECHNICAL.md)

### Caveats
* mirrord currently supports Kubernetes clusters using containerd runtime only. Support for more runtimes will be added if there's demand.




## Contributing
Contributions are welcome via PRs.

Expand All @@ -73,7 +66,9 @@ Contributions are welcome via PRs.

Join our [Discord Server](https://discord.gg/J5YSrStDKD) for questions, support and fun.

---

## Code of Conduct
We take our community seriously and we are dedicated to providing a safe and welcoming environment for everyone.
Please take a few minutes to review our [Code of Conduct](./CODE_OF_CONDUCT.md).

<i>Icon Credit: flaticon.com</i>
## License
[MIT](./LICENSE)
Binary file modified images/demo.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/logo_dark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/logo_light.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
73 changes: 11 additions & 62 deletions vscode-ext/README.md
Original file line number Diff line number Diff line change
@@ -1,76 +1,25 @@
<p align="center">
<img src="images/icon.png">
<img src="images/icon.png" width="20%">
</p>
<h1 align="center">mirrord</h1>

mirrord lets you easily mirror traffic from your Kubernetes cluster to your development environment. It comes as both [Visual Studio Code](https://code.visualstudio.com/) extension and a CLI tool.
mirrord lets you easily mirror traffic from your Kubernetes cluster to your local service. For more info on mirrord, check our [docs](https://mirrord.dev)

## How to use

## Getting Started
- [VSCode Extension](#vscode-extension)
- [CLI Tool](#cli-tool)
> mirrord uses your machine's default kubeconfig for access to the Kubernetes API.
---
## VSCode Extension
### Installation
Get the extension [here](https://marketplace.visualstudio.com/items?itemName=MetalBear.mirrord).

### How to use

* Click "Enable mirrord" on the status bar
* Start debugging your project
* Click "Start mirrord" on the status bar
* Choose pod to mirror traffic from
* To stop mirroring, click "Stop mirrord" (or stop debugging)

<p align="center">
<img src="https://i.imgur.com/LujQb1u.gif" width="738">
</p>

The extension listens on the remote port 80, and uses the k8s namespace 'default', but both of those are configurable through the settings button. The extension automatically detects which local port your debugged process listens on and directs the mirrored traffic to it.
If you prefer to direct traffic to a different local port, edit launch.json:

`{
"mirrord": {
"port": "<port to send traffic to>"
}
}`

---
## CLI Tool
### Installation
`npm install -g mirrord`

### How to use
`mirrord <pod name>`
* The debugged process will start with mirrord, and receive traffic

<p align="center">
<img src="https://i.imgur.com/EgyBxI9.gif" width="538">
<img src="https://i.imgur.com/FFiir2G.gif" width="60%">
</p>

For more options, run:

`mirrord --help`

---
## How it works
mirrord works by letting you select a pod to mirror traffic from. It launches a privileged pod on the same nodewhich enters the namespace of the selected pod and captures traffic from it.



For more technical information, see [TECHNICAL.md](./TECHNICAL.md)

### Caveats
* mirrord currently supports Kubernetes clusters using containerd runtime only. Support for more runtimes will be added if there's demand.




## Contributing
Contributions are welcome via PRs.


## Help & Community 🎉✉️
> mirrord uses your machine's default kubeconfig for access to the Kubernetes API.
Join our [Discord Server](https://discord.gg/J5YSrStDKD) for questions, support and fun.
> Make sure your local process is listening on the same port as the remote pod.
## Settings

---
- You can control the namespace mirrord will find pods by changing the impersonated pod namespace by clicking the settings button next to the Enable/Disable mirrord button
- You can also control in which k8s namespace the mirrord-agent will spawn using the same setting button.

0 comments on commit ca2faac

Please sign in to comment.