Skip to content

OSSM-13581: Add ARCHITECTURE.md documenting high-level system design - #2035

Open
jewertow wants to merge 6 commits into
istio-ecosystem:mainfrom
jewertow:architecture-md
Open

jewertow wants to merge 6 commits into
istio-ecosystem:mainfrom
jewertow:architecture-md

Conversation

@jewertow

Copy link
Copy Markdown
Contributor

No description provided.

jewertow and others added 2 commits June 25, 2026 19:46
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Jacek Ewertowski <jacek.ewertowski1@gmail.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Jacek Ewertowski <jacek.ewertowski1@gmail.com>
@jewertow
jewertow requested a review from a team as a code owner June 25, 2026 17:53
@jewertow
jewertow requested a review from fjglira June 25, 2026 17:53
@codecov

codecov Bot commented Jun 25, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 76.81%. Comparing base (147fde9) to head (cc78f3f).
⚠️ Report is 46 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2035      +/-   ##
==========================================
+ Coverage   76.57%   76.81%   +0.23%     
==========================================
  Files          58       58              
  Lines        3181     3222      +41     
==========================================
+ Hits         2436     2475      +39     
- Misses        608      609       +1     
- Partials      137      138       +1     
Flag Coverage Δ
integration-tests 69.53% <ø> (-0.76%) ⬇️
unit-tests 53.16% <ø> (+0.60%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@FilipB FilipB left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This is great, it would be nice to have some automation which would keep this up to date.

Comment thread ARCHITECTURE.md
sail-operator/
├── api/ # CRD type definitions
│ ├── v1/ # Stable API group (Istio, IstioRevision, IstioRevisionTag, IstioCNI)
│ └── v1alpha1/ # Experimental API group (ZTunnel)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Ztunnel is already in v1 too

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Good point, thanks! Done.

Comment thread ARCHITECTURE.md Outdated
├── controllers/ # Kubernetes controller implementations
│ ├── istio/ # Top-level Istio CR controller
│ ├── istiorevision/ # Revision lifecycle via Helm charts
│ ├── istiorevisiontag/ # Revision traffic routing

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Revision traffic routing might be a bit confusing?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I totally agree. I changed the description to "Revision tag management".

Comment thread ARCHITECTURE.md Outdated
├── enhancements/ # Sail Enhancement Proposals (SEPs)
├── docs/ # Documentation
├── common/ # Shared Makefile infrastructure (from istio/common-files)
├── ossm/ # OpenShift Service Mesh downstream code

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Do we want to include this to upstream doc when the dir is not there?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Sorry... I started in midstream, and this is leftover from the previous source code. I removed it.

Comment thread ARCHITECTURE.md
## Project Structure

```
sail-operator/

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

nit: maybe sort it alphabetically so it matches order visible in GH UI

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I agree. Done.

Comment thread ARCHITECTURE.md
Profile overlay (default, openshift, demo, ambient, etc.)
Image digest injection (from config.properties)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Do we want to include this? I don't think an user can touch config.properties right?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Yes, users do not touch it, but the diagram is for an agent, so I think it's valuable information. Could we leave it as is?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Sounds good.

jewertow and others added 4 commits July 1, 2026 20:24
Signed-off-by: Jacek Ewertowski <jacek.ewertowski1@gmail.com>
Signed-off-by: Jacek Ewertowski <jacek.ewertowski1@gmail.com>
Signed-off-by: Jacek Ewertowski <jacek.ewertowski1@gmail.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Jacek Ewertowski <jacek.ewertowski1@gmail.com>
@jewertow
jewertow requested a review from FilipB July 1, 2026 18:48
Comment thread ARCHITECTURE.md
Comment on lines +40 to +69
```
┌─────────────────────────────────────────────┐
│ Kubernetes API │
└───────────────────┬─────────────────────────┘
┌───────────────────▼─────────────────────────┐
│ Sail Operator (Manager) │
│ │
│ ┌──────────┐ ┌───────────┐ ┌─────────┐ │
│ │ Istio │ │ IstioCNI │ │ ZTunnel │ │
│ │Controller│ │Controller │ │Controller│ │
│ └────┬─────┘ └─────┬─────┘ └────┬────┘ │
│ │ │ │ │
│ ┌────▼─────────┐ │ │ │
│ │IstioRevision │ │ │ │
│ │ Controller │ │ │ │
│ └────┬─────────┘ │ │ │
│ │ │ │ │
│ ┌────▼──────────────▼──────────────▼────┐ │
│ │ Helm ChartManager │ │
│ │ (install/upgrade embedded charts) │ │
│ └────┬─────────────────────────────────┘ │
│ │ │
└───────┼─────────────────────────────────────┘
┌───────▼─────────────────────────────────────┐
│ Deployed Istio Components │
│ (istiod, CNI DaemonSet, ZTunnel, gateways) │
└─────────────────────────────────────────────┘
```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This is misaligned..
Also you can use something like mermaid to generate an svg diagram (supported by GH) - not just here

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

+1 to this

@FilipB

FilipB commented Jul 2, 2026

Copy link
Copy Markdown
Collaborator

LGTM, not approving so others can review too.

Comment thread ARCHITECTURE.md
Chart defaults (values.yaml from embedded chart)
Profile overlay (default, openshift, demo, ambient, etc.)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The "Image digest injection" comes before "ApplyProfilesAndPlatform"
See

// apply image digests from configuration, if not already set by user

Also, there is an additional step where we apply the vendor specific defaults.

userValues, err := istiovalues.ApplyIstioVendorDefaults(version, userValues)

@fjglira fjglira left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

it looks good to me, adding a hold label until comments from others reviewers are addressed

@fjglira

fjglira commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

Hey @jewertow can we check the latest comment to see if we can merge the PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants