mirror of https://github.com/fluxcd/flux2.git
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			51 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Markdown
		
	
			
		
		
	
	
			51 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Markdown
		
	
# Flux GitHub Workflows
 | 
						|
 | 
						|
## End-to-end Testing
 | 
						|
 | 
						|
The e2e workflows run a series of tests to ensure that the Flux CLI and
 | 
						|
the GitOps Toolkit controllers work well all together.
 | 
						|
The tests are written in Go, Bash, Make and Terraform.
 | 
						|
 | 
						|
| Workflow           | Jobs                 | Runner         | Role                                          |
 | 
						|
|--------------------|----------------------|----------------|-----------------------------------------------|
 | 
						|
| e2e.yaml           | e2e-amd64-kubernetes | GitHub Ubuntu  | integration testing with Kubernetes Kind<br/> |
 | 
						|
| e2e-arm64.yaml     | e2e-arm64-kubernetes | Equinix Ubuntu | integration testing with Kubernetes Kind<br/> |
 | 
						|
| e2e-bootstrap.yaml | e2e-boostrap-github  | GitHub Ubuntu  | integration testing with GitHub API<br/>      |
 | 
						|
| e2e-azure.yaml     | e2e-amd64-aks        | GitHub Ubuntu  | integration testing with Azure API<br/>       |
 | 
						|
| scan.yaml          | scan-fossa           | GitHub Ubuntu  | license scanning<br/>                         |
 | 
						|
| scan.yaml          | scan-snyk            | GitHub Ubuntu  | vulnerability scanning<br/>                   |
 | 
						|
| scan.yaml          | scan-codeql          | GitHub Ubuntu  | vulnerability scanning<br/>                   |
 | 
						|
 | 
						|
## Components Update
 | 
						|
 | 
						|
The components update workflow scans the GitOps Toolkit controller repositories for new releases,
 | 
						|
amd when it finds a new controller version, the workflow performs the following steps:
 | 
						|
- Updates the controller API package version in `go.mod`.
 | 
						|
- Patches the controller CRDs version in the `manifests/crds` overlay.
 | 
						|
- Patches the controller Deployment version in `manifests/bases` overlay.
 | 
						|
- Opens a Pull Request against the `main` branch.
 | 
						|
- Triggers the e2e test suite to run for the opened PR.
 | 
						|
 | 
						|
 | 
						|
| Workflow    | Jobs              | Runner        | Role                                                |
 | 
						|
|-------------|-------------------|---------------|-----------------------------------------------------|
 | 
						|
| update.yaml | update-components | GitHub Ubuntu | update the GitOps Toolkit APIs and controllers<br/> |
 | 
						|
 | 
						|
## Release
 | 
						|
 | 
						|
The release workflow is triggered by a semver Git tag and performs the following steps:
 | 
						|
- Generates the Flux install manifests (YAML).
 | 
						|
- Generates the OpenAPI validation schemas for the GitOps Toolkit CRDs (JSON).
 | 
						|
- Generates a Software Bill of Materials (SPDX JSON).
 | 
						|
- Builds the Flux CLI binaries and the multi-arch container images.
 | 
						|
- Pushes the container images to GitHub Container Registry and DockerHub.
 | 
						|
- Signs the sbom, the binaries checksum and the container images with Cosign and GitHub OIDC.
 | 
						|
- Uploads the sbom, binaries, checksums and install manifests to GitHub Releases.
 | 
						|
- Pushes the install manifests as OCI artifacts to GitHub Container Registry and DockerHub.
 | 
						|
- Signs the OCI artifacts with Cosign and GitHub OIDC.
 | 
						|
 | 
						|
| Workflow     | Jobs                   | Runner        | Role                                                 |
 | 
						|
|--------------|------------------------|---------------|------------------------------------------------------|
 | 
						|
| release.yaml | release-flux-cli       | GitHub Ubuntu | build, push and sign the CLI release artifacts<br/>  |
 | 
						|
| release.yaml | release-flux-manifests | GitHub Ubuntu | build, push and sign the Flux install manifests<br/> |
 |