Skip to content

chore(docs): zarf principles draft #3562

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft

Conversation

brandtkeller
Copy link
Member

Description

WIP: drafting some principles for discussion.

Zarf needs objective criteria for reviewing new or modified behavior when submitted from any entity.

This will better allow capability review without the potential for interpreting the decision as subjective.

Related Issue

Fixes #3552

Relates to #

Checklist before merging

@brandtkeller brandtkeller self-assigned this Mar 10, 2025
Copy link

netlify bot commented Mar 10, 2025

Deploy Preview for zarf-docs ready!

Name Link
🔨 Latest commit d7c316e
🔍 Latest deploy log https://app.netlify.com/sites/zarf-docs/deploys/67cf50a8d9ff31000847907e
😎 Deploy Preview https://deploy-preview-3562--zarf-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

Copy link

codecov bot commented Mar 10, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

🚀 New features to boost your workflow:
  • Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Contributor

@Racer159 Racer159 left a comment

Choose a reason for hiding this comment

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

just a few comments for thought

Zarf operates in Kubernetes clusters but does not attempt to replace existing Kubernetes tooling. Instead, Zarf should:
- Focus on enabling package management and deployment in airgapped clusters.
- Complement, rather than compete with, Kubernetes-native solutions (e.g., Helm, Kustomize, and Operator patterns).
- Facilitate cluster initialization and ongoing software management without enforcing opinionated infrastructure choices.
Copy link
Contributor

Choose a reason for hiding this comment

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

It may be worth calling out that in complementing the K8s environment it should also "fit in" from a user and dev experience perspective - i.e. Zarf shouldn't invent its own workflows unless that workflow is just something that doesn't exist (Zarf Values <> Zarf Variables would be a good example there).

Zarf should remain simple to use and operationalize, with considerations such as:
- Clear and concise configuration files that reduce complexity.
- A user-friendly CLI that abstracts away unnecessary details while allowing expert-level control when needed.
- Automation and scripting capabilities that streamline usage in constrained environments.
Copy link
Contributor

Choose a reason for hiding this comment

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

Developer simplicity I think is also key here - there are special things like the zarf dev find-images commands that really help developers build up their packages and gather resources.

## 6. Compatibility and Extensibility
Zarf should be flexible enough to work in various environments while maintaining its core mission. This means:
- Supporting multiple architectures and operating systems where feasible.
- Allowing extensibility through custom package configurations and integrations.
Copy link
Contributor

Choose a reason for hiding this comment

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

Worth calling out its use as a library explicitly here? (since "integrations" could be many things and some of them we may not prefer (i.e. a python script that generates Zarf packages and drives Zarf's CLI would be an "integration" but IMO that would be treated differently from a Go CLI importing Zarf as a library)

- A user-friendly CLI that abstracts away unnecessary details while allowing expert-level control when needed.
- Automation and scripting capabilities that streamline usage in constrained environments.

## 6. Compatibility and Extensibility
Copy link
Contributor

Choose a reason for hiding this comment

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

It may be worth calling out specific expectations around stability of interfaces - i.e. what is "stable" in the CLI (probably a lot but not zarf internal?) or what is exposed in the library

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Document the core Zarf principles
2 participants