mirror of
https://github.com/holos-run/holos.git
synced 2026-03-03 08:49:59 +00:00
Compare commits
100 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
42c4feb01e | ||
|
|
945e819af8 | ||
|
|
078052c112 | ||
|
|
382da159d9 | ||
|
|
538400f6c6 | ||
|
|
3ba8dfae5d | ||
|
|
beee0ed10e | ||
|
|
1ab7b3c440 | ||
|
|
135966976d | ||
|
|
30950953d7 | ||
|
|
8e4b7d9e43 | ||
|
|
f4484ffb21 | ||
|
|
8512ca01d1 | ||
|
|
e6f3a6d8d9 | ||
|
|
3d696b958b | ||
|
|
1bf627b5e1 | ||
|
|
df69198cef | ||
|
|
810a7c6649 | ||
|
|
b24e35f46d | ||
|
|
22c65bbc6c | ||
|
|
e913ce6368 | ||
|
|
0abfa660d0 | ||
|
|
8883a89c44 | ||
|
|
b4d8794e23 | ||
|
|
524b01a6b3 | ||
|
|
c1a064fd70 | ||
|
|
69f6a8b1eb | ||
|
|
4482930e82 | ||
|
|
12389320a6 | ||
|
|
b024346f19 | ||
|
|
e58433fe08 | ||
|
|
c94d5b69c5 | ||
|
|
65430e3379 | ||
|
|
1945392227 | ||
|
|
b4361e3997 | ||
|
|
1b562118a8 | ||
|
|
578677d9a6 | ||
|
|
49398fe211 | ||
|
|
82c429b8df | ||
|
|
012de360ac | ||
|
|
c5600f2310 | ||
|
|
bc0266e5e3 | ||
|
|
18be14c2ea | ||
|
|
ab49a40246 | ||
|
|
28a0a3625e | ||
|
|
1bdb580aca | ||
|
|
c1b749c6bc | ||
|
|
12ee084759 | ||
|
|
6a2a81e3fc | ||
|
|
204ce788b6 | ||
|
|
abb014ee48 | ||
|
|
e7cd480510 | ||
|
|
bd32ad62a4 | ||
|
|
57789b48e5 | ||
|
|
8476a8748f | ||
|
|
2b89b45fc5 | ||
|
|
23e38f1e7e | ||
|
|
a0f6776358 | ||
|
|
830bb4f804 | ||
|
|
2e02bfe48a | ||
|
|
b0d5fe0072 | ||
|
|
f1ae5db910 | ||
|
|
bc8ad22492 | ||
|
|
4da0740a5e | ||
|
|
ee2d86d7df | ||
|
|
7a94cc5f87 | ||
|
|
0e9b02f337 | ||
|
|
a419b08cca | ||
|
|
04f1a21ee8 | ||
|
|
88663e223b | ||
|
|
2f77b1c09f | ||
|
|
e2ea6deda2 | ||
|
|
2131a99a30 | ||
|
|
9702efca70 | ||
|
|
658453bd76 | ||
|
|
da7430e741 | ||
|
|
57b491065a | ||
|
|
48a40c808f | ||
|
|
228dc3474b | ||
|
|
d83765e980 | ||
|
|
6ca6080a3f | ||
|
|
491efa0f4f | ||
|
|
5c1689b52b | ||
|
|
cd33f7b1dc | ||
|
|
80559b7ca6 | ||
|
|
de9b177c71 | ||
|
|
ebb8d8d44c | ||
|
|
c9994a0851 | ||
|
|
45568f2e6d | ||
|
|
46cb7f5d29 | ||
|
|
f34624e416 | ||
|
|
19690d760a | ||
|
|
35ede4293b | ||
|
|
1b499b1ab6 | ||
|
|
6a3b8da7f2 | ||
|
|
ee9969d409 | ||
|
|
b635c233fa | ||
|
|
5290a2044f | ||
|
|
4d47963b0a | ||
|
|
4c05e4b410 |
13
.claude/settings.json
Normal file
13
.claude/settings.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"permissions": {
|
||||
"allow": [
|
||||
"Bash(cd:*)",
|
||||
"Bash(holos:*)",
|
||||
"Bash(cue:*)",
|
||||
"Bash(git commit:*)",
|
||||
"Bash(git add:*)",
|
||||
"Bash(make:*)"
|
||||
],
|
||||
"deny": []
|
||||
}
|
||||
}
|
||||
4
.github/workflows/golangci-lint.yaml
vendored
4
.github/workflows/golangci-lint.yaml
vendored
@@ -25,6 +25,6 @@ jobs:
|
||||
with:
|
||||
go-version: stable
|
||||
- name: golangci-lint
|
||||
uses: golangci/golangci-lint-action@v6
|
||||
uses: golangci/golangci-lint-action@v7
|
||||
with:
|
||||
version: v1.64.5
|
||||
version: v2.1.6
|
||||
|
||||
2
.github/workflows/test.yaml
vendored
2
.github/workflows/test.yaml
vendored
@@ -30,6 +30,8 @@ jobs:
|
||||
|
||||
- name: Set up Helm
|
||||
uses: azure/setup-helm@v4
|
||||
with:
|
||||
version: '3.17.3'
|
||||
|
||||
- name: Set up Kubectl
|
||||
uses: azure/setup-kubectl@v4
|
||||
|
||||
5
.gitignore
vendored
5
.gitignore
vendored
@@ -16,4 +16,7 @@ node_modules/
|
||||
|
||||
# nix
|
||||
/.direnv/
|
||||
result
|
||||
result
|
||||
|
||||
# claude
|
||||
/.claude/settings.local.json
|
||||
|
||||
@@ -1,2 +1,20 @@
|
||||
run:
|
||||
timeout: 5m
|
||||
version: "2"
|
||||
linters:
|
||||
exclusions:
|
||||
generated: lax
|
||||
presets:
|
||||
- comments
|
||||
- common-false-positives
|
||||
- legacy
|
||||
- std-error-handling
|
||||
paths:
|
||||
- third_party$
|
||||
- builtin$
|
||||
- examples$
|
||||
formatters:
|
||||
exclusions:
|
||||
generated: lax
|
||||
paths:
|
||||
- third_party$
|
||||
- builtin$
|
||||
- examples$
|
||||
|
||||
115
CLAUDE.md
Normal file
115
CLAUDE.md
Normal file
@@ -0,0 +1,115 @@
|
||||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
## Project Overview
|
||||
|
||||
Holos is a configuration management tool for Kubernetes that implements the rendered manifests pattern using CUE. It unifies Helm charts, Kustomize bases, and raw Kubernetes manifests into a single, declarative pipeline.
|
||||
|
||||
### Core Flow
|
||||
```
|
||||
Platform → Components → BuildPlan → Generators → Transformers → Validators → Manifests
|
||||
```
|
||||
|
||||
## Key Commands
|
||||
|
||||
```bash
|
||||
# Development
|
||||
make build # Build the binary
|
||||
make install # Install binary (REQUIRED before testing holos commands)
|
||||
make test # Run all tests
|
||||
make fmt # Format Go code
|
||||
make lint # Run linters
|
||||
make coverage # Generate coverage report
|
||||
|
||||
# Documentation
|
||||
make update-docs # Update generated docs
|
||||
make website # Build the documentation website
|
||||
|
||||
# Usage (run 'make install' first to test code changes)
|
||||
holos render platform # Render entire platform
|
||||
holos render component # Render single component
|
||||
holos show buildplans # Show build plans
|
||||
holos init platform # Initialize new platform
|
||||
```
|
||||
|
||||
## Architecture
|
||||
|
||||
### Directory Structure
|
||||
- `/api/` - API definitions (v1alpha5 stable, v1alpha6 in development)
|
||||
- `/cmd/` - CLI entry point
|
||||
- `/internal/cli/` - Command implementations
|
||||
- `/internal/component/` - Component handling logic
|
||||
- `/internal/platform/` - Platform handling logic
|
||||
- `/internal/generate/` - Code generation
|
||||
|
||||
### Key Files
|
||||
- `/internal/cli/render/render.go` - Core render logic
|
||||
- `/internal/component/component.go` - Component processing
|
||||
- `/api/core/v1alpha*/types.go` - API type definitions
|
||||
|
||||
### Component Types
|
||||
1. **Helm** - Wraps Helm charts
|
||||
2. **Kustomize** - Wraps Kustomize bases
|
||||
3. **Kubernetes** - Raw Kubernetes manifests
|
||||
|
||||
## CUE Patterns
|
||||
|
||||
Components are defined in CUE:
|
||||
```cue
|
||||
package holos
|
||||
|
||||
holos: Component.BuildPlan
|
||||
|
||||
Component: #Helm & {
|
||||
Name: "example"
|
||||
Chart: {
|
||||
version: "1.0.0"
|
||||
repository: {
|
||||
name: "example"
|
||||
url: "https://charts.example.com"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Testing
|
||||
|
||||
- Unit tests: `*_test.go` files colocated with source
|
||||
- Integration tests: `/cmd/holos/tests/`
|
||||
- Example platforms: `/internal/testutil/fixtures/`
|
||||
- Run single test: `go test -run TestName ./path/to/package`
|
||||
|
||||
## Development Patterns
|
||||
|
||||
1. Error handling: Prefer `errors.Format()` from `/internal/errors/` over `fmt.Errorf()`
|
||||
2. Logging: Use structured `slog`, get logger with `logger.FromContext(ctx)`
|
||||
3. CLI commands: Follow Cobra patterns in `/internal/cli/`
|
||||
4. CUE formatting: Always run `cue fmt` on CUE files
|
||||
5. Go formatting: Always run `go fmt` on go files
|
||||
6. Develop against v1alpha6 packages.
|
||||
7. Commits: Use the package name as the first word in the commit, lower case. Commit without asking permission. Always run `make lint` and `make test` before committing.
|
||||
|
||||
## Version Management
|
||||
|
||||
- Version files: `/version/embedded/{major,minor,patch}`
|
||||
- Bump version: `make bump`
|
||||
- API versions: v1alpha5 (stable), v1alpha6 (development)
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- **Platform**: Top-level configuration containing all components
|
||||
- **Component**: Unit of configuration (DAG of Tasks producing deployment configs for one component)
|
||||
- **TaskSet**: DAG of Tasks (Similar to how make tasks behave)
|
||||
- **BuildPlan**: Instructions for building a component. Deprecated in v1alpha6, use TaskSet instead.
|
||||
- **Generator**: Creates manifests (Helm, Kustomize, etc.) author schema only in v1alpha6
|
||||
- **Transformer**: Modifies generated manifests, author schema only in v1alpha6
|
||||
- **Validator**: Validates final manifests, author schema only in v1alpha6
|
||||
|
||||
## Resources
|
||||
|
||||
- Tutorials: `/doc/md/tutorial/`
|
||||
- Platform templates: `/internal/generate/platforms/`
|
||||
- Test fixtures: `/internal/testutil/fixtures/`
|
||||
- Core schemas: `/api/core/` (Abstraction over low level data pipeline tasks)
|
||||
- Author schemas: `/api/author/` (User facing abstractions over core Schemas)
|
||||
15
Dockerfile
15
Dockerfile
@@ -1,6 +1,6 @@
|
||||
FROM registry.k8s.io/kubectl:v1.31.0 AS kubectl
|
||||
FROM registry.k8s.io/kubectl:v1.33.4 AS kubectl
|
||||
# https://github.com/GoogleContainerTools/distroless
|
||||
FROM golang:1.23 AS build
|
||||
FROM golang:1.24 AS build
|
||||
|
||||
WORKDIR /go/src/app
|
||||
COPY . .
|
||||
@@ -18,8 +18,8 @@ RUN curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/s
|
||||
|
||||
COPY --from=kubectl /bin/kubectl /usr/local/bin/
|
||||
|
||||
# distroless
|
||||
FROM gcr.io/distroless/static-debian12 AS final
|
||||
# Use debian slim instead of distroless to get package management.
|
||||
FROM public.ecr.aws/docker/library/debian:13-slim AS final
|
||||
COPY --from=build \
|
||||
/go/bin/holos \
|
||||
/go/bin/kustomize \
|
||||
@@ -27,5 +27,12 @@ COPY --from=build \
|
||||
/usr/local/bin/helm \
|
||||
/bin/
|
||||
|
||||
# Extra packages
|
||||
# git - https://github.com/holos-run/holos/issues/440
|
||||
RUN apt update && \
|
||||
apt install -y --no-install-recommends git ca-certificates && \
|
||||
apt clean && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Usage: docker run -v $(pwd):/app --workdir /app --rm -it quay.io/holos-run/holos holos render platform
|
||||
CMD ["/bin/holos"]
|
||||
|
||||
2
Makefile
2
Makefile
@@ -119,6 +119,7 @@ tools: go-deps website-deps ## install tool dependencies
|
||||
go-deps: ## tool versions pinned in tools.go
|
||||
go install cuelang.org/go/cmd/cue
|
||||
go install github.com/princjef/gomarkdoc/cmd/gomarkdoc
|
||||
go install github.com/rogpeppe/go-internal/cmd/testscript
|
||||
# curl https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | bash
|
||||
|
||||
.PHONY: website-deps
|
||||
@@ -136,6 +137,7 @@ unity: ## https://cuelabs.dev/unity/
|
||||
.PHONY: update-docs
|
||||
update-docs: ## Update doc examples
|
||||
HOLOS_UPDATE_SCRIPTS=1 go test -v ./doc/md/...
|
||||
HOLOS_UPDATE_SCRIPTS=1 go test -v ./doc/website/versioned_docs/...
|
||||
|
||||
.PHONY: help
|
||||
help: ## Display this help menu.
|
||||
|
||||
@@ -27,9 +27,9 @@ import core "github.com/holos-run/holos/api/core/v1alpha6"
|
||||
// platform command. Use the Components field to register components with the
|
||||
// platform.
|
||||
type Platform struct {
|
||||
Name string
|
||||
Components map[NameLabel]core.Component
|
||||
Resource core.Platform
|
||||
Name string `json:"name" yaml:"name" cue:"string | *\"default\""`
|
||||
Components map[NameLabel]core.Component `json:"components" yaml:"components"`
|
||||
Resource core.Platform `json:"resource" yaml:"resource"`
|
||||
}
|
||||
|
||||
// ComponentConfig represents the configuration common to all kinds of
|
||||
|
||||
@@ -46,10 +46,10 @@ const ComponentAnnotationsTag = "holos_component_annotations"
|
||||
//
|
||||
// [external credential provider]: https://github.com/kubernetes/enhancements/blob/313ad8b59c80819659e1fbf0f165230f633f2b22/keps/sig-auth/541-external-credential-providers/README.md
|
||||
type BuildPlan struct {
|
||||
// Kind represents the type of the resource.
|
||||
Kind string `json:"kind" yaml:"kind" cue:"\"BuildPlan\""`
|
||||
// APIVersion represents the versioned schema of the resource.
|
||||
APIVersion string `json:"apiVersion" yaml:"apiVersion" cue:"\"v1alpha6\""`
|
||||
// Kind represents the type of the resource.
|
||||
Kind string `json:"kind" yaml:"kind" cue:"\"BuildPlan\""`
|
||||
// Metadata represents data about the resource such as the Name.
|
||||
Metadata Metadata `json:"metadata" yaml:"metadata"`
|
||||
// Spec specifies the desired state of the resource.
|
||||
@@ -274,8 +274,8 @@ type Chart struct {
|
||||
// repository. Holos gets the username and password from the environment
|
||||
// variables represented by the Auth field.
|
||||
type Repository struct {
|
||||
Name string `json:"name" yaml:"name"`
|
||||
URL string `json:"url" yaml:"url"`
|
||||
Name string `json:"name,omitempty" yaml:"name,omitempty"`
|
||||
URL string `json:"url,omitempty" yaml:"url,omitempty"`
|
||||
Auth Auth `json:"auth,omitempty" yaml:"auth,omitempty"`
|
||||
}
|
||||
|
||||
@@ -412,10 +412,10 @@ type Metadata struct {
|
||||
//
|
||||
// cue export --out yaml ./platform
|
||||
type Platform struct {
|
||||
// Kind is a string value representing the resource.
|
||||
Kind string `json:"kind" yaml:"kind" cue:"\"Platform\""`
|
||||
// APIVersion represents the versioned schema of this resource.
|
||||
APIVersion string `json:"apiVersion" yaml:"apiVersion" cue:"string | *\"v1alpha6\""`
|
||||
// Kind is a string value representing the resource.
|
||||
Kind string `json:"kind" yaml:"kind" cue:"\"Platform\""`
|
||||
// Metadata represents data about the resource such as the Name.
|
||||
Metadata Metadata `json:"metadata" yaml:"metadata"`
|
||||
|
||||
|
||||
@@ -12,7 +12,8 @@ stderr -count=1 '^rendered platform'
|
||||
|
||||
# Holos uses CUE to build a platform specification.
|
||||
exec holos show platform
|
||||
cmp stdout want/1.platform_spec.yaml
|
||||
cp stdout platform.yaml
|
||||
exec holos compare yaml platform.yaml want/1.platform_spec.yaml
|
||||
|
||||
# Define the host and port in projects/blackbox.schema.cue
|
||||
mv projects/blackbox.schema.cue.disabled projects/blackbox.schema.cue
|
||||
@@ -25,7 +26,7 @@ mv platform/prometheus.cue.disabled platform/prometheus.cue
|
||||
exec holos render platform
|
||||
stderr -count=1 '^rendered prometheus'
|
||||
stderr -count=1 '^rendered platform'
|
||||
cmp deploy/components/prometheus/prometheus.gen.yaml want/1.prometheus.gen.yaml
|
||||
exec holos compare yaml deploy/components/prometheus/prometheus.gen.yaml want/1.prometheus.gen.yaml
|
||||
|
||||
# Add the CUE configuration to manage the blackbox Helm Chart component.
|
||||
mv projects/platform/components/blackbox/blackbox.cue.disabled projects/platform/components/blackbox/blackbox.cue
|
||||
@@ -37,7 +38,7 @@ exec holos render platform ./platform
|
||||
stderr -count=1 '^rendered prometheus'
|
||||
stderr -count=1 '^rendered blackbox'
|
||||
stderr -count=1 '^rendered platform'
|
||||
cmp deploy/components/blackbox/blackbox.gen.yaml want/1.blackbox.gen.yaml
|
||||
exec holos compare yaml deploy/components/blackbox/blackbox.gen.yaml want/1.blackbox.gen.yaml
|
||||
|
||||
# Import helm values
|
||||
exec cue import --package holos --path 'Helm: Values:' --outfile projects/platform/components/prometheus/values.cue projects/platform/components/prometheus/vendor/25.27.0/prometheus/values.yaml
|
||||
@@ -55,7 +56,7 @@ mv platform/httpbin.cue.disabled platform/httpbin.cue
|
||||
# Render the platform with httpbin
|
||||
exec holos render platform ./platform
|
||||
stderr -count=1 '^rendered httpbin'
|
||||
cmp deploy/components/httpbin/httpbin.gen.yaml want/1.httpbin.gen.yaml
|
||||
exec holos compare yaml deploy/components/httpbin/httpbin.gen.yaml want/1.httpbin.gen.yaml
|
||||
|
||||
# Verify the labels are correct
|
||||
grep 'replacement: blackbox:9115' deploy/components/prometheus/prometheus.gen.yaml
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
exec holos init platform v1alpha5 --force
|
||||
# want a buildplan shown
|
||||
exec holos show buildplans
|
||||
cmp stdout buildplan.yaml
|
||||
cp stdout buildplan-output.yaml
|
||||
exec holos compare yaml buildplan-output.yaml buildplan.yaml
|
||||
# want this error to go away
|
||||
! stderr 'cannot convert non-concrete value string'
|
||||
-- platform/example.cue --
|
||||
|
||||
@@ -4,10 +4,12 @@ env HOME=$WORK
|
||||
|
||||
exec holos init platform v1alpha5 --force
|
||||
exec holos show platform
|
||||
cmp stdout want/empty.yaml
|
||||
cp stdout empty.yaml
|
||||
exec holos compare yaml empty.yaml want/empty.yaml
|
||||
|
||||
exec holos show platform -t foo
|
||||
cmp stdout want/foo.yaml
|
||||
cp stdout foo.yaml
|
||||
exec holos compare yaml foo.yaml want/foo.yaml
|
||||
|
||||
-- platform/empty.cue --
|
||||
@if(foo)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# https://github.com/holos-run/holos/issues/330
|
||||
# take care to install helm 3.17.3 otherwise kube versions may not align
|
||||
exec holos init platform v1alpha5 --force
|
||||
# Make sure the helm chart works with plain helm
|
||||
exec helm template ./components/capabilities/vendor/0.1.0/capabilities
|
||||
@@ -6,13 +7,13 @@ stdout 'name: has-foo-v1beta1'
|
||||
stdout 'kubeVersion: v'
|
||||
exec holos render platform ./platform
|
||||
# When no capabilities are specified
|
||||
cmp deploy/components/capabilities/capabilities.gen.yaml want/when-no-capabilities-specified.yaml
|
||||
exec holos compare yaml deploy/components/capabilities/capabilities.gen.yaml want/when-no-capabilities-specified.yaml
|
||||
# With APIVersions specified
|
||||
cmp deploy/components/specified/specified.gen.yaml want/with-capabilities-specified.yaml
|
||||
exec holos compare yaml deploy/components/specified/specified.gen.yaml want/with-capabilities-specified.yaml
|
||||
# With KubeVersion specified
|
||||
cmp deploy/components/kubeversion1/kubeversion1.gen.yaml want/with-kubeversion-specified.yaml
|
||||
exec holos compare yaml deploy/components/kubeversion1/kubeversion1.gen.yaml want/with-kubeversion-specified.yaml
|
||||
# With both APIVersions and KubeVersion specified
|
||||
cmp deploy/components/kubeversion2/kubeversion2.gen.yaml want/with-both-specified.yaml
|
||||
exec holos compare yaml deploy/components/kubeversion2/kubeversion2.gen.yaml want/with-both-specified.yaml
|
||||
-- want/with-both-specified.yaml --
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
@@ -44,7 +45,7 @@ apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kubeVersion: v1.31.0
|
||||
kubeVersion: v1.99.0
|
||||
name: has-foo-v1beta1
|
||||
spec:
|
||||
ports:
|
||||
@@ -57,7 +58,7 @@ apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
annotations:
|
||||
kubeVersion: v1.31.0
|
||||
kubeVersion: v1.99.0
|
||||
name: has-foo-v1
|
||||
spec:
|
||||
ports:
|
||||
@@ -103,7 +104,7 @@ Component: #Helm & {
|
||||
Chart: version: "0.1.0"
|
||||
_APIVersions: string | *"[]" @tag(apiVersions, type=string)
|
||||
APIVersions: json.Unmarshal(_APIVersions)
|
||||
KubeVersion: string | *"v1.31.0" @tag(kubeVersion, type=string)
|
||||
KubeVersion: string | *"v1.99.0" @tag(kubeVersion, type=string)
|
||||
}
|
||||
-- components/capabilities/vendor/0.1.0/capabilities/Chart.yaml --
|
||||
apiVersion: v2
|
||||
@@ -137,7 +138,7 @@ kind: Service
|
||||
metadata:
|
||||
name: has-foo-v1beta1
|
||||
annotations:
|
||||
kubeVersion: v1.31.0
|
||||
kubeVersion: v1.99.0
|
||||
spec:
|
||||
ports:
|
||||
- port: 80
|
||||
|
||||
@@ -12,7 +12,8 @@ stderr -count=1 '^rendered platform'
|
||||
|
||||
# When author.#Kubernetes is empty
|
||||
exec holos cue export --expression holos --out=yaml ./components/empty
|
||||
cmp stdout want.txt
|
||||
cp stdout empty.yaml
|
||||
exec holos compare yaml empty.yaml want.txt
|
||||
|
||||
-- components/empty/empty.cue --
|
||||
package holos
|
||||
|
||||
@@ -180,9 +180,9 @@ Platform assembles a core Platform in the Resource field for the holos render pl
|
||||
|
||||
```go
|
||||
type Platform struct {
|
||||
Name string
|
||||
Components map[NameLabel]core.Component
|
||||
Resource core.Platform
|
||||
Name string `json:"name" yaml:"name" cue:"string | *\"default\""`
|
||||
Components map[NameLabel]core.Component `json:"components" yaml:"components"`
|
||||
Resource core.Platform `json:"resource" yaml:"resource"`
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
@@ -209,10 +209,10 @@ Holos uses CUE to construct a BuildPlan. Holos injects late binding values such
|
||||
|
||||
```go
|
||||
type BuildPlan struct {
|
||||
// Kind represents the type of the resource.
|
||||
Kind string `json:"kind" yaml:"kind" cue:"\"BuildPlan\""`
|
||||
// APIVersion represents the versioned schema of the resource.
|
||||
APIVersion string `json:"apiVersion" yaml:"apiVersion" cue:"\"v1alpha6\""`
|
||||
// Kind represents the type of the resource.
|
||||
Kind string `json:"kind" yaml:"kind" cue:"\"BuildPlan\""`
|
||||
// Metadata represents data about the resource such as the Name.
|
||||
Metadata Metadata `json:"metadata" yaml:"metadata"`
|
||||
// Spec specifies the desired state of the resource.
|
||||
@@ -491,10 +491,10 @@ cue export --out yaml ./platform
|
||||
|
||||
```go
|
||||
type Platform struct {
|
||||
// Kind is a string value representing the resource.
|
||||
Kind string `json:"kind" yaml:"kind" cue:"\"Platform\""`
|
||||
// APIVersion represents the versioned schema of this resource.
|
||||
APIVersion string `json:"apiVersion" yaml:"apiVersion" cue:"string | *\"v1alpha6\""`
|
||||
// Kind is a string value representing the resource.
|
||||
Kind string `json:"kind" yaml:"kind" cue:"\"Platform\""`
|
||||
// Metadata represents data about the resource such as the Name.
|
||||
Metadata Metadata `json:"metadata" yaml:"metadata"`
|
||||
|
||||
|
||||
@@ -4,4 +4,4 @@ cmp stdout $WORK/output.txt
|
||||
-- command.sh --
|
||||
holos --version
|
||||
-- output.txt --
|
||||
0.104.1
|
||||
0.106.0
|
||||
|
||||
@@ -1 +1 @@
|
||||
0.104.1
|
||||
0.105.1
|
||||
|
||||
@@ -1,3 +1,2 @@
|
||||
cached podinfo 6.6.2
|
||||
rendered podinfo in 1.938665041s
|
||||
rendered platform in 1.938759417s
|
||||
rendered podinfo in 169.504ms
|
||||
rendered platform in 169.609583ms
|
||||
|
||||
@@ -9,9 +9,8 @@
|
||||
|-- platform
|
||||
| |-- platform.gen.cue
|
||||
| `-- podinfo.cue
|
||||
|-- platform.metadata.json
|
||||
|-- resources.cue
|
||||
|-- schema.cue
|
||||
`-- tags.cue
|
||||
|
||||
8 directories, 7 files
|
||||
8 directories, 6 files
|
||||
|
||||
@@ -4,4 +4,4 @@ cmp stdout $WORK/output.txt
|
||||
-- command.sh --
|
||||
holos --version
|
||||
-- output.txt --
|
||||
0.104.1
|
||||
0.106.0
|
||||
|
||||
@@ -1 +1 @@
|
||||
0.104.1
|
||||
0.105.1
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
[main 1adcd08] add blackbox configuration
|
||||
[main 67f5363] add blackbox configuration
|
||||
1 file changed, 15 insertions(+)
|
||||
create mode 100644 components/blackbox.cue
|
||||
create mode 100644 config/prometheus/blackbox.cue
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
[main 4221803] integrate blackbox and prometheus together
|
||||
2 files changed, 4 insertions(+), 2 deletions(-)
|
||||
[main bef876c] integrate blackbox and prometheus together
|
||||
3 files changed, 1359 insertions(+), 2 deletions(-)
|
||||
create mode 100644 components/prometheus/values.cue.orig
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[main 52e90ea] import values
|
||||
2 files changed, 1815 insertions(+)
|
||||
[main 9dd00f3] import values
|
||||
2 files changed, 1826 insertions(+)
|
||||
create mode 100644 components/blackbox/values.cue
|
||||
create mode 100644 components/prometheus/values.cue
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
rendered blackbox in 365.936792ms
|
||||
rendered prometheus in 371.855875ms
|
||||
rendered platform in 372.109916ms
|
||||
rendered blackbox in 112.795875ms
|
||||
rendered prometheus in 144.441042ms
|
||||
rendered platform in 144.505625ms
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[main b5df111] add blackbox and prometheus
|
||||
[main c523ef0] add blackbox and prometheus
|
||||
5 files changed, 1550 insertions(+)
|
||||
create mode 100644 components/blackbox/blackbox.cue
|
||||
create mode 100644 components/prometheus/prometheus.cue
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
cached prometheus-blackbox-exporter 9.0.1
|
||||
rendered blackbox in 3.825430417s
|
||||
cached prometheus 25.27.0
|
||||
rendered prometheus in 4.840089667s
|
||||
rendered platform in 4.840137792s
|
||||
rendered blackbox in 877.548833ms
|
||||
rendered prometheus in 882.902333ms
|
||||
rendered platform in 883.561541ms
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
[main 67efe0d] render integrated blackbox and prometheus manifests
|
||||
[main 3aa63f4] render integrated blackbox and prometheus manifests
|
||||
2 files changed, 7 insertions(+), 7 deletions(-)
|
||||
|
||||
@@ -4,4 +4,4 @@ cmp stdout $WORK/output.txt
|
||||
-- command.sh --
|
||||
holos --version
|
||||
-- output.txt --
|
||||
0.104.1
|
||||
0.106.0
|
||||
|
||||
@@ -1 +1 @@
|
||||
0.104.1
|
||||
0.105.1
|
||||
|
||||
@@ -27,9 +27,9 @@ spec:
|
||||
- includeSelectors: false
|
||||
pairs:
|
||||
app.kubernetes.io/name: httpbin
|
||||
patches: []
|
||||
images:
|
||||
- name: mccutchen/go-httpbin
|
||||
patches: []
|
||||
resources:
|
||||
- resources.gen.yaml
|
||||
- httpbin.yaml
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[main 823e136] add httpbin
|
||||
[main 2fc33ea] add httpbin
|
||||
4 files changed, 113 insertions(+)
|
||||
create mode 100644 components/httpbin/httpbin.cue
|
||||
create mode 100644 components/httpbin/httpbin.yaml
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
[main 96f5f45] annotate httpbin for prometheus probes
|
||||
[main 6d5bbc3] annotate httpbin for prometheus probes
|
||||
2 files changed, 18 insertions(+)
|
||||
create mode 100644 components/httpbin/patches.cue
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
rendered httpbin in 112.916375ms
|
||||
rendered platform in 112.990333ms
|
||||
rendered httpbin in 82.637042ms
|
||||
rendered platform in 82.702458ms
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
rendered httpbin in 111.183042ms
|
||||
rendered platform in 111.265792ms
|
||||
rendered httpbin in 80.916166ms
|
||||
rendered platform in 80.992958ms
|
||||
|
||||
@@ -84,10 +84,14 @@ Install these tools to use Holos's full capabilities:
|
||||
- [Kubectl] for [kustomize] operations
|
||||
|
||||
:::note
|
||||
Holos is tested with Helm `v3.16.2`. If you see `Error: chart requires
|
||||
Holos is tested with Helm `v3.17.3`. If you see `Error: chart requires
|
||||
kubeVersion` errors, try upgrading Helm.
|
||||
:::
|
||||
|
||||
## Known Issues
|
||||
|
||||
Helm `v3.18.0` has a [known issue](https://github.com/NixOS/nixpkgs/pull/322994) that causes it to produce incorrect output. This may affect Holos users. For more details, see [Holos issue #433](https://github.com/holos-run/holos/issues/433).
|
||||
|
||||
## Next Steps
|
||||
|
||||
With your platform structure initialized, proceed to [Hello Holos] to learn Helm
|
||||
|
||||
400
doc/website/package-lock.json
generated
400
doc/website/package-lock.json
generated
@@ -246,6 +246,7 @@
|
||||
"resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.13.0.tgz",
|
||||
"integrity": "sha512-s2ge3uZ6Zg2sPSFibqijgEYsuorxcc8KVHg3I95nOPHvFHdnBtSHymhZvq4sp/fu8ijt/Y8jLwkuqm5myn+2Sg==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@algolia/client-common": "5.13.0",
|
||||
"@algolia/requester-browser-xhr": "5.13.0",
|
||||
@@ -459,6 +460,7 @@
|
||||
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz",
|
||||
"integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@ampproject/remapping": "^2.2.0",
|
||||
"@babel/code-frame": "^7.26.0",
|
||||
@@ -3039,6 +3041,7 @@
|
||||
"resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.6.1.tgz",
|
||||
"integrity": "sha512-Uq8kyn5DYCDmkUlB9sWChhWghS4lUFNiQU+RXcAXJ3qCVXsBpPsh6RF+npQG1N+j4wAbjydM1iLLJJzp+x3eMQ==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@docusaurus/core": "3.6.1",
|
||||
"@docusaurus/logger": "3.6.1",
|
||||
@@ -3663,6 +3666,7 @@
|
||||
"resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.0.1.tgz",
|
||||
"integrity": "sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@types/mdx": "^2.0.0"
|
||||
},
|
||||
@@ -4048,6 +4052,7 @@
|
||||
"resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz",
|
||||
"integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.21.3",
|
||||
"@svgr/babel-preset": "8.1.0",
|
||||
@@ -4464,6 +4469,7 @@
|
||||
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz",
|
||||
"integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@types/prop-types": "*",
|
||||
"csstype": "^3.0.2"
|
||||
@@ -4812,6 +4818,7 @@
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
|
||||
"integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"acorn": "bin/acorn"
|
||||
},
|
||||
@@ -4867,6 +4874,7 @@
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
|
||||
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"fast-deep-equal": "^3.1.1",
|
||||
"fast-json-stable-stringify": "^2.0.0",
|
||||
@@ -4892,6 +4900,7 @@
|
||||
"resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.24.0.tgz",
|
||||
"integrity": "sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@algolia/cache-browser-local-storage": "4.24.0",
|
||||
"@algolia/cache-common": "4.24.0",
|
||||
@@ -5309,23 +5318,23 @@
|
||||
}
|
||||
},
|
||||
"node_modules/body-parser": {
|
||||
"version": "1.20.2",
|
||||
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
|
||||
"integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
|
||||
"version": "1.20.4",
|
||||
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz",
|
||||
"integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"bytes": "3.1.2",
|
||||
"bytes": "~3.1.2",
|
||||
"content-type": "~1.0.5",
|
||||
"debug": "2.6.9",
|
||||
"depd": "2.0.0",
|
||||
"destroy": "1.2.0",
|
||||
"http-errors": "2.0.0",
|
||||
"iconv-lite": "0.4.24",
|
||||
"on-finished": "2.4.1",
|
||||
"qs": "6.11.0",
|
||||
"raw-body": "2.5.2",
|
||||
"destroy": "~1.2.0",
|
||||
"http-errors": "~2.0.1",
|
||||
"iconv-lite": "~0.4.24",
|
||||
"on-finished": "~2.4.1",
|
||||
"qs": "~6.14.0",
|
||||
"raw-body": "~2.5.3",
|
||||
"type-is": "~1.6.18",
|
||||
"unpipe": "1.0.0"
|
||||
"unpipe": "~1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.8",
|
||||
@@ -5420,6 +5429,7 @@
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"caniuse-lite": "^1.0.30001669",
|
||||
"electron-to-chromium": "^1.5.41",
|
||||
@@ -5506,6 +5516,35 @@
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/call-bind-apply-helpers": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
|
||||
"integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"es-errors": "^1.3.0",
|
||||
"function-bind": "^1.1.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/call-bound": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
|
||||
"integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"call-bind-apply-helpers": "^1.0.2",
|
||||
"get-intrinsic": "^1.3.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/callsites": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
|
||||
@@ -6101,9 +6140,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/cookie": {
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
|
||||
"integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
|
||||
"version": "0.7.2",
|
||||
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
|
||||
"integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.6"
|
||||
@@ -6892,6 +6931,7 @@
|
||||
"version": "3.30.0",
|
||||
"resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.30.0.tgz",
|
||||
"integrity": "sha512-l590mjTHT6/Cbxp13dGPC2Y7VXdgc+rUeF8AnF/JPzhjNevbDJfObnJgaSjlldOgBQZbue+X6IUZ7r5GAgvauQ==",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=0.10"
|
||||
}
|
||||
@@ -7253,6 +7293,7 @@
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz",
|
||||
"integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
@@ -7761,6 +7802,20 @@
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/dunder-proto": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
|
||||
"integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"call-bind-apply-helpers": "^1.0.1",
|
||||
"es-errors": "^1.3.0",
|
||||
"gopd": "^1.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/duplexer": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
|
||||
@@ -7822,9 +7877,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/encodeurl": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
|
||||
"integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
|
||||
"integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.8"
|
||||
@@ -7877,13 +7932,10 @@
|
||||
}
|
||||
},
|
||||
"node_modules/es-define-property": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
|
||||
"integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
|
||||
"integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"get-intrinsic": "^1.2.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
@@ -7903,6 +7955,18 @@
|
||||
"integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/es-object-atoms": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
|
||||
"integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"es-errors": "^1.3.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/esast-util-from-estree": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz",
|
||||
@@ -8252,45 +8316,49 @@
|
||||
}
|
||||
},
|
||||
"node_modules/express": {
|
||||
"version": "4.19.2",
|
||||
"resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz",
|
||||
"integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
|
||||
"version": "4.22.1",
|
||||
"resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz",
|
||||
"integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"accepts": "~1.3.8",
|
||||
"array-flatten": "1.1.1",
|
||||
"body-parser": "1.20.2",
|
||||
"content-disposition": "0.5.4",
|
||||
"body-parser": "~1.20.3",
|
||||
"content-disposition": "~0.5.4",
|
||||
"content-type": "~1.0.4",
|
||||
"cookie": "0.6.0",
|
||||
"cookie-signature": "1.0.6",
|
||||
"cookie": "~0.7.1",
|
||||
"cookie-signature": "~1.0.6",
|
||||
"debug": "2.6.9",
|
||||
"depd": "2.0.0",
|
||||
"encodeurl": "~1.0.2",
|
||||
"encodeurl": "~2.0.0",
|
||||
"escape-html": "~1.0.3",
|
||||
"etag": "~1.8.1",
|
||||
"finalhandler": "1.2.0",
|
||||
"fresh": "0.5.2",
|
||||
"http-errors": "2.0.0",
|
||||
"merge-descriptors": "1.0.1",
|
||||
"finalhandler": "~1.3.1",
|
||||
"fresh": "~0.5.2",
|
||||
"http-errors": "~2.0.0",
|
||||
"merge-descriptors": "1.0.3",
|
||||
"methods": "~1.1.2",
|
||||
"on-finished": "2.4.1",
|
||||
"on-finished": "~2.4.1",
|
||||
"parseurl": "~1.3.3",
|
||||
"path-to-regexp": "0.1.7",
|
||||
"path-to-regexp": "~0.1.12",
|
||||
"proxy-addr": "~2.0.7",
|
||||
"qs": "6.11.0",
|
||||
"qs": "~6.14.0",
|
||||
"range-parser": "~1.2.1",
|
||||
"safe-buffer": "5.2.1",
|
||||
"send": "0.18.0",
|
||||
"serve-static": "1.15.0",
|
||||
"send": "~0.19.0",
|
||||
"serve-static": "~1.16.2",
|
||||
"setprototypeof": "1.2.0",
|
||||
"statuses": "2.0.1",
|
||||
"statuses": "~2.0.1",
|
||||
"type-is": "~1.6.18",
|
||||
"utils-merge": "1.0.1",
|
||||
"vary": "~1.1.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.10.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/express"
|
||||
}
|
||||
},
|
||||
"node_modules/express/node_modules/content-disposition": {
|
||||
@@ -8306,9 +8374,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/express/node_modules/path-to-regexp": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
|
||||
"integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==",
|
||||
"version": "0.1.12",
|
||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
|
||||
"integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/extend": {
|
||||
@@ -8531,17 +8599,17 @@
|
||||
}
|
||||
},
|
||||
"node_modules/finalhandler": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
|
||||
"integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
|
||||
"version": "1.3.2",
|
||||
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz",
|
||||
"integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"debug": "2.6.9",
|
||||
"encodeurl": "~1.0.2",
|
||||
"encodeurl": "~2.0.0",
|
||||
"escape-html": "~1.0.3",
|
||||
"on-finished": "2.4.1",
|
||||
"on-finished": "~2.4.1",
|
||||
"parseurl": "~1.3.3",
|
||||
"statuses": "2.0.1",
|
||||
"statuses": "~2.0.2",
|
||||
"unpipe": "~1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
@@ -8904,16 +8972,21 @@
|
||||
}
|
||||
},
|
||||
"node_modules/get-intrinsic": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
|
||||
"integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
|
||||
"integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"call-bind-apply-helpers": "^1.0.2",
|
||||
"es-define-property": "^1.0.1",
|
||||
"es-errors": "^1.3.0",
|
||||
"es-object-atoms": "^1.1.1",
|
||||
"function-bind": "^1.1.2",
|
||||
"has-proto": "^1.0.1",
|
||||
"has-symbols": "^1.0.3",
|
||||
"hasown": "^2.0.0"
|
||||
"get-proto": "^1.0.1",
|
||||
"gopd": "^1.2.0",
|
||||
"has-symbols": "^1.1.0",
|
||||
"hasown": "^2.0.2",
|
||||
"math-intrinsics": "^1.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
@@ -8928,6 +9001,19 @@
|
||||
"integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==",
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/get-proto": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
|
||||
"integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"dunder-proto": "^1.0.1",
|
||||
"es-object-atoms": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/get-stdin": {
|
||||
"version": "9.0.0",
|
||||
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz",
|
||||
@@ -9112,12 +9198,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/gopd": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
|
||||
"integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
|
||||
"integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"get-intrinsic": "^1.1.3"
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
@@ -9254,22 +9340,10 @@
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/has-proto": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
|
||||
"integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/has-symbols": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
|
||||
"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
|
||||
"integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
@@ -9938,19 +10012,23 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/http-errors": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
|
||||
"integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
|
||||
"integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"depd": "2.0.0",
|
||||
"inherits": "2.0.4",
|
||||
"setprototypeof": "1.2.0",
|
||||
"statuses": "2.0.1",
|
||||
"toidentifier": "1.0.1"
|
||||
"depd": "~2.0.0",
|
||||
"inherits": "~2.0.4",
|
||||
"setprototypeof": "~1.2.0",
|
||||
"statuses": "~2.0.2",
|
||||
"toidentifier": "~1.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.8"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/express"
|
||||
}
|
||||
},
|
||||
"node_modules/http-parser-js": {
|
||||
@@ -10943,6 +11021,15 @@
|
||||
"url": "https://github.com/sponsors/wooorm"
|
||||
}
|
||||
},
|
||||
"node_modules/math-intrinsics": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
|
||||
"integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/mdast-util-directive": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.0.0.tgz",
|
||||
@@ -11319,10 +11406,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/merge-descriptors": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
|
||||
"integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==",
|
||||
"license": "MIT"
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
|
||||
"integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/merge-stream": {
|
||||
"version": "2.0.0",
|
||||
@@ -13064,9 +13154,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/object-inspect": {
|
||||
"version": "1.13.2",
|
||||
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz",
|
||||
"integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==",
|
||||
"version": "1.13.4",
|
||||
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
|
||||
"integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
@@ -13620,6 +13710,7 @@
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"nanoid": "^3.3.7",
|
||||
"picocolors": "^1.1.1",
|
||||
@@ -14381,12 +14472,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/qs": {
|
||||
"version": "6.11.0",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
|
||||
"integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
|
||||
"version": "6.14.1",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.14.1.tgz",
|
||||
"integrity": "sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==",
|
||||
"license": "BSD-3-Clause",
|
||||
"dependencies": {
|
||||
"side-channel": "^1.0.4"
|
||||
"side-channel": "^1.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.6"
|
||||
@@ -14455,15 +14546,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/raw-body": {
|
||||
"version": "2.5.2",
|
||||
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
|
||||
"integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
|
||||
"version": "2.5.3",
|
||||
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz",
|
||||
"integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"bytes": "3.1.2",
|
||||
"http-errors": "2.0.0",
|
||||
"iconv-lite": "0.4.24",
|
||||
"unpipe": "1.0.0"
|
||||
"bytes": "~3.1.2",
|
||||
"http-errors": "~2.0.1",
|
||||
"iconv-lite": "~0.4.24",
|
||||
"unpipe": "~1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.8"
|
||||
@@ -14545,6 +14636,7 @@
|
||||
"resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
|
||||
"integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"loose-envify": "^1.1.0"
|
||||
},
|
||||
@@ -14683,6 +14775,7 @@
|
||||
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
|
||||
"integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"loose-envify": "^1.1.0",
|
||||
"scheduler": "^0.23.2"
|
||||
@@ -14744,6 +14837,7 @@
|
||||
"resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz",
|
||||
"integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@types/react": "*"
|
||||
},
|
||||
@@ -14772,6 +14866,7 @@
|
||||
"resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz",
|
||||
"integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.12.13",
|
||||
"history": "^4.9.0",
|
||||
@@ -15692,6 +15787,7 @@
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz",
|
||||
"integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"fast-deep-equal": "^3.1.3",
|
||||
"json-schema-traverse": "^1.0.0",
|
||||
@@ -15814,24 +15910,24 @@
|
||||
}
|
||||
},
|
||||
"node_modules/send": {
|
||||
"version": "0.18.0",
|
||||
"resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
|
||||
"integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
|
||||
"version": "0.19.2",
|
||||
"resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz",
|
||||
"integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"debug": "2.6.9",
|
||||
"depd": "2.0.0",
|
||||
"destroy": "1.2.0",
|
||||
"encodeurl": "~1.0.2",
|
||||
"encodeurl": "~2.0.0",
|
||||
"escape-html": "~1.0.3",
|
||||
"etag": "~1.8.1",
|
||||
"fresh": "0.5.2",
|
||||
"http-errors": "2.0.0",
|
||||
"fresh": "~0.5.2",
|
||||
"http-errors": "~2.0.1",
|
||||
"mime": "1.6.0",
|
||||
"ms": "2.1.3",
|
||||
"on-finished": "2.4.1",
|
||||
"on-finished": "~2.4.1",
|
||||
"range-parser": "~1.2.1",
|
||||
"statuses": "2.0.1"
|
||||
"statuses": "~2.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.8.0"
|
||||
@@ -15982,15 +16078,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/serve-static": {
|
||||
"version": "1.15.0",
|
||||
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
|
||||
"integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
|
||||
"version": "1.16.3",
|
||||
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz",
|
||||
"integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"encodeurl": "~1.0.2",
|
||||
"encodeurl": "~2.0.0",
|
||||
"escape-html": "~1.0.3",
|
||||
"parseurl": "~1.3.3",
|
||||
"send": "0.18.0"
|
||||
"send": "~0.19.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.8.0"
|
||||
@@ -16085,15 +16181,69 @@
|
||||
}
|
||||
},
|
||||
"node_modules/side-channel": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
|
||||
"integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
|
||||
"integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"call-bind": "^1.0.7",
|
||||
"es-errors": "^1.3.0",
|
||||
"get-intrinsic": "^1.2.4",
|
||||
"object-inspect": "^1.13.1"
|
||||
"object-inspect": "^1.13.3",
|
||||
"side-channel-list": "^1.0.0",
|
||||
"side-channel-map": "^1.0.1",
|
||||
"side-channel-weakmap": "^1.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/side-channel-list": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
|
||||
"integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"es-errors": "^1.3.0",
|
||||
"object-inspect": "^1.13.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/side-channel-map": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
|
||||
"integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"call-bound": "^1.0.2",
|
||||
"es-errors": "^1.3.0",
|
||||
"get-intrinsic": "^1.2.5",
|
||||
"object-inspect": "^1.13.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/side-channel-weakmap": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
|
||||
"integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"call-bound": "^1.0.2",
|
||||
"es-errors": "^1.3.0",
|
||||
"get-intrinsic": "^1.2.5",
|
||||
"object-inspect": "^1.13.3",
|
||||
"side-channel-map": "^1.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
@@ -16337,9 +16487,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/statuses": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
|
||||
"integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
|
||||
"integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.8"
|
||||
@@ -16946,6 +17096,7 @@
|
||||
"version": "5.2.2",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
|
||||
"integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"tsc": "bin/tsc",
|
||||
"tsserver": "bin/tsserver"
|
||||
@@ -17523,6 +17674,7 @@
|
||||
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.96.1.tgz",
|
||||
"integrity": "sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@types/eslint-scope": "^3.7.7",
|
||||
"@types/estree": "^1.0.6",
|
||||
|
||||
@@ -48,6 +48,6 @@
|
||||
]
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.0"
|
||||
"node": ">=20.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,4 +4,4 @@ cmp stdout $WORK/output.txt
|
||||
-- command.sh --
|
||||
holos --version
|
||||
-- output.txt --
|
||||
0.104.1
|
||||
0.106.0
|
||||
|
||||
@@ -1 +1 @@
|
||||
0.104.1
|
||||
0.105.1
|
||||
|
||||
@@ -1,3 +1,2 @@
|
||||
cached podinfo 6.6.2
|
||||
rendered podinfo in 1.938665041s
|
||||
rendered platform in 1.938759417s
|
||||
rendered podinfo in 290.020792ms
|
||||
rendered platform in 290.155667ms
|
||||
|
||||
@@ -9,9 +9,8 @@
|
||||
|-- platform
|
||||
| |-- platform.gen.cue
|
||||
| `-- podinfo.cue
|
||||
|-- platform.metadata.json
|
||||
|-- resources.cue
|
||||
|-- schema.cue
|
||||
`-- tags.cue
|
||||
|
||||
8 directories, 7 files
|
||||
8 directories, 6 files
|
||||
|
||||
@@ -4,4 +4,4 @@ cmp stdout $WORK/output.txt
|
||||
-- command.sh --
|
||||
holos --version
|
||||
-- output.txt --
|
||||
0.104.1
|
||||
0.106.0
|
||||
|
||||
@@ -1 +1 @@
|
||||
0.104.1
|
||||
0.105.1
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
[main 1adcd08] add blackbox configuration
|
||||
[main fd30368] add blackbox configuration
|
||||
1 file changed, 15 insertions(+)
|
||||
create mode 100644 components/blackbox.cue
|
||||
create mode 100644 config/prometheus/blackbox.cue
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
[main 4221803] integrate blackbox and prometheus together
|
||||
2 files changed, 4 insertions(+), 2 deletions(-)
|
||||
[main e9a22bd] integrate blackbox and prometheus together
|
||||
3 files changed, 1359 insertions(+), 2 deletions(-)
|
||||
create mode 100644 components/prometheus/values.cue.orig
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[main 52e90ea] import values
|
||||
2 files changed, 1815 insertions(+)
|
||||
[main dbaf504] import values
|
||||
2 files changed, 1826 insertions(+)
|
||||
create mode 100644 components/blackbox/values.cue
|
||||
create mode 100644 components/prometheus/values.cue
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
rendered blackbox in 365.936792ms
|
||||
rendered prometheus in 371.855875ms
|
||||
rendered platform in 372.109916ms
|
||||
rendered blackbox in 120.236ms
|
||||
rendered prometheus in 147.333125ms
|
||||
rendered platform in 147.385208ms
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[main b5df111] add blackbox and prometheus
|
||||
[main c523ef0] add blackbox and prometheus
|
||||
5 files changed, 1550 insertions(+)
|
||||
create mode 100644 components/blackbox/blackbox.cue
|
||||
create mode 100644 components/prometheus/prometheus.cue
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
cached prometheus-blackbox-exporter 9.0.1
|
||||
rendered blackbox in 3.825430417s
|
||||
cached prometheus 25.27.0
|
||||
rendered prometheus in 4.840089667s
|
||||
rendered platform in 4.840137792s
|
||||
rendered blackbox in 1.023009333s
|
||||
rendered prometheus in 1.1285565s
|
||||
rendered platform in 1.128658458s
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
[main 67efe0d] render integrated blackbox and prometheus manifests
|
||||
[main ed5ce22] render integrated blackbox and prometheus manifests
|
||||
2 files changed, 7 insertions(+), 7 deletions(-)
|
||||
|
||||
@@ -4,4 +4,4 @@ cmp stdout $WORK/output.txt
|
||||
-- command.sh --
|
||||
holos --version
|
||||
-- output.txt --
|
||||
0.104.1
|
||||
0.106.0
|
||||
|
||||
@@ -1 +1 @@
|
||||
0.104.1
|
||||
0.105.1
|
||||
|
||||
@@ -27,9 +27,9 @@ spec:
|
||||
- includeSelectors: false
|
||||
pairs:
|
||||
app.kubernetes.io/name: httpbin
|
||||
patches: []
|
||||
images:
|
||||
- name: mccutchen/go-httpbin
|
||||
patches: []
|
||||
resources:
|
||||
- resources.gen.yaml
|
||||
- httpbin.yaml
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[main 823e136] add httpbin
|
||||
[main bdb182b] add httpbin
|
||||
4 files changed, 113 insertions(+)
|
||||
create mode 100644 components/httpbin/httpbin.cue
|
||||
create mode 100644 components/httpbin/httpbin.yaml
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
[main 96f5f45] annotate httpbin for prometheus probes
|
||||
[main d557fa2] annotate httpbin for prometheus probes
|
||||
2 files changed, 18 insertions(+)
|
||||
create mode 100644 components/httpbin/patches.cue
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
rendered httpbin in 112.916375ms
|
||||
rendered platform in 112.990333ms
|
||||
rendered httpbin in 79.923ms
|
||||
rendered platform in 79.99475ms
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
rendered httpbin in 111.183042ms
|
||||
rendered platform in 111.265792ms
|
||||
rendered httpbin in 81.503708ms
|
||||
rendered platform in 81.573166ms
|
||||
|
||||
185
go.mod
185
go.mod
@@ -1,107 +1,90 @@
|
||||
module github.com/holos-run/holos
|
||||
|
||||
go 1.23
|
||||
|
||||
toolchain go1.23.2
|
||||
go 1.24.0
|
||||
|
||||
require (
|
||||
cuelang.org/go v0.12.0
|
||||
cuelang.org/go v0.15.1
|
||||
github.com/google/go-cmp v0.7.0
|
||||
github.com/mattn/go-isatty v0.0.20
|
||||
github.com/mattn/go-runewidth v0.0.15
|
||||
github.com/olekukonko/tablewriter v0.0.5
|
||||
github.com/patrickdappollonio/kubectl-slice v1.4.2
|
||||
github.com/princjef/gomarkdoc v1.1.0
|
||||
github.com/rogpeppe/go-internal v1.13.2-0.20241226121412-a5dc8ff20d0a
|
||||
github.com/spf13/cobra v1.8.1
|
||||
github.com/spf13/pflag v1.0.5
|
||||
github.com/stretchr/testify v1.9.0
|
||||
golang.org/x/sync v0.10.0
|
||||
golang.org/x/tools v0.29.0
|
||||
github.com/rogpeppe/go-internal v1.14.1
|
||||
github.com/spf13/cobra v1.10.1
|
||||
github.com/spf13/pflag v1.0.10
|
||||
github.com/spf13/viper v1.19.0
|
||||
github.com/stretchr/testify v1.10.0
|
||||
golang.org/x/sync v0.18.0
|
||||
golang.org/x/tools v0.38.0
|
||||
gopkg.in/yaml.v3 v3.0.1
|
||||
helm.sh/helm/v3 v3.16.3
|
||||
sigs.k8s.io/kustomize/kustomize/v5 v5.5.0
|
||||
helm.sh/helm/v3 v3.18.5
|
||||
k8s.io/kubectl v0.34.3
|
||||
sigs.k8s.io/kustomize/kustomize/v5 v5.7.1
|
||||
)
|
||||
|
||||
require (
|
||||
cuelabs.dev/go/oci/ociregistry v0.0.0-20241125120445-2c00c104c6e1 // indirect
|
||||
cuelabs.dev/go/oci/ociregistry v0.0.0-20250722084951-074d06050084 // indirect
|
||||
dario.cat/mergo v1.0.1 // indirect
|
||||
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect
|
||||
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect
|
||||
github.com/BurntSushi/toml v1.3.2 // indirect
|
||||
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect
|
||||
github.com/BurntSushi/toml v1.5.0 // indirect
|
||||
github.com/MakeNowJust/heredoc v1.0.0 // indirect
|
||||
github.com/Masterminds/goutils v1.1.1 // indirect
|
||||
github.com/Masterminds/semver/v3 v3.3.0 // indirect
|
||||
github.com/Masterminds/sprig/v3 v3.3.0 // indirect
|
||||
github.com/Masterminds/squirrel v1.5.4 // indirect
|
||||
github.com/Microsoft/go-winio v0.6.2 // indirect
|
||||
github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c // indirect
|
||||
github.com/ProtonMail/go-crypto v1.1.3 // indirect
|
||||
github.com/VividCortex/ewma v1.2.0 // indirect
|
||||
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
|
||||
github.com/beorn7/perks v1.0.1 // indirect
|
||||
github.com/blang/semver/v4 v4.0.0 // indirect
|
||||
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
||||
github.com/chai2010/gettext-go v1.0.2 // indirect
|
||||
github.com/cheggaaa/pb/v3 v3.0.8 // indirect
|
||||
github.com/cloudflare/circl v1.3.7 // indirect
|
||||
github.com/cloudflare/circl v1.6.1 // indirect
|
||||
github.com/cockroachdb/apd/v3 v3.2.1 // indirect
|
||||
github.com/containerd/containerd v1.7.23 // indirect
|
||||
github.com/containerd/containerd v1.7.27 // indirect
|
||||
github.com/containerd/errdefs v0.3.0 // indirect
|
||||
github.com/containerd/log v0.1.0 // indirect
|
||||
github.com/containerd/platforms v0.2.1 // indirect
|
||||
github.com/cyphar/filepath-securejoin v0.3.4 // indirect
|
||||
github.com/cyphar/filepath-securejoin v0.4.1 // indirect
|
||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
||||
github.com/distribution/reference v0.6.0 // indirect
|
||||
github.com/docker/cli v26.1.4+incompatible // indirect
|
||||
github.com/docker/distribution v2.8.3+incompatible // indirect
|
||||
github.com/docker/docker v27.0.0+incompatible // indirect
|
||||
github.com/docker/docker-credential-helpers v0.8.2 // indirect
|
||||
github.com/docker/go-connections v0.5.0 // indirect
|
||||
github.com/docker/go-metrics v0.0.1 // indirect
|
||||
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
|
||||
github.com/emicklei/proto v1.13.4 // indirect
|
||||
github.com/emicklei/go-restful/v3 v3.12.2 // indirect
|
||||
github.com/emicklei/proto v1.14.2 // indirect
|
||||
github.com/emirpasic/gods v1.18.1 // indirect
|
||||
github.com/evanphx/json-patch v5.9.0+incompatible // indirect
|
||||
github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d // indirect
|
||||
github.com/evanphx/json-patch v5.9.11+incompatible // indirect
|
||||
github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f // indirect
|
||||
github.com/fatih/color v1.16.0 // indirect
|
||||
github.com/felixge/httpsnoop v1.0.4 // indirect
|
||||
github.com/fsnotify/fsnotify v1.7.0 // indirect
|
||||
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
|
||||
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
|
||||
github.com/go-errors/errors v1.4.2 // indirect
|
||||
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
|
||||
github.com/go-git/go-billy/v5 v5.5.0 // indirect
|
||||
github.com/go-git/go-git/v5 v5.11.0 // indirect
|
||||
github.com/go-git/go-billy/v5 v5.6.0 // indirect
|
||||
github.com/go-git/go-git/v5 v5.13.0 // indirect
|
||||
github.com/go-gorp/gorp/v3 v3.1.0 // indirect
|
||||
github.com/go-logr/logr v1.4.2 // indirect
|
||||
github.com/go-logr/stdr v1.2.2 // indirect
|
||||
github.com/go-openapi/jsonpointer v0.20.2 // indirect
|
||||
github.com/go-openapi/jsonpointer v0.21.0 // indirect
|
||||
github.com/go-openapi/jsonreference v0.20.4 // indirect
|
||||
github.com/go-openapi/swag v0.22.9 // indirect
|
||||
github.com/go-openapi/swag v0.23.0 // indirect
|
||||
github.com/gobwas/glob v0.2.3 // indirect
|
||||
github.com/gogo/protobuf v1.3.2 // indirect
|
||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
||||
github.com/golang/protobuf v1.5.4 // indirect
|
||||
github.com/google/btree v1.0.1 // indirect
|
||||
github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49 // indirect
|
||||
github.com/google/go-cmp v0.6.0 // indirect
|
||||
github.com/google/gofuzz v1.2.0 // indirect
|
||||
github.com/google/pprof v0.0.0-20240622144329-c177fd99eaa9 // indirect
|
||||
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
|
||||
github.com/google/btree v1.1.3 // indirect
|
||||
github.com/google/gnostic-models v0.7.0 // indirect
|
||||
github.com/google/uuid v1.6.0 // indirect
|
||||
github.com/gorilla/mux v1.8.1 // indirect
|
||||
github.com/gorilla/websocket v1.5.0 // indirect
|
||||
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 // indirect
|
||||
github.com/gosuri/uitable v0.0.4 // indirect
|
||||
github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 // indirect
|
||||
github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect
|
||||
github.com/hashicorp/errwrap v1.1.0 // indirect
|
||||
github.com/hashicorp/go-multierror v1.1.1 // indirect
|
||||
github.com/hashicorp/hcl v1.0.1-vault-5 // indirect
|
||||
github.com/huandu/xstrings v1.5.0 // indirect
|
||||
github.com/imdario/mergo v0.3.16 // indirect
|
||||
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
||||
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
|
||||
github.com/jmoiron/sqlx v1.4.0 // indirect
|
||||
github.com/josharian/intern v1.0.0 // indirect
|
||||
github.com/json-iterator/go v1.1.12 // indirect
|
||||
github.com/kevinburke/ssh_config v1.2.0 // indirect
|
||||
github.com/klauspost/compress v1.17.9 // indirect
|
||||
github.com/klauspost/compress v1.18.0 // indirect
|
||||
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect
|
||||
github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 // indirect
|
||||
github.com/lib/pq v1.10.9 // indirect
|
||||
@@ -110,99 +93,87 @@ require (
|
||||
github.com/magiconair/properties v1.8.7 // indirect
|
||||
github.com/mailru/easyjson v0.7.7 // indirect
|
||||
github.com/mattn/go-colorable v0.1.13 // indirect
|
||||
github.com/mb0/glob v0.0.0-20160210091149-1eb79d2de6c4 // indirect
|
||||
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect
|
||||
github.com/miekg/dns v1.1.58 // indirect
|
||||
github.com/mitchellh/copystructure v1.2.0 // indirect
|
||||
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
|
||||
github.com/mitchellh/mapstructure v1.5.0 // indirect
|
||||
github.com/mitchellh/reflectwalk v1.0.2 // indirect
|
||||
github.com/moby/locker v1.0.1 // indirect
|
||||
github.com/moby/spdystream v0.4.0 // indirect
|
||||
github.com/moby/sys/mountinfo v0.7.1 // indirect
|
||||
github.com/moby/term v0.5.0 // indirect
|
||||
github.com/moby/spdystream v0.5.0 // indirect
|
||||
github.com/moby/term v0.5.2 // indirect
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||
github.com/modern-go/reflect2 v1.0.2 // indirect
|
||||
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
|
||||
github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect
|
||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
||||
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
|
||||
github.com/nxadm/tail v1.4.11 // indirect
|
||||
github.com/onsi/ginkgo v1.16.4 // indirect
|
||||
github.com/opencontainers/go-digest v1.0.0 // indirect
|
||||
github.com/opencontainers/image-spec v1.1.0 // indirect
|
||||
github.com/pelletier/go-toml/v2 v2.2.3 // indirect
|
||||
github.com/opencontainers/image-spec v1.1.1 // indirect
|
||||
github.com/pelletier/go-toml/v2 v2.2.4 // indirect
|
||||
github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
|
||||
github.com/pjbgf/sha1cd v0.3.0 // indirect
|
||||
github.com/pkg/errors v0.9.1 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
||||
github.com/princjef/mageutil v1.0.0 // indirect
|
||||
github.com/princjef/termdiff v0.1.0 // indirect
|
||||
github.com/prometheus/client_golang v1.19.1 // indirect
|
||||
github.com/prometheus/client_model v0.6.1 // indirect
|
||||
github.com/prometheus/common v0.55.0 // indirect
|
||||
github.com/prometheus/procfs v0.15.1 // indirect
|
||||
github.com/protocolbuffers/txtpbfmt v0.0.0-20241112170944-20d2c9ebc01d // indirect
|
||||
github.com/protocolbuffers/txtpbfmt v0.0.0-20251016062345-16587c79cd91 // indirect
|
||||
github.com/rivo/uniseg v0.4.7 // indirect
|
||||
github.com/rubenv/sql-migrate v1.7.0 // indirect
|
||||
github.com/rubenv/sql-migrate v1.8.0 // indirect
|
||||
github.com/russross/blackfriday/v2 v2.1.0 // indirect
|
||||
github.com/sagikazarmark/locafero v0.4.0 // indirect
|
||||
github.com/sagikazarmark/slog-shim v0.1.0 // indirect
|
||||
github.com/sergi/go-diff v1.3.1 // indirect
|
||||
github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 // indirect
|
||||
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect
|
||||
github.com/shopspring/decimal v1.4.0 // indirect
|
||||
github.com/sirupsen/logrus v1.9.3 // indirect
|
||||
github.com/skeema/knownhosts v1.2.1 // indirect
|
||||
github.com/skeema/knownhosts v1.3.0 // indirect
|
||||
github.com/sourcegraph/conc v0.3.0 // indirect
|
||||
github.com/spf13/afero v1.11.0 // indirect
|
||||
github.com/spf13/cast v1.7.0 // indirect
|
||||
github.com/spf13/viper v1.18.2 // indirect
|
||||
github.com/subosito/gotenv v1.6.0 // indirect
|
||||
github.com/tetratelabs/wazero v1.6.0 // indirect
|
||||
github.com/tetratelabs/wazero v1.9.0 // indirect
|
||||
github.com/x-cray/logrus-prefixed-formatter v0.5.2 // indirect
|
||||
github.com/x448/float16 v0.8.4 // indirect
|
||||
github.com/xanzy/ssh-agent v0.3.3 // indirect
|
||||
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect
|
||||
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
|
||||
github.com/xeipuuv/gojsonschema v1.2.0 // indirect
|
||||
github.com/xlab/treeprint v1.2.0 // indirect
|
||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 // indirect
|
||||
go.opentelemetry.io/otel v1.28.0 // indirect
|
||||
go.opentelemetry.io/otel/metric v1.28.0 // indirect
|
||||
go.opentelemetry.io/otel/trace v1.28.0 // indirect
|
||||
go.uber.org/multierr v1.11.0 // indirect
|
||||
golang.org/x/crypto v0.32.0 // indirect
|
||||
golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 // indirect
|
||||
golang.org/x/mod v0.22.0 // indirect
|
||||
golang.org/x/net v0.34.0 // indirect
|
||||
golang.org/x/oauth2 v0.25.0 // indirect
|
||||
golang.org/x/sys v0.29.0 // indirect
|
||||
golang.org/x/term v0.28.0 // indirect
|
||||
golang.org/x/text v0.21.0 // indirect
|
||||
golang.org/x/time v0.5.0 // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240701130421-f6361c86f094 // indirect
|
||||
google.golang.org/grpc v1.65.0 // indirect
|
||||
google.golang.org/protobuf v1.34.2 // indirect
|
||||
go.yaml.in/yaml/v2 v2.4.2 // indirect
|
||||
go.yaml.in/yaml/v3 v3.0.4 // indirect
|
||||
golang.org/x/crypto v0.45.0 // indirect
|
||||
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect
|
||||
golang.org/x/mod v0.29.0 // indirect
|
||||
golang.org/x/net v0.47.0 // indirect
|
||||
golang.org/x/oauth2 v0.32.0 // indirect
|
||||
golang.org/x/sys v0.38.0 // indirect
|
||||
golang.org/x/term v0.37.0 // indirect
|
||||
golang.org/x/text v0.31.0 // indirect
|
||||
golang.org/x/time v0.9.0 // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb // indirect
|
||||
google.golang.org/grpc v1.72.1 // indirect
|
||||
google.golang.org/protobuf v1.36.5 // indirect
|
||||
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
|
||||
gopkg.in/inf.v0 v0.9.1 // indirect
|
||||
gopkg.in/ini.v1 v1.67.0 // indirect
|
||||
gopkg.in/warnings.v0 v0.1.2 // indirect
|
||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||
gotest.tools/v3 v3.5.1 // indirect
|
||||
k8s.io/api v0.31.1 // indirect
|
||||
k8s.io/apiextensions-apiserver v0.31.1 // indirect
|
||||
k8s.io/apimachinery v0.31.1 // indirect
|
||||
k8s.io/apiserver v0.31.1 // indirect
|
||||
k8s.io/cli-runtime v0.31.1 // indirect
|
||||
k8s.io/client-go v0.31.1 // indirect
|
||||
k8s.io/component-base v0.31.1 // indirect
|
||||
k8s.io/api v0.34.3 // indirect
|
||||
k8s.io/apiextensions-apiserver v0.33.3 // indirect
|
||||
k8s.io/apimachinery v0.34.3 // indirect
|
||||
k8s.io/apiserver v0.33.3 // indirect
|
||||
k8s.io/cli-runtime v0.34.3 // indirect
|
||||
k8s.io/client-go v0.34.3 // indirect
|
||||
k8s.io/component-base v0.34.3 // indirect
|
||||
k8s.io/klog/v2 v2.130.1 // indirect
|
||||
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect
|
||||
k8s.io/kubectl v0.31.1 // indirect
|
||||
k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect
|
||||
k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect
|
||||
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect
|
||||
mvdan.cc/xurls/v2 v2.2.0 // indirect
|
||||
oras.land/oras-go v1.2.5 // indirect
|
||||
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
|
||||
sigs.k8s.io/kustomize/api v0.18.0 // indirect
|
||||
sigs.k8s.io/kustomize/cmd/config v0.15.0 // indirect
|
||||
sigs.k8s.io/kustomize/kyaml v0.18.1 // indirect
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
|
||||
sigs.k8s.io/yaml v1.4.0 // indirect
|
||||
oras.land/oras-go/v2 v2.6.0 // indirect
|
||||
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
|
||||
sigs.k8s.io/kustomize/api v0.20.1 // indirect
|
||||
sigs.k8s.io/kustomize/cmd/config v0.20.1 // indirect
|
||||
sigs.k8s.io/kustomize/kyaml v0.20.1 // indirect
|
||||
sigs.k8s.io/randfill v1.0.0 // indirect
|
||||
sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect
|
||||
sigs.k8s.io/yaml v1.6.0 // indirect
|
||||
)
|
||||
|
||||
543
go.sum
543
go.sum
@@ -1,17 +1,17 @@
|
||||
cuelabs.dev/go/oci/ociregistry v0.0.0-20241125120445-2c00c104c6e1 h1:mRwydyTyhtRX2wXS3mqYWzR2qlv6KsmoKXmlz5vInjg=
|
||||
cuelabs.dev/go/oci/ociregistry v0.0.0-20241125120445-2c00c104c6e1/go.mod h1:5A4xfTzHTXfeVJBU6RAUf+QrlfTCW+017q/QiW+sMLg=
|
||||
cuelang.org/go v0.12.0 h1:q4W5I+RtDIA27rslQyyt6sWkXX0YS9qm43+U1/3e0kU=
|
||||
cuelang.org/go v0.12.0/go.mod h1:B4+kjvGGQnbkz+GuAv1dq/R308gTkp0sO28FdMrJ2Kw=
|
||||
cuelabs.dev/go/oci/ociregistry v0.0.0-20250722084951-074d06050084 h1:4k1yAtPvZJZQTu8DRY8muBo0LHv6TqtrE0AO5n6IPYs=
|
||||
cuelabs.dev/go/oci/ociregistry v0.0.0-20250722084951-074d06050084/go.mod h1:4WWeZNxUO1vRoZWAHIG0KZOd6dA25ypyWuwD3ti0Tdc=
|
||||
cuelang.org/go v0.15.1 h1:MRnjc/KJE+K42rnJ3a+425f1jqXeOOgq9SK4tYRTtWw=
|
||||
cuelang.org/go v0.15.1/go.mod h1:NYw6n4akZcTjA7QQwJ1/gqWrrhsN4aZwhcAL0jv9rZE=
|
||||
dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s=
|
||||
dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
|
||||
filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
|
||||
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
|
||||
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU=
|
||||
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8=
|
||||
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0=
|
||||
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
|
||||
github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8=
|
||||
github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
|
||||
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c h1:udKWzYgxTojEKWjV8V+WSxDXJ4NFATAsZjh8iIbsQIg=
|
||||
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
|
||||
github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg=
|
||||
github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
|
||||
github.com/DATA-DOG/go-sqlmock v1.5.2 h1:OcvFkGmslmlZibjAjaHm3L//6LiuBgolP7OputlJIzU=
|
||||
github.com/DATA-DOG/go-sqlmock v1.5.2/go.mod h1:88MAG/4G7SMwSE3CeA0ZKzrT5CiOU3OJ+JlNzwDqpNU=
|
||||
github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ=
|
||||
@@ -27,38 +27,25 @@ github.com/Masterminds/squirrel v1.5.4/go.mod h1:NNaOrjSoIDfDA40n7sr2tPNZRfjzjA4
|
||||
github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY=
|
||||
github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
|
||||
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
|
||||
github.com/Microsoft/hcsshim v0.11.7 h1:vl/nj3Bar/CvJSYo7gIQPyRWc9f3c6IeSNavBTSZNZQ=
|
||||
github.com/Microsoft/hcsshim v0.11.7/go.mod h1:MV8xMfmECjl5HdO7U/3/hFVnkmSBjAjmA09d4bExKcU=
|
||||
github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c h1:kMFnB0vCcX7IL/m9Y5LO+KQYv+t1CQOiFe6+SV2J7bE=
|
||||
github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0=
|
||||
github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d h1:UrqY+r/OJnIp5u0s1SbQ8dVfLCZJsnvazdBP5hS4iRs=
|
||||
github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ=
|
||||
github.com/ProtonMail/go-crypto v1.1.3 h1:nRBOetoydLeUb4nHajyO2bKqMLfWQ/ZPwkXqXxPxCFk=
|
||||
github.com/ProtonMail/go-crypto v1.1.3/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE=
|
||||
github.com/VividCortex/ewma v1.1.1/go.mod h1:2Tkkvm3sRDVXaiyucHiACn4cqf7DpdyLvmxzcbUokwA=
|
||||
github.com/VividCortex/ewma v1.2.0 h1:f58SaIzcDXrSy3kWaHNvuJgJ3Nmz59Zji6XoJR/q1ow=
|
||||
github.com/VividCortex/ewma v1.2.0/go.mod h1:nz4BbCtbLyFDeC9SUHbtcT5644juEuWfUAUnGx7j5l4=
|
||||
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
||||
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
||||
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8=
|
||||
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4=
|
||||
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
|
||||
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
|
||||
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so=
|
||||
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
|
||||
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
|
||||
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
|
||||
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
||||
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
||||
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
|
||||
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
|
||||
github.com/bshuster-repo/logrus-logstash-hook v1.0.0 h1:e+C0SB5R1pu//O4MQ3f9cFuPGoOVeF2fE4Og9otCc70=
|
||||
github.com/bshuster-repo/logrus-logstash-hook v1.0.0/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk=
|
||||
github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd h1:rFt+Y/IK1aEZkEHchZRSq9OQbsSzIT/OrI8YFFmRIng=
|
||||
github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8=
|
||||
github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b h1:otBG+dV+YK+Soembjv71DPz3uX/V/6MMlSyD9JBQ6kQ=
|
||||
github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50=
|
||||
github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0 h1:nvj0OLI3YqYXer/kZD8Ri1aaunCxIEsOst1BVJswV0o=
|
||||
github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE=
|
||||
github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0=
|
||||
github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=
|
||||
github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
|
||||
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
|
||||
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||
github.com/chai2010/gettext-go v1.0.2 h1:1Lwwip6Q2QGsAdl/ZKPCwTe9fe0CjlUbqj5bFNSjIRk=
|
||||
@@ -67,64 +54,55 @@ github.com/cheggaaa/pb v2.0.7+incompatible/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeD
|
||||
github.com/cheggaaa/pb/v3 v3.0.4/go.mod h1:7rgWxLrAUcFMkvJuv09+DYi7mMUYi8nO9iOWcvGJPfw=
|
||||
github.com/cheggaaa/pb/v3 v3.0.8 h1:bC8oemdChbke2FHIIGy9mn4DPJ2caZYQnfbRqwmdCoA=
|
||||
github.com/cheggaaa/pb/v3 v3.0.8/go.mod h1:UICbiLec/XO6Hw6k+BHEtHeQFzzBH4i2/qk/ow1EJTA=
|
||||
github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA=
|
||||
github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU=
|
||||
github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA=
|
||||
github.com/cloudflare/circl v1.6.1 h1:zqIqSPIndyBh1bjLVVDHMPpVKqp8Su/V+6MeDzzQBQ0=
|
||||
github.com/cloudflare/circl v1.6.1/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs=
|
||||
github.com/cockroachdb/apd/v3 v3.2.1 h1:U+8j7t0axsIgvQUqthuNm82HIrYXodOV2iWLWtEaIwg=
|
||||
github.com/cockroachdb/apd/v3 v3.2.1/go.mod h1:klXJcjp+FffLTHlhIG69tezTDvdP065naDsHzKhYSqc=
|
||||
github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM=
|
||||
github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw=
|
||||
github.com/containerd/containerd v1.7.23 h1:H2CClyUkmpKAGlhQp95g2WXHfLYc7whAuvZGBNYOOwQ=
|
||||
github.com/containerd/containerd v1.7.23/go.mod h1:7QUzfURqZWCZV7RLNEn1XjUCQLEf0bkaK4GjUaZehxw=
|
||||
github.com/containerd/continuity v0.4.2 h1:v3y/4Yz5jwnvqPKJJ+7Wf93fyWoCB3F5EclWG023MDM=
|
||||
github.com/containerd/continuity v0.4.2/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ=
|
||||
github.com/containerd/containerd v1.7.27 h1:yFyEyojddO3MIGVER2xJLWoCIn+Up4GaHFquP7hsFII=
|
||||
github.com/containerd/containerd v1.7.27/go.mod h1:xZmPnl75Vc+BLGt4MIfu6bp+fy03gdHAn9bz+FreFR0=
|
||||
github.com/containerd/errdefs v0.3.0 h1:FSZgGOeK4yuT/+DnF07/Olde/q4KBoMsaamhXxIMDp4=
|
||||
github.com/containerd/errdefs v0.3.0/go.mod h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M=
|
||||
github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I=
|
||||
github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo=
|
||||
github.com/containerd/platforms v0.2.1 h1:zvwtM3rz2YHPQsF2CHYM8+KtB5dvhISiXh5ZpSBQv6A=
|
||||
github.com/containerd/platforms v0.2.1/go.mod h1:XHCb+2/hzowdiut9rkudds9bE5yJ7npe7dG/wG+uFPw=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
|
||||
github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs=
|
||||
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
|
||||
github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY=
|
||||
github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4=
|
||||
github.com/cyphar/filepath-securejoin v0.3.4 h1:VBWugsJh2ZxJmLFSM06/0qzQyiQX2Qs0ViKrUAcqdZ8=
|
||||
github.com/cyphar/filepath-securejoin v0.3.4/go.mod h1:8s/MCNJREmFK0H02MF6Ihv1nakJe4L/w3WZLHNkvlYM=
|
||||
github.com/cyphar/filepath-securejoin v0.4.1 h1:JyxxyPEaktOD+GAnqIqTf9A8tHyAG22rowi7HkoSU1s=
|
||||
github.com/cyphar/filepath-securejoin v0.4.1/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
|
||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/distribution/distribution/v3 v3.0.0-20221208165359-362910506bc2 h1:aBfCb7iqHmDEIp6fBvC/hQUddQfg+3qdYjwzaiP9Hnc=
|
||||
github.com/distribution/distribution/v3 v3.0.0-20221208165359-362910506bc2/go.mod h1:WHNsWjnIn2V1LYOrME7e8KxSeKunYHsxEm4am0BUtcI=
|
||||
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
|
||||
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
|
||||
github.com/distribution/distribution/v3 v3.0.0 h1:q4R8wemdRQDClzoNNStftB2ZAfqOiN6UX90KJc4HjyM=
|
||||
github.com/distribution/distribution/v3 v3.0.0/go.mod h1:tRNuFoZsUdyRVegq8xGNeds4KLjwLCRin/tTo6i1DhU=
|
||||
github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk=
|
||||
github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E=
|
||||
github.com/docker/cli v26.1.4+incompatible h1:I8PHdc0MtxEADqYJZvhBrW9bo8gawKwwenxRM7/rLu8=
|
||||
github.com/docker/cli v26.1.4+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
|
||||
github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk=
|
||||
github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
|
||||
github.com/docker/docker v27.0.0+incompatible h1:JRugTYuelmWlW0M3jakcIadDx2HUoUO6+Tf2C5jVfwA=
|
||||
github.com/docker/docker v27.0.0+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
|
||||
github.com/dlclark/regexp2 v1.11.0 h1:G/nrcoOa7ZXlpoa/91N3X7mM3r8eIlMBBJZvsz/mxKI=
|
||||
github.com/dlclark/regexp2 v1.11.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
|
||||
github.com/docker/docker-credential-helpers v0.8.2 h1:bX3YxiGzFP5sOXWc3bTPEXdEaZSeVMrFgOr3T+zrFAo=
|
||||
github.com/docker/docker-credential-helpers v0.8.2/go.mod h1:P3ci7E3lwkZg6XiHdRKft1KckHiO9a2rNtyFbZ/ry9M=
|
||||
github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c=
|
||||
github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc=
|
||||
github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c h1:+pKlWGMw7gf6bQ+oDZB4KHQFypsfjYlq/C4rfL7D3g8=
|
||||
github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA=
|
||||
github.com/docker/go-metrics v0.0.1 h1:AgB/0SvBxihN0X8OR4SjsblXkbMvalQ8cjmtKQ2rQV8=
|
||||
github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw=
|
||||
github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1 h1:ZClxb8laGDf5arXfYcAtECDFgAgHklGI8CxgjHnXKJ4=
|
||||
github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE=
|
||||
github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU=
|
||||
github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM=
|
||||
github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g=
|
||||
github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
|
||||
github.com/emicklei/proto v1.13.4 h1:myn1fyf8t7tAqIzV91Tj9qXpvyXXGXk8OS2H6IBSc9g=
|
||||
github.com/emicklei/proto v1.13.4/go.mod h1:rn1FgRS/FANiZdD2djyH7TMA9jdRDcYQ9IEN9yvjX0A=
|
||||
github.com/elazarl/goproxy v1.2.1 h1:njjgvO6cRG9rIqN2ebkqy6cQz2Njkx7Fsfv/zIZqgug=
|
||||
github.com/elazarl/goproxy v1.2.1/go.mod h1:YfEbZtqP4AetfO6d40vWchF3znWX7C7Vd6ZMfdL8z64=
|
||||
github.com/emicklei/go-restful/v3 v3.12.2 h1:DhwDP0vY3k8ZzE0RunuJy8GhNpPL6zqLkDf9B/a0/xU=
|
||||
github.com/emicklei/go-restful/v3 v3.12.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
|
||||
github.com/emicklei/proto v1.14.2 h1:wJPxPy2Xifja9cEMrcA/g08art5+7CGJNFNk35iXC1I=
|
||||
github.com/emicklei/proto v1.14.2/go.mod h1:rn1FgRS/FANiZdD2djyH7TMA9jdRDcYQ9IEN9yvjX0A=
|
||||
github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc=
|
||||
github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ=
|
||||
github.com/evanphx/json-patch v5.9.0+incompatible h1:fBXyNpNMuTTDdquAq/uisOr2lShz4oaXpDTX2bLe7ls=
|
||||
github.com/evanphx/json-patch v5.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||
github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d h1:105gxyaGwCFad8crR9dcMQWvV9Hvulu6hwUh4tWPJnM=
|
||||
github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4=
|
||||
github.com/evanphx/json-patch v5.9.11+incompatible h1:ixHHqfcGvxhWkniF1tWxBHA0yb4Z+d1UQi45df52xW8=
|
||||
github.com/evanphx/json-patch v5.9.11+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||
github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f h1:Wl78ApPPB2Wvf/TIe2xdyJxTlb6obmF18d8QdkxNDu4=
|
||||
github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f/go.mod h1:OSYXu++VVOHnXeitef/D8n/6y4QV8uLHSFXX4NeXMGc=
|
||||
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
|
||||
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
|
||||
github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=
|
||||
@@ -141,55 +119,47 @@ github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4
|
||||
github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
|
||||
github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
|
||||
github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
|
||||
github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E=
|
||||
github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ=
|
||||
github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY=
|
||||
github.com/gliderlabs/ssh v0.3.5/go.mod h1:8XB4KraRrX39qHhT6yxPsHedjA08I/uBVwj4xC+/+z4=
|
||||
github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM=
|
||||
github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ=
|
||||
github.com/gliderlabs/ssh v0.3.8 h1:a4YXD1V7xMF9g5nTkdfnja3Sxy1PVDCj1Zg4Wb8vY6c=
|
||||
github.com/gliderlabs/ssh v0.3.8/go.mod h1:xYoytBv1sV0aL3CavoDuJIQNURXkkfPA/wxQ1pL1fAU=
|
||||
github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA=
|
||||
github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og=
|
||||
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI=
|
||||
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic=
|
||||
github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU=
|
||||
github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow=
|
||||
github.com/go-git/go-billy/v5 v5.6.0 h1:w2hPNtoehvJIxR00Vb4xX94qHQi/ApZfX+nBE2Cjio8=
|
||||
github.com/go-git/go-billy/v5 v5.6.0/go.mod h1:sFDq7xD3fn3E0GOwUSZqHo9lrkmx8xJhA0ZrfvjBRGM=
|
||||
github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4=
|
||||
github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII=
|
||||
github.com/go-git/go-git/v5 v5.11.0 h1:XIZc1p+8YzypNr34itUfSvYJcv+eYdTnTvOZ2vD3cA4=
|
||||
github.com/go-git/go-git/v5 v5.11.0/go.mod h1:6GFcX2P3NM7FPBfpePbpLd21XxsgdAt+lKqXmCUiUCY=
|
||||
github.com/go-git/go-git/v5 v5.13.0 h1:vLn5wlGIh/X78El6r3Jr+30W16Blk0CTcxTYcYPWi5E=
|
||||
github.com/go-git/go-git/v5 v5.13.0/go.mod h1:Wjo7/JyVKtQgUNdXYXIepzWfJQkUEIGvkvVkiXRR/zw=
|
||||
github.com/go-gorp/gorp/v3 v3.1.0 h1:ItKF/Vbuj31dmV4jxA1qblpSwkl9g1typ24xoe70IGs=
|
||||
github.com/go-gorp/gorp/v3 v3.1.0/go.mod h1:dLEjIyyRNiXvNZ8PSmzpt1GsWAUK8kjVhEpjH8TixEw=
|
||||
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
|
||||
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
|
||||
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
|
||||
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
||||
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
|
||||
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||
github.com/go-openapi/jsonpointer v0.20.2 h1:mQc3nmndL8ZBzStEo3JYF8wzmeWffDH4VbXz58sAx6Q=
|
||||
github.com/go-openapi/jsonpointer v0.20.2/go.mod h1:bHen+N0u1KEO3YlmqOjTT9Adn1RfD91Ar825/PuiRVs=
|
||||
github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ=
|
||||
github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY=
|
||||
github.com/go-openapi/jsonreference v0.20.4 h1:bKlDxQxQJgwpUSgOENiMPzCTBVuc7vTdXSSgNeAhojU=
|
||||
github.com/go-openapi/jsonreference v0.20.4/go.mod h1:5pZJyJP2MnYCpoeoMAql78cCHauHj0V9Lhc506VOpw4=
|
||||
github.com/go-openapi/swag v0.22.9 h1:XX2DssF+mQKM2DHsbgZK74y/zj4mo9I99+89xUmuZCE=
|
||||
github.com/go-openapi/swag v0.22.9/go.mod h1:3/OXnFfnMAwBD099SwYRk7GD3xOrr1iL7d/XNLXVVwE=
|
||||
github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE=
|
||||
github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ=
|
||||
github.com/go-quicktest/qt v1.101.0 h1:O1K29Txy5P2OK0dGo59b7b0LR6wKfIhttaAhHUyn7eI=
|
||||
github.com/go-quicktest/qt v1.101.0/go.mod h1:14Bz/f7NwaXPtdYEgzsx46kqSxVwTbzVZsDC26tQJow=
|
||||
github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y=
|
||||
github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg=
|
||||
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
||||
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I=
|
||||
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
|
||||
github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI=
|
||||
github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8=
|
||||
github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
|
||||
github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
|
||||
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
||||
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
|
||||
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
|
||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
|
||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
|
||||
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
|
||||
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
|
||||
@@ -198,51 +168,50 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq
|
||||
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
|
||||
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
|
||||
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
|
||||
github.com/gomodule/redigo v1.8.2 h1:H5XSIre1MB5NbPYFp+i1NBbb5qN1W8Y8YAQoAYbkm8k=
|
||||
github.com/gomodule/redigo v1.8.2/go.mod h1:P9dn9mFrCBvWhGE1wpxx6fgq7BAeLBk+UUUzlpkBYO0=
|
||||
github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4=
|
||||
github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
|
||||
github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49 h1:0VpGH+cDhbDtdcweoyCVsF3fhN8kejK6rFe/2FFX2nU=
|
||||
github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49/go.mod h1:BkkQ4L1KS1xMt2aWSPStnn55ChGC0DPOn2FQYj+f25M=
|
||||
github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg=
|
||||
github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4=
|
||||
github.com/google/gnostic-models v0.7.0 h1:qwTtogB15McXDaNqTZdzPJRHvaVJlAl+HVQnLmJEJxo=
|
||||
github.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7OUGxBlw57miDrQ=
|
||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
|
||||
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
|
||||
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
|
||||
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||
github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
|
||||
github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||
github.com/google/pprof v0.0.0-20240622144329-c177fd99eaa9 h1:ouFdLLCOyCfnxGpQTMZKHLyHr/D1GFbQzEsJxumO16E=
|
||||
github.com/google/pprof v0.0.0-20240622144329-c177fd99eaa9/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo=
|
||||
github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo=
|
||||
github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144=
|
||||
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
|
||||
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
|
||||
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
||||
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4=
|
||||
github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q=
|
||||
github.com/gorilla/handlers v1.5.2 h1:cLTUSsNkgcwhgRqvCNmdbRWG0A3N4F+M2nWKdScwyEE=
|
||||
github.com/gorilla/handlers v1.5.2/go.mod h1:dX+xVpaxdSw+q0Qek8SSsl3dfMk3jNddUkMzo0GtH0w=
|
||||
github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY=
|
||||
github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ=
|
||||
github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
|
||||
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
||||
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 h1:JeSE6pjso5THxAzdVpqr6/geYxZytqFMBCOtn/ujyeo=
|
||||
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674/go.mod h1:r4w70xmWCQKmi1ONH4KIaBptdivuRPyosB9RmPlGEwA=
|
||||
github.com/gosuri/uitable v0.0.4 h1:IG2xLKRvErL3uhY6e1BylFzG+aJiwQviDDTfOKeKTpY=
|
||||
github.com/gosuri/uitable v0.0.4/go.mod h1:tKR86bXuXPZazfOTG1FIzvjIdXzd0mo4Vtn16vt0PJo=
|
||||
github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM=
|
||||
github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
|
||||
github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA=
|
||||
github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
|
||||
github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 h1:5ZPtiqj0JL5oKWmcsq4VMaAW5ukBEgSGXEN89zeH1Jo=
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3/go.mod h1:ndYquD05frm2vACXE1nsccT4oJzjhw2arTS2cpUD1PI=
|
||||
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
||||
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
|
||||
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
||||
github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
|
||||
github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
|
||||
github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc=
|
||||
github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
|
||||
github.com/hashicorp/golang-lru/arc/v2 v2.0.5 h1:l2zaLDubNhW4XO3LnliVj0GXO3+/CGNJAg1dcN2Fpfw=
|
||||
github.com/hashicorp/golang-lru/arc/v2 v2.0.5/go.mod h1:ny6zBSQZi2JxIeYcv7kt2sH2PXJtirBN7RDhRpxPkxU=
|
||||
github.com/hashicorp/golang-lru/v2 v2.0.5 h1:wW7h1TG88eUIJ2i69gaE3uNVtEPIagzhGvHgwfx2Vm4=
|
||||
github.com/hashicorp/golang-lru/v2 v2.0.5/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM=
|
||||
github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM=
|
||||
github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM=
|
||||
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
||||
github.com/huandu/xstrings v1.5.0 h1:2ag3IFq9ZDANvthTwTiqSSZLjDc+BedvHPAp5tJy2TI=
|
||||
github.com/huandu/xstrings v1.5.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
|
||||
github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4=
|
||||
github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY=
|
||||
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
|
||||
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
|
||||
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=
|
||||
@@ -251,19 +220,14 @@ github.com/jmoiron/sqlx v1.4.0 h1:1PLqN7S1UYp5t4SrVVnt4nUVNemrDAtxlulVe+Qgm3o=
|
||||
github.com/jmoiron/sqlx v1.4.0/go.mod h1:ZrZ7UsYB/weZdl2Bxg6jCRO9c3YHl8r3ahlKmRT4JLY=
|
||||
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
|
||||
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
|
||||
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
|
||||
github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
||||
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
|
||||
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
|
||||
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
|
||||
github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4=
|
||||
github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=
|
||||
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||
github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA=
|
||||
github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
|
||||
github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo=
|
||||
github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ=
|
||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
||||
@@ -309,7 +273,8 @@ github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZ
|
||||
github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
|
||||
github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU=
|
||||
github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
|
||||
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
|
||||
github.com/mb0/glob v0.0.0-20160210091149-1eb79d2de6c4 h1:NK3O7S5FRD/wj7ORQ5C3Mx1STpyEMuFe+/F0Lakd1Nk=
|
||||
github.com/mb0/glob v0.0.0-20160210091149-1eb79d2de6c4/go.mod h1:FqD3ES5hx6zpzDainDaHgkTIqrPaI9uX4CVWqYZoQjY=
|
||||
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d h1:5PJl274Y63IEHC+7izoQE9x6ikvDFZS2mDVS3drnohI=
|
||||
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
|
||||
github.com/miekg/dns v1.1.58 h1:ca2Hdkz+cDg/7eNF6V56jjzuZ4aCAE+DbVkILdQWG/4=
|
||||
@@ -322,28 +287,20 @@ github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyua
|
||||
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
|
||||
github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ=
|
||||
github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
|
||||
github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg=
|
||||
github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc=
|
||||
github.com/moby/spdystream v0.4.0 h1:Vy79D6mHeJJjiPdFEL2yku1kl0chZpJfZcPpb16BRl8=
|
||||
github.com/moby/spdystream v0.4.0/go.mod h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI=
|
||||
github.com/moby/sys/mountinfo v0.7.1 h1:/tTvQaSJRr2FshkhXiIpux6fQ2Zvc4j7tAhMTStAG2g=
|
||||
github.com/moby/sys/mountinfo v0.7.1/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI=
|
||||
github.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g=
|
||||
github.com/moby/sys/userns v0.1.0/go.mod h1:IHUYgu/kao6N8YZlp9Cf444ySSvCmDlmzUcYfDHOl28=
|
||||
github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0=
|
||||
github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y=
|
||||
github.com/moby/spdystream v0.5.0 h1:7r0J1Si3QO/kjRitvSLVVFUjxMEb/YLj6S9FF62JBCU=
|
||||
github.com/moby/spdystream v0.5.0/go.mod h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI=
|
||||
github.com/moby/term v0.5.2 h1:6qk3FJAFDs6i/q3W/pQ97SX192qKfZgGjCQqfCJkgzQ=
|
||||
github.com/moby/term v0.5.2/go.mod h1:d3djjFCrjnB+fl8NJux+EJzu0msscUP+f8it8hPkFLc=
|
||||
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
||||
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
||||
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
|
||||
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
|
||||
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFdJifH4BDsTlE89Zl93FEloxaWZfGcifgq8=
|
||||
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
|
||||
github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 h1:n6/2gBQ3RWajuToeY6ZtZTIKv2v7ThUy5KKusIT0yc0=
|
||||
github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4=
|
||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
|
||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
||||
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
|
||||
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus=
|
||||
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
|
||||
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
|
||||
@@ -356,25 +313,26 @@ github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W
|
||||
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
|
||||
github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc=
|
||||
github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0=
|
||||
github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA=
|
||||
github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To=
|
||||
github.com/onsi/ginkgo/v2 v2.21.0 h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM=
|
||||
github.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo=
|
||||
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
|
||||
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
|
||||
github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk=
|
||||
github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0=
|
||||
github.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4=
|
||||
github.com/onsi/gomega v1.35.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog=
|
||||
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
|
||||
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
|
||||
github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug=
|
||||
github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM=
|
||||
github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M=
|
||||
github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc=
|
||||
github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040=
|
||||
github.com/opencontainers/image-spec v1.1.1/go.mod h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M=
|
||||
github.com/patrickdappollonio/kubectl-slice v1.4.2 h1:U1Jrma4BRK9D1Mbly8oP6uA06/gmOif6KjVQFrPUBzI=
|
||||
github.com/patrickdappollonio/kubectl-slice v1.4.2/go.mod h1:gt3IidcTPeCcazqcMuXF51VWU5mGsQv6YlNpXxQvPsE=
|
||||
github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4=
|
||||
github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY=
|
||||
github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI=
|
||||
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
|
||||
github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5 h1:Ii+DKncOVM8Cu1Hc+ETb5K+23HdAMvESYE3ZJ5b5cMI=
|
||||
github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE=
|
||||
github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4=
|
||||
github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI=
|
||||
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
@@ -388,169 +346,173 @@ github.com/princjef/mageutil v1.0.0 h1:1OfZcJUMsooPqieOz2ooLjI+uHUo618pdaJsbCXcF
|
||||
github.com/princjef/mageutil v1.0.0/go.mod h1:mkShhaUomCYfAoVvTKRcbAs8YSVPdtezI5j6K+VXhrs=
|
||||
github.com/princjef/termdiff v0.1.0 h1:O3PWhfPFzX6GqzQ+41B3XzzJpMlx0+9Vysm+Pv76C9U=
|
||||
github.com/princjef/termdiff v0.1.0/go.mod h1:JJOfCA/eR6T1JfsoxQQ6jsG3LGoQDoKUIRQrKqAO+p4=
|
||||
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
|
||||
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
|
||||
github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g=
|
||||
github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE=
|
||||
github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho=
|
||||
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
|
||||
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||
github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q=
|
||||
github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0=
|
||||
github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E=
|
||||
github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY=
|
||||
github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
|
||||
github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc=
|
||||
github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc=
|
||||
github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8=
|
||||
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
||||
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
||||
github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ=
|
||||
github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io=
|
||||
github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I=
|
||||
github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc=
|
||||
github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk=
|
||||
github.com/protocolbuffers/txtpbfmt v0.0.0-20241112170944-20d2c9ebc01d h1:HWfigq7lB31IeJL8iy7jkUmU/PG1Sr8jVGhS749dbUA=
|
||||
github.com/protocolbuffers/txtpbfmt v0.0.0-20241112170944-20d2c9ebc01d/go.mod h1:jgxiZysxFPM+iWKwQwPR+y+Jvo54ARd4EisXxKYpB5c=
|
||||
github.com/protocolbuffers/txtpbfmt v0.0.0-20251016062345-16587c79cd91 h1:s1LvMaU6mVwoFtbxv/rCZKE7/fwDmDY684FfUe4c1Io=
|
||||
github.com/protocolbuffers/txtpbfmt v0.0.0-20251016062345-16587c79cd91/go.mod h1:JSbkp0BviKovYYt9XunS95M3mLPibE9bGg+Y95DsEEY=
|
||||
github.com/redis/go-redis/extra/rediscmd/v9 v9.0.5 h1:EaDatTxkdHG+U3Bk4EUr+DZ7fOGwTfezUiUJMaIcaho=
|
||||
github.com/redis/go-redis/extra/rediscmd/v9 v9.0.5/go.mod h1:fyalQWdtzDBECAQFBJuQe5bzQ02jGd5Qcbgb97Flm7U=
|
||||
github.com/redis/go-redis/extra/redisotel/v9 v9.0.5 h1:EfpWLLCyXw8PSM2/XNJLjI3Pb27yVE+gIAfeqp8LUCc=
|
||||
github.com/redis/go-redis/extra/redisotel/v9 v9.0.5/go.mod h1:WZjPDy7VNzn77AAfnAfVjZNvfJTYfPetfZk5yoSTLaQ=
|
||||
github.com/redis/go-redis/v9 v9.7.3 h1:YpPyAayJV+XErNsatSElgRZZVCwXX9QzkKYNvO7x0wM=
|
||||
github.com/redis/go-redis/v9 v9.7.3/go.mod h1:bGUrSggJ9X9GUmZpZNEOQKaANxSGgOEBRltRTZHSvrA=
|
||||
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
|
||||
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
|
||||
github.com/rogpeppe/go-internal v1.5.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
|
||||
github.com/rogpeppe/go-internal v1.13.2-0.20241226121412-a5dc8ff20d0a h1:w3tdWGKbLGBPtR/8/oO74W6hmz0qE5q0z9aqSAewaaM=
|
||||
github.com/rogpeppe/go-internal v1.13.2-0.20241226121412-a5dc8ff20d0a/go.mod h1:S8kfXMp+yh77OxPD4fdM6YUknrZpQxLhvxzS4gDHENY=
|
||||
github.com/rubenv/sql-migrate v1.7.0 h1:HtQq1xyTN2ISmQDggnh0c9U3JlP8apWh8YO2jzlXpTI=
|
||||
github.com/rubenv/sql-migrate v1.7.0/go.mod h1:S4wtDEG1CKn+0ShpTtzWhFpHHI5PvCUtiGI+C+Z2THE=
|
||||
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
|
||||
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
|
||||
github.com/rubenv/sql-migrate v1.8.0 h1:dXnYiJk9k3wetp7GfQbKJcPHjVJL6YK19tKj8t2Ns0o=
|
||||
github.com/rubenv/sql-migrate v1.8.0/go.mod h1:F2bGFBwCU+pnmbtNYDeKvSuvL6lBVtXDXUUv5t+u1qw=
|
||||
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
|
||||
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||
github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ=
|
||||
github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4=
|
||||
github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE=
|
||||
github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ=
|
||||
github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8=
|
||||
github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I=
|
||||
github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 h1:KRzFb2m7YtdldCEkzs6KqmJw4nqEVZGK7IN2kJkjTuQ=
|
||||
github.com/santhosh-tekuri/jsonschema/v6 v6.0.2/go.mod h1:JXeL+ps8p7/KNMjDQk3TCwPpBy0wYklyWTfbkIzdIFU=
|
||||
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8=
|
||||
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4=
|
||||
github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k=
|
||||
github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME=
|
||||
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
||||
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
|
||||
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
|
||||
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
|
||||
github.com/skeema/knownhosts v1.2.1 h1:SHWdIUa82uGZz+F+47k8SY4QhhI291cXCpopT1lK2AQ=
|
||||
github.com/skeema/knownhosts v1.2.1/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo=
|
||||
github.com/skeema/knownhosts v1.3.0 h1:AM+y0rI04VksttfwjkSTNQorvGqmwATnvnAHpSgc0LY=
|
||||
github.com/skeema/knownhosts v1.3.0/go.mod h1:sPINvnADmT/qYH1kfv+ePMmOBTH6Tbl7b5LvTDjFK7M=
|
||||
github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo=
|
||||
github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0=
|
||||
github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8=
|
||||
github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY=
|
||||
github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w=
|
||||
github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
|
||||
github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM=
|
||||
github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y=
|
||||
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
||||
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||
github.com/spf13/viper v1.18.2 h1:LUXCnvUvSM6FXAsj6nnfc8Q2tp1dIgUfY9Kc8GsSOiQ=
|
||||
github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk=
|
||||
github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s=
|
||||
github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0=
|
||||
github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||
github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk=
|
||||
github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||
github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI=
|
||||
github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
|
||||
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
|
||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
||||
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
|
||||
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
|
||||
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8=
|
||||
github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
|
||||
github.com/tetratelabs/wazero v1.6.0 h1:z0H1iikCdP8t+q341xqepY4EWvHEw8Es7tlqiVzlP3g=
|
||||
github.com/tetratelabs/wazero v1.6.0/go.mod h1:0U0G41+ochRKoPKCJlh0jMg1CHkyfK8kDqiirMmKY8A=
|
||||
github.com/tetratelabs/wazero v1.9.0 h1:IcZ56OuxrtaEz8UYNRHBrUa9bYeX9oVY93KspZZBf/I=
|
||||
github.com/tetratelabs/wazero v1.9.0/go.mod h1:TSbcXCfFP0L2FGkRPxHphadXPjo1T6W+CseNNY7EkjM=
|
||||
github.com/x-cray/logrus-prefixed-formatter v0.5.2 h1:00txxvfBM9muc0jiLIEAkAcIMJzfthRT6usrui8uGmg=
|
||||
github.com/x-cray/logrus-prefixed-formatter v0.5.2/go.mod h1:2duySbKsL6M18s5GU7VPsoEPHyzalCE06qoARUCeBBE=
|
||||
github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
|
||||
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
|
||||
github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM=
|
||||
github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw=
|
||||
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
|
||||
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo=
|
||||
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
|
||||
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0=
|
||||
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ=
|
||||
github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74=
|
||||
github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y=
|
||||
github.com/xlab/treeprint v1.2.0 h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ=
|
||||
github.com/xlab/treeprint v1.2.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0=
|
||||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||
github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43 h1:+lm10QQTNSBd8DVTNGHx7o/IKu9HYDvLMffDhbyLccI=
|
||||
github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs=
|
||||
github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50 h1:hlE8//ciYMztlGpl/VA+Zm1AcTPHYkHJPbHqE6WJUXE=
|
||||
github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA=
|
||||
github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f h1:ERexzlUfuTvpE74urLSbIQW0Z/6hF9t8U4NsJLaioAY=
|
||||
github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg=
|
||||
go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
|
||||
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
|
||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 h1:4K4tsIXefpVJtvA/8srF4V4y0akAoPHkIslgAkjixJA=
|
||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0/go.mod h1:jjdQuTGVsXV4vSs+CJ2qYDeDPf9yIJV23qlIzBm73Vg=
|
||||
go.opentelemetry.io/otel v1.28.0 h1:/SqNcYk+idO0CxKEUOtKQClMK/MimZihKYMruSMViUo=
|
||||
go.opentelemetry.io/otel v1.28.0/go.mod h1:q68ijF8Fc8CnMHKyzqL6akLO46ePnjkgfIMIjUIX9z4=
|
||||
go.opentelemetry.io/otel/metric v1.28.0 h1:f0HGvSl1KRAU1DLgLGFjrwVyismPlnuU6JD6bOeuA5Q=
|
||||
go.opentelemetry.io/otel/metric v1.28.0/go.mod h1:Fb1eVBFZmLVTMb6PPohq3TO9IIhUisDsbJoL/+uQW4s=
|
||||
go.opentelemetry.io/otel/trace v1.28.0 h1:GhQ9cUuQGmNDd5BTCP2dAvv75RdMxEfTmYejp+lkx9g=
|
||||
go.opentelemetry.io/otel/trace v1.28.0/go.mod h1:jPyXzNPg6da9+38HEwElrQiHlVMTnVfM3/yv2OlIHaI=
|
||||
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
|
||||
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
|
||||
go.opentelemetry.io/contrib/bridges/prometheus v0.57.0 h1:UW0+QyeyBVhn+COBec3nGhfnFe5lwB0ic1JBVjzhk0w=
|
||||
go.opentelemetry.io/contrib/bridges/prometheus v0.57.0/go.mod h1:ppciCHRLsyCio54qbzQv0E4Jyth/fLWDTJYfvWpcSVk=
|
||||
go.opentelemetry.io/contrib/exporters/autoexport v0.57.0 h1:jmTVJ86dP60C01K3slFQa2NQ/Aoi7zA+wy7vMOKD9H4=
|
||||
go.opentelemetry.io/contrib/exporters/autoexport v0.57.0/go.mod h1:EJBheUMttD/lABFyLXhce47Wr6DPWYReCzaZiXadH7g=
|
||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 h1:yd02MEjBdJkG3uabWP9apV+OuWRIXGDuJEUJbOHmCFU=
|
||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0/go.mod h1:umTcuxiv1n/s/S6/c2AT/g2CQ7u5C59sHDNmfSwgz7Q=
|
||||
go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ=
|
||||
go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y=
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.8.0 h1:WzNab7hOOLzdDF/EoWCt4glhrbMPVMOO5JYTmpz36Ls=
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.8.0/go.mod h1:hKvJwTzJdp90Vh7p6q/9PAOd55dI6WA6sWj62a/JvSs=
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.8.0 h1:S+LdBGiQXtJdowoJoQPEtI52syEP/JYBUpjO49EQhV8=
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.8.0/go.mod h1:5KXybFvPGds3QinJWQT7pmXf+TN5YIa7CNYObWRkj50=
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0 h1:j7ZSD+5yn+lo3sGV69nW04rRR0jhYnBwjuX3r0HvnK0=
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0/go.mod h1:WXbYJTUaZXAbYd8lbgGuvih0yuCfOFC5RJoYnoLcGz8=
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.32.0 h1:t/Qur3vKSkUCcDVaSumWF2PKHt85pc7fRvFuoVT8qFU=
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.32.0/go.mod h1:Rl61tySSdcOJWoEgYZVtmnKdA0GeKrSqkHC1t+91CH8=
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 h1:OeNbIYk/2C15ckl7glBlOBp5+WlYsOElzTNmiPW/x60=
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0/go.mod h1:7Bept48yIeqxP2OZ9/AqIpYS94h2or0aB4FypJTc8ZM=
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 h1:tgJ0uaNS4c98WRNUEx5U3aDlrDOI5Rs+1Vifcw4DJ8U=
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0/go.mod h1:U7HYyW0zt/a9x5J1Kjs+r1f/d4ZHnYFclhYY2+YbeoE=
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.32.0 h1:cMyu9O88joYEaI47CnQkxO1XZdpoTF9fEnW2duIddhw=
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.32.0/go.mod h1:6Am3rn7P9TVVeXYG+wtcGE7IE1tsQ+bP3AuWcKt/gOI=
|
||||
go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU=
|
||||
go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU=
|
||||
go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.8.0 h1:CHXNXwfKWfzS65yrlB2PVds1IBZcdsX8Vepy9of0iRU=
|
||||
go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.8.0/go.mod h1:zKU4zUgKiaRxrdovSS2amdM5gOc59slmo/zJwGX+YBg=
|
||||
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.32.0 h1:SZmDnHcgp3zwlPBS2JX2urGYe/jBKEIT6ZedHRUyCz8=
|
||||
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.32.0/go.mod h1:fdWW0HtZJ7+jNpTKUR0GpMEDP69nR8YBJQxNiVCE3jk=
|
||||
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.32.0 h1:cC2yDI3IQd0Udsux7Qmq8ToKAx1XCilTQECZ0KDZyTw=
|
||||
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.32.0/go.mod h1:2PD5Ex6z8CFzDbTdOlwyNIUywRr1DN0ospafJM1wJ+s=
|
||||
go.opentelemetry.io/otel/log v0.8.0 h1:egZ8vV5atrUWUbnSsHn6vB8R21G2wrKqNiDt3iWertk=
|
||||
go.opentelemetry.io/otel/log v0.8.0/go.mod h1:M9qvDdUTRCopJcGRKg57+JSQ9LgLBrwwfC32epk5NX8=
|
||||
go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M=
|
||||
go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE=
|
||||
go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A=
|
||||
go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU=
|
||||
go.opentelemetry.io/otel/sdk/log v0.8.0 h1:zg7GUYXqxk1jnGF/dTdLPrK06xJdrXgqgFLnI4Crxvs=
|
||||
go.opentelemetry.io/otel/sdk/log v0.8.0/go.mod h1:50iXr0UVwQrYS45KbruFrEt4LvAdCaWWgIrsN3ZQggo=
|
||||
go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk=
|
||||
go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w=
|
||||
go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs=
|
||||
go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc=
|
||||
go.opentelemetry.io/proto/otlp v1.5.0 h1:xJvq7gMzB31/d406fB8U5CBdyQGw4P399D1aQWU/3i4=
|
||||
go.opentelemetry.io/proto/otlp v1.5.0/go.mod h1:keN8WnHxOy8PG0rQZjJJ5A2ebUoafqWp0eVQ4yIXvJ4=
|
||||
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
|
||||
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
|
||||
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
||||
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
||||
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||
go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI=
|
||||
go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU=
|
||||
go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc=
|
||||
go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||
golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
|
||||
golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
|
||||
golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc=
|
||||
golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc=
|
||||
golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 h1:yixxcjnhBmY0nkL253HFVIm0JsFHwrHdT3Yh6szTnfY=
|
||||
golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI=
|
||||
golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q=
|
||||
golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4=
|
||||
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8=
|
||||
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY=
|
||||
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||
golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4=
|
||||
golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
|
||||
golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA=
|
||||
golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w=
|
||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||
golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
|
||||
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
|
||||
golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0=
|
||||
golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k=
|
||||
golang.org/x/oauth2 v0.25.0 h1:CY4y7XT9v0cRI9oupztF8AgiIu99L/ksR/Xp/6jrZ70=
|
||||
golang.org/x/oauth2 v0.25.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
|
||||
golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY=
|
||||
golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU=
|
||||
golang.org/x/oauth2 v0.32.0 h1:jsCblLleRMDrxMN29H3z/k1KliIvpLgCkE6R8FXXNgY=
|
||||
golang.org/x/oauth2 v0.32.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
|
||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
|
||||
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I=
|
||||
golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
|
||||
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
@@ -568,62 +530,49 @@ golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7w
|
||||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU=
|
||||
golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
|
||||
golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
|
||||
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
|
||||
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
|
||||
golang.org/x/term v0.28.0 h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg=
|
||||
golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek=
|
||||
golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU=
|
||||
golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
|
||||
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
|
||||
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
|
||||
golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk=
|
||||
golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
|
||||
golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM=
|
||||
golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM=
|
||||
golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY=
|
||||
golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
|
||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||
golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
|
||||
golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE=
|
||||
golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588=
|
||||
golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ=
|
||||
golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs=
|
||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240701130421-f6361c86f094 h1:BwIjyKYGsK9dMCBOorzRri8MQwmi7mT9rGHsCEinZkA=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240701130421-f6361c86f094/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY=
|
||||
google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc=
|
||||
google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ=
|
||||
google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 h1:9+tzLLstTlPTRyJTh+ah5wIMsBW5c4tQwGTN3thOW9Y=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb h1:p31xT4yrYrSM/G4Sn2+TNUkVhFCbG9y8itM2S6Th950=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb/go.mod h1:jbe3Bkdp+Dh2IrslsFCklNhweNTBgSYanP1UXhJDhKg=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb h1:TLPQVbx1GJ8VKZxz52VAxl1EBgKXXbTiU9Fc5fZeLn4=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb/go.mod h1:LuRYeWDFV6WOn90g357N17oMCaxpgCnbi/44qJvDn2I=
|
||||
google.golang.org/grpc v1.72.1 h1:HR03wO6eyZ7lknl75XlxABNVLLFc2PAb6mHlYh756mA=
|
||||
google.golang.org/grpc v1.72.1/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM=
|
||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
|
||||
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
|
||||
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||
google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg=
|
||||
google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw=
|
||||
google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM=
|
||||
google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
|
||||
gopkg.in/VividCortex/ewma.v1 v1.1.1/go.mod h1:TekXuFipeiHWiAlO1+wSS23vTcyFau5u3rxXUSXj710=
|
||||
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
@@ -646,57 +595,55 @@ gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkep
|
||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
|
||||
gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME=
|
||||
gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=
|
||||
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU=
|
||||
gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU=
|
||||
helm.sh/helm/v3 v3.16.3 h1:kb8bSxMeRJ+knsK/ovvlaVPfdis0X3/ZhYCSFRP+YmY=
|
||||
helm.sh/helm/v3 v3.16.3/go.mod h1:zeVWGDR4JJgiRbT3AnNsjYaX8OTJlIE9zC+Q7F7iUSU=
|
||||
k8s.io/api v0.31.1 h1:Xe1hX/fPW3PXYYv8BlozYqw63ytA92snr96zMW9gWTU=
|
||||
k8s.io/api v0.31.1/go.mod h1:sbN1g6eY6XVLeqNsZGLnI5FwVseTrZX7Fv3O26rhAaI=
|
||||
k8s.io/apiextensions-apiserver v0.31.1 h1:L+hwULvXx+nvTYX/MKM3kKMZyei+UiSXQWciX/N6E40=
|
||||
k8s.io/apiextensions-apiserver v0.31.1/go.mod h1:tWMPR3sgW+jsl2xm9v7lAyRF1rYEK71i9G5dRtkknoQ=
|
||||
k8s.io/apimachinery v0.31.1 h1:mhcUBbj7KUjaVhyXILglcVjuS4nYXiwC+KKFBgIVy7U=
|
||||
k8s.io/apimachinery v0.31.1/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo=
|
||||
k8s.io/apiserver v0.31.1 h1:Sars5ejQDCRBY5f7R3QFHdqN3s61nhkpaX8/k1iEw1c=
|
||||
k8s.io/apiserver v0.31.1/go.mod h1:lzDhpeToamVZJmmFlaLwdYZwd7zB+WYRYIboqA1kGxM=
|
||||
k8s.io/cli-runtime v0.31.1 h1:/ZmKhmZ6hNqDM+yf9s3Y4KEYakNXUn5sod2LWGGwCuk=
|
||||
k8s.io/cli-runtime v0.31.1/go.mod h1:pKv1cDIaq7ehWGuXQ+A//1OIF+7DI+xudXtExMCbe9U=
|
||||
k8s.io/client-go v0.31.1 h1:f0ugtWSbWpxHR7sjVpQwuvw9a3ZKLXX0u0itkFXufb0=
|
||||
k8s.io/client-go v0.31.1/go.mod h1:sKI8871MJN2OyeqRlmA4W4KM9KBdBUpDLu/43eGemCg=
|
||||
k8s.io/component-base v0.31.1 h1:UpOepcrX3rQ3ab5NB6g5iP0tvsgJWzxTyAo20sgYSy8=
|
||||
k8s.io/component-base v0.31.1/go.mod h1:WGeaw7t/kTsqpVTaCoVEtillbqAhF2/JgvO0LDOMa0w=
|
||||
helm.sh/helm/v3 v3.18.5 h1:Cc3Z5vd6kDrZq9wO9KxKLNEickiTho6/H/dBNRVSos4=
|
||||
helm.sh/helm/v3 v3.18.5/go.mod h1:L/dXDR2r539oPlFP1PJqKAC1CUgqHJDLkxKpDGrWnyg=
|
||||
k8s.io/api v0.34.3 h1:D12sTP257/jSH2vHV2EDYrb16bS7ULlHpdNdNhEw2S4=
|
||||
k8s.io/api v0.34.3/go.mod h1:PyVQBF886Q5RSQZOim7DybQjAbVs8g7gwJNhGtY5MBk=
|
||||
k8s.io/apiextensions-apiserver v0.33.3 h1:qmOcAHN6DjfD0v9kxL5udB27SRP6SG/MTopmge3MwEs=
|
||||
k8s.io/apiextensions-apiserver v0.33.3/go.mod h1:oROuctgo27mUsyp9+Obahos6CWcMISSAPzQ77CAQGz8=
|
||||
k8s.io/apimachinery v0.34.3 h1:/TB+SFEiQvN9HPldtlWOTp0hWbJ+fjU+wkxysf/aQnE=
|
||||
k8s.io/apimachinery v0.34.3/go.mod h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw=
|
||||
k8s.io/apiserver v0.33.3 h1:Wv0hGc+QFdMJB4ZSiHrCgN3zL3QRatu56+rpccKC3J4=
|
||||
k8s.io/apiserver v0.33.3/go.mod h1:05632ifFEe6TxwjdAIrwINHWE2hLwyADFk5mBsQa15E=
|
||||
k8s.io/cli-runtime v0.34.3 h1:YRyMhiwX0dT9lmG0AtZDaeG33Nkxgt9OlCTZhRXj9SI=
|
||||
k8s.io/cli-runtime v0.34.3/go.mod h1:GVwL1L5uaGEgM7eGeKjaTG2j3u134JgG4dAI6jQKhMc=
|
||||
k8s.io/client-go v0.34.3 h1:wtYtpzy/OPNYf7WyNBTj3iUA0XaBHVqhv4Iv3tbrF5A=
|
||||
k8s.io/client-go v0.34.3/go.mod h1:OxxeYagaP9Kdf78UrKLa3YZixMCfP6bgPwPwNBQBzpM=
|
||||
k8s.io/component-base v0.34.3 h1:zsEgw6ELqK0XncCQomgO9DpUIzlrYuZYA0Cgo+JWpVk=
|
||||
k8s.io/component-base v0.34.3/go.mod h1:5iIlD8wPfWE/xSHTRfbjuvUul2WZbI2nOUK65XL0E/c=
|
||||
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
|
||||
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
|
||||
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag=
|
||||
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98=
|
||||
k8s.io/kubectl v0.31.1 h1:ih4JQJHxsEggFqDJEHSOdJ69ZxZftgeZvYo7M/cpp24=
|
||||
k8s.io/kubectl v0.31.1/go.mod h1:aNuQoR43W6MLAtXQ/Bu4GDmoHlbhHKuyD49lmTC8eJM=
|
||||
k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A=
|
||||
k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
|
||||
k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b h1:MloQ9/bdJyIu9lb1PzujOPolHyvO06MXG5TUIj2mNAA=
|
||||
k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b/go.mod h1:UZ2yyWbFTpuhSbFhv24aGNOdoRdJZgsIObGBUaYVsts=
|
||||
k8s.io/kubectl v0.34.3 h1:vpM6//153gh5gvsYHXWHVJ4l4xmN5QFwTSmlfd8icm8=
|
||||
k8s.io/kubectl v0.34.3/go.mod h1:zZQHtIZoUqTP1bAnPzq/3W1jfc0NeOeunFgcswrfg1c=
|
||||
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y=
|
||||
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
|
||||
mvdan.cc/xurls/v2 v2.2.0 h1:NSZPykBXJFCetGZykLAxaL6SIpvbVy/UFEniIfHAa8A=
|
||||
mvdan.cc/xurls/v2 v2.2.0/go.mod h1:EV1RMtya9D6G5DMYPGD8zTQzaHet6Jh8gFlRgGRJeO8=
|
||||
oras.land/oras-go v1.2.5 h1:XpYuAwAb0DfQsunIyMfeET92emK8km3W4yEzZvUbsTo=
|
||||
oras.land/oras-go v1.2.5/go.mod h1:PuAwRShRZCsZb7g8Ar3jKKQR/2A/qN+pkYxIOd/FAoo=
|
||||
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
|
||||
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
|
||||
sigs.k8s.io/kustomize/api v0.18.0 h1:hTzp67k+3NEVInwz5BHyzc9rGxIauoXferXyjv5lWPo=
|
||||
sigs.k8s.io/kustomize/api v0.18.0/go.mod h1:f8isXnX+8b+SGLHQ6yO4JG1rdkZlvhaCf/uZbLVMb0U=
|
||||
sigs.k8s.io/kustomize/cmd/config v0.15.0 h1:WkdY8V2+8J+W00YbImXa2ke9oegfrHH79e+kywW7EdU=
|
||||
sigs.k8s.io/kustomize/cmd/config v0.15.0/go.mod h1:Jq57b0nPaoYUlOqg//0JtAh6iibboqMcfbtCYoWPM00=
|
||||
sigs.k8s.io/kustomize/kustomize/v5 v5.5.0 h1:o1mtt6vpxsxDYaZKrw3BnEtc+pAjLz7UffnIvHNbvW0=
|
||||
sigs.k8s.io/kustomize/kustomize/v5 v5.5.0/go.mod h1:AeFCmgCrXzmvjWWaeZCyBp6XzG1Y0w1svYus8GhJEOE=
|
||||
sigs.k8s.io/kustomize/kyaml v0.18.1 h1:WvBo56Wzw3fjS+7vBjN6TeivvpbW9GmRaWZ9CIVmt4E=
|
||||
sigs.k8s.io/kustomize/kyaml v0.18.1/go.mod h1:C3L2BFVU1jgcddNBE1TxuVLgS46TjObMwW5FT9FcjYo=
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4=
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08=
|
||||
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
|
||||
sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=
|
||||
oras.land/oras-go/v2 v2.6.0 h1:X4ELRsiGkrbeox69+9tzTu492FMUu7zJQW6eJU+I2oc=
|
||||
oras.land/oras-go/v2 v2.6.0/go.mod h1:magiQDfG6H1O9APp+rOsvCPcW1GD2MM7vgnKY0Y+u1o=
|
||||
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE=
|
||||
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg=
|
||||
sigs.k8s.io/kustomize/api v0.20.1 h1:iWP1Ydh3/lmldBnH/S5RXgT98vWYMaTUL1ADcr+Sv7I=
|
||||
sigs.k8s.io/kustomize/api v0.20.1/go.mod h1:t6hUFxO+Ph0VxIk1sKp1WS0dOjbPCtLJ4p8aADLwqjM=
|
||||
sigs.k8s.io/kustomize/cmd/config v0.20.1 h1:4APUORmZe2BYrsqgGfEKdd/r7gM6i43egLrUzilpiFo=
|
||||
sigs.k8s.io/kustomize/cmd/config v0.20.1/go.mod h1:R7rQ8kxknVlXWVUIbxWtMgu8DCCNVtl8V0KrmeVd/KE=
|
||||
sigs.k8s.io/kustomize/kustomize/v5 v5.7.1 h1:sYJsarwy/SDJfjjLMUqwFDGPwzUtMOQ1i1Ed49+XSbw=
|
||||
sigs.k8s.io/kustomize/kustomize/v5 v5.7.1/go.mod h1:+5/SrBcJ4agx1SJknGuR/c9thwRSKLxnKoI5BzXFaLU=
|
||||
sigs.k8s.io/kustomize/kyaml v0.20.1 h1:PCMnA2mrVbRP3NIB6v9kYCAc38uvFLVs8j/CD567A78=
|
||||
sigs.k8s.io/kustomize/kyaml v0.20.1/go.mod h1:0EmkQHRUsJxY8Ug9Niig1pUMSCGHxQ5RklbpV/Ri6po=
|
||||
sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU=
|
||||
sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY=
|
||||
sigs.k8s.io/structured-merge-diff/v6 v6.3.0 h1:jTijUJbW353oVOd9oTlifJqOGEkUw2jB/fXCbTiQEco=
|
||||
sigs.k8s.io/structured-merge-diff/v6 v6.3.0/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE=
|
||||
sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs=
|
||||
sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4=
|
||||
|
||||
@@ -13,7 +13,7 @@ func New(name string) *cobra.Command {
|
||||
cmd := &cobra.Command{
|
||||
Use: name,
|
||||
Short: name,
|
||||
Version: version.Version,
|
||||
Version: version.GetVersion(),
|
||||
Args: cobra.NoArgs,
|
||||
CompletionOptions: cobra.CompletionOptions{
|
||||
HiddenDefaultCmd: true,
|
||||
|
||||
70
internal/cli/compare.go
Normal file
70
internal/cli/compare.go
Normal file
@@ -0,0 +1,70 @@
|
||||
package cli
|
||||
|
||||
import (
|
||||
"github.com/holos-run/holos/internal/compare"
|
||||
"github.com/holos-run/holos/internal/errors"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
// New for the compare command.
|
||||
func NewCompareCmd() *cobra.Command {
|
||||
cmd := &cobra.Command{
|
||||
Use: "compare",
|
||||
Short: "Compare Holos resources",
|
||||
Long: "Compare Holos resources to verify semantic equivalence",
|
||||
Args: func(cmd *cobra.Command, args []string) error {
|
||||
if len(args) > 0 {
|
||||
return errors.Format("unknown command %q for %q", args[0], cmd.CommandPath())
|
||||
}
|
||||
return nil
|
||||
},
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
return cmd.Help()
|
||||
},
|
||||
}
|
||||
|
||||
cmd.AddCommand(NewCompareBuildPlansCmd())
|
||||
cmd.AddCommand(NewCompareYAMLCmd())
|
||||
return cmd
|
||||
}
|
||||
|
||||
// New for the compare buildplans subcommand.
|
||||
func NewCompareBuildPlansCmd() *cobra.Command {
|
||||
var backwardsCompatible bool
|
||||
|
||||
cmd := &cobra.Command{
|
||||
Use: "buildplans [file1] [file2]",
|
||||
Short: "Compare two BuildPlan files",
|
||||
Long: "Compare two BuildPlan files to verify they are semantically equivalent",
|
||||
Args: cobra.ExactArgs(2),
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
c := compare.New()
|
||||
return c.BuildPlans(args[0], args[1], backwardsCompatible)
|
||||
},
|
||||
}
|
||||
|
||||
cmd.Flags().BoolVar(&backwardsCompatible, "backwards-compatible", false, "Enable backwards compatibility mode where file2 may have fields missing from file1")
|
||||
|
||||
return cmd
|
||||
}
|
||||
|
||||
// New for the compare yaml subcommand.
|
||||
func NewCompareYAMLCmd() *cobra.Command {
|
||||
var backwardsCompatible bool
|
||||
|
||||
cmd := &cobra.Command{
|
||||
Use: "yaml [file1] [file2]",
|
||||
Short: "Compare two yaml object streams",
|
||||
Long: "Compare two yaml object streams to verify they are structurally equivalent",
|
||||
Args: cobra.ExactArgs(2),
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
c := compare.New()
|
||||
// TODO(jeff): Add a YAML() function.
|
||||
return c.BuildPlans(args[0], args[1], backwardsCompatible)
|
||||
},
|
||||
}
|
||||
|
||||
cmd.Flags().BoolVar(&backwardsCompatible, "backwards-compatible", false, "Enable backwards compatibility mode where file2 may have fields missing from file1")
|
||||
|
||||
return cmd
|
||||
}
|
||||
27
internal/cli/compile.go
Normal file
27
internal/cli/compile.go
Normal file
@@ -0,0 +1,27 @@
|
||||
package cli
|
||||
|
||||
import (
|
||||
_ "embed"
|
||||
|
||||
"github.com/holos-run/holos/internal/cli/command"
|
||||
"github.com/holos-run/holos/internal/compile"
|
||||
"github.com/holos-run/holos/internal/errors"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
//go:embed compile.txt
|
||||
var compileLong string
|
||||
|
||||
// NewCompileCmd returns a new compile command.
|
||||
func NewCompileCmd() *cobra.Command {
|
||||
cmd := command.New("compile")
|
||||
cmd.Short = "Compile Components (stdin) to BuildPlans (stdout) using CUE"
|
||||
cmd.Long = compileLong
|
||||
cmd.Args = cobra.NoArgs
|
||||
cmd.RunE = func(cmd *cobra.Command, args []string) error {
|
||||
c := compile.New()
|
||||
ctx := cmd.Root().Context()
|
||||
return errors.Wrap(c.Run(ctx))
|
||||
}
|
||||
return cmd
|
||||
}
|
||||
17
internal/cli/compile.txt
Normal file
17
internal/cli/compile.txt
Normal file
@@ -0,0 +1,17 @@
|
||||
Reads a stream of JSON-encoded Component objects from standard input. For each
|
||||
Component, builds a CUE instance then exports a BuildPlan. Each resulting
|
||||
BuildPlan is written as a JSON-encoded object to standard output.
|
||||
|
||||
This command encapsulates cue export for concurrent use. It may be used directly
|
||||
by piping the output of holos show platform through jq to select the components
|
||||
list, then to stdin of this command. This command is most often invoked 'holos
|
||||
render platform' to run concurrent cue exports safely.
|
||||
|
||||
For example:
|
||||
|
||||
holos show platform --format=json \
|
||||
| jq '.spec.components[] | {kind: "Component", apiVersion: "v1alpha6", component: .}' \
|
||||
| holos compile --log-level=debug
|
||||
|
||||
Note each platform components element is embedded into the component field of an
|
||||
enveloping object for the purpose of conveying type metadata.
|
||||
@@ -61,6 +61,8 @@ func (r *renderPlatform) Run(ctx context.Context, p *platform.Platform) error {
|
||||
args := make([]string, 0, 100)
|
||||
args = append(args, prefixArgs...)
|
||||
args = append(args, "render", "component")
|
||||
// Add the write-to flag
|
||||
args = append(args, "--write-to", r.pcfg.WriteTo)
|
||||
// holos render platform --inject tags
|
||||
for _, tag := range r.pcfg.TagMap.Tags() {
|
||||
args = append(args, "--inject", tag)
|
||||
|
||||
@@ -17,6 +17,7 @@ import (
|
||||
|
||||
"github.com/holos-run/holos/internal/cli/command"
|
||||
"github.com/holos-run/holos/internal/cli/render"
|
||||
"github.com/holos-run/holos/internal/cli/slice"
|
||||
"github.com/holos-run/holos/internal/cli/txtar"
|
||||
|
||||
cueCmd "cuelang.org/go/cmd/cue/cmd"
|
||||
@@ -76,6 +77,15 @@ func New(cfg *holos.Config) *cobra.Command {
|
||||
// Show
|
||||
rootCmd.AddCommand(NewShowCmd(platform.NewConfig()))
|
||||
|
||||
// Compare
|
||||
rootCmd.AddCommand(NewCompareCmd())
|
||||
|
||||
// Compile
|
||||
rootCmd.AddCommand(NewCompileCmd())
|
||||
|
||||
// Slice - https://github.com/patrickdappollonio/kubectl-slice
|
||||
rootCmd.AddCommand(slice.NewKubectlSliceCmd())
|
||||
|
||||
return rootCmd
|
||||
}
|
||||
|
||||
@@ -107,9 +117,9 @@ func HandleError(ctx context.Context, err error, hc *holos.Config) (exitCode int
|
||||
if errors.As(err, &errAt) {
|
||||
loc := errAt.Source.Loc()
|
||||
err2 := errAt.Unwrap()
|
||||
log.ErrorContext(ctx, fmt.Sprintf("could not run: %s at %s", err2, loc), "err", err2, "loc", loc)
|
||||
log.ErrorContext(ctx, fmt.Sprintf("error at %s: %s", loc, err2), "err", err2, "loc", loc)
|
||||
} else {
|
||||
log.ErrorContext(ctx, fmt.Sprintf("could not run: %s", err), "err", err)
|
||||
log.ErrorContext(ctx, err.Error(), "err", err)
|
||||
}
|
||||
|
||||
// cue errors are bundled up as a list and refer to multiple files / lines.
|
||||
|
||||
@@ -3,10 +3,15 @@ package cli
|
||||
import (
|
||||
"context"
|
||||
_ "embed"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"log/slog"
|
||||
|
||||
v1alpha5 "github.com/holos-run/holos/api/core/v1alpha5"
|
||||
v1alpha6 "github.com/holos-run/holos/api/core/v1alpha6"
|
||||
"github.com/holos-run/holos/internal/cli/command"
|
||||
"github.com/holos-run/holos/internal/component"
|
||||
"github.com/holos-run/holos/internal/compile"
|
||||
"github.com/holos-run/holos/internal/errors"
|
||||
"github.com/holos-run/holos/internal/holos"
|
||||
"github.com/holos-run/holos/internal/platform"
|
||||
@@ -77,37 +82,62 @@ func (s *showBuildPlans) flagSet() *pflag.FlagSet {
|
||||
}
|
||||
|
||||
func (s *showBuildPlans) Run(ctx context.Context, p *platform.Platform) error {
|
||||
encoder, err := holos.NewSequentialEncoder(s.format, s.cfg.Stdout)
|
||||
components := p.Select(s.cfg.ComponentSelectors...)
|
||||
reqs := make([]compile.BuildPlanRequest, len(components))
|
||||
|
||||
for idx, c := range components {
|
||||
tags, err := c.Tags()
|
||||
if err != nil {
|
||||
return errors.Wrap(err)
|
||||
}
|
||||
reqs[idx] = compile.BuildPlanRequest{
|
||||
APIVersion: "v1alpha6",
|
||||
Kind: "BuildPlanRequest",
|
||||
Root: p.Root(),
|
||||
Leaf: c.Path(),
|
||||
WriteTo: s.cfg.WriteTo,
|
||||
TempDir: "${TMPDIR_PLACEHOLDER}",
|
||||
Tags: tags,
|
||||
}
|
||||
}
|
||||
|
||||
resp, err := compile.Compile(ctx, s.cfg.Concurrency, reqs)
|
||||
if err != nil {
|
||||
return errors.Wrap(err)
|
||||
}
|
||||
defer encoder.Close()
|
||||
|
||||
opts := platform.BuildOpts{
|
||||
PerComponentFunc: func(ctx context.Context, idx int, pc holos.Component) error {
|
||||
c := component.New(p.Root(), pc.Path(), component.NewConfig())
|
||||
tm, err := c.TypeMeta()
|
||||
if err != nil {
|
||||
return errors.Wrap(err)
|
||||
}
|
||||
opts := holos.NewBuildOpts(p.Root(), pc.Path(), s.cfg.WriteTo, "${TMPDIR_PLACEHOLDER}")
|
||||
|
||||
// TODO(jjm): refactor into [holos.NewBuildOpts] as functional options.
|
||||
// Component name, label, annotations passed via tags to cue.
|
||||
tags, err := pc.Tags()
|
||||
if err != nil {
|
||||
return errors.Wrap(err)
|
||||
}
|
||||
opts.Tags = tags
|
||||
|
||||
bp, err := c.BuildPlan(tm, opts)
|
||||
if err != nil {
|
||||
return errors.Wrap(err)
|
||||
}
|
||||
// Export the build plan using the sequential encoder.
|
||||
return errors.Wrap(bp.Export(idx, encoder))
|
||||
},
|
||||
encoder, err := holos.NewEncoder(s.format, s.cfg.Stdout)
|
||||
if err != nil {
|
||||
return errors.Wrap(err)
|
||||
}
|
||||
|
||||
return errors.Wrap(p.Build(ctx, opts))
|
||||
for _, buildPlanResponse := range resp {
|
||||
var tm holos.TypeMeta
|
||||
if err := json.Unmarshal(buildPlanResponse.RawMessage, &tm); err != nil {
|
||||
return errors.Format("could not discriminate type meta: %w", err)
|
||||
}
|
||||
if tm.Kind != "BuildPlan" {
|
||||
return errors.Format("invalid kind %s: must be BuildPlan", tm.Kind)
|
||||
}
|
||||
|
||||
var buildPlan any
|
||||
switch tm.APIVersion {
|
||||
case "v1alpha5":
|
||||
buildPlan = &v1alpha5.BuildPlan{}
|
||||
case "v1alpha6":
|
||||
buildPlan = &v1alpha6.BuildPlan{}
|
||||
default:
|
||||
slog.WarnContext(ctx, fmt.Sprintf("unknown BuildPlan APIVersion %s: assuming v1alpha6 schema", tm.APIVersion))
|
||||
buildPlan = &v1alpha6.BuildPlan{}
|
||||
}
|
||||
|
||||
if err := json.Unmarshal(buildPlanResponse.RawMessage, buildPlan); err != nil {
|
||||
return errors.Wrap(err)
|
||||
}
|
||||
if err := encoder.Encode(buildPlan); err != nil {
|
||||
return errors.Wrap(err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -81,7 +81,8 @@ func TestShowAlpha6(t *testing.T) {
|
||||
err = yaml.Unmarshal(wantBytes, &want)
|
||||
require.NoError(t, err)
|
||||
want.BuildContext.RootDir = tempDir
|
||||
want.BuildContext.HolosExecutable = "holos"
|
||||
want.BuildContext.HolosExecutable, err = util.Executable()
|
||||
require.NoError(t, err)
|
||||
want.BuildContext.LeafDir = "fixtures/v1alpha6/components/slice"
|
||||
|
||||
t.Run("FormatYAML", func(t *testing.T) {
|
||||
|
||||
22
internal/cli/slice/doc.go
Normal file
22
internal/cli/slice/doc.go
Normal file
@@ -0,0 +1,22 @@
|
||||
// MIT License
|
||||
|
||||
// Copyright (c) 2021 Patrick D'appollonio
|
||||
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
|
||||
// The above copyright notice and this permission notice shall be included in all
|
||||
// copies or substantial portions of the Software.
|
||||
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
package slice
|
||||
212
internal/cli/slice/slice.go
Normal file
212
internal/cli/slice/slice.go
Normal file
@@ -0,0 +1,212 @@
|
||||
package slice
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/patrickdappollonio/kubectl-slice/slice"
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/spf13/pflag"
|
||||
"github.com/spf13/viper"
|
||||
)
|
||||
|
||||
var version = "development"
|
||||
|
||||
const (
|
||||
helpShort = "kubectl-slice allows you to split a YAML into multiple subfiles using a pattern."
|
||||
|
||||
helpLong = `kubectl-slice allows you to split a YAML into multiple subfiles using a pattern.
|
||||
For documentation, available functions, and more, visit: https://github.com/patrickdappollonio/kubectl-slice.`
|
||||
)
|
||||
|
||||
var examples = []string{
|
||||
"kubectl-slice -f foo.yaml -o ./ --include-kind Pod,Namespace",
|
||||
"kubectl-slice -f foo.yaml -o ./ --exclude-kind Pod",
|
||||
"kubectl-slice -f foo.yaml -o ./ --exclude-name *-svc",
|
||||
"kubectl-slice -f foo.yaml --exclude-name *-svc --stdout",
|
||||
"kubectl-slice -f foo.yaml --include Pod/* --stdout",
|
||||
"kubectl-slice -f foo.yaml --exclude deployment/kube* --stdout",
|
||||
"kubectl-slice -d ./ --recurse -o ./ --include-kind Pod,Namespace",
|
||||
"kubectl-slice -d ./ --recurse --stdout --include Pod/*",
|
||||
"kubectl-slice --config config.yaml",
|
||||
}
|
||||
|
||||
func generateExamples([]string) string {
|
||||
var s bytes.Buffer
|
||||
for pos, v := range examples {
|
||||
s.WriteString(fmt.Sprintf(" %s", v))
|
||||
|
||||
if pos != len(examples)-1 {
|
||||
s.WriteString("\n")
|
||||
}
|
||||
}
|
||||
|
||||
return s.String()
|
||||
}
|
||||
|
||||
func NewKubectlSliceCmd() *cobra.Command {
|
||||
opts := slice.Options{}
|
||||
var configFile string
|
||||
|
||||
rootCommand := &cobra.Command{
|
||||
Use: "kubectl-slice",
|
||||
Short: helpShort,
|
||||
Long: helpLong,
|
||||
Version: version,
|
||||
SilenceUsage: true,
|
||||
SilenceErrors: true,
|
||||
Example: generateExamples(examples),
|
||||
|
||||
PreRunE: func(cmd *cobra.Command, args []string) error {
|
||||
return bindCobraAndViper(cmd, configFile)
|
||||
},
|
||||
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
// Bind to the appropriate stdout/stderr
|
||||
opts.Stdout = cmd.OutOrStdout()
|
||||
opts.Stderr = cmd.ErrOrStderr()
|
||||
|
||||
// If no input file has been provided or it's "-", then
|
||||
// point the app to stdin
|
||||
if (opts.InputFile == "" || opts.InputFile == "-") && opts.InputFolder == "" {
|
||||
opts.InputFile = os.Stdin.Name()
|
||||
|
||||
// Check if we're receiving data from the terminal
|
||||
// or from piped content. Users from piped content
|
||||
// won't see this message. Users that might have forgotten
|
||||
// setting the flags correctly will see this message.
|
||||
if !opts.Quiet {
|
||||
if fi, err := os.Stdin.Stat(); err == nil && fi.Mode()&os.ModeNamedPipe == 0 {
|
||||
fmt.Fprintln(opts.Stderr, "Receiving data from the terminal. Press CTRL+D when you're done typing or CTRL+C")
|
||||
fmt.Fprintln(opts.Stderr, "to exit without processing the content. If you're seeing this by mistake, make")
|
||||
fmt.Fprintln(opts.Stderr, "sure the command line flags, environment variables or config file are correct.")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Create a new instance. This will also perform a basic validation.
|
||||
instance, err := slice.New(opts)
|
||||
if err != nil {
|
||||
return fmt.Errorf("validation failed: %w", err)
|
||||
}
|
||||
|
||||
return instance.Execute()
|
||||
},
|
||||
}
|
||||
|
||||
rootCommand.Flags().StringVarP(&opts.InputFile, "input-file", "f", "", "the input file used to read the initial macro YAML file; if empty or \"-\", stdin is used (exclusive with --input-folder)")
|
||||
rootCommand.Flags().StringVarP(&opts.InputFolder, "input-folder", "d", "", "the input folder used to read the initial macro YAML files (exclusive with --input-file)")
|
||||
rootCommand.Flags().StringSliceVar(&opts.InputFolderExt, "extensions", []string{".yaml", ".yml"}, "the extensions to look for in the input folder")
|
||||
rootCommand.Flags().BoolVarP(&opts.Recurse, "recurse", "r", false, "if true, the input folder will be read recursively (has no effect unless used with --input-folder)")
|
||||
rootCommand.Flags().StringVarP(&opts.OutputDirectory, "output-dir", "o", "", "the output directory used to output the splitted files")
|
||||
rootCommand.Flags().StringVarP(&opts.GoTemplate, "template", "t", slice.DefaultTemplateName, "go template used to generate the file name when creating the resource files in the output directory")
|
||||
rootCommand.Flags().BoolVar(&opts.DryRun, "dry-run", false, "if true, no files are created, but the potentially generated files will be printed as the command output")
|
||||
rootCommand.Flags().BoolVar(&opts.DebugMode, "debug", false, "enable debug mode")
|
||||
rootCommand.Flags().BoolVarP(&opts.Quiet, "quiet", "q", false, "if true, no output is written to stdout/err")
|
||||
rootCommand.Flags().StringSliceVar(&opts.IncludedKinds, "include-kind", nil, "resource kind to include in the output (singular, case insensitive, glob supported)")
|
||||
rootCommand.Flags().StringSliceVar(&opts.ExcludedKinds, "exclude-kind", nil, "resource kind to exclude in the output (singular, case insensitive, glob supported)")
|
||||
rootCommand.Flags().StringSliceVar(&opts.IncludedNames, "include-name", nil, "resource name to include in the output (singular, case insensitive, glob supported)")
|
||||
rootCommand.Flags().StringSliceVar(&opts.ExcludedNames, "exclude-name", nil, "resource name to exclude in the output (singular, case insensitive, glob supported)")
|
||||
rootCommand.Flags().StringSliceVar(&opts.Included, "include", nil, "resource name to include in the output (format <kind>/<name>, case insensitive, glob supported)")
|
||||
rootCommand.Flags().StringSliceVar(&opts.Excluded, "exclude", nil, "resource name to exclude in the output (format <kind>/<name>, case insensitive, glob supported)")
|
||||
rootCommand.Flags().BoolVarP(&opts.StrictKubernetes, "skip-non-k8s", "s", false, "if enabled, any YAMLs that don't contain at least an \"apiVersion\", \"kind\" and \"metadata.name\" will be excluded from the split")
|
||||
rootCommand.Flags().BoolVar(&opts.SortByKind, "sort-by-kind", false, "if enabled, resources are sorted by Kind, a la Helm, before saving them to disk")
|
||||
rootCommand.Flags().BoolVar(&opts.OutputToStdout, "stdout", false, "if enabled, no resource is written to disk and all resources are printed to stdout instead")
|
||||
rootCommand.Flags().StringVarP(&configFile, "config", "c", "", "path to the config file")
|
||||
rootCommand.Flags().BoolVar(&opts.AllowEmptyKinds, "allow-empty-kinds", false, "if enabled, resources with empty kinds don't produce an error when filtering")
|
||||
rootCommand.Flags().BoolVar(&opts.AllowEmptyNames, "allow-empty-names", false, "if enabled, resources with empty names don't produce an error when filtering")
|
||||
rootCommand.Flags().BoolVar(&opts.IncludeTripleDash, "include-triple-dash", false, "if enabled, the typical \"---\" YAML separator is included at the beginning of resources sliced")
|
||||
rootCommand.Flags().BoolVar(&opts.PruneOutputDir, "prune", false, "if enabled, the output directory will be pruned before writing the files")
|
||||
rootCommand.Flags().BoolVar(&opts.RemoveFileComments, "remove-comments", false, "if enabled, comments generated by the app are removed from the sliced files (but keep comments from the original file)")
|
||||
rootCommand.Flags().StringSliceVar(&opts.IncludedGroups, "include-group", nil, "resource kind to include in the output (singular, case insensitive, glob supported)")
|
||||
rootCommand.Flags().StringSliceVar(&opts.ExcludedGroups, "exclude-group", nil, "resource kind to exclude in the output (singular, case insensitive, glob supported)")
|
||||
_ = rootCommand.Flags().MarkHidden("debug")
|
||||
return rootCommand
|
||||
}
|
||||
|
||||
// envVarPrefix is the prefix used for environment variables.
|
||||
// Using underscores to ensure compatibility with the shell.
|
||||
const envVarPrefix = "KUBECTL_SLICE"
|
||||
|
||||
// skippedFlags is a list of flags that are not bound through
|
||||
// Viper. These include things like "help", "version", and of
|
||||
// course, "config", since it doesn't make sense to say where
|
||||
// the config file is located in the config file itself.
|
||||
var skippedFlags = [...]string{
|
||||
"help",
|
||||
"version",
|
||||
"config",
|
||||
}
|
||||
|
||||
// bindCobraAndViper binds the settings loaded by Viper
|
||||
// to the flags defined in Cobra.
|
||||
func bindCobraAndViper(cmd *cobra.Command, configFileLocation string) error {
|
||||
v := viper.New()
|
||||
|
||||
// If a configuration file has been passed...
|
||||
if cmd.Flags().Lookup("config").Changed {
|
||||
// ... then set it as the configuration file
|
||||
v.SetConfigFile(configFileLocation)
|
||||
|
||||
// then read the configuration file
|
||||
if err := v.ReadInConfig(); err != nil {
|
||||
return fmt.Errorf("failed to read configuration file: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
// Handler for potential error
|
||||
var err error
|
||||
|
||||
// Recurse through all the variables
|
||||
cmd.Flags().VisitAll(func(flag *pflag.Flag) {
|
||||
// Skip the flags that are not bound through Viper
|
||||
for _, v := range skippedFlags {
|
||||
if v == flag.Name {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// Normalize key names with underscores instead of dashes
|
||||
nameUnderscored := strings.ReplaceAll(flag.Name, "-", "_")
|
||||
envVarName := strings.ToUpper(fmt.Sprintf("%s_%s", envVarPrefix, nameUnderscored))
|
||||
|
||||
// Bind the flag to the environment variable
|
||||
if val, found := os.LookupEnv(envVarName); found {
|
||||
v.Set(nameUnderscored, val)
|
||||
}
|
||||
|
||||
// If the CLI flag hasn't been changed, but the value is set in
|
||||
// the configuration file, then set the CLI flag to the value
|
||||
// from the configuration file
|
||||
if !flag.Changed && v.IsSet(nameUnderscored) {
|
||||
// Type check for all the supported types
|
||||
switch val := v.Get(nameUnderscored).(type) {
|
||||
|
||||
case string:
|
||||
_ = cmd.Flags().Set(flag.Name, val)
|
||||
|
||||
case []interface{}:
|
||||
var stringified []string
|
||||
for _, v := range val {
|
||||
stringified = append(stringified, fmt.Sprintf("%v", v))
|
||||
}
|
||||
_ = cmd.Flags().Set(flag.Name, strings.Join(stringified, ","))
|
||||
|
||||
case bool:
|
||||
_ = cmd.Flags().Set(flag.Name, fmt.Sprintf("%t", val))
|
||||
|
||||
case int:
|
||||
_ = cmd.Flags().Set(flag.Name, fmt.Sprintf("%d", val))
|
||||
|
||||
default:
|
||||
err = fmt.Errorf("unsupported type %T for flag %q", val, nameUnderscored)
|
||||
return
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
// If an error occurred, return it
|
||||
return err
|
||||
}
|
||||
401
internal/compare/compare.go
Normal file
401
internal/compare/compare.go
Normal file
@@ -0,0 +1,401 @@
|
||||
package compare
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"io"
|
||||
"os"
|
||||
"sort"
|
||||
"strings"
|
||||
|
||||
"github.com/google/go-cmp/cmp"
|
||||
"github.com/google/go-cmp/cmp/cmpopts"
|
||||
"github.com/holos-run/holos/internal/errors"
|
||||
"gopkg.in/yaml.v3"
|
||||
)
|
||||
|
||||
// Comparer handles comparison operations between BuildPlans
|
||||
type Comparer struct {
|
||||
}
|
||||
|
||||
// New creates a new Comparer instance
|
||||
func New() *Comparer {
|
||||
return &Comparer{}
|
||||
}
|
||||
|
||||
// BuildPlans compares two BuildPlan Files for semantic equivalence.
|
||||
//
|
||||
// The holos show buildplans command writes a BuildPlan File to standard output.
|
||||
// A BuildPlan File is a yaml encoded stream of BuildPlan objects.
|
||||
//
|
||||
// BuildPlan File one is equivalent to two when:
|
||||
// 1. one and two have an equal number of BuildPlan objects.
|
||||
// 2. each object in one is equivalent to exactly one unique object in two.
|
||||
//
|
||||
// Two BuildPlans, before and after, are equivalent when:
|
||||
//
|
||||
// 1. All field values in before are equivalent to the same field in after
|
||||
// 2. Both 1 and 2 apply to nested objects, recursively.
|
||||
// 3. Field f is equivalent when before.f exactly equals after.f, except for:
|
||||
// 3.1. Objects in the spec.artifacts list may appear in any arbitrary order.
|
||||
// 3.2. The ordering of keys does not matter.
|
||||
// 4. Backwards compatibility behavior (controlled by isBackwardsCompatible):
|
||||
// - When false: after and before must have exactly the same fields
|
||||
// - When true: after may have additional fields that don't exist in before
|
||||
// (e.g., new features added in a newer version)
|
||||
// Example:
|
||||
// before has {name: "x", version: "1.0"}
|
||||
// after has {name: "x", version: "1.0", newFeature: "enabled"}
|
||||
// This comparison passes when isBackwardsCompatible=true
|
||||
// 5. Fields in before must always be present in after (regardless of backwards
|
||||
// compatibility mode).
|
||||
// 6. List type fields with a null value are equivalent to:
|
||||
// 6.1. null values
|
||||
// 6.2. empty values ([])
|
||||
// 6.2. a missing field
|
||||
//
|
||||
// A BuildPlan File is valid when:
|
||||
// 1. Two or more identical objects exist in the same file. They must be
|
||||
// treated as unique objects when comparing BuildPlan Files
|
||||
// 2. Two objects may have the same value for the metadata.name field.
|
||||
// 3. The kind field of all objects in the file stream is "BuildPlan"
|
||||
func (c *Comparer) BuildPlans(one, two string, isBackwardsCompatible bool) error {
|
||||
// Read both files
|
||||
file1, err := os.Open(one)
|
||||
if err != nil {
|
||||
return errors.Format("opening first file: %w", err)
|
||||
}
|
||||
defer file1.Close()
|
||||
|
||||
file2, err := os.Open(two)
|
||||
if err != nil {
|
||||
return errors.Format("opening second file: %w", err)
|
||||
}
|
||||
defer file2.Close()
|
||||
|
||||
// Read all content from both files
|
||||
content1, err := io.ReadAll(file1)
|
||||
if err != nil {
|
||||
return errors.Format("reading first file: %w", err)
|
||||
}
|
||||
|
||||
content2, err := io.ReadAll(file2)
|
||||
if err != nil {
|
||||
return errors.Format("reading second file: %w", err)
|
||||
}
|
||||
|
||||
// Handle empty files case
|
||||
if len(content1) == 0 && len(content2) == 0 {
|
||||
return errors.NotImplemented()
|
||||
}
|
||||
|
||||
// Parse YAML streams (multiple documents)
|
||||
docs1, err := parseYAMLStream(content1)
|
||||
if err != nil {
|
||||
return errors.Format("parsing first file: %w", err)
|
||||
}
|
||||
|
||||
docs2, err := parseYAMLStream(content2)
|
||||
if err != nil {
|
||||
return errors.Format("parsing second file: %w", err)
|
||||
}
|
||||
|
||||
// Compare the document lists
|
||||
return c.compareDocumentLists(docs1, docs2, isBackwardsCompatible)
|
||||
}
|
||||
|
||||
// normalizeStructure processes a structure to handle null, empty, and missing fields
|
||||
// according to the BuildPlan spec requirement 6
|
||||
func (c *Comparer) normalizeStructure(v interface{}) interface{} {
|
||||
switch val := v.(type) {
|
||||
case map[string]interface{}:
|
||||
normalized := make(map[string]interface{})
|
||||
for k, v := range val {
|
||||
normalizedValue := c.normalizeStructure(v)
|
||||
// Only add fields that are not nil or empty slices
|
||||
if !c.isNullOrEmpty(normalizedValue) {
|
||||
normalized[k] = normalizedValue
|
||||
}
|
||||
}
|
||||
return normalized
|
||||
case []interface{}:
|
||||
// Handle empty slices as nil
|
||||
if len(val) == 0 {
|
||||
return nil
|
||||
}
|
||||
normalized := make([]interface{}, len(val))
|
||||
for i, v := range val {
|
||||
normalized[i] = c.normalizeStructure(v)
|
||||
}
|
||||
return normalized
|
||||
default:
|
||||
return v
|
||||
}
|
||||
}
|
||||
|
||||
// isNullOrEmpty checks if a value is nil or an empty slice
|
||||
func (c *Comparer) isNullOrEmpty(v interface{}) bool {
|
||||
if v == nil {
|
||||
return true
|
||||
}
|
||||
if slice, ok := v.([]interface{}); ok {
|
||||
return len(slice) == 0
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// filterToCommonFields filters v1 to only include fields that exist in v2
|
||||
// This is used for backwards compatibility to allow the "after" file to have extra fields
|
||||
// that don't exist in the "before" file
|
||||
func (c *Comparer) filterToCommonFields(v1, v2 interface{}) interface{} {
|
||||
switch m1 := v1.(type) {
|
||||
case map[string]interface{}:
|
||||
m2, ok := v2.(map[string]interface{})
|
||||
if !ok {
|
||||
return v1
|
||||
}
|
||||
filtered := make(map[string]interface{})
|
||||
for k, val1 := range m1 {
|
||||
if val2, exists := m2[k]; exists {
|
||||
filtered[k] = c.filterToCommonFields(val1, val2)
|
||||
}
|
||||
}
|
||||
return filtered
|
||||
|
||||
case []interface{}:
|
||||
slice2, ok := v2.([]interface{})
|
||||
if !ok {
|
||||
return v1
|
||||
}
|
||||
var filtered []interface{}
|
||||
for i, elem1 := range m1 {
|
||||
if i < len(slice2) {
|
||||
filtered = append(filtered, c.filterToCommonFields(elem1, slice2[i]))
|
||||
}
|
||||
}
|
||||
return filtered
|
||||
|
||||
default:
|
||||
return v1
|
||||
}
|
||||
}
|
||||
|
||||
// compareStructures compares two BuildPlan structures for semantic equivalence
|
||||
func (c *Comparer) compareStructures(bp1, bp2 map[string]interface{}, isBackwardsCompatible bool) error {
|
||||
// Normalize the structures to handle null, empty, and missing fields
|
||||
norm1 := c.normalizeStructure(bp1).(map[string]interface{})
|
||||
norm2 := c.normalizeStructure(bp2).(map[string]interface{})
|
||||
|
||||
// If backwards compatible, remove fields from norm2 that don't exist in norm1
|
||||
// This allows "after" to have extra fields that "before" doesn't have
|
||||
if isBackwardsCompatible {
|
||||
filtered := c.filterToCommonFields(norm2, norm1)
|
||||
if m, ok := filtered.(map[string]interface{}); ok {
|
||||
norm2 = m
|
||||
}
|
||||
}
|
||||
|
||||
// Create comparison options for go-cmp
|
||||
opts := []cmp.Option{
|
||||
cmpopts.EquateEmpty(),
|
||||
cmp.Transformer("sortSlices", func(s []interface{}) []interface{} {
|
||||
return c.sortSlice(s)
|
||||
}),
|
||||
}
|
||||
|
||||
// Deep order-independent comparison
|
||||
if cmp.Equal(norm1, norm2, opts...) {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Get the diff for the error message
|
||||
diff := cmp.Diff(norm1, norm2, opts...)
|
||||
|
||||
// Extract specific field differences from the diff
|
||||
fieldDiffs := c.extractFieldDifferences(diff)
|
||||
|
||||
// Return the extracted differences or the full diff
|
||||
if fieldDiffs != "" {
|
||||
return errors.New(fieldDiffs)
|
||||
}
|
||||
return errors.New(diff)
|
||||
}
|
||||
|
||||
// sortSlice sorts a slice based on comparable string representation
|
||||
func (c *Comparer) sortSlice(slice []interface{}) []interface{} {
|
||||
sorted := make([]interface{}, len(slice))
|
||||
copy(sorted, slice)
|
||||
|
||||
sort.Slice(sorted, func(i, j int) bool {
|
||||
iStr := c.toComparableString(sorted[i])
|
||||
jStr := c.toComparableString(sorted[j])
|
||||
return iStr < jStr
|
||||
})
|
||||
|
||||
return sorted
|
||||
}
|
||||
|
||||
// toComparableString converts a value to a comparable string
|
||||
func (c *Comparer) toComparableString(v interface{}) string {
|
||||
switch val := v.(type) {
|
||||
case map[string]interface{}:
|
||||
// Try to get identifying fields
|
||||
if artifact, ok := val["artifact"].(string); ok {
|
||||
return artifact
|
||||
}
|
||||
if name, ok := val["name"].(string); ok {
|
||||
return name
|
||||
}
|
||||
if metadata, ok := val["metadata"].(map[string]interface{}); ok {
|
||||
if name, ok := metadata["name"].(string); ok {
|
||||
return name
|
||||
}
|
||||
}
|
||||
// Fallback to YAML representation
|
||||
yamlBytes, _ := yaml.Marshal(val)
|
||||
return string(yamlBytes)
|
||||
|
||||
default:
|
||||
// Convert to YAML for comparison
|
||||
yamlBytes, _ := yaml.Marshal(v)
|
||||
return string(yamlBytes)
|
||||
}
|
||||
}
|
||||
|
||||
// parseYAMLStream parses a byte array containing one or more YAML documents
|
||||
func parseYAMLStream(content []byte) ([]map[string]interface{}, error) {
|
||||
var documents []map[string]interface{}
|
||||
decoder := yaml.NewDecoder(bytes.NewReader(content))
|
||||
|
||||
for {
|
||||
var doc map[string]interface{}
|
||||
err := decoder.Decode(&doc)
|
||||
if err == io.EOF {
|
||||
break
|
||||
}
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if doc != nil {
|
||||
documents = append(documents, doc)
|
||||
}
|
||||
}
|
||||
|
||||
return documents, nil
|
||||
}
|
||||
|
||||
// compareDocumentLists compares two lists of YAML documents
|
||||
func (c *Comparer) compareDocumentLists(docs1, docs2 []map[string]interface{}, isBackwardsCompatible bool) error {
|
||||
if len(docs1) != len(docs2) {
|
||||
return errors.New("different number of documents")
|
||||
}
|
||||
|
||||
// Create a bipartite matching between documents
|
||||
used := make([]bool, len(docs2))
|
||||
|
||||
// First pass: try to find exact matches
|
||||
for _, doc1 := range docs1 {
|
||||
for j, doc2 := range docs2 {
|
||||
if used[j] {
|
||||
continue
|
||||
}
|
||||
|
||||
// Check if documents are exactly equal
|
||||
if c.documentsExactlyEqual(doc1, doc2) {
|
||||
used[j] = true
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Second pass: handle unmatched documents
|
||||
usedIdx := 0
|
||||
for i, doc1 := range docs1 {
|
||||
// Find if this document was matched in first pass
|
||||
matchFound := false
|
||||
for j, doc2 := range docs2 {
|
||||
if used[j] && c.documentsExactlyEqual(doc1, doc2) {
|
||||
matchFound = true
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if !matchFound {
|
||||
// Find the next unused document to compare against
|
||||
for usedIdx < len(docs2) && used[usedIdx] {
|
||||
usedIdx++
|
||||
}
|
||||
|
||||
if usedIdx < len(docs2) {
|
||||
// Compare structures
|
||||
if err := c.compareStructures(doc1, docs2[usedIdx], isBackwardsCompatible); err != nil {
|
||||
return errors.Format("document %d not equivalent: \n%w", i, err)
|
||||
}
|
||||
used[usedIdx] = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// documentsExactlyEqual checks if two documents are exactly equal
|
||||
func (c *Comparer) documentsExactlyEqual(doc1, doc2 map[string]interface{}) bool {
|
||||
// Create comparison options for go-cmp
|
||||
opts := []cmp.Option{
|
||||
cmpopts.EquateEmpty(),
|
||||
cmp.Transformer("sortSlices", func(s []interface{}) []interface{} {
|
||||
return c.sortSlice(s)
|
||||
}),
|
||||
}
|
||||
|
||||
return cmp.Equal(doc1, doc2, opts...)
|
||||
}
|
||||
|
||||
// extractFieldDifferences extracts specific field differences from a go-cmp diff
|
||||
func (c *Comparer) extractFieldDifferences(diff string) string {
|
||||
var differences []string
|
||||
lines := strings.Split(diff, "\n")
|
||||
|
||||
for _, line := range lines {
|
||||
// Look for lines that indicate field differences
|
||||
trimmed := strings.TrimSpace(line)
|
||||
|
||||
// Handle lines with - or + prefixes
|
||||
if strings.HasPrefix(trimmed, "-") || strings.HasPrefix(trimmed, "+") {
|
||||
// Skip formatting markers
|
||||
if strings.HasPrefix(trimmed, "---") || strings.HasPrefix(trimmed, "+++") {
|
||||
continue
|
||||
}
|
||||
|
||||
// Check if this is a field difference (contains a colon)
|
||||
if strings.Contains(trimmed, ":") {
|
||||
// Extract the field name and value
|
||||
parts := strings.SplitN(trimmed[1:], ":", 2)
|
||||
if len(parts) == 2 {
|
||||
fieldName := strings.TrimSpace(parts[0])
|
||||
value := strings.TrimSpace(parts[1])
|
||||
|
||||
// Clean up the field name (remove quotes if present)
|
||||
fieldName = strings.Trim(fieldName, "\"")
|
||||
value = strings.TrimSuffix(value, ",")
|
||||
|
||||
// Clean up value formatting
|
||||
if strings.HasPrefix(value, "string(") {
|
||||
value = strings.TrimPrefix(value, "string(")
|
||||
value = strings.TrimSuffix(value, ")")
|
||||
} else if strings.HasPrefix(value, "int(") {
|
||||
value = strings.TrimPrefix(value, "int(")
|
||||
value = strings.TrimSuffix(value, ")")
|
||||
}
|
||||
value = strings.Trim(value, "\"")
|
||||
|
||||
// Rebuild the difference line
|
||||
prefix := trimmed[:1]
|
||||
differences = append(differences, prefix+" "+fieldName+": "+value)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return strings.Join(differences, "\n")
|
||||
}
|
||||
88
internal/compare/compare_test.go
Normal file
88
internal/compare/compare_test.go
Normal file
@@ -0,0 +1,88 @@
|
||||
package compare
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
type testCase struct {
|
||||
ExitCode int `json:"exitCode"`
|
||||
Name string `json:"name,omitempty"`
|
||||
Msg string `json:"msg,omitempty"`
|
||||
File1 string `json:"file1"`
|
||||
File2 string `json:"file2"`
|
||||
ExpectedError string `json:"expectedError,omitempty"` // Deprecated: use ExpectedErrors
|
||||
ExpectedErrors []string `json:"expectedErrors,omitempty"`
|
||||
IsBackwardsCompatible *bool `json:"isBackwardsCompatible,omitempty"`
|
||||
}
|
||||
|
||||
func TestBuildPlans(t *testing.T) {
|
||||
fixturesDir := "testdata"
|
||||
entries, err := os.ReadDir(fixturesDir)
|
||||
if err != nil {
|
||||
t.Fatalf("could not read fixtures directory: %v", err)
|
||||
}
|
||||
|
||||
for _, entry := range entries {
|
||||
if !entry.IsDir() {
|
||||
continue
|
||||
}
|
||||
|
||||
dirName := entry.Name()
|
||||
t.Run(dirName, func(t *testing.T) {
|
||||
testDir := filepath.Join(fixturesDir, dirName)
|
||||
|
||||
// Read the testcase.json file
|
||||
testcaseData, err := os.ReadFile(filepath.Join(testDir, "testcase.json"))
|
||||
if err != nil {
|
||||
t.Fatalf("could not read testcase.json: %v", err)
|
||||
}
|
||||
|
||||
var tc testCase
|
||||
if err := json.Unmarshal(testcaseData, &tc); err != nil {
|
||||
t.Fatalf("could not parse testcase.json: %v", err)
|
||||
}
|
||||
|
||||
// Use the test name if provided, otherwise use directory name
|
||||
testName := dirName
|
||||
if tc.Name != "" {
|
||||
testName = tc.Name
|
||||
}
|
||||
|
||||
// Run the test with the appropriate name
|
||||
t.Run(testName, func(t *testing.T) {
|
||||
// Build the full file paths
|
||||
file1Path := filepath.Join(testDir, tc.File1)
|
||||
file2Path := filepath.Join(testDir, tc.File2)
|
||||
|
||||
// Create a new comparer and run the comparison
|
||||
c := New()
|
||||
// Use isBackwardsCompatible from test case if provided, default to false
|
||||
isBackwardsCompatible := false
|
||||
if tc.IsBackwardsCompatible != nil {
|
||||
isBackwardsCompatible = *tc.IsBackwardsCompatible
|
||||
}
|
||||
err := c.BuildPlans(file1Path, file2Path, isBackwardsCompatible)
|
||||
|
||||
// Check the result based on expected exit code
|
||||
if tc.ExitCode == 0 {
|
||||
assert.NoError(t, err, tc.Msg)
|
||||
} else {
|
||||
assert.Error(t, err, tc.Msg)
|
||||
// Support both old expectedError and new expectedErrors
|
||||
if tc.ExpectedError != "" {
|
||||
assert.ErrorContains(t, err, tc.ExpectedError, tc.Msg)
|
||||
}
|
||||
// Check each expected error substring
|
||||
for _, expectedErr := range tc.ExpectedErrors {
|
||||
assert.ErrorContains(t, err, expectedErr, tc.Msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
810
internal/compare/testdata/annotations/after.yaml
vendored
Normal file
810
internal/compare/testdata/annotations/after.yaml
vendored
Normal file
@@ -0,0 +1,810 @@
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: kargo-stages
|
||||
labels:
|
||||
holos.run/component.name: kargo-stages
|
||||
holos.run/project.name: httpbin
|
||||
holos.run/stack.name: httpbin
|
||||
annotations:
|
||||
app.holos.run/description: kargo-stages for project httpbin
|
||||
example.com/description: bar
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: projects/httpbin/components/kargo-stages/kargo-stages.gen.yaml
|
||||
generators:
|
||||
- kind: Resources
|
||||
output: resources.gen.yaml
|
||||
resources:
|
||||
Stage:
|
||||
dev:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: dev
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/dev-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/dev-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/dev-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/dev-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/dev-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-dev-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
direct: true
|
||||
prod-us-central:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-central
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-central-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-central-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-central-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-central-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-central-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-central-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
prod-us-east:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-east
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-east-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-east-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-east-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-east-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-east-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-east-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
prod-us-west:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-west
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-west-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-west-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-west-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-west-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-west-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-west-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
test:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: test
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/test-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/test-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/test-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/test-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/test-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-test-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- dev
|
||||
uat:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: uat
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/uat-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/uat-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/uat-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/uat-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/uat-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-uat-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- test
|
||||
Warehouse:
|
||||
httpbin:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Warehouse
|
||||
metadata:
|
||||
name: httpbin
|
||||
namespace: httpbin
|
||||
spec:
|
||||
interval: 5m0s
|
||||
subscriptions:
|
||||
- image:
|
||||
discoveryLimit: 5
|
||||
repoURL: quay.io/holos/mccutchen/go-httpbin
|
||||
semverConstraint: ^2.0.0
|
||||
strictSemvers: true
|
||||
transformers:
|
||||
- kind: Kustomize
|
||||
inputs:
|
||||
- resources.gen.yaml
|
||||
output: projects/httpbin/components/kargo-stages/kargo-stages.gen.yaml
|
||||
kustomize:
|
||||
kustomization:
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
labels:
|
||||
- includeSelectors: false
|
||||
pairs:
|
||||
argocd.argoproj.io/instance: httpbin-kargo-stages
|
||||
resources:
|
||||
- resources.gen.yaml
|
||||
- artifact: projects/httpbin/gitops/kargo-stages.application.gen.yaml
|
||||
generators:
|
||||
- kind: Resources
|
||||
output: projects/httpbin/gitops/kargo-stages.application.gen.yaml
|
||||
resources:
|
||||
Application:
|
||||
httpbin-kargo-stages:
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
labels: {}
|
||||
name: httpbin-kargo-stages
|
||||
namespace: argocd
|
||||
spec:
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
project: httpbin
|
||||
source:
|
||||
path: deploy/projects/httpbin/components/kargo-stages
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
targetRevision: main
|
||||
---
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: kargo-stages
|
||||
labels:
|
||||
holos.run/component.name: kargo-stages
|
||||
holos.run/project.name: httpbin
|
||||
holos.run/stack.name: httpbin
|
||||
annotations:
|
||||
example.com/description: bar
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: projects/httpbin/components/kargo-stages/kargo-stages.gen.yaml
|
||||
generators:
|
||||
- kind: Resources
|
||||
output: resources.gen.yaml
|
||||
resources:
|
||||
Stage:
|
||||
dev:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: dev
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/dev-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/dev-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/dev-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/dev-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/dev-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-dev-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
direct: true
|
||||
prod-us-central:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-central
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-central-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-central-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-central-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-central-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-central-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-central-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
prod-us-east:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-east
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-east-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-east-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-east-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-east-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-east-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-east-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
prod-us-west:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-west
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-west-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-west-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-west-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-west-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-west-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-west-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
test:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: test
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/test-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/test-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/test-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/test-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/test-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-test-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- dev
|
||||
uat:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: uat
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/uat-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/uat-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/uat-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/uat-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/uat-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-uat-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- test
|
||||
Warehouse:
|
||||
httpbin:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Warehouse
|
||||
metadata:
|
||||
name: httpbin
|
||||
namespace: httpbin
|
||||
spec:
|
||||
interval: 5m0s
|
||||
subscriptions:
|
||||
- image:
|
||||
discoveryLimit: 5
|
||||
repoURL: quay.io/holos/mccutchen/go-httpbin
|
||||
semverConstraint: ^2.0.0
|
||||
strictSemvers: true
|
||||
transformers:
|
||||
- kind: Kustomize
|
||||
inputs:
|
||||
- resources.gen.yaml
|
||||
output: projects/httpbin/components/kargo-stages/kargo-stages.gen.yaml
|
||||
kustomize:
|
||||
kustomization:
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
labels:
|
||||
- includeSelectors: false
|
||||
pairs:
|
||||
argocd.argoproj.io/instance: httpbin-kargo-stages
|
||||
resources:
|
||||
- resources.gen.yaml
|
||||
- artifact: projects/httpbin/gitops/kargo-stages.application.gen.yaml
|
||||
generators:
|
||||
- kind: Resources
|
||||
output: projects/httpbin/gitops/kargo-stages.application.gen.yaml
|
||||
resources:
|
||||
Application:
|
||||
httpbin-kargo-stages:
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
labels: {}
|
||||
name: httpbin-kargo-stages
|
||||
namespace: argocd
|
||||
spec:
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
project: httpbin
|
||||
source:
|
||||
path: deploy/projects/httpbin/components/kargo-stages
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
targetRevision: main
|
||||
810
internal/compare/testdata/annotations/before.yaml
vendored
Normal file
810
internal/compare/testdata/annotations/before.yaml
vendored
Normal file
@@ -0,0 +1,810 @@
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: kargo-stages
|
||||
labels:
|
||||
holos.run/component.name: kargo-stages
|
||||
holos.run/project.name: httpbin
|
||||
holos.run/stack.name: httpbin
|
||||
annotations:
|
||||
app.holos.run/description: kargo-stages for project httpbin
|
||||
example.com/description: foo
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: projects/httpbin/components/kargo-stages/kargo-stages.gen.yaml
|
||||
generators:
|
||||
- kind: Resources
|
||||
output: resources.gen.yaml
|
||||
resources:
|
||||
Stage:
|
||||
dev:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: dev
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/dev-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/dev-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/dev-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/dev-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/dev-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-dev-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
direct: true
|
||||
prod-us-central:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-central
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-central-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-central-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-central-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-central-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-central-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-central-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
prod-us-east:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-east
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-east-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-east-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-east-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-east-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-east-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-east-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
prod-us-west:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-west
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-west-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-west-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-west-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-west-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-west-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-west-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
test:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: test
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/test-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/test-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/test-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/test-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/test-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-test-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- dev
|
||||
uat:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: uat
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/uat-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/uat-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/uat-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/uat-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/uat-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-uat-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- test
|
||||
Warehouse:
|
||||
httpbin:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Warehouse
|
||||
metadata:
|
||||
name: httpbin
|
||||
namespace: httpbin
|
||||
spec:
|
||||
interval: 5m0s
|
||||
subscriptions:
|
||||
- image:
|
||||
discoveryLimit: 5
|
||||
repoURL: quay.io/holos/mccutchen/go-httpbin
|
||||
semverConstraint: ^2.0.0
|
||||
strictSemvers: true
|
||||
transformers:
|
||||
- kind: Kustomize
|
||||
inputs:
|
||||
- resources.gen.yaml
|
||||
output: projects/httpbin/components/kargo-stages/kargo-stages.gen.yaml
|
||||
kustomize:
|
||||
kustomization:
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
labels:
|
||||
- includeSelectors: false
|
||||
pairs:
|
||||
argocd.argoproj.io/instance: httpbin-kargo-stages
|
||||
resources:
|
||||
- resources.gen.yaml
|
||||
- artifact: projects/httpbin/gitops/kargo-stages.application.gen.yaml
|
||||
generators:
|
||||
- kind: Resources
|
||||
output: projects/httpbin/gitops/kargo-stages.application.gen.yaml
|
||||
resources:
|
||||
Application:
|
||||
httpbin-kargo-stages:
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
labels: {}
|
||||
name: httpbin-kargo-stages
|
||||
namespace: argocd
|
||||
spec:
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
project: httpbin
|
||||
source:
|
||||
path: deploy/projects/httpbin/components/kargo-stages
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
targetRevision: main
|
||||
---
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: kargo-stages
|
||||
labels:
|
||||
holos.run/component.name: kargo-stages
|
||||
holos.run/project.name: httpbin
|
||||
holos.run/stack.name: httpbin
|
||||
annotations:
|
||||
example.com/description: bar
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: projects/httpbin/components/kargo-stages/kargo-stages.gen.yaml
|
||||
generators:
|
||||
- kind: Resources
|
||||
output: resources.gen.yaml
|
||||
resources:
|
||||
Stage:
|
||||
dev:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: dev
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/dev-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/dev-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/dev-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/dev-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/dev-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-dev-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
direct: true
|
||||
prod-us-central:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-central
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-central-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-central-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-central-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-central-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-central-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-central-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
prod-us-east:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-east
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-east-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-east-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-east-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-east-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-east-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-east-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
prod-us-west:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-west
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-west-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-west-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-west-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-west-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-west-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-west-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
test:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: test
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/test-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/test-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/test-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/test-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/test-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-test-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- dev
|
||||
uat:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: uat
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/uat-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/uat-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/uat-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/uat-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/uat-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-uat-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- test
|
||||
Warehouse:
|
||||
httpbin:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Warehouse
|
||||
metadata:
|
||||
name: httpbin
|
||||
namespace: httpbin
|
||||
spec:
|
||||
interval: 5m0s
|
||||
subscriptions:
|
||||
- image:
|
||||
discoveryLimit: 5
|
||||
repoURL: quay.io/holos/mccutchen/go-httpbin
|
||||
semverConstraint: ^2.0.0
|
||||
strictSemvers: true
|
||||
transformers:
|
||||
- kind: Kustomize
|
||||
inputs:
|
||||
- resources.gen.yaml
|
||||
output: projects/httpbin/components/kargo-stages/kargo-stages.gen.yaml
|
||||
kustomize:
|
||||
kustomization:
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
labels:
|
||||
- includeSelectors: false
|
||||
pairs:
|
||||
argocd.argoproj.io/instance: httpbin-kargo-stages
|
||||
resources:
|
||||
- resources.gen.yaml
|
||||
- artifact: projects/httpbin/gitops/kargo-stages.application.gen.yaml
|
||||
generators:
|
||||
- kind: Resources
|
||||
output: projects/httpbin/gitops/kargo-stages.application.gen.yaml
|
||||
resources:
|
||||
Application:
|
||||
httpbin-kargo-stages:
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
labels: {}
|
||||
name: httpbin-kargo-stages
|
||||
namespace: argocd
|
||||
spec:
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
project: httpbin
|
||||
source:
|
||||
path: deploy/projects/httpbin/components/kargo-stages
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
targetRevision: main
|
||||
7
internal/compare/testdata/annotations/testcase.json
vendored
Normal file
7
internal/compare/testdata/annotations/testcase.json
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"exitCode": 1,
|
||||
"name": "DuplicatedAnnotationsInAfter",
|
||||
"msg": "should not match when the same object is duplicated in after and differs only by an arbitrary deeply nested field in before, in this case an annotation",
|
||||
"file1": "before.yaml",
|
||||
"file2": "after.yaml"
|
||||
}
|
||||
24
internal/compare/testdata/backwards-compatible/after.yaml
vendored
Normal file
24
internal/compare/testdata/backwards-compatible/after.yaml
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
---
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: component
|
||||
labels:
|
||||
holos.run/component.name: component
|
||||
holos.run/stack.name: demo
|
||||
annotations:
|
||||
holos.run/purpose: example
|
||||
holos.run/environment: prod
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: component.yaml
|
||||
generators:
|
||||
- kind: Kubernetes
|
||||
output: manifests.yaml
|
||||
resources:
|
||||
- name: deployment
|
||||
namespace: default
|
||||
transformers:
|
||||
- kind: SetLabels
|
||||
labels:
|
||||
app: demo
|
||||
17
internal/compare/testdata/backwards-compatible/before.yaml
vendored
Normal file
17
internal/compare/testdata/backwards-compatible/before.yaml
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: component
|
||||
labels:
|
||||
holos.run/component.name: component
|
||||
# Missing holos.run/stack.name
|
||||
# Missing annotations
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: component.yaml
|
||||
generators:
|
||||
- kind: Kubernetes
|
||||
output: manifests.yaml
|
||||
# Missing resources
|
||||
# Missing transformers
|
||||
9
internal/compare/testdata/backwards-compatible/testcase.json
vendored
Normal file
9
internal/compare/testdata/backwards-compatible/testcase.json
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"exitCode": 0,
|
||||
"name": "BuildPlan_4",
|
||||
"msg": "BuildPlan spec 4: after may have fields missing from before if isBackwardsCompatible is true - should pass when before has missing fields and isBackwardsCompatible is true",
|
||||
"file1": "before.yaml",
|
||||
"file2": "after.yaml",
|
||||
"expectedErrors": [],
|
||||
"isBackwardsCompatible": true
|
||||
}
|
||||
404
internal/compare/testdata/buildplan/after.yaml
vendored
Normal file
404
internal/compare/testdata/buildplan/after.yaml
vendored
Normal file
@@ -0,0 +1,404 @@
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: kargo-stages
|
||||
labels:
|
||||
holos.run/component.name: kargo-stages
|
||||
holos.run/project.name: httpbin
|
||||
holos.run/stack.name: httpbin
|
||||
annotations:
|
||||
app.holos.run/description: kargo-stages for project httpbin
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: projects/httpbin/components/kargo-stages/kargo-stages.gen.yaml
|
||||
generators:
|
||||
- kind: Resources
|
||||
output: resources.gen.yaml
|
||||
resources:
|
||||
Stage:
|
||||
dev:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: dev
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/dev-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/dev-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/dev-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/dev-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/dev-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-dev-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
direct: true
|
||||
prod-us-central:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-central
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-central-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-central-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-central-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-central-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-central-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-central-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
prod-us-east:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-east
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-east-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-east-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-east-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-east-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-east-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-east-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
prod-us-west:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-west
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-west-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-west-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-west-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-west-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-west-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-west-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
test:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: test
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/test-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/test-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/test-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/test-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/test-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-test-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- dev
|
||||
uat:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: uat
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/uat-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/uat-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/uat-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/uat-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/uat-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-uat-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- test
|
||||
Warehouse:
|
||||
httpbin:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Warehouse
|
||||
metadata:
|
||||
name: httpbin
|
||||
namespace: httpbin
|
||||
spec:
|
||||
interval: 5m0s
|
||||
subscriptions:
|
||||
- image:
|
||||
discoveryLimit: 5
|
||||
repoURL: quay.io/holos/mccutchen/go-httpbin
|
||||
semverConstraint: ^2.0.0
|
||||
strictSemvers: true
|
||||
transformers:
|
||||
- kind: Kustomize
|
||||
inputs:
|
||||
- resources.gen.yaml
|
||||
output: projects/httpbin/components/kargo-stages/kargo-stages.gen.yaml
|
||||
kustomize:
|
||||
kustomization:
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
labels:
|
||||
- includeSelectors: false
|
||||
pairs:
|
||||
argocd.argoproj.io/instance: httpbin-kargo-stages
|
||||
resources:
|
||||
- resources.gen.yaml
|
||||
- artifact: projects/httpbin/gitops/kargo-stages.application.gen.yaml
|
||||
generators:
|
||||
- kind: Resources
|
||||
output: projects/httpbin/gitops/kargo-stages.application.gen.yaml
|
||||
resources:
|
||||
Application:
|
||||
httpbin-kargo-stages:
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
labels: {}
|
||||
name: httpbin-kargo-stages
|
||||
namespace: argocd
|
||||
spec:
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
project: httpbin
|
||||
source:
|
||||
path: deploy/projects/httpbin/components/kargo-stages
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
targetRevision: main
|
||||
404
internal/compare/testdata/buildplan/before.yaml
vendored
Normal file
404
internal/compare/testdata/buildplan/before.yaml
vendored
Normal file
@@ -0,0 +1,404 @@
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: kargo-stages
|
||||
labels:
|
||||
holos.run/component.name: kargo-stages
|
||||
holos.run/project.name: httpbin
|
||||
holos.run/stack.name: httpbin
|
||||
annotations:
|
||||
app.holos.run/description: kargo-stages for project httpbin
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: projects/httpbin/components/kargo-stages/kargo-stages.gen.yaml
|
||||
generators:
|
||||
- kind: Resources
|
||||
output: resources.gen.yaml
|
||||
resources:
|
||||
Stage:
|
||||
dev:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: dev
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/dev-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/dev-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/dev-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/dev-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/dev-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-dev-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
direct: true
|
||||
prod-us-central:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-central
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-central-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-central-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-central-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-central-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-central-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-central-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
prod-us-east:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-east
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-east-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-east-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-east-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-east-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-east-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-east-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
prod-us-west:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-west
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-west-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-west-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-west-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-west-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-west-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-west-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
test:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: test
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/test-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/test-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/test-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/test-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/test-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-test-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- dev
|
||||
uat:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: uat
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/uat-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/uat-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/uat-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/uat-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/uat-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-uat-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- test
|
||||
Warehouse:
|
||||
httpbin:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Warehouse
|
||||
metadata:
|
||||
name: httpbin
|
||||
namespace: httpbin
|
||||
spec:
|
||||
interval: 5m0s
|
||||
subscriptions:
|
||||
- image:
|
||||
discoveryLimit: 5
|
||||
repoURL: quay.io/holos/mccutchen/go-httpbin
|
||||
semverConstraint: ^2.0.0
|
||||
strictSemvers: true
|
||||
transformers:
|
||||
- kind: Kustomize
|
||||
inputs:
|
||||
- resources.gen.yaml
|
||||
output: projects/httpbin/components/kargo-stages/kargo-stages.gen.yaml
|
||||
kustomize:
|
||||
kustomization:
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
labels:
|
||||
- includeSelectors: false
|
||||
pairs:
|
||||
argocd.argoproj.io/instance: httpbin-kargo-stages
|
||||
resources:
|
||||
- resources.gen.yaml
|
||||
- artifact: projects/httpbin/gitops/kargo-stages.application.gen.yaml
|
||||
generators:
|
||||
- kind: Resources
|
||||
output: projects/httpbin/gitops/kargo-stages.application.gen.yaml
|
||||
resources:
|
||||
Application:
|
||||
httpbin-kargo-stages:
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
labels: {}
|
||||
name: httpbin-kargo-stages
|
||||
namespace: argocd
|
||||
spec:
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
project: httpbin
|
||||
source:
|
||||
path: deploy/projects/httpbin/components/kargo-stages
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
targetRevision: main
|
||||
8
internal/compare/testdata/buildplan/testcase.json
vendored
Normal file
8
internal/compare/testdata/buildplan/testcase.json
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"exitCode": 0,
|
||||
"name": "FullBuildPlan",
|
||||
"msg": "should match full build plans",
|
||||
"file1": "before.yaml",
|
||||
"file2": "after.yaml",
|
||||
"expectedErrors": []
|
||||
}
|
||||
404
internal/compare/testdata/buildplan2/after.yaml
vendored
Normal file
404
internal/compare/testdata/buildplan2/after.yaml
vendored
Normal file
@@ -0,0 +1,404 @@
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: kargo-stages
|
||||
labels:
|
||||
holos.run/component.name: kargo-stages
|
||||
holos.run/project.name: httpbin
|
||||
holos.run/stack.name: httpbin
|
||||
annotations:
|
||||
app.holos.run/description: kargo-stages for project httpbin
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: projects/httpbin/gitops/kargo-stages.application.gen.yaml
|
||||
generators:
|
||||
- kind: Resources
|
||||
output: projects/httpbin/gitops/kargo-stages.application.gen.yaml
|
||||
resources:
|
||||
Application:
|
||||
httpbin-kargo-stages:
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
labels: {}
|
||||
name: httpbin-kargo-stages
|
||||
namespace: argocd
|
||||
spec:
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
project: httpbin
|
||||
source:
|
||||
path: deploy/projects/httpbin/components/kargo-stages
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
targetRevision: main
|
||||
- artifact: projects/httpbin/components/kargo-stages/kargo-stages.gen.yaml
|
||||
generators:
|
||||
- kind: Resources
|
||||
output: resources.gen.yaml
|
||||
resources:
|
||||
Stage:
|
||||
dev:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: dev
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/dev-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/dev-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/dev-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/dev-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/dev-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-dev-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
direct: true
|
||||
prod-us-central:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-central
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-central-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-central-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-central-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-central-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-central-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-central-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
prod-us-east:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-east
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-east-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-east-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-east-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-east-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-east-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-east-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
prod-us-west:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-west
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-west-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-west-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-west-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-west-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-west-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-west-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
test:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: test
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/test-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/test-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/test-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/test-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/test-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-test-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- dev
|
||||
uat:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: uat
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/uat-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/uat-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/uat-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/uat-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/uat-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-uat-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- test
|
||||
Warehouse:
|
||||
httpbin:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Warehouse
|
||||
metadata:
|
||||
name: httpbin
|
||||
namespace: httpbin
|
||||
spec:
|
||||
interval: 5m0s
|
||||
subscriptions:
|
||||
- image:
|
||||
discoveryLimit: 5
|
||||
repoURL: quay.io/holos/mccutchen/go-httpbin
|
||||
semverConstraint: ^2.0.0
|
||||
strictSemvers: true
|
||||
transformers:
|
||||
- kind: Kustomize
|
||||
inputs:
|
||||
- resources.gen.yaml
|
||||
output: projects/httpbin/components/kargo-stages/kargo-stages.gen.yaml
|
||||
kustomize:
|
||||
kustomization:
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
labels:
|
||||
- includeSelectors: false
|
||||
pairs:
|
||||
argocd.argoproj.io/instance: httpbin-kargo-stages
|
||||
resources:
|
||||
- resources.gen.yaml
|
||||
404
internal/compare/testdata/buildplan2/before.yaml
vendored
Normal file
404
internal/compare/testdata/buildplan2/before.yaml
vendored
Normal file
@@ -0,0 +1,404 @@
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: kargo-stages
|
||||
labels:
|
||||
holos.run/component.name: kargo-stages
|
||||
holos.run/project.name: httpbin
|
||||
holos.run/stack.name: httpbin
|
||||
annotations:
|
||||
app.holos.run/description: kargo-stages for project httpbin
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: projects/httpbin/components/kargo-stages/kargo-stages.gen.yaml
|
||||
generators:
|
||||
- kind: Resources
|
||||
output: resources.gen.yaml
|
||||
resources:
|
||||
Stage:
|
||||
dev:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: dev
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/dev-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/dev-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/dev-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/dev-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/dev-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-dev-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
direct: true
|
||||
prod-us-central:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-central
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-central-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-central-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-central-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-central-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-central-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-central-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
prod-us-east:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-east
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-east-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-east-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-east-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-east-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-east-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-east-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
prod-us-west:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-west
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-west-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-west-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-west-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-west-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-west-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-west-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
test:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: test
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/test-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/test-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/test-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/test-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/test-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-test-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- dev
|
||||
uat:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: uat
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/uat-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/uat-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/uat-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/uat-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/uat-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-uat-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- test
|
||||
Warehouse:
|
||||
httpbin:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Warehouse
|
||||
metadata:
|
||||
name: httpbin
|
||||
namespace: httpbin
|
||||
spec:
|
||||
interval: 5m0s
|
||||
subscriptions:
|
||||
- image:
|
||||
discoveryLimit: 5
|
||||
repoURL: quay.io/holos/mccutchen/go-httpbin
|
||||
semverConstraint: ^2.0.0
|
||||
strictSemvers: true
|
||||
transformers:
|
||||
- kind: Kustomize
|
||||
inputs:
|
||||
- resources.gen.yaml
|
||||
output: projects/httpbin/components/kargo-stages/kargo-stages.gen.yaml
|
||||
kustomize:
|
||||
kustomization:
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
labels:
|
||||
- includeSelectors: false
|
||||
pairs:
|
||||
argocd.argoproj.io/instance: httpbin-kargo-stages
|
||||
resources:
|
||||
- resources.gen.yaml
|
||||
- artifact: projects/httpbin/gitops/kargo-stages.application.gen.yaml
|
||||
generators:
|
||||
- kind: Resources
|
||||
output: projects/httpbin/gitops/kargo-stages.application.gen.yaml
|
||||
resources:
|
||||
Application:
|
||||
httpbin-kargo-stages:
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
labels: {}
|
||||
name: httpbin-kargo-stages
|
||||
namespace: argocd
|
||||
spec:
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
project: httpbin
|
||||
source:
|
||||
path: deploy/projects/httpbin/components/kargo-stages
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
targetRevision: main
|
||||
8
internal/compare/testdata/buildplan2/testcase.json
vendored
Normal file
8
internal/compare/testdata/buildplan2/testcase.json
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"exitCode": 0,
|
||||
"name": "BuildPlan_3.1",
|
||||
"msg": "BuildPlan spec 3.1: Objects in the spec.artifacts list may appear in any arbitrary order - should match when artifacts are reordered",
|
||||
"file1": "before.yaml",
|
||||
"file2": "after.yaml",
|
||||
"expectedErrors": []
|
||||
}
|
||||
404
internal/compare/testdata/buildplan3/after.yaml
vendored
Normal file
404
internal/compare/testdata/buildplan3/after.yaml
vendored
Normal file
@@ -0,0 +1,404 @@
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: kargo-stages
|
||||
labels:
|
||||
holos.run/component.name: kargo-stages
|
||||
holos.run/project.name: httpbin
|
||||
holos.run/stack.name: not-httpbin
|
||||
annotations:
|
||||
app.holos.run/description: kargo-stages for project httpbin
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: projects/httpbin/gitops/kargo-stages.application.gen.yaml
|
||||
generators:
|
||||
- kind: Resources
|
||||
output: projects/httpbin/gitops/kargo-stages.application.gen.yaml
|
||||
resources:
|
||||
Application:
|
||||
httpbin-kargo-stages:
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
labels: {}
|
||||
name: httpbin-kargo-stages
|
||||
namespace: argocd
|
||||
spec:
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
project: httpbin
|
||||
source:
|
||||
path: deploy/projects/httpbin/components/kargo-stages
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
targetRevision: main
|
||||
- artifact: projects/httpbin/components/kargo-stages/kargo-stages.gen.yaml
|
||||
generators:
|
||||
- kind: Resources
|
||||
output: resources.gen.yaml
|
||||
resources:
|
||||
Stage:
|
||||
dev:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: dev
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/dev-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/dev-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/dev-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/dev-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/dev-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-dev-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
direct: true
|
||||
prod-us-central:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-central
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-central-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-central-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-central-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-central-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-central-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-central-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
prod-us-east:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-east
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-east-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-east-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-east-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-east-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-east-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-east-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
prod-us-west:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-west
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-west-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-west-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-west-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-west-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-west-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-west-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
test:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: test
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/test-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/test-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/test-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/test-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/test-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-test-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- dev
|
||||
uat:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: uat
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/uat-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/uat-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/uat-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/uat-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/uat-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-uat-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- test
|
||||
Warehouse:
|
||||
httpbin:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Warehouse
|
||||
metadata:
|
||||
name: httpbin
|
||||
namespace: httpbin
|
||||
spec:
|
||||
interval: 5m0s
|
||||
subscriptions:
|
||||
- image:
|
||||
discoveryLimit: 5
|
||||
repoURL: quay.io/holos/mccutchen/go-httpbin
|
||||
semverConstraint: ^2.0.0
|
||||
strictSemvers: true
|
||||
transformers:
|
||||
- kind: Kustomize
|
||||
inputs:
|
||||
- resources.gen.yaml
|
||||
output: projects/httpbin/components/kargo-stages/kargo-stages.gen.yaml
|
||||
kustomize:
|
||||
kustomization:
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
labels:
|
||||
- includeSelectors: false
|
||||
pairs:
|
||||
argocd.argoproj.io/instance: httpbin-kargo-stages
|
||||
resources:
|
||||
- resources.gen.yaml
|
||||
404
internal/compare/testdata/buildplan3/before.yaml
vendored
Normal file
404
internal/compare/testdata/buildplan3/before.yaml
vendored
Normal file
@@ -0,0 +1,404 @@
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: kargo-stages
|
||||
labels:
|
||||
holos.run/component.name: kargo-stages
|
||||
holos.run/project.name: httpbin
|
||||
holos.run/stack.name: httpbin
|
||||
annotations:
|
||||
app.holos.run/description: kargo-stages for project httpbin
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: projects/httpbin/components/kargo-stages/kargo-stages.gen.yaml
|
||||
generators:
|
||||
- kind: Resources
|
||||
output: resources.gen.yaml
|
||||
resources:
|
||||
Stage:
|
||||
dev:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: dev
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/dev-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/dev-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/dev-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/dev-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/dev-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-dev-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
direct: true
|
||||
prod-us-central:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-central
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-central-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-central-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-central-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-central-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-central-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-central-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
prod-us-east:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-east
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-east-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-east-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-east-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-east-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-east-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-east-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
prod-us-west:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-west
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-west-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-west-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-west-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-west-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-west-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-west-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
test:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: test
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/test-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/test-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/test-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/test-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/test-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-test-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- dev
|
||||
uat:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: uat
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/uat-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/uat-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/uat-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/uat-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/uat-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-uat-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- test
|
||||
Warehouse:
|
||||
httpbin:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Warehouse
|
||||
metadata:
|
||||
name: httpbin
|
||||
namespace: httpbin
|
||||
spec:
|
||||
interval: 5m0s
|
||||
subscriptions:
|
||||
- image:
|
||||
discoveryLimit: 5
|
||||
repoURL: quay.io/holos/mccutchen/go-httpbin
|
||||
semverConstraint: ^2.0.0
|
||||
strictSemvers: true
|
||||
transformers:
|
||||
- kind: Kustomize
|
||||
inputs:
|
||||
- resources.gen.yaml
|
||||
output: projects/httpbin/components/kargo-stages/kargo-stages.gen.yaml
|
||||
kustomize:
|
||||
kustomization:
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
labels:
|
||||
- includeSelectors: false
|
||||
pairs:
|
||||
argocd.argoproj.io/instance: httpbin-kargo-stages
|
||||
resources:
|
||||
- resources.gen.yaml
|
||||
- artifact: projects/httpbin/gitops/kargo-stages.application.gen.yaml
|
||||
generators:
|
||||
- kind: Resources
|
||||
output: projects/httpbin/gitops/kargo-stages.application.gen.yaml
|
||||
resources:
|
||||
Application:
|
||||
httpbin-kargo-stages:
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
labels: {}
|
||||
name: httpbin-kargo-stages
|
||||
namespace: argocd
|
||||
spec:
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
project: httpbin
|
||||
source:
|
||||
path: deploy/projects/httpbin/components/kargo-stages
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
targetRevision: main
|
||||
8
internal/compare/testdata/buildplan3/testcase.json
vendored
Normal file
8
internal/compare/testdata/buildplan3/testcase.json
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"exitCode": 1,
|
||||
"name": "FullBuildPlanDifferentLabelValues",
|
||||
"msg": "should not match full build plans with out of order artifacts and different labels",
|
||||
"file1": "before.yaml",
|
||||
"file2": "after.yaml",
|
||||
"expectedErrors": ["holos.run/stack.name: not-httpbin"]
|
||||
}
|
||||
405
internal/compare/testdata/buildplan4/after.yaml
vendored
Normal file
405
internal/compare/testdata/buildplan4/after.yaml
vendored
Normal file
@@ -0,0 +1,405 @@
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: kargo-stages
|
||||
labels:
|
||||
holos.run/component.name: kargo-stages
|
||||
holos.run/project.name: httpbin
|
||||
holos.run/stack.name: httpbin
|
||||
extra: not-in-before
|
||||
annotations:
|
||||
app.holos.run/description: kargo-stages for project httpbin
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: projects/httpbin/components/kargo-stages/kargo-stages.gen.yaml
|
||||
generators:
|
||||
- kind: Resources
|
||||
output: resources.gen.yaml
|
||||
resources:
|
||||
Stage:
|
||||
dev:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: dev
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/dev-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/dev-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/dev-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/dev-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/dev-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-dev-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
direct: true
|
||||
prod-us-central:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-central
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-central-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-central-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-central-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-central-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-central-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-central-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
prod-us-east:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-east
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-east-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-east-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-east-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-east-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-east-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-east-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
prod-us-west:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-west
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-west-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-west-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-west-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-west-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-west-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-west-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
test:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: test
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/test-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/test-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/test-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/test-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/test-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-test-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- dev
|
||||
uat:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: uat
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/uat-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/uat-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/uat-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/uat-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/uat-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-uat-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- test
|
||||
Warehouse:
|
||||
httpbin:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Warehouse
|
||||
metadata:
|
||||
name: httpbin
|
||||
namespace: httpbin
|
||||
spec:
|
||||
interval: 5m0s
|
||||
subscriptions:
|
||||
- image:
|
||||
discoveryLimit: 5
|
||||
repoURL: quay.io/holos/mccutchen/go-httpbin
|
||||
semverConstraint: ^2.0.0
|
||||
strictSemvers: true
|
||||
transformers:
|
||||
- kind: Kustomize
|
||||
inputs:
|
||||
- resources.gen.yaml
|
||||
output: projects/httpbin/components/kargo-stages/kargo-stages.gen.yaml
|
||||
kustomize:
|
||||
kustomization:
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
labels:
|
||||
- includeSelectors: false
|
||||
pairs:
|
||||
argocd.argoproj.io/instance: httpbin-kargo-stages
|
||||
resources:
|
||||
- resources.gen.yaml
|
||||
- artifact: projects/httpbin/gitops/kargo-stages.application.gen.yaml
|
||||
generators:
|
||||
- kind: Resources
|
||||
output: projects/httpbin/gitops/kargo-stages.application.gen.yaml
|
||||
resources:
|
||||
Application:
|
||||
httpbin-kargo-stages:
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
labels: {}
|
||||
name: httpbin-kargo-stages
|
||||
namespace: argocd
|
||||
spec:
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
project: httpbin
|
||||
source:
|
||||
path: deploy/projects/httpbin/components/kargo-stages
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
targetRevision: main
|
||||
404
internal/compare/testdata/buildplan4/before.yaml
vendored
Normal file
404
internal/compare/testdata/buildplan4/before.yaml
vendored
Normal file
@@ -0,0 +1,404 @@
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: kargo-stages
|
||||
labels:
|
||||
holos.run/component.name: kargo-stages
|
||||
holos.run/project.name: httpbin
|
||||
holos.run/stack.name: httpbin
|
||||
annotations:
|
||||
app.holos.run/description: kargo-stages for project httpbin
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: projects/httpbin/components/kargo-stages/kargo-stages.gen.yaml
|
||||
generators:
|
||||
- kind: Resources
|
||||
output: resources.gen.yaml
|
||||
resources:
|
||||
Stage:
|
||||
dev:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: dev
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/dev-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/dev-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/dev-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/dev-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/dev-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-dev-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
direct: true
|
||||
prod-us-central:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-central
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-central-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-central-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-central-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-central-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-central-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-central-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
prod-us-east:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-east
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-east-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-east-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-east-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-east-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-east-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-east-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
prod-us-west:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: prod-us-west
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/prod-us-west-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-west-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/prod-us-west-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/prod-us-west-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/prod-us-west-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-prod-us-west-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- uat
|
||||
test:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: test
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/test-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/test-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/test-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/test-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/test-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-test-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- dev
|
||||
uat:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Stage
|
||||
metadata:
|
||||
name: uat
|
||||
namespace: httpbin
|
||||
spec:
|
||||
promotionTemplate:
|
||||
spec:
|
||||
steps:
|
||||
- config:
|
||||
checkout:
|
||||
- branch: main
|
||||
path: ./src
|
||||
- branch: project/httpbin/component/uat-httpbin
|
||||
create: true
|
||||
path: ./out
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: git-clone
|
||||
- config:
|
||||
path: ./out
|
||||
uses: git-clear
|
||||
- as: update-image
|
||||
config:
|
||||
images:
|
||||
- image: quay.io/holos/mccutchen/go-httpbin
|
||||
path: ./src/deploy/projects/httpbin/components/uat-httpbin
|
||||
uses: kustomize-set-image
|
||||
- config:
|
||||
outPath: ./out/uat-httpbin.gen.yaml
|
||||
path: ./src/deploy/projects/httpbin/components/uat-httpbin
|
||||
uses: kustomize-build
|
||||
- as: commit
|
||||
config:
|
||||
messageFromSteps:
|
||||
- update-image
|
||||
path: ./out
|
||||
uses: git-commit
|
||||
- config:
|
||||
path: ./out
|
||||
targetBranch: project/httpbin/component/uat-httpbin
|
||||
uses: git-push
|
||||
- config:
|
||||
apps:
|
||||
- name: httpbin-uat-httpbin
|
||||
sources:
|
||||
- desiredCommitFromStep: commit
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
uses: argocd-update
|
||||
requestedFreight:
|
||||
- origin:
|
||||
kind: Warehouse
|
||||
name: httpbin
|
||||
sources:
|
||||
stages:
|
||||
- test
|
||||
Warehouse:
|
||||
httpbin:
|
||||
apiVersion: kargo.akuity.io/v1alpha1
|
||||
kind: Warehouse
|
||||
metadata:
|
||||
name: httpbin
|
||||
namespace: httpbin
|
||||
spec:
|
||||
interval: 5m0s
|
||||
subscriptions:
|
||||
- image:
|
||||
discoveryLimit: 5
|
||||
repoURL: quay.io/holos/mccutchen/go-httpbin
|
||||
semverConstraint: ^2.0.0
|
||||
strictSemvers: true
|
||||
transformers:
|
||||
- kind: Kustomize
|
||||
inputs:
|
||||
- resources.gen.yaml
|
||||
output: projects/httpbin/components/kargo-stages/kargo-stages.gen.yaml
|
||||
kustomize:
|
||||
kustomization:
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
labels:
|
||||
- includeSelectors: false
|
||||
pairs:
|
||||
argocd.argoproj.io/instance: httpbin-kargo-stages
|
||||
resources:
|
||||
- resources.gen.yaml
|
||||
- artifact: projects/httpbin/gitops/kargo-stages.application.gen.yaml
|
||||
generators:
|
||||
- kind: Resources
|
||||
output: projects/httpbin/gitops/kargo-stages.application.gen.yaml
|
||||
resources:
|
||||
Application:
|
||||
httpbin-kargo-stages:
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
labels: {}
|
||||
name: httpbin-kargo-stages
|
||||
namespace: argocd
|
||||
spec:
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
project: httpbin
|
||||
source:
|
||||
path: deploy/projects/httpbin/components/kargo-stages
|
||||
repoURL: https://github.com/holos-run/kargo-demo.git
|
||||
targetRevision: main
|
||||
8
internal/compare/testdata/buildplan4/testcase.json
vendored
Normal file
8
internal/compare/testdata/buildplan4/testcase.json
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"exitCode": 1,
|
||||
"name": "BeforeLabelsAreSubsetOfAfter",
|
||||
"msg": "should not match when before labels are a subset of after labels",
|
||||
"file1": "before.yaml",
|
||||
"file2": "after.yaml",
|
||||
"expectedErrors": ["+ extra: not-in-before"]
|
||||
}
|
||||
5778
internal/compare/testdata/compiler/after.yaml
vendored
Normal file
5778
internal/compare/testdata/compiler/after.yaml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
5778
internal/compare/testdata/compiler/before.yaml
vendored
Normal file
5778
internal/compare/testdata/compiler/before.yaml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
7
internal/compare/testdata/compiler/testcase.json
vendored
Normal file
7
internal/compare/testdata/compiler/testcase.json
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"exitCode": 0,
|
||||
"name": "CompilerShouldMatch",
|
||||
"msg": "output of the v1alpha6 compiler should match the v1alpha5 output",
|
||||
"file1": "before.yaml",
|
||||
"file2": "after.yaml"
|
||||
}
|
||||
7
internal/compare/testdata/different-count/after.yaml
vendored
Normal file
7
internal/compare/testdata/different-count/after.yaml
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: component1
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: test.yaml
|
||||
15
internal/compare/testdata/different-count/before.yaml
vendored
Normal file
15
internal/compare/testdata/different-count/before.yaml
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: component1
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: test.yaml
|
||||
---
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: component2
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: test2.yaml
|
||||
8
internal/compare/testdata/different-count/testcase.json
vendored
Normal file
8
internal/compare/testdata/different-count/testcase.json
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"exitCode": 1,
|
||||
"name": "BuildPlanFile_1",
|
||||
"msg": "BuildPlan File spec 1: one and two have an equal number of BuildPlan objects - should fail when count differs",
|
||||
"file1": "before.yaml",
|
||||
"file2": "after.yaml",
|
||||
"expectedErrors": ["different number of documents"]
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user