Skip to content
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

Support for Zarf in a Connected Environment #1051

Closed
UncleGedd opened this issue Nov 29, 2022 · 3 comments · Fixed by #1105
Closed

Support for Zarf in a Connected Environment #1051

UncleGedd opened this issue Nov 29, 2022 · 3 comments · Fixed by #1105

Comments

@UncleGedd
Copy link
Contributor

Is your feature request related to a problem? Please describe.
I'd like to use Zarf for declarative deployments, but I'm not deploying in an airgapped environment. In other words, I don't need the Gitea server, container registry or mutating webhook.

Describe the solution you'd like
I'd like to be able to create a Zarf package that doesn't depend on the Gitea server, container registry or Zarf agent. In other words, I want to use Zarf without its mutating webhook.

Describe alternatives you've considered

  • I know I can add the zarf-agent=ignore label to namespaces, but I'd like to not deploy the agent at all
  • Technically, I could just use the Gitea server and container registry, but the resulting package is >10GB and it was error-prone during creation (I had issues related to caching); this is not tenable for my non-platform dev audience to use.

Additional context
Why I want to use Zarf even though I'm not in an airgapped environment:

  • Instead of having app teams fork my IaC/CaC, I want an immutable artifact that can be deployed that abstracts away some of the complexity around K8s, Flux, etc.
  • This artifact needs to be immutable so I can ensure app teams don't change the IaC/CaC and inadvertently violate security controls
  • I want non-platform devs to be able to easily perform cluster upgrades
@jeff-mccoy
Copy link
Contributor

Some questions as this is a pretty fundamental shift for zarf that I'm not sure will be super easy and will break full portability/some planned enforcement things:

  • Was this a big bang deployment? What was the total binary size?
  • Can you clarify you had issues creating packages, but not deploying, or both?
  • What were the cache issues? When I've seen these they were often a one-off and not a continual issue once the offending entry was resolved.
  • How are you distributing your package? Via OCI, file transfer or just giving users a repo and having them create the package?
  • To clarify the issue isn't the webhook or other init package assets as much as a very large package having trouble being built, correct?
  • If these components were removed would you still deploy everything through zarf?

Technically you can do this now, though we consider it somewhat of an anti-pattern today. Some methods (all these assume you don't specify images or repos in later zarf packages):

  • use a custom init package without the extra stuff
  • remove or disable the agent in a secondary package (to avoid creating your own init)
  • the webhook ignore label works on namespaces too, so you can create a namespace label for the namespaces you don't want zarf to care about

@UncleGedd
Copy link
Contributor Author

  • Was this a big bang deployment? What was the total binary size?
    • it's Big Bang + some 3rd party apps on EKS; I don't recall the total binary size
  • Can you clarify you had issues creating packages, but not deploying, or both?
    • I had issues with SBOM generation during package creation, but this was resolved by clearing the Zarf cache. Understood the SBOM generation is not mandatory
  • What were the cache issues? When I've seen these they were often a one-off and not a continual issue once the offending entry was resolved.
    • Not sure exactly, but clearing the cache fixed the issue
  • How are you distributing your package? Via OCI, file transfer or just giving users a repo and having them create the package?
    • Haven't nailed this down, but I'd like to attach the package to Github Releases
  • To clarify the issue isn't the webhook or other init package assets as much as a very large package having trouble being built, correct?
    • Negative. My org simply doesn't want to use the container registry or Gitea server because we are already connected to external ones
  • If these components were removed would you still deploy everything through zarf?
    • I want to use Zarf to create a declarative upgrade process

@jeff-mccoy jeff-mccoy mentioned this issue Dec 15, 2022
6 tasks
@jeff-mccoy
Copy link
Contributor

@UncleGedd and I have met and discussed this issue now and have a lightweight way ahead in PR #1105 that I do not believe breaks the core design of Zarf, but allows a lighter transition into Zarf's declarative style.

jeff-mccoy added a commit that referenced this issue Dec 16, 2022
Provides the ability to create Zarf packages intended to work in
online-only environments, i.e., without the internal Zarf airgap
components typically provided by `zarf init`. Also adds early FAQ.

## Related Issue
Fixes #1051 
Fixes #1046 
Related to #1134 

Co-authored-by: unclegedd <[email protected]>
Co-authored-by: Wayne Starr <[email protected]>
Co-authored-by: MxNxPx <[email protected]>
Repository owner moved this from New Requests to Done in Zarf Project Board Dec 16, 2022
Noxsios pushed a commit that referenced this issue Mar 8, 2023
Provides the ability to create Zarf packages intended to work in
online-only environments, i.e., without the internal Zarf airgap
components typically provided by `zarf init`. Also adds early FAQ.

## Related Issue
Fixes #1051 
Fixes #1046 
Related to #1134 

Co-authored-by: unclegedd <[email protected]>
Co-authored-by: Wayne Starr <[email protected]>
Co-authored-by: MxNxPx <[email protected]>
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 a pull request may close this issue.

2 participants