gitops
No long description provided.
Installation
dagger install github.com/seamlezz/daggerverse/gitops@v0.2.2Entrypoint
Return Type
Gitops !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| bootstrapPath | String ! | - | BootstrapPath is the Flux bootstrap kustomization path within the repo. Example: "clusters/local/flux-system" |
| gitRepoName | String ! | - | GitRepoName is the bare repo name in the in-cluster Git mirror. Example: "infra.git" |
| gitBranch | String | "main" | No description provided |
| fluxNamespace | String | "flux-system" | No description provided |
| fluxSourceName | String | "flux-system" | No description provided |
| gitUserName | String | "Winston" | No description provided |
| gitUserEmail | String | "winston@seamlezz.com" | No description provided |
| clusters | [String ! ] | - | Cluster names for Flux Kustomization discovery in checks. Auto-discovered from clusters/ directory if not set. |
| kubeVersion | String | "1.33.0" | No description provided |
| kubeconformSkips | [String ! ] | ["CustomResourceDefinition","VaultDynamicSecret"] | Kubeconform resource kinds to skip. |
| kubeconformIgnores | [String ! ] | ["gotk-components","gotk-sync"] | Kubeconform filename patterns to ignore. |
| githubToken | Secret | - | GithubToken is used for Helm registry login to ghcr.io. Set via .env: GITHUB_TOKEN=cmd://"gh auth token" |
| googleCredentials | Secret | - | GoogleCredentials is used for SOPS decryption (GCP KMS). Set via .env: GOOGLE_CREDENTIALS=cmd://"gcloud auth application-default print-access-token" |
| kubernetesService | Service | - | Kubernetes API service (e.g. k3d API). Set via .env: KUBERNETES_SERVICE=tcp://localhost:6550 |
| gitService | Service | - | In-cluster Git mirror service. Set via .env: GIT_SERVICE=tcp://localhost:30080 |
| kubeconfig | Secret | - | Kubeconfig secret for the cluster. Set via .env: KUBECONFIG=file://~/.kube/config |
Example
dagger -m github.com/seamlezz/daggerverse/gitops@944068c829658ec8e965e92d499eb08b3dfa923f call \
--bootstrap-path string --git-repo-name stringfunc (m *MyModule) Example(bootstrapPath string, gitRepoName string) *dagger.Gitops {
return dag.
Gitops(bootstrapPath, gitRepoName)
}@function
def example(bootstrappath: str, gitreponame: str, ) -> dagger.Gitops:
return (
dag.gitops(bootstrappath, gitreponame)
)@func()
example(bootstrapPath: string, gitRepoName: string, ): Gitops {
return dag
.gitops(bootstrapPath, gitRepoName)
}Types
Gitops 🔗
Gitops is a reusable Dagger module for GitOps workflows. It provides local Git mirror push/reload, Flux bootstrap, and static validation checks.
bootstrapPath() 🔗
BootstrapPath is the Flux bootstrap kustomization path within the repo. Example: “clusters/local/flux-system”
Return Type
String ! Example
dagger -m github.com/seamlezz/daggerverse/gitops@944068c829658ec8e965e92d499eb08b3dfa923f call \
--bootstrap-path string --git-repo-name string bootstrap-pathfunc (m *MyModule) Example(ctx context.Context, bootstrapPath string, gitRepoName string) string {
return dag.
Gitops(bootstrapPath, gitRepoName).
Bootstrappath(ctx)
}@function
async def example(bootstrappath: str, gitreponame: str, ) -> str:
return await (
dag.gitops(bootstrappath, gitreponame)
.bootstrappath()
)@func()
async example(bootstrapPath: string, gitRepoName: string, ): Promise<string> {
return dag
.gitops(bootstrapPath, gitRepoName)
.bootstrapPath()
}gitRepoName() 🔗
GitRepoName is the bare repo name in the in-cluster Git mirror. Example: “infra.git”
Return Type
String ! Example
dagger -m github.com/seamlezz/daggerverse/gitops@944068c829658ec8e965e92d499eb08b3dfa923f call \
--bootstrap-path string --git-repo-name string git-repo-namefunc (m *MyModule) Example(ctx context.Context, bootstrapPath string, gitRepoName string) string {
return dag.
Gitops(bootstrapPath, gitRepoName).
Gitreponame(ctx)
}@function
async def example(bootstrappath: str, gitreponame: str, ) -> str:
return await (
dag.gitops(bootstrappath, gitreponame)
.gitreponame()
)@func()
async example(bootstrapPath: string, gitRepoName: string, ): Promise<string> {
return dag
.gitops(bootstrapPath, gitRepoName)
.gitRepoName()
}gitBranch() 🔗
GitBranch is the branch Flux reconciles from.
Return Type
String ! Example
dagger -m github.com/seamlezz/daggerverse/gitops@944068c829658ec8e965e92d499eb08b3dfa923f call \
--bootstrap-path string --git-repo-name string git-branchfunc (m *MyModule) Example(ctx context.Context, bootstrapPath string, gitRepoName string) string {
return dag.
Gitops(bootstrapPath, gitRepoName).
Gitbranch(ctx)
}@function
async def example(bootstrappath: str, gitreponame: str, ) -> str:
return await (
dag.gitops(bootstrappath, gitreponame)
.gitbranch()
)@func()
async example(bootstrapPath: string, gitRepoName: string, ): Promise<string> {
return dag
.gitops(bootstrapPath, gitRepoName)
.gitBranch()
}fluxNamespace() 🔗
FluxNamespace is the namespace where Flux controllers run.
Return Type
String ! Example
dagger -m github.com/seamlezz/daggerverse/gitops@944068c829658ec8e965e92d499eb08b3dfa923f call \
--bootstrap-path string --git-repo-name string flux-namespacefunc (m *MyModule) Example(ctx context.Context, bootstrapPath string, gitRepoName string) string {
return dag.
Gitops(bootstrapPath, gitRepoName).
Fluxnamespace(ctx)
}@function
async def example(bootstrappath: str, gitreponame: str, ) -> str:
return await (
dag.gitops(bootstrappath, gitreponame)
.fluxnamespace()
)@func()
async example(bootstrapPath: string, gitRepoName: string, ): Promise<string> {
return dag
.gitops(bootstrapPath, gitRepoName)
.fluxNamespace()
}fluxSourceName() 🔗
FluxSourceName is the name of the Flux GitRepository source.
Return Type
String ! Example
dagger -m github.com/seamlezz/daggerverse/gitops@944068c829658ec8e965e92d499eb08b3dfa923f call \
--bootstrap-path string --git-repo-name string flux-source-namefunc (m *MyModule) Example(ctx context.Context, bootstrapPath string, gitRepoName string) string {
return dag.
Gitops(bootstrapPath, gitRepoName).
Fluxsourcename(ctx)
}@function
async def example(bootstrappath: str, gitreponame: str, ) -> str:
return await (
dag.gitops(bootstrappath, gitreponame)
.fluxsourcename()
)@func()
async example(bootstrapPath: string, gitRepoName: string, ): Promise<string> {
return dag
.gitops(bootstrapPath, gitRepoName)
.fluxSourceName()
}gitUserName() 🔗
GitUserName is the Git committer name for local mirror pushes.
Return Type
String ! Example
dagger -m github.com/seamlezz/daggerverse/gitops@944068c829658ec8e965e92d499eb08b3dfa923f call \
--bootstrap-path string --git-repo-name string git-user-namefunc (m *MyModule) Example(ctx context.Context, bootstrapPath string, gitRepoName string) string {
return dag.
Gitops(bootstrapPath, gitRepoName).
Gitusername(ctx)
}@function
async def example(bootstrappath: str, gitreponame: str, ) -> str:
return await (
dag.gitops(bootstrappath, gitreponame)
.gitusername()
)@func()
async example(bootstrapPath: string, gitRepoName: string, ): Promise<string> {
return dag
.gitops(bootstrapPath, gitRepoName)
.gitUserName()
}gitUserEmail() 🔗
GitUserEmail is the Git committer email for local mirror pushes.
Return Type
String ! Example
dagger -m github.com/seamlezz/daggerverse/gitops@944068c829658ec8e965e92d499eb08b3dfa923f call \
--bootstrap-path string --git-repo-name string git-user-emailfunc (m *MyModule) Example(ctx context.Context, bootstrapPath string, gitRepoName string) string {
return dag.
Gitops(bootstrapPath, gitRepoName).
Gituseremail(ctx)
}@function
async def example(bootstrappath: str, gitreponame: str, ) -> str:
return await (
dag.gitops(bootstrappath, gitreponame)
.gituseremail()
)@func()
async example(bootstrapPath: string, gitRepoName: string, ): Promise<string> {
return dag
.gitops(bootstrapPath, gitRepoName)
.gitUserEmail()
}clusters() 🔗
Clusters overrides auto-discovered Flux cluster names for checks.
Return Type
[String ! ] ! Example
dagger -m github.com/seamlezz/daggerverse/gitops@944068c829658ec8e965e92d499eb08b3dfa923f call \
--bootstrap-path string --git-repo-name string clustersfunc (m *MyModule) Example(ctx context.Context, bootstrapPath string, gitRepoName string) []string {
return dag.
Gitops(bootstrapPath, gitRepoName).
Clusters(ctx)
}@function
async def example(bootstrappath: str, gitreponame: str, ) -> List[str]:
return await (
dag.gitops(bootstrappath, gitreponame)
.clusters()
)@func()
async example(bootstrapPath: string, gitRepoName: string, ): Promise<string[]> {
return dag
.gitops(bootstrapPath, gitRepoName)
.clusters()
}kubeVersion() 🔗
KubeVersion is the Kubernetes version used for helm template –kube-version.
Return Type
String ! Example
dagger -m github.com/seamlezz/daggerverse/gitops@944068c829658ec8e965e92d499eb08b3dfa923f call \
--bootstrap-path string --git-repo-name string kube-versionfunc (m *MyModule) Example(ctx context.Context, bootstrapPath string, gitRepoName string) string {
return dag.
Gitops(bootstrapPath, gitRepoName).
Kubeversion(ctx)
}@function
async def example(bootstrappath: str, gitreponame: str, ) -> str:
return await (
dag.gitops(bootstrappath, gitreponame)
.kubeversion()
)@func()
async example(bootstrapPath: string, gitRepoName: string, ): Promise<string> {
return dag
.gitops(bootstrapPath, gitRepoName)
.kubeVersion()
}kubeconformSkips() 🔗
KubeconformSkips are resource kinds to skip during kubeconform validation.
Return Type
[String ! ] ! Example
dagger -m github.com/seamlezz/daggerverse/gitops@944068c829658ec8e965e92d499eb08b3dfa923f call \
--bootstrap-path string --git-repo-name string kubeconform-skipsfunc (m *MyModule) Example(ctx context.Context, bootstrapPath string, gitRepoName string) []string {
return dag.
Gitops(bootstrapPath, gitRepoName).
Kubeconformskips(ctx)
}@function
async def example(bootstrappath: str, gitreponame: str, ) -> List[str]:
return await (
dag.gitops(bootstrappath, gitreponame)
.kubeconformskips()
)@func()
async example(bootstrapPath: string, gitRepoName: string, ): Promise<string[]> {
return dag
.gitops(bootstrapPath, gitRepoName)
.kubeconformSkips()
}kubeconformIgnores() 🔗
KubeconformIgnores are filename patterns to ignore during kubeconform validation.
Return Type
[String ! ] ! Example
dagger -m github.com/seamlezz/daggerverse/gitops@944068c829658ec8e965e92d499eb08b3dfa923f call \
--bootstrap-path string --git-repo-name string kubeconform-ignoresfunc (m *MyModule) Example(ctx context.Context, bootstrapPath string, gitRepoName string) []string {
return dag.
Gitops(bootstrapPath, gitRepoName).
Kubeconformignores(ctx)
}@function
async def example(bootstrappath: str, gitreponame: str, ) -> List[str]:
return await (
dag.gitops(bootstrappath, gitreponame)
.kubeconformignores()
)@func()
async example(bootstrapPath: string, gitRepoName: string, ): Promise<string[]> {
return dag
.gitops(bootstrapPath, gitRepoName)
.kubeconformIgnores()
}checkFluxIntegrity() 🔗
CheckFluxIntegrity validates Flux Kustomization paths and dependsOn references.
Return Type
Void !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory | - | No description provided |
Example
dagger -m github.com/seamlezz/daggerverse/gitops@944068c829658ec8e965e92d499eb08b3dfa923f call \
--bootstrap-path string --git-repo-name string check-flux-integrityfunc (m *MyModule) Example(ctx context.Context, bootstrapPath string, gitRepoName string) {
return dag.
Gitops(bootstrapPath, gitRepoName).
Checkfluxintegrity(ctx)
}@function
async def example(bootstrappath: str, gitreponame: str, ) -> None:
return await (
dag.gitops(bootstrappath, gitreponame)
.checkfluxintegrity()
)@func()
async example(bootstrapPath: string, gitRepoName: string, ): Promise<void> {
return dag
.gitops(bootstrapPath, gitRepoName)
.checkFluxIntegrity()
}checkHelmReleases() 🔗
CheckHelmReleases dry-runs HelmRelease templates.
Return Type
Void !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory | - | No description provided |
Example
dagger -m github.com/seamlezz/daggerverse/gitops@944068c829658ec8e965e92d499eb08b3dfa923f call \
--bootstrap-path string --git-repo-name string check-helm-releasesfunc (m *MyModule) Example(ctx context.Context, bootstrapPath string, gitRepoName string) {
return dag.
Gitops(bootstrapPath, gitRepoName).
Checkhelmreleases(ctx)
}@function
async def example(bootstrappath: str, gitreponame: str, ) -> None:
return await (
dag.gitops(bootstrappath, gitreponame)
.checkhelmreleases()
)@func()
async example(bootstrapPath: string, gitRepoName: string, ): Promise<void> {
return dag
.gitops(bootstrapPath, gitRepoName)
.checkHelmReleases()
}checkKubeconform() 🔗
CheckKubeconform validates rendered manifests against core and CRD schemas.
Return Type
Void !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory | - | No description provided |
Example
dagger -m github.com/seamlezz/daggerverse/gitops@944068c829658ec8e965e92d499eb08b3dfa923f call \
--bootstrap-path string --git-repo-name string check-kubeconformfunc (m *MyModule) Example(ctx context.Context, bootstrapPath string, gitRepoName string) {
return dag.
Gitops(bootstrapPath, gitRepoName).
Checkkubeconform(ctx)
}@function
async def example(bootstrappath: str, gitreponame: str, ) -> None:
return await (
dag.gitops(bootstrappath, gitreponame)
.checkkubeconform()
)@func()
async example(bootstrapPath: string, gitRepoName: string, ): Promise<void> {
return dag
.gitops(bootstrapPath, gitRepoName)
.checkKubeconform()
}checkKustomizeBuild() 🔗
CheckKustomizeBuild renders every Flux Kustomization path for all clusters.
Return Type
Void !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory | - | No description provided |
Example
dagger -m github.com/seamlezz/daggerverse/gitops@944068c829658ec8e965e92d499eb08b3dfa923f call \
--bootstrap-path string --git-repo-name string check-kustomize-buildfunc (m *MyModule) Example(ctx context.Context, bootstrapPath string, gitRepoName string) {
return dag.
Gitops(bootstrapPath, gitRepoName).
Checkkustomizebuild(ctx)
}@function
async def example(bootstrappath: str, gitreponame: str, ) -> None:
return await (
dag.gitops(bootstrappath, gitreponame)
.checkkustomizebuild()
)@func()
async example(bootstrapPath: string, gitRepoName: string, ): Promise<void> {
return dag
.gitops(bootstrapPath, gitRepoName)
.checkKustomizeBuild()
}checkSopsDecrypt() 🔗
CheckSopsDecrypt verifies all encrypted secrets can be decrypted.
Return Type
Void !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory | - | No description provided |
Example
dagger -m github.com/seamlezz/daggerverse/gitops@944068c829658ec8e965e92d499eb08b3dfa923f call \
--bootstrap-path string --git-repo-name string check-sops-decryptfunc (m *MyModule) Example(ctx context.Context, bootstrapPath string, gitRepoName string) {
return dag.
Gitops(bootstrapPath, gitRepoName).
Checksopsdecrypt(ctx)
}@function
async def example(bootstrappath: str, gitreponame: str, ) -> None:
return await (
dag.gitops(bootstrappath, gitreponame)
.checksopsdecrypt()
)@func()
async example(bootstrapPath: string, gitRepoName: string, ): Promise<void> {
return dag
.gitops(bootstrapPath, gitRepoName)
.checkSopsDecrypt()
}checkTerraform() 🔗
CheckTerraform validates and format-checks Terraform environments.
Return Type
Void !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory | - | No description provided |
Example
dagger -m github.com/seamlezz/daggerverse/gitops@944068c829658ec8e965e92d499eb08b3dfa923f call \
--bootstrap-path string --git-repo-name string check-terraformfunc (m *MyModule) Example(ctx context.Context, bootstrapPath string, gitRepoName string) {
return dag.
Gitops(bootstrapPath, gitRepoName).
Checkterraform(ctx)
}@function
async def example(bootstrappath: str, gitreponame: str, ) -> None:
return await (
dag.gitops(bootstrappath, gitreponame)
.checkterraform()
)@func()
async example(bootstrapPath: string, gitRepoName: string, ): Promise<void> {
return dag
.gitops(bootstrapPath, gitRepoName)
.checkTerraform()
}checkYamlLint() 🔗
CheckYamlLint lints YAML files.
Return Type
Void !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory | - | No description provided |
Example
dagger -m github.com/seamlezz/daggerverse/gitops@944068c829658ec8e965e92d499eb08b3dfa923f call \
--bootstrap-path string --git-repo-name string check-yaml-lintfunc (m *MyModule) Example(ctx context.Context, bootstrapPath string, gitRepoName string) {
return dag.
Gitops(bootstrapPath, gitRepoName).
Checkyamllint(ctx)
}@function
async def example(bootstrappath: str, gitreponame: str, ) -> None:
return await (
dag.gitops(bootstrappath, gitreponame)
.checkyamllint()
)@func()
async example(bootstrapPath: string, gitRepoName: string, ): Promise<void> {
return dag
.gitops(bootstrapPath, gitRepoName)
.checkYamlLint()
}initialize() 🔗
Initialize bootstraps Flux on a cluster and pushes the local repo into the in-cluster Git mirror. Runs: push → flux install → apply bootstrap → wait ready.
Return Type
Void !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory | - | No description provided |
Example
dagger -m github.com/seamlezz/daggerverse/gitops@944068c829658ec8e965e92d499eb08b3dfa923f call \
--bootstrap-path string --git-repo-name string initializefunc (m *MyModule) Example(ctx context.Context, bootstrapPath string, gitRepoName string) {
return dag.
Gitops(bootstrapPath, gitRepoName).
Initialize(ctx)
}@function
async def example(bootstrappath: str, gitreponame: str, ) -> None:
return await (
dag.gitops(bootstrappath, gitreponame)
.initialize()
)@func()
async example(bootstrapPath: string, gitRepoName: string, ): Promise<void> {
return dag
.gitops(bootstrapPath, gitRepoName)
.initialize()
}reload() 🔗
Reload pushes the current working tree into the in-cluster Git mirror and reconciles Flux. Runs: push → reconcile → wait ready.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory | - | No description provided |
Example
dagger -m github.com/seamlezz/daggerverse/gitops@944068c829658ec8e965e92d499eb08b3dfa923f call \
--bootstrap-path string --git-repo-name string reloadfunc (m *MyModule) Example(ctx context.Context, bootstrapPath string, gitRepoName string) string {
return dag.
Gitops(bootstrapPath, gitRepoName).
Reload(ctx)
}@function
async def example(bootstrappath: str, gitreponame: str, ) -> str:
return await (
dag.gitops(bootstrappath, gitreponame)
.reload()
)@func()
async example(bootstrapPath: string, gitRepoName: string, ): Promise<string> {
return dag
.gitops(bootstrapPath, gitRepoName)
.reload()
}