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

Big Bang Component Extension #1094

Merged
merged 138 commits into from
Mar 3, 2023
Merged

Big Bang Component Extension #1094

merged 138 commits into from
Mar 3, 2023

Conversation

runyontr
Copy link
Contributor

@runyontr runyontr commented Dec 6, 2022

Introduces the first Zarf Extension: bigbang. This PR establishes the pattern for create-time extensions and provides a simple/reliable way to deploy Big Bang using Zarf. In addition to collecting all the necessary assets, including Flux, the extension adds component actions to verify the proper deployment of Big Bang Packages. In the event of a failure during deployment, details support data is also provided to the user to help expedite troubleshooting.

Example usage:

components:
  - name: bigbang
    required: true
    extensions:
      bigbang:
        version: 1.53.0
        valuesFiles:
          # Istio configs
          - config/ingress.yaml
          # Use Kyverno instead of Gatekeeper
          - config/kyverno.yaml

Conversation around #1093

The following things should be completed in future issues

  • Ensure Cleanup works consistently and smoothly when un-installing
  • Add labels to services for zarf connect
  • Perform upgrade test after Zarf CRD upgrade support + Big Bang 1.55 are released.

corang and others added 9 commits December 15, 2022 14:15
@corang
Copy link
Contributor

corang commented Jan 6, 2023

Progress:

  • Use builtin deployment methods instead of reimplementation
  • Make deployment airgap compatible
  • Separate flux into a separate component
  • Support multiple bigbangs in a package
  • Support BB 1.44+
  • Modify schema to accommodate bigbang component type
  • Validate bigbang components
  • Clean up new bigbang code
  • Test bigbang component
  • Modify bigbang package extra files and readme to conform with new features
  • Change from hardcoded image lists to parsing from bigbang images yaml release object during create

Different PR?

  • Make zarf wait for all helmreleases to reconcile before declaring package "deployed"

@runyontr

@runyontr
Copy link
Contributor Author

runyontr commented Jan 6, 2023

Support BB 1.44+

I think we could add this backwards compatibility after getting it working for the current (or A version) so people can play with it and see how it works. Thoughts?

@corang
Copy link
Contributor

corang commented Jan 6, 2023

I already have versions 1.44-1.49 done, about to be finished with 1.50

jeff-mccoy
jeff-mccoy previously approved these changes Feb 27, 2023
src/pkg/utils/sort.go Outdated Show resolved Hide resolved
src/internal/packager/git/push.go Outdated Show resolved Hide resolved
src/internal/packager/helm/repo.go Outdated Show resolved Hide resolved
examples/big-bang/README.md Outdated Show resolved Hide resolved
jeff-mccoy and others added 2 commits February 27, 2023 14:12
Signed-off-by: Tom Runyon <tom@defenseunicorns.com>
Racer159
Racer159 previously approved these changes Feb 28, 2023
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.

lgtm

jeff-mccoy and others added 2 commits February 28, 2023 15:18
@Racer159 Racer159 requested a review from YrrepNoj March 3, 2023 21:38
@Racer159 Racer159 removed the needs-git-sign-off A maintainer still needs to sign the commits within the PR and the PR shouldn't be merged yet. label Mar 3, 2023
@Racer159 Racer159 disabled auto-merge March 3, 2023 23:04
@Racer159 Racer159 merged commit 24e858b into main Mar 3, 2023
@Racer159 Racer159 deleted the bigbang-component branch March 3, 2023 23:05
Noxsios added a commit that referenced this pull request Mar 8, 2023
Introduces the first Zarf Extension: `bigbang`. This PR establishes the
pattern for create-time extensions and provides a simple/reliable way to
deploy [Big Bang](https://p1.dso.mil/products/big-bang) using Zarf. In
addition to collecting all the necessary assets, including Flux, the
extension adds [component
actions](https://docs.zarf.dev/docs/user-guide/component-actions) to
verify the proper deployment of Big Bang Packages. In the event of a
failure during deployment, details support data is also provided to the
user to help expedite troubleshooting.

## Example usage:
```yaml
components:
  - name: bigbang
    required: true
    extensions:
      bigbang:
        version: 1.53.0
        valuesFiles:
          # Istio configs
          - config/ingress.yaml
          # Use Kyverno instead of Gatekeeper
          - config/kyverno.yaml
```

Conversation around #1093 

The following things should be completed in future issues
- [ ] Ensure Cleanup works consistently and smoothly when un-installing
- [ ] Add labels to services for `zarf connect`
- [ ] Perform upgrade test after Zarf CRD upgrade support + Big Bang
1.55 are released.

---------

Signed-off-by: Tom Runyon <tom@defenseunicorns.com>
Co-authored-by: corang <jordan@defenseunicorns.com>
Co-authored-by: Megamind <882485+jeff-mccoy@users.noreply.github.com>
Co-authored-by: Andy Roth <roth.andy@gmail.com>
Co-authored-by: Jeff McCoy <code@jeffm.us>
Co-authored-by: Wayne Starr <me@racer159.com>
Co-authored-by: razzle <harry@razzle.cloud>
Co-authored-by: Wayne Starr <Racer159@users.noreply.github.com>
Noxsios added a commit that referenced this pull request Mar 8, 2023
Introduces the first Zarf Extension: `bigbang`. This PR establishes the
pattern for create-time extensions and provides a simple/reliable way to
deploy [Big Bang](https://p1.dso.mil/products/big-bang) using Zarf. In
addition to collecting all the necessary assets, including Flux, the
extension adds [component
actions](https://docs.zarf.dev/docs/user-guide/component-actions) to
verify the proper deployment of Big Bang Packages. In the event of a
failure during deployment, details support data is also provided to the
user to help expedite troubleshooting.

## Example usage:
```yaml
components:
  - name: bigbang
    required: true
    extensions:
      bigbang:
        version: 1.53.0
        valuesFiles:
          # Istio configs
          - config/ingress.yaml
          # Use Kyverno instead of Gatekeeper
          - config/kyverno.yaml
```

Conversation around #1093

The following things should be completed in future issues
- [ ] Ensure Cleanup works consistently and smoothly when un-installing
- [ ] Add labels to services for `zarf connect`
- [ ] Perform upgrade test after Zarf CRD upgrade support + Big Bang
1.55 are released.

---------

Signed-off-by: Tom Runyon <tom@defenseunicorns.com>
Co-authored-by: corang <jordan@defenseunicorns.com>
Co-authored-by: Megamind <882485+jeff-mccoy@users.noreply.github.com>
Co-authored-by: Andy Roth <roth.andy@gmail.com>
Co-authored-by: Jeff McCoy <code@jeffm.us>
Co-authored-by: Wayne Starr <me@racer159.com>
Co-authored-by: razzle <harry@razzle.cloud>
Co-authored-by: Wayne Starr <Racer159@users.noreply.github.com>
Signed-off-by: razzle <harry@razzle.cloud>
Racer159 added a commit that referenced this pull request Mar 8, 2023
Introduces the first Zarf Extension: `bigbang`. This PR establishes the
pattern for create-time extensions and provides a simple/reliable way to
deploy [Big Bang](https://p1.dso.mil/products/big-bang) using Zarf. In
addition to collecting all the necessary assets, including Flux, the
extension adds [component
actions](https://docs.zarf.dev/docs/user-guide/component-actions) to
verify the proper deployment of Big Bang Packages. In the event of a
failure during deployment, details support data is also provided to the
user to help expedite troubleshooting.

## Example usage:
```yaml
components:
  - name: bigbang
    required: true
    extensions:
      bigbang:
        version: 1.53.0
        valuesFiles:
          # Istio configs
          - config/ingress.yaml
          # Use Kyverno instead of Gatekeeper
          - config/kyverno.yaml
```

Conversation around #1093

The following things should be completed in future issues
- [ ] Ensure Cleanup works consistently and smoothly when un-installing
- [ ] Add labels to services for `zarf connect`
- [ ] Perform upgrade test after Zarf CRD upgrade support + Big Bang
1.55 are released.

---------

Signed-off-by: Tom Runyon <tom@defenseunicorns.com>
Co-authored-by: corang <jordan@defenseunicorns.com>
Co-authored-by: Megamind <882485+jeff-mccoy@users.noreply.github.com>
Co-authored-by: Andy Roth <roth.andy@gmail.com>
Co-authored-by: Jeff McCoy <code@jeffm.us>
Co-authored-by: Wayne Starr <me@racer159.com>
Co-authored-by: razzle <harry@razzle.cloud>
Co-authored-by: Wayne Starr <Racer159@users.noreply.github.com>
Signed-off-by: Wayne Starr <me@racer159.com>
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.