Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
12042ca
fix all linter errors
dimetron Jul 7, 2025
40b8c8b
fix all linter errors
dimetron Jul 7, 2025
6fdea51
add buildx
dimetron Jul 7, 2025
1713ac6
fix all linter errors (#1)
dimetron Jul 7, 2025
f5fc0e1
fix tag flow
dimetron Jul 7, 2025
cf5f0c5
Merge branch 'main' into feature/build-linter-fixes
dimetron Jul 7, 2025
77f051c
fix tag flow
dimetron Jul 7, 2025
b3ad3c5
fix tag flow
dimetron Jul 7, 2025
af721a0
fix tag flow
dimetron Jul 7, 2025
91ee83f
added LICENSE files
dimetron Jul 7, 2025
430603c
devcontainer
dimetron Jul 7, 2025
1f62fc0
added TOOLS_CILIUM_VERSION
dimetron Jul 7, 2025
9bfe794
TOOLS_CILIUM_VERSION=0.18.5
dimetron Jul 7, 2025
2404e79
fix tools k8s
dimetron Jul 7, 2025
caea1af
tools local run
dimetron Jul 7, 2025
b9faef9
update tools with --kubeconfig
dimetron Jul 7, 2025
a5fde94
stremable-http (#4)
EItanya Jul 8, 2025
d354a4b
Feature/tools OTEL (#7)
dimetron Jul 15, 2025
0daa9ee
Tools chart & e2e with k8s (#12)
dimetron Jul 22, 2025
8901bc2
fix helm-publish
dimetron Jul 22, 2025
39f4427
[FEATURE] Add quickstart guide for agentgateway (#15)
dimetron Jul 25, 2025
7425a6c
set json format optional (#16)
dimetron Jul 28, 2025
0aec693
fix version and makefile ENV var (#18)
dimetron Jul 29, 2025
6d4dab9
updated dependencies (#25)
dimetron Sep 25, 2025
cd46de3
feat: add support for nodeSelector and tolerations (#23)
qasmi Oct 21, 2025
b34f97e
Feature/bump dependencies (#32)
dimetron Dec 4, 2025
ee2121b
Tools versions update 2026.1 (#39)
dimetron Jan 25, 2026
0b4e7ab
Kubescape tool support (#38)
slashben Jan 27, 2026
abdd0d5
feat(helm): add enabledTools and extraArgs configuration options (#43)
MatteoMori8 Feb 10, 2026
c315417
feat(cli): add --read-only flag to disable write operations (#41)
MatteoMori8 Feb 10, 2026
1ed98d3
fix(deps): patch HIGH security vulnerabilities in Go dependencies (#44)
MatteoMori8 Feb 12, 2026
9c01524
feat: add token support for kubectl commands (#37)
EItanya Feb 17, 2026
fd7e46c
feat(helm): configurable RBAC with read-only ClusterRole support (#46)
MatteoMori8 Feb 20, 2026
b4e356a
feat(metrics): implement Prometheus observability (#45)
MatteoMori Feb 27, 2026
62c4fba
fix(helm): use fullname in selector labels to prevent mismatch on upg…
jsonmp-k8 Mar 5, 2026
441d767
fix(helm): rename helpers to avoid parent chart collision (#49)
EItanya Mar 5, 2026
7b7cdc3
feat(k8s): add k8s_patch_status tool for patching resource status sub…
felipevicens Mar 6, 2026
4fe98be
fix(security): bump grpc and CLI tool versions to resolve CVEs (#52)
EItanya Mar 19, 2026
e8c0b7c
feat(helm): support namespaced RBAC for tools (#53)
supreme-gg-gg Mar 27, 2026
9694b51
Fix incorrect cillium-dbg subcommands (#55)
dimetron Apr 1, 2026
9274cb1
refactor(helm): remove rbac.clusterScoped, derive RBAC scope from rba…
supreme-gg-gg May 5, 2026
2a72881
feat(k8s): add k8s_wait_for_condition tool
mesutoezdil May 7, 2026
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
62 changes: 62 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
ARG TOOLS_GO_VERSION
FROM mcr.microsoft.com/devcontainers/go:dev-${TOOLS_GO_VERSION}-bookworm

RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
curl \
git \
gnupg \
gnupg2 \
htop \
jq \
less \
lsof \
net-tools \
openssh-client \
unzip \
vim \
zsh

ARG TARGETARCH
ARG TOOLS_HELM_VERSION
ARG TOOLS_ISTIO_VERSION
ARG TOOLS_ARGO_ROLLOUTS_VERSION
ARG TOOLS_KUBECTL_VERSION
ARG TOOLS_CILIUM_VERSION

WORKDIR /downloads

RUN curl -LO "https://dl.k8s.io/release/v$TOOLS_KUBECTL_VERSION/bin/linux/$TARGETARCH/kubectl" \
&& mv kubectl /usr/bin/kubectl \
&& chmod +x /usr/bin/kubectl \
&& /usr/bin/kubectl version --client

RUN curl -L https://istio.io/downloadIstio | ISTIO_VERSION=$TOOLS_ISTIO_VERSION TARGET_ARCH=$TARGETARCH sh - \
&& mv istio-*/bin/istioctl /usr/bin/ \
&& rm -rf istio-* \
&& /usr/bin/istioctl --help

# Install Helm
RUN curl -Lo helm.tar.gz https://get.helm.sh/helm-v${TOOLS_HELM_VERSION}-linux-${TARGETARCH}.tar.gz \
&& tar -xvf helm.tar.gz \
&& mv linux-${TARGETARCH}/helm /usr/bin/helm \
&& chmod +x /usr/bin/helm \
&& rm -rf helm.tar.gz linux-${TARGETARCH} \
&& /usr/bin/helm version

# Install kubectl-argo-rollouts
RUN curl -Lo /usr/bin/kubectl-argo-rollouts https://github.com/argoproj/argo-rollouts/releases/download/v${TOOLS_ARGO_ROLLOUTS_VERSION}/kubectl-argo-rollouts-linux-${TARGETARCH} \
&& chmod +x /usr/bin/kubectl-argo-rollouts \
&& /usr/bin/kubectl-argo-rollouts version

# Install Cilium CLI
RUN curl -Lo cilium.tar.gz https://github.com/cilium/cilium-cli/releases/download/v${TOOLS_CILIUM_VERSION}/cilium-linux-${TARGETARCH}.tar.gz \
&& tar -xvf cilium.tar.gz \
&& mv cilium /usr/bin/cilium \
&& chmod +x /usr/bin/cilium \
&& rm -rf cilium.tar.gz \
&& /usr/bin/cilium version

WORKDIR /tools

ENTRYPOINT ["zsh"]
57 changes: 57 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
{
"name": "kagent-tools-container",
"build": {
"dockerfile": "Dockerfile",
"args": {
"TOOLS_GO_VERSION": "1.25",
"TOOLS_ISTIO_VERSION": "1.28.3",
"TOOLS_ARGO_ROLLOUTS_VERSION": "1.8.3",
"TOOLS_KUBECTL_VERSION": "1.35.0",
"TOOLS_HELM_VERSION": "4.1.0",
"TOOLS_CILIUM_VERSION": "0.19.0"
}
},
"features": {
"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {},
"ghcr.io/mpriscella/features/kind:1": {}
},
"customizations": {
"vscode": {
"extensions": [
"golang.go",
"redhat.vscode-yaml",
"ms-kubernetes-tools.vscode-kubernetes-tools",
"ms-kubernetes-tools.kind-vscode",
"dbaeumer.vscode-eslint",
"ms-azuretools.vscode-docker",
"ms-vscode.makefile-tools",
"ms-vscode.vscode-go",
"ms-python.python",
"ms-python.vscode-pylance",
"ms-toolsai.jupyter",
"ms-vscode.makefile-tools",
"ms-remote.remote-containers",
"ms-vscode.vscode-typescript-next",
"ms-azuretools.vscode-containers",
"ms-windows-ai-studio.windows-ai-studio",
"GitHub.copilot",
"GitHub.copilot-chat",
"Catppuccin.catppuccin-vsc",
"Catppuccin.catppuccin-vsc-icons"
]
}
},

//user settings
"remoteUser": "root",

//forward the following ports
"forwardPorts": [8084],

//network
// "network": "host",

//mount docker directly on the host
"mounts": ["source=/var/run/docker.sock,target=/var/run/docker.sock,type=bind"],

}
61 changes: 54 additions & 7 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
Expand All @@ -27,6 +27,7 @@ jobs:
- name: Run make build
env:
DOCKER_BUILDKIT: 1
BUILDX_BUILDER_NAME: kagent-builder-v0.23.0
DOCKER_BUILD_ARGS: >-
--cache-from=type=gha
--cache-to=type=gha,mode=max
Expand All @@ -41,15 +42,61 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: Set up Go
uses: actions/setup-go@v4
uses: actions/setup-go@v6
with:
go-version: "1.24"
cache: true
go-version: '^1.26.1'
cache: false

- name: Run cmd/main.go tests
working-directory: go
working-directory: .
run: |
go test -v ./...
make test

go-e2e-tests:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v5

- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: '^1.26.1'
cache: false

- name: Create k8s Kind Cluster
uses: helm/kind-action@v1
with:
cluster_name: kagent
config: scripts/kind/kind-config.yaml

- name: Run cmd/main.go tests
working-directory: .
run: |
make e2e

helm-unit-tests:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v5

- name: Set up Helm
uses: azure/setup-helm@v4.2.0
with:
version: v4.1.1

- name: Install unittest plugin
run: |
helm plugin install --verify=false https://github.com/helm-unittest/helm-unittest

- name: Chart init
run: |
make helm-version

- name: Run helm unit tests
run: |
make helm-test
7 changes: 6 additions & 1 deletion .github/workflows/tag.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,13 @@ jobs:
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

with:
platforms: linux/amd64,linux/arm64
version: v0.23.0
use: 'true'
- name: 'Build Images'
env:
BUILDX_BUILDER_NAME: kagent-builder-v0.23.0
DOCKER_BUILD_ARGS: "--push --platform linux/amd64,linux/arm64"
DOCKER_BUILDER: "docker buildx"
run: |
Expand All @@ -46,6 +50,7 @@ jobs:
export VERSION=$(echo "$GITHUB_REF" | cut -c12-)
fi
make docker-build
make helm-publish
release:
# Only run release after images and helm chart are pushed
# In the future we can take the chart from the helm action,
Expand Down
9 changes: 8 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,11 @@ bin/
.env.local
.env.development.local
.env.test.local
.env.production.local
.env.production.local
/logs/
/kagent-tools
/*.out
*.html
/helm/kagent-tools/Chart.yaml
/reports/tools-cve.csv
.dagger/
1 change: 1 addition & 0 deletions CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/* @EItanya @dimetron
122 changes: 122 additions & 0 deletions CONTRIBUTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
# Contribution Guidelines

## Development

### Code of Conduct

We are committed to providing a friendly, safe, and welcoming environment for all contributors. Please read and follow our [Code of Conduct](CODE_OF_CONDUCT.md).

### Getting Started

1. **Fork the repository** on GitHub.
2. **Clone your fork** locally:
```bash
git clone https://github.com/YOUR-USERNAME/tools.git
cd kagent
```
3. **Add the upstream repository** as a remote:
```bash
git remote add upstream https://github.com/kagent-dev/tools.git
```
4. **Create a new branch** for your changes:
```bash
git checkout -b feature/your-feature-name
```

### Development Environment Setup

See the [DEVELOPMENT.md](DEVELOPMENT.md) file for more information.

### Making Changes

#### Coding Standards

- **Go Code**:
- Follow the [Go Code Review Comments](https://go.dev/wiki/CodeReviewComments)
- Run `make lint` before submitting your changes
- Ensure all tests pass with `make test`
- Add tests for new functionality

#### Commit Guidelines

We follow the [Conventional Commits](https://www.conventionalcommits.org/) specification:

- **feat**: A new feature
- **fix**: A bug fix
- **docs**: Documentation only changes
- **style**: Changes that do not affect the meaning of the code
- **refactor**: A code change that neither fixes a bug nor adds a feature
- **perf**: A code change that improves performance
- **test**: Adding missing tests or correcting existing tests
- **chore**: Changes to the build process or auxiliary tools

Example commit message:
```
feat(controller): add support for custom resource validation

This adds validation for the KagentApp custom resource to ensure
that the configuration is valid before applying it to the cluster.

Closes #123
```

### Pull Request Process

1. **Update your fork** with the latest changes from upstream:
```bash
git fetch upstream
git rebase upstream/main
```

2. **Push your changes** to your fork:
```bash
git push origin feature/your-feature-name
```

3. **Create a Pull Request** from your fork to the main repository.

4. **Fill out the PR template** with all required information.

5. **Address review comments** if requested by maintainers.

6. **Update your PR** if needed:
```bash
git add .
git commit -m "address review comments"
git push origin feature/your-feature-name
```

7. Once approved, a maintainer will merge your PR.


### Documentation

- Update documentation for any changes to APIs, CLIs, or user-facing features
- Add examples for new features
- Update the README if necessary
- Add comments to your code explaining complex logic

### Releasing

Only project maintainers can create releases. The process is:

1. Update version numbers in relevant files
2. Create a release branch
3. Create a tag for the release
4. Build and publish artifacts
5. Create a GitHub release with release notes

### Community

- Join our [Discord server](https://discord.gg/Fu3k65f2k3) for discussions
- Participate in community calls (scheduled on our website)
- Help answer questions in GitHub issues
- Review pull requests from other contributors

## License

By contributing to this project, you agree that your contributions will be licensed under the project's license.

## Questions?

If you have any questions about contributing, please open an issue or reach out to the maintainers.
Loading