Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
c676270
Marking Istio 1.24.z and 1.25.z as EOL (#1257)
FilipB Oct 7, 2025
84fe1ec
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Oct 8, 2025
6be767d
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Oct 9, 2025
97f104c
istio: ignore `defaultRevision` (#1178)
jewertow Oct 9, 2025
186486f
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Oct 11, 2025
0e6ee33
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Oct 12, 2025
05f0d15
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Oct 13, 2025
165776b
Fix observability adoc format error (#1265)
yxun Oct 13, 2025
26ce1dd
Hardcode OLM version to 0.35.0 (#1272)
FilipB Oct 14, 2025
84294eb
docs: ztunnel: mention resource name restriction (#1266)
zmiklank Oct 14, 2025
eeb5ef6
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Oct 15, 2025
d429735
Add AI agents configuration and domain knowledge (#1246)
fjglira Oct 15, 2025
2543fb8
Skip reconciliation when using sailoperator.io/ignore annotation (#1256)
bmangoen Oct 15, 2025
57dbc8c
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Oct 16, 2025
8c4f441
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Oct 17, 2025
2f08cbd
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Oct 19, 2025
5bf66f4
Document co-existence of ambient and sidecar mode (#1281)
sridhargaddam Oct 20, 2025
8148656
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Oct 21, 2025
beff729
Adding documentation specific to migrate from sidecar to ambient mode…
fjglira Oct 21, 2025
78090d9
Update sidecar to ambient migration doc (#1295)
MaxBab Oct 21, 2025
8d7a67f
Updating migration from sidecar to Ambient mode from review (#1294)
fjglira Oct 21, 2025
38ddb8a
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Oct 22, 2025
a8d66a8
Small change in the migration from sidecar to ambient doc (#1300)
fjglira Oct 22, 2025
cbf01b1
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Oct 23, 2025
0427a05
Make sure a correct helm values file is used (#1297)
FilipB Oct 23, 2025
d0fa98f
fix: add v1.26.1 version (#1301)
dgn Oct 23, 2025
d2be898
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Oct 24, 2025
93e361a
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Oct 26, 2025
1a57af5
Fix ZTunnel name field in UI (#1284)
MaxBab Oct 26, 2025
57180e0
Update Ztunnel config CRD flags (#1117)
MaxBab Oct 27, 2025
1962c08
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Oct 28, 2025
f412fc9
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Oct 29, 2025
73ee94d
docs: IstioCNI: mention resource name restriction (#1288)
chinaran Oct 29, 2025
a97fea6
Increase e2e timeout when waiting for service LB (#1314)
mkolesnik Oct 29, 2025
1c80d75
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Oct 30, 2025
55f9cb6
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Oct 31, 2025
508ba32
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Nov 2, 2025
c81cae3
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Nov 3, 2025
5c116a5
Prevent pruning IstioRevisions with unknown InUse status (#1322)
sridhargaddam Nov 3, 2025
bbf470f
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Nov 4, 2025
44b8127
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Nov 5, 2025
d0fc46a
Update sleep kustomization file (#1327)
mkralik3 Nov 5, 2025
ea647c7
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Nov 7, 2025
d1627f4
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Nov 8, 2025
7f98f5b
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Nov 9, 2025
979372d
Increase timeouts in multicluster tests (#1337)
mkolesnik Nov 10, 2025
41b5ea1
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Nov 11, 2025
a7a5832
Use openshift-service-mesh org for our fork of community-operators-pr…
FilipB Nov 11, 2025
68d9d37
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Nov 12, 2025
b3f5773
Enhance IstioRevision dependency check to include ztunnel status (#1334)
sridhargaddam Nov 13, 2025
8945b54
CI: validate only the first commit message from the PR (#1342)
sridhargaddam Nov 13, 2025
8a949d0
Add Claude Code command for updating EOL Istio versions (#1326)
FilipB Nov 14, 2025
6c916ef
Fix make gen errors when vendor folder is present (#1348)
sridhargaddam Nov 17, 2025
fddcf9e
Adding Istio 1.28.0 (#1344)
FilipB Nov 17, 2025
b22468f
Test External Control Plane on latest versions (#1352)
mkolesnik Nov 17, 2025
fd7e684
Unpining OLM version as 0.38.0 is reverting the breaking change (#1347)
FilipB Nov 17, 2025
2402ed5
fix: update codecov ignore pattern for tests directory (#1357)
rafaelvzago Nov 17, 2025
3ff9627
Make getProxyVersion robust to changes in istioctl proxy-status forma…
unsortedhashsets Nov 20, 2025
46b00f5
Changes on crd-ref-docs templates to add API version to the CRD (#1368)
fjglira Nov 20, 2025
6cf4cdd
Make sure to skip cleanup of operator in e2e (#1351)
mkolesnik Nov 20, 2025
4908014
fix: pin helm to v3 (#1375)
dgn Nov 21, 2025
aebc5eb
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Nov 22, 2025
a2fb274
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Nov 23, 2025
4c62f0d
Automator: Update dependencies in istio-ecosystem/sail-operator@main …
openshift-service-mesh-bot Nov 24, 2025
d2cbd96
Automatic update for Istio versions in Docs (#1374)
fjglira Nov 24, 2025
2f1ea60
api: add ZTunnel v1 CRD version (#1365)
dgn Nov 25, 2025
68f3436
Remove Profile printcolumn from ztunnel status (#1386)
sridhargaddam Nov 25, 2025
98ed1a9
Adding debug information for sample applications (#1390)
fjglira Nov 26, 2025
ec1f62e
Update AGENTS.md and domain knowledge files (#1395)
sridhargaddam Nov 26, 2025
2cd754a
Add CLAUDE.md to the sail operator repo (#1402)
sridhargaddam Nov 27, 2025
afdde80
Fix SIGPIPE error in update-istio-in-docs.sh script (#1404)
fjglira Nov 27, 2025
cf775db
Adding make target to run update-dependencies script (#1405)
fjglira Nov 28, 2025
cb9fb2c
Automated merge
Nov 28, 2025
c52ddf4
Automated regeneration
Nov 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
286 changes: 286 additions & 0 deletions .agents/domain_knowledge_prompt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,286 @@
# Create Domain Knowledge File

This guide outlines best practices for creating domain knowledge files in the `.agents/knowledge/` folder. These files serve as a source of truth for understanding the Sail Operator architecture, patterns, and implementation details.

## Naming Convention

- Use kebab-case for filenames: `domain-knowledge-component-name.md`
- Use descriptive names that clearly indicate the content: `domain-knowledge-api-types.md`, `domain-knowledge-controllers.md`, etc.
- Prefix all files with `domain-knowledge-` for consistency

## Structure

Each domain knowledge file should follow this structure:

1. **Title**: Clear, descriptive title at the top using H1 (`# Title`)
2. **Introduction**: Brief overview of what the document explains
3. **Conceptual Overview**: High-level explanation of the concept or component
4. **Implementation Architecture**: Key components and their relationships
5. **Code Implementation**: Relevant code patterns with examples
6. **Key Interfaces/Models**: Important data structures, interfaces, or protocols
7. **Example Use Cases**: Real-world examples of how the component is used
8. **Best Practices**: Guidelines for working with this component
9. **Related Components**: Links to other domain knowledge files that relate to this one

## Content Guidelines

### 1. Technical Depth

- Balance high-level concepts with implementation details
- Include enough information for new developers to understand the system
- Reference specific file paths for key implementations
- Show actual code examples, not just descriptions

### 2. Code Examples

- Include small, focused code snippets that illustrate key patterns
- Reference file paths above each code example
- Use Go syntax highlighting for Go code examples
- Keep examples concise, focusing on the most important patterns

Example:
```go
// From controllers/istio/istio_controller.go
func (r *IstioReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
log := r.Log.WithValues("istio", req.NamespacedName)

// Fetch the Istio instance
istio := &v1.Istio{}
if err := r.Get(ctx, req.NamespacedName, istio); err != nil {
return ctrl.Result{}, client.IgnoreNotFound(err)
}

return r.reconcile(ctx, istio)
}
```

### 3. Component Relationships

- Clearly explain how components interact with each other
- Use numbered lists or flow descriptions to show sequences
- Explain communication patterns between services

### 4. File References

- Include complete file paths to make it easy to find implementations
- Group related files by functionality or component
- List both interface/contract files and implementations

Example:
```
Sail Operator Istio Custom Resources:
- API Definitions: api/v1/istio_types.go
- Controller Implementation: controllers/istio/istio_controller.go
- Status Management: controllers/istio/istio_status.go
- Helm Integration: pkg/helm/istio_installer.go
- Version Management: pkg/istioversion/version_resolver.go
```

### 5. Best Practices

- Include best practices specific to the component
- Highlight common pitfalls and how to avoid them
- Show code examples of proper usage patterns

## Required Sections for Common Component Types

### API Components (Custom Resources)

- Resource specification structure
- Status field definitions
- Validation patterns
- Controller reconciliation flow
- Example resource manifests

### Controller Components

- Reconciliation patterns
- Error handling strategies
- Status update patterns
- Event recording
- Example controller implementations

### Testing Components

- Test structure patterns
- Mock/fake usage
- Integration test setup
- E2E test scenarios
- Platform-specific considerations (macOS/Podman)

### Helm Integration

- Chart management patterns
- Values processing
- Version compatibility
- Platform customization
- Troubleshooting approaches

### Version Management

- Version resolution logic
- Compatibility matrices
- Upgrade strategies
- Chart selection
- Validation patterns

## Example Domain Knowledge File Structure

```markdown
# Sail Operator [Component Name] Domain Knowledge

Brief introduction explaining the purpose and importance of this component in the Sail Operator.

## Overview

High-level conceptual explanation of how this component works within the Sail Operator ecosystem.

## Architecture

How this component fits into the Sail Operator system:
- Relationship to Istio control plane management
- Integration with Kubernetes operator patterns
- Connection to other Sail Operator components

## Implementation Details

### Key Patterns

Important implementation patterns specific to Sail Operator with code examples.

### Component Flow

Step-by-step explanation of how data/requests flow through the component:
1. User creates/updates Custom Resource
2. Controller receives reconciliation request
3. Component processes the change
4. Istio components are updated/configured
5. Status is reported back

## Key Files

List of critical files with their purposes:
- API definitions in `api/v1/`
- Controller implementations in `controllers/`
- Business logic in `pkg/`
- Tests in `tests/`

## Examples

### Basic Usage
```yaml
apiVersion: sailoperator.io/v1
kind: [ResourceType]
metadata:
name: example
spec:
# Component-specific configuration
```

### Advanced Configuration
Real-world examples showing complex scenarios.

## Testing Patterns

### Unit Tests
- Location: `[component]_test.go` files
- Framework: Standard Go testing
- Patterns: Table-driven tests for business logic

### Integration Tests
- Location: `tests/integration/`
- Framework: Ginkgo + Gomega + envtest
- Focus: Controller behavior with fake Kubernetes API

### E2E Tests
- Location: `tests/e2e/`
- Framework: Ginkgo + Gomega + real clusters
- Scenarios: Complete workflow validation

## Best Practices

Guidelines for working with this component effectively:
- Follow Kubernetes operator patterns
- Use controller-runtime best practices
- Implement proper error handling and status reporting
- Ensure compatibility with multiple Istio versions

## Platform Considerations

### macOS Development
- Reference `docs/macos/develop-on-macos.adoc` for Podman setup
- Use `CONTAINER_CLI=podman` for container operations
- Consider architecture differences (ARM64 vs AMD64)

### OpenShift
- Special considerations for OpenShift deployments
- Security context constraints
- Network policy requirements

### Multi-Platform Testing
- KIND cluster setup variations
- Container runtime differences
- Architecture-specific image handling

## Troubleshooting

Common issues and solutions:
- Controller reconciliation failures
- Resource status not updating
- Platform-specific deployment issues

## Related Components

Links to related Sail Operator domain knowledge files:
- [API Types](knowledge/domain-knowledge-api-types.md)
- [Controllers](knowledge/domain-knowledge-controllers.md)
- [Testing Framework](knowledge/domain-knowledge-testing-framework.md)
- [Version Management](knowledge/domain-knowledge-version-management.md)
```

## Maintenance

- Update domain knowledge files when Sail Operator components change significantly
- Keep code examples current with the latest Sail Operator implementation patterns
- Add new domain knowledge files when new Sail Operator features are added
- Review and update Istio version compatibility information regularly
- Update platform-specific guidance when new platforms are supported

## Sail Operator Specific Considerations

When creating domain knowledge files, include these Sail Operator-specific elements:

### Istio Integration
- Explain how the component relates to Istio control plane management
- Document Helm chart integration patterns
- Reference Istio version compatibility requirements
- Include examples of Istio configuration values

### Kubernetes Operator Patterns
- Follow controller-runtime best practices
- Document Custom Resource specifications
- Explain status field usage and condition patterns
- Include proper RBAC considerations

### Multi-Version Support
- Document how components handle multiple Istio versions
- Explain version resolution and compatibility checking
- Include upgrade and downgrade scenarios

### Platform Support
- **macOS Development**: Reference `docs/macos/develop-on-macos.adoc` for Podman setup
- **OpenShift**: Document OCP-specific requirements (CNI, SCC, etc.)
- **KIND/minikube**: Include local development cluster considerations
- **Multi-architecture**: ARM64 vs AMD64 deployment differences

### Testing Integration
- Reference Sail Operator testing framework patterns
- Include examples from `tests/integration/` and `tests/e2e/`
- Document test environment setup (envtest, KIND, OCP)
- Explain container runtime alternatives (Docker vs Podman)

### Development Workflow
- Reference Sail Operator Makefile targets
- Include examples of local development workflows
- Document debugging approaches specific to operator development
- Explain SEP (Sail Enhancement Proposal) process for API changes
Loading