Skip to content

Commit f718e20

Browse files
chore(release): prepare v0.1.0 release automation, docs, and installer
1 parent a921754 commit f718e20

9 files changed

Lines changed: 371 additions & 15 deletions

File tree

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: Bug Report
2+
description: Report a reproducible bug or unexpected behavior in Agentrax.
3+
labels: ["kind/bug"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
Thanks for taking the time to report an issue! Please provide as much detail as possible.
9+
- type: input
10+
id: version
11+
attributes:
12+
label: Agentrax Version
13+
description: What version of Agentrax are you running? (e.g. v0.1.0)
14+
placeholder: "v0.1.0"
15+
validations:
16+
required: true
17+
- type: input
18+
id: k8s-version
19+
attributes:
20+
label: Kubernetes Version
21+
description: Output of `kubectl version`
22+
placeholder: "v1.30.0"
23+
validations:
24+
required: true
25+
- type: textarea
26+
id: description
27+
attributes:
28+
label: Problem Description
29+
description: A clear description of the bug.
30+
validations:
31+
required: true
32+
- type: textarea
33+
id: steps
34+
attributes:
35+
label: Steps to Reproduce
36+
description: Exact commands or YAML manifests used to reproduce the issue.
37+
placeholder: |
38+
1. Apply AgentDeployment YAML...
39+
2. Inspect status...
40+
3. Observed error...
41+
validations:
42+
required: true
43+
- type: textarea
44+
id: logs
45+
attributes:
46+
label: Operator Logs / Status Output
47+
description: Relevant controller-manager logs (`kubectl logs -n agentrax-system ...`).
48+
render: shell
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Feature Request
2+
description: Propose a new feature, integration, or enhancement for Agentrax.
3+
labels: ["kind/feature"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
We love ideas! Please describe the use case and proposed feature.
9+
- type: textarea
10+
id: problem
11+
attributes:
12+
label: Is your feature request related to a problem?
13+
description: A clear description of what you are trying to achieve or what limitation you encountered.
14+
validations:
15+
required: true
16+
- type: textarea
17+
id: solution
18+
attributes:
19+
label: Describe the Solution You'd Like
20+
description: A clear explanation of what should happen, new CRD fields, or controller behavior.
21+
validations:
22+
required: true
23+
- type: textarea
24+
id: alternatives
25+
attributes:
26+
label: Describe Alternatives Considered
27+
description: Any alternative solutions or workarounds you've considered.

.github/pull_request_template.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
## Description
2+
3+
<!-- Describe the changes made in this pull request and the rationale behind them. -->
4+
5+
## Related Issue
6+
7+
<!-- Fixes #123 / Relates to #123 -->
8+
9+
## Type of Change
10+
11+
- [ ] Bug fix (non-breaking change fixing an issue)
12+
- [ ] New feature (non-breaking change adding functionality)
13+
- [ ] Breaking change (fix or feature that causes existing functionality to not work as expected)
14+
- [ ] Documentation / Refactoring / Chore
15+
16+
## Verification & Testing
17+
18+
- [ ] Code passes formatting and linting: `make lint`
19+
- [ ] Unit and envtest integration tests pass: `make test`
20+
- [ ] End-to-end tests pass (if applicable): `go test ./test/e2e/...`
21+
- [ ] Helm chart lints cleanly: `helm lint charts/agentrax/`
22+
- [ ] CRD and code generation up to date: `make manifests generate && git diff --exit-code`
23+
24+
## Checklist
25+
26+
- [ ] My code follows the Go and controller-runtime conventions of this project.
27+
- [ ] I have added/updated GoDoc comments for all exported symbols.
28+
- [ ] I have updated documentation or architecture docs if CRD schemas/boundaries changed.

.github/workflows/helm-release.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: Helm Chart Release
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- "charts/**"
9+
workflow_dispatch:
10+
11+
permissions:
12+
contents: write
13+
14+
jobs:
15+
release:
16+
name: Package & Publish Helm Chart
17+
runs-on: ubuntu-latest
18+
steps:
19+
- name: Checkout Code
20+
uses: actions/checkout@v4
21+
with:
22+
fetch-depth: 0
23+
24+
- name: Configure Git User
25+
run: |
26+
git config user.name "$GITHUB_ACTOR"
27+
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
28+
29+
- name: Set up Helm
30+
uses: azure/setup-helm@v4
31+
with:
32+
version: v3.14.0
33+
34+
- name: Run Chart Releaser Action
35+
uses: helm/chart-releaser-action@v1.6.0
36+
env:
37+
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
38+
with:
39+
charts_dir: charts

.github/workflows/release.yml

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- "v*"
7+
8+
permissions:
9+
contents: write
10+
packages: write
11+
12+
jobs:
13+
release:
14+
name: Build, Publish & Release
15+
runs-on: ubuntu-latest
16+
steps:
17+
- name: Checkout Code
18+
uses: actions/checkout@v4
19+
with:
20+
fetch-depth: 0
21+
22+
- name: Set up Go
23+
uses: actions/setup-go@v5
24+
with:
25+
go-version: "1.23"
26+
cache: true
27+
28+
- name: Set up QEMU (multi-platform)
29+
uses: docker/setup-qemu-action@v3
30+
31+
- name: Set up Docker Buildx
32+
uses: docker/setup-buildx-action@v3
33+
34+
- name: Log in to GitHub Container Registry
35+
uses: docker/login-action@v3
36+
with:
37+
registry: ghcr.io
38+
username: ${{ github.actor }}
39+
password: ${{ secrets.GITHUB_TOKEN }}
40+
41+
- name: Extract Tag Name
42+
id: meta
43+
run: |
44+
TAG_NAME=${GITHUB_REF#refs/tags/}
45+
echo "tag=${TAG_NAME}" >> $GITHUB_OUTPUT
46+
echo "Building release for tag: ${TAG_NAME}"
47+
48+
- name: Build and Push Multi-Arch Docker Image
49+
uses: docker/build-push-action@v6
50+
with:
51+
context: .
52+
platforms: linux/amd64,linux/arm64
53+
push: true
54+
tags: |
55+
ghcr.io/${{ github.repository }}:${{ steps.meta.outputs.tag }}
56+
ghcr.io/${{ github.repository }}:latest
57+
cache-from: type=gha
58+
cache-to: type=gha,mode=max
59+
60+
- name: Install Kustomize & Generate Consolidated YAML
61+
run: |
62+
make kustomize
63+
mkdir -p dist
64+
./bin/kustomize edit set image controller=ghcr.io/${{ github.repository }}:${{ steps.meta.outputs.tag }} --dir config/manager
65+
./bin/kustomize build config/default > dist/install.yaml
66+
67+
- name: Create GitHub Release
68+
uses: softprops/action-gh-release@v2
69+
with:
70+
name: "Release ${{ steps.meta.outputs.tag }}"
71+
tag_name: ${{ steps.meta.outputs.tag }}
72+
draft: false
73+
prerelease: false
74+
generate_release_notes: true
75+
files: |
76+
dist/install.yaml

CONTRIBUTING.md

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
# Contributing to Agentrax
2+
3+
Thank you for your interest in contributing to **Agentrax**! We welcome contributions from developers, DevOps engineers, and AI infrastructure enthusiasts.
4+
5+
---
6+
7+
## Code of Conduct
8+
9+
Please be respectful and collaborative in all communications, issue threads, and pull requests.
10+
11+
---
12+
13+
## Development Prerequisites
14+
15+
Ensure you have the following installed on your development machine:
16+
17+
- **Go**: `1.23` or later
18+
- **Docker**: `20.10+` with BuildKit enabled
19+
- **Kind**: `v0.22+` (for local E2E cluster testing)
20+
- **Kubectl**: `v1.30+`
21+
- **Helm**: `v3.14+`
22+
- **Kustomize & Controller-Gen**: Automatically managed via `make kustomize` and `make controller-gen` (installed to `./bin`)
23+
24+
---
25+
26+
## Getting Started
27+
28+
1. **Fork and Clone**:
29+
```bash
30+
git clone https://github.com/<your-username>/agentrax.git
31+
cd agentrax
32+
```
33+
34+
2. **Install Local Git Quality Hooks**:
35+
```bash
36+
make setup-git-hooks
37+
```
38+
*Installs pre-commit hooks (`go fmt`, `go vet`, `golangci-lint`) and pre-push hooks (`codegen-drift`, `make test`, `helm lint`).*
39+
40+
3. **Run Unit & EnvTest Integration Tests**:
41+
```bash
42+
make test
43+
```
44+
45+
4. **Run Linter**:
46+
```bash
47+
make lint
48+
```
49+
50+
5. **Generate Code & CRD Manifests**:
51+
If you modify types in `api/v1alpha1/`, regenerate DeepCopy methods, CRD schemas, and RBAC roles:
52+
```bash
53+
make manifests generate
54+
```
55+
56+
---
57+
58+
## Running Local E2E Tests (Kind)
59+
60+
To test changes against a live Kind cluster:
61+
62+
```bash
63+
# 1. Create Kind cluster
64+
kind create cluster --name agentrax-e2e
65+
66+
# 2. Deploy external dependencies (cert-manager, Prometheus CRDs, Gateway API CRDs)
67+
make deploy-deps
68+
69+
# 3. Run the automated live E2E suite
70+
go test ./test/e2e/... -v -count=1 --timeout 15m
71+
```
72+
73+
---
74+
75+
## Code Guidelines & Standards
76+
77+
- **Error Wrapping**: Wrap errors with context (e.g. `fmt.Errorf("reconciling deployment: %w", err)`).
78+
- **GoDoc Comments**: Every exported package, type, constant, and function must have a GoDoc comment starting with the symbol name.
79+
- **CRD Comments**: Comments on fields in `api/v1alpha1/` double as OpenAPI schema descriptions—keep them clear and precise.
80+
- **Status Updates**: Always update status last in reconcile loops using `apimeta.SetStatusCondition`.
81+
82+
---
83+
84+
## Submitting Pull Requests
85+
86+
1. Create a feature branch: `git checkout -b feature/my-feature-name`.
87+
2. Commit your changes with clear, descriptive commit messages.
88+
3. Ensure all tests pass: `make lint && make test`.
89+
4. Open a Pull Request against the `main` branch with a description of the problem solved and testing performed.

SECURITY.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Security Policy
2+
3+
## Supported Versions
4+
5+
Security updates and patches are provided for the following versions of Agentrax:
6+
7+
| Version | Supported |
8+
| ------- | ------------------ |
9+
| 0.1.x | :white_check_mark: |
10+
| < 0.1 | :x: |
11+
12+
---
13+
14+
## Reporting a Vulnerability
15+
16+
We take the security of Agentrax and all deployed AI infrastructure seriously.
17+
18+
If you discover a security vulnerability, please do **NOT** open a public issue. Instead, report it privately:
19+
20+
1. **GitHub Security Advisory**: Use the [Private Vulnerability Reporting](https://github.com/gitcommitankit/agentrax/security/advisories/new) feature on GitHub.
21+
2. **Email**: Alternatively, send details to `gitcommitankit@gmail.com` with the subject `[SECURITY] Agentrax Vulnerability Report`.
22+
23+
### What to Include
24+
- Detailed description of the vulnerability.
25+
- Steps or proof-of-concept to reproduce the issue.
26+
- Potential impact and affected configurations.
27+
- Any suggested remediations or mitigations.
28+
29+
### Response Timeline
30+
- **Initial Response**: Within 48 hours.
31+
- **Status Update**: Within 7 business days with a remediation plan.
32+
- **Public Disclosure**: Coordinated after a patch has been released and verified.

config/manager/kustomization.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ kind: Kustomization
66
images:
77
- name: controller
88
newName: ghcr.io/gitcommitankit/agentrax
9-
newTag: latest
9+
newTag: v0.1.0

0 commit comments

Comments
 (0)