mirror of
https://github.com/holos-run/holos.git
synced 2026-03-19 16:54:58 +00:00
Compare commits
75 Commits
jeff/gemin
...
jeff/435-e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a533d4e7d9 | ||
|
|
f6c06df979 | ||
|
|
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 |
18
.claude/settings.json
Normal file
18
.claude/settings.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"permissions": {
|
||||
"allow": [
|
||||
"Bash(make:*)",
|
||||
"Bash(holos:*)",
|
||||
"Bash(cue:*)",
|
||||
"Bash(grep:*)",
|
||||
"Bash(cd:*)",
|
||||
"Bash(mkdir:*)",
|
||||
"Bash(find:*)",
|
||||
"Bash(echo:*)",
|
||||
"Bash(head:*)",
|
||||
"Bash(git commit:*)",
|
||||
"Bash(git add:*)"
|
||||
],
|
||||
"deny": []
|
||||
}
|
||||
}
|
||||
@@ -308,6 +308,7 @@
|
||||
"sysfs",
|
||||
"systemconnect",
|
||||
"tablewriter",
|
||||
"taskset",
|
||||
"templatable",
|
||||
"testscript",
|
||||
"testutil",
|
||||
|
||||
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
|
||||
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -17,4 +17,6 @@ node_modules/
|
||||
# nix
|
||||
/.direnv/
|
||||
result
|
||||
.aider*
|
||||
|
||||
# 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$
|
||||
|
||||
@@ -16,6 +16,7 @@ Platform → Components → BuildPlan → Generators → Transformers → Valida
|
||||
```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
|
||||
@@ -25,7 +26,7 @@ make coverage # Generate coverage report
|
||||
make update-docs # Update generated docs
|
||||
make website # Build the documentation website
|
||||
|
||||
# Usage
|
||||
# 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
|
||||
@@ -81,12 +82,13 @@ Component: #Helm & {
|
||||
|
||||
## Development Patterns
|
||||
|
||||
1. Error handling: Use `internal/errors/` types, wrap with context
|
||||
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. Develop against v1alpha6 packages.
|
||||
6. Commits: Use the package name as the first word in the commit, lower case. Commit without asking permission.
|
||||
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
|
||||
|
||||
@@ -97,14 +99,18 @@ Component: #Helm & {
|
||||
## Key Concepts
|
||||
|
||||
- **Platform**: Top-level configuration containing all components
|
||||
- **Component**: Unit of configuration (Helm/Kustomize/Kubernetes)
|
||||
- **BuildPlan**: Instructions for building a component
|
||||
- **Generator**: Creates manifests (Helm, Kustomize, etc.)
|
||||
- **Transformer**: Modifies generated manifests
|
||||
- **Validator**: Validates final manifests
|
||||
- **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)
|
||||
- Task planning documents are located in the `/tasks/` directory
|
||||
@@ -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.
|
||||
@@ -382,6 +382,10 @@ type Command struct {
|
||||
IsStdoutOutput bool `json:"isStdoutOutput,omitempty" yaml:"isStdoutOutput,omitempty"`
|
||||
}
|
||||
|
||||
// NameLabel indicates a field name matching the name of the value. Usually the
|
||||
// name or metadata.name field of the struct value.
|
||||
type NameLabel string
|
||||
|
||||
// InternalLabel is an arbitrary unique identifier internal to holos itself.
|
||||
// The holos cli is expected to never write a InternalLabel value to rendered
|
||||
// output files, therefore use a InternalLabel when the identifier must be
|
||||
@@ -412,10 +416,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"`
|
||||
|
||||
@@ -426,7 +430,7 @@ type Platform struct {
|
||||
// PlatformSpec represents the platform specification.
|
||||
type PlatformSpec struct {
|
||||
// Components represents a collection of holos components to manage.
|
||||
Components []Component `json:"components" yaml:"components"`
|
||||
Components map[NameLabel]Component `json:"components" yaml:"components" cue:"{[NAME=string]: name: NAME}"`
|
||||
}
|
||||
|
||||
// Component represents the complete context necessary to produce a [BuildPlan]
|
||||
|
||||
@@ -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"`
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
@@ -37,6 +37,7 @@ Package core contains schemas for a [Platform](<#Platform>) and [BuildPlan](<#Bu
|
||||
- [type Kustomization](<#Kustomization>)
|
||||
- [type Kustomize](<#Kustomize>)
|
||||
- [type Metadata](<#Metadata>)
|
||||
- [type NameLabel](<#NameLabel>)
|
||||
- [type Platform](<#Platform>)
|
||||
- [type PlatformSpec](<#PlatformSpec>)
|
||||
- [type Repository](<#Repository>)
|
||||
@@ -209,10 +210,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.
|
||||
@@ -478,6 +479,15 @@ type Metadata struct {
|
||||
}
|
||||
```
|
||||
|
||||
<a name="NameLabel"></a>
|
||||
## type NameLabel {#NameLabel}
|
||||
|
||||
NameLabel indicates a field name matching the name of the value. Usually the name or metadata.name field of the struct value.
|
||||
|
||||
```go
|
||||
type NameLabel string
|
||||
```
|
||||
|
||||
<a name="Platform"></a>
|
||||
## type Platform {#Platform}
|
||||
|
||||
@@ -491,10 +501,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"`
|
||||
|
||||
@@ -511,7 +521,7 @@ PlatformSpec represents the platform specification.
|
||||
```go
|
||||
type PlatformSpec struct {
|
||||
// Components represents a collection of holos components to manage.
|
||||
Components []Component `json:"components" yaml:"components"`
|
||||
Components map[NameLabel]Component `json:"components" yaml:"components" cue:"{[NAME=string]: name: NAME}"`
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
# Compare Buildplans
|
||||
|
||||
Use the `holos compare buildplans <f1> <f2>` command to compare two BuildPlan
|
||||
Files. Useful to ensure different configuration versions produce the same
|
||||
results.
|
||||
|
||||
The `holos show buildplans` command writes a BuildPlan File to standard output.
|
||||
A BuildPlan File is a yaml encoded stream of BuildPlan objects.
|
||||
|
||||
## User Requirements
|
||||
1. `holos compare buildplans before.yaml after.yaml` must return exit code 1 when after.yaml contains fields (recursively) not present in before.yaml
|
||||
2. `holos compare buildplans before.yaml after.yaml --backwards-compatible` must return exit code 0 when after.yaml contains fields (recursively) not present in before.yaml
|
||||
|
||||
## Behavior Specification
|
||||
BuildPlan File f1 is equivalent to f2 when:
|
||||
1. f1 and f2 have an equal number of BuildPlan objects.
|
||||
2. each object in f1 is equivalent to exactly one unique object in f2.
|
||||
|
||||
Two BuildPlans, bp1 and bp2, are equivalent when:
|
||||
1. All field values in bp1 are equivalent to the same field in bp2.
|
||||
2. Both 1 and 2 apply to nested objects, recursively.
|
||||
3. Field f is equivalent when bp1.f exactly equals bp2.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: bp2 and bp1 must have exactly the same fields
|
||||
- When true: bp2 may have additional fields that don't exist in bp1
|
||||
(e.g., new features added in a newer version)
|
||||
Example:
|
||||
bp1 has {name: "x", version: "1.0"}
|
||||
bp2 has {name: "x", version: "1.0", newFeature: "enabled"}
|
||||
This comparison passes when isBackwardsCompatible=true
|
||||
5. Fields in bp1 must always be present in bp2 (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"
|
||||
|
||||
## Implementation Guidance
|
||||
|
||||
1. Implement a stub Comparer struct in the internal/compare package.
|
||||
2. Implement a stub Comparer.BuildPlans() method.
|
||||
3. Write test cases for each item in the Behavior Specification section. Use a table test approach that loads each test case from a subdirectory and reads the test case data from a `testcase.json` file. The json file should have an exitCode, name, msg, file1 and file2 fields. file1 is "before.yaml" and file2 is "after.yaml".
|
||||
4. Modify the Comparer.BuildPlans() method to satisfy each test case.
|
||||
5. Using the existing commands as an example, wire up the command line to the compare package.
|
||||
@@ -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
|
||||
|
||||
42
go.mod
42
go.mod
@@ -1,28 +1,29 @@
|
||||
module github.com/holos-run/holos
|
||||
|
||||
go 1.23
|
||||
go 1.23.0
|
||||
|
||||
toolchain go1.23.2
|
||||
toolchain go1.23.6
|
||||
|
||||
require (
|
||||
cuelang.org/go v0.12.0
|
||||
cuelang.org/go v0.13.0-rc.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/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/rogpeppe/go-internal v1.14.1
|
||||
github.com/spf13/cobra v1.9.1
|
||||
github.com/spf13/pflag v1.0.6
|
||||
github.com/stretchr/testify v1.10.0
|
||||
golang.org/x/sync v0.10.0
|
||||
golang.org/x/tools v0.29.0
|
||||
golang.org/x/sync v0.13.0
|
||||
golang.org/x/tools v0.32.0
|
||||
gopkg.in/yaml.v3 v3.0.1
|
||||
helm.sh/helm/v3 v3.16.3
|
||||
sigs.k8s.io/kustomize/kustomize/v5 v5.5.0
|
||||
)
|
||||
|
||||
require (
|
||||
cuelabs.dev/go/oci/ociregistry v0.0.0-20241125120445-2c00c104c6e1 // indirect
|
||||
cuelabs.dev/go/oci/ociregistry v0.0.0-20250304105642-27e071d2c9b1 // 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
|
||||
@@ -57,7 +58,7 @@ require (
|
||||
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/proto v1.14.0 // 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
|
||||
@@ -81,7 +82,6 @@ require (
|
||||
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
|
||||
@@ -128,8 +128,8 @@ require (
|
||||
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
|
||||
@@ -140,7 +140,7 @@ require (
|
||||
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-20250129171521-feedd8250727 // indirect
|
||||
github.com/rivo/uniseg v0.4.7 // indirect
|
||||
github.com/rubenv/sql-migrate v1.7.0 // indirect
|
||||
github.com/russross/blackfriday/v2 v2.1.0 // indirect
|
||||
@@ -168,14 +168,14 @@ require (
|
||||
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/crypto v0.37.0 // indirect
|
||||
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // 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/mod v0.24.0 // indirect
|
||||
golang.org/x/net v0.39.0 // indirect
|
||||
golang.org/x/oauth2 v0.29.0 // indirect
|
||||
golang.org/x/sys v0.32.0 // indirect
|
||||
golang.org/x/term v0.31.0 // indirect
|
||||
golang.org/x/text v0.24.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
|
||||
|
||||
78
go.sum
78
go.sum
@@ -1,7 +1,7 @@
|
||||
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-20250304105642-27e071d2c9b1 h1:Dmbd5Q+ENb2C6carvwrMsrOUwJ9X9qfL5JdW32gYAHo=
|
||||
cuelabs.dev/go/oci/ociregistry v0.0.0-20250304105642-27e071d2c9b1/go.mod h1:dqrnoZx62xbOZr11giMPrWbhlaV8euHwciXZEy3baT8=
|
||||
cuelang.org/go v0.13.0-rc.1 h1:0y3LZKA5LpJehVMHTJhjR7jQxBdYZ5fg05htMaKHaJg=
|
||||
cuelang.org/go v0.13.0-rc.1/go.mod h1:kA/8D9/d32IBp2lISWo90BEJhLyS9tqBcvqw2QAEhEg=
|
||||
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=
|
||||
@@ -82,7 +82,7 @@ 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/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=
|
||||
@@ -115,8 +115,8 @@ 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.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/emicklei/proto v1.14.0 h1:WYxC0OrBuuC+FUCTZvb8+fzEHdZMwLEF+OnVfZA3LXU=
|
||||
github.com/emicklei/proto v1.14.0/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=
|
||||
@@ -206,8 +206,8 @@ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw
|
||||
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=
|
||||
@@ -362,10 +362,10 @@ github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k=
|
||||
github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY=
|
||||
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/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=
|
||||
@@ -404,15 +404,15 @@ github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsT
|
||||
github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ=
|
||||
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-20250129171521-feedd8250727 h1:A8EM8fVuYc0qbVMw9D6EiKdKTIm1SmLvAWcCc2mipGY=
|
||||
github.com/protocolbuffers/txtpbfmt v0.0.0-20250129171521-feedd8250727/go.mod h1:VmWrOlMnBZNtToCWzRlZlIXcJqjo0hS5dwQbRD62gL8=
|
||||
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/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.7.0 h1:HtQq1xyTN2ISmQDggnh0c9U3JlP8apWh8YO2jzlXpTI=
|
||||
github.com/rubenv/sql-migrate v1.7.0/go.mod h1:S4wtDEG1CKn+0ShpTtzWhFpHHI5PvCUtiGI+C+Z2THE=
|
||||
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
|
||||
@@ -437,10 +437,10 @@ 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/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo=
|
||||
github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0=
|
||||
github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o=
|
||||
github.com/spf13/pflag v1.0.6/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/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
@@ -500,14 +500,14 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk
|
||||
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-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||
golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc=
|
||||
golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc=
|
||||
golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE=
|
||||
golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc=
|
||||
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.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4=
|
||||
golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
|
||||
golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU=
|
||||
golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww=
|
||||
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=
|
||||
@@ -517,18 +517,18 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL
|
||||
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-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
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.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY=
|
||||
golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E=
|
||||
golang.org/x/oauth2 v0.29.0 h1:WdYw2tdTK1S8olAzWHdgeqfy+Mtm9XNhv/xJsY65d98=
|
||||
golang.org/x/oauth2 v0.29.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8=
|
||||
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.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
|
||||
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||
golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610=
|
||||
golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
|
||||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
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=
|
||||
@@ -558,16 +558,16 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc
|
||||
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.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.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20=
|
||||
golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
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.31.0 h1:erwDkOK1Msy6offm1mOgvspSkslFnIGsFnxOKoufg3o=
|
||||
golang.org/x/term v0.31.0/go.mod h1:R4BeIy7D95HzImkxGkTW1UQTtP54tio2RyHz7PwK0aw=
|
||||
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.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
|
||||
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
|
||||
golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0=
|
||||
golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU=
|
||||
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/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
@@ -575,8 +575,8 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn
|
||||
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.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE=
|
||||
golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588=
|
||||
golang.org/x/tools v0.32.0 h1:Q7N1vhpkQv7ybVzLFtTjvQya2ewbwNDZzUgfXGqtMWU=
|
||||
golang.org/x/tools v0.32.0/go.mod h1:ZxrU41P/wAbZD8EDa6dDCa6XfpkhJ7HFMjHJXfBDu8s=
|
||||
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=
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -76,6 +76,12 @@ func New(cfg *holos.Config) *cobra.Command {
|
||||
// Show
|
||||
rootCmd.AddCommand(NewShowCmd(platform.NewConfig()))
|
||||
|
||||
// Compare
|
||||
rootCmd.AddCommand(NewCompareCmd())
|
||||
|
||||
// Compile
|
||||
rootCmd.AddCommand(NewCompileCmd())
|
||||
|
||||
return rootCmd
|
||||
}
|
||||
|
||||
@@ -107,9 +113,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
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ func TestShowAlpha6(t *testing.T) {
|
||||
|
||||
t.Run("BuildPlans", func(t *testing.T) {
|
||||
t.Run("EmptyPlatform", func(t *testing.T) {
|
||||
platformDir := filepath.Join(tempDir, "platform")
|
||||
platformDir := filepath.Join(tempDir, "fixtures", "v1alpha6", "empty-platform")
|
||||
h := newHarness()
|
||||
err := h.Run(ctx, "buildplans", platformDir)
|
||||
require.NoError(t, err)
|
||||
@@ -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) {
|
||||
|
||||
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"]
|
||||
}
|
||||
22
internal/compare/testdata/duplicate-objects/after.yaml
vendored
Normal file
22
internal/compare/testdata/duplicate-objects/after.yaml
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: component
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: component.yaml
|
||||
generators:
|
||||
- kind: Kubernetes
|
||||
output: manifests.yaml
|
||||
---
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: component
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: component.yaml
|
||||
generators:
|
||||
- kind: Kubernetes
|
||||
output: manifests.yaml
|
||||
22
internal/compare/testdata/duplicate-objects/before.yaml
vendored
Normal file
22
internal/compare/testdata/duplicate-objects/before.yaml
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: component
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: component.yaml
|
||||
generators:
|
||||
- kind: Kubernetes
|
||||
output: manifests.yaml
|
||||
---
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: component
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: component.yaml
|
||||
generators:
|
||||
- kind: Kubernetes
|
||||
output: manifests.yaml
|
||||
8
internal/compare/testdata/duplicate-objects/testcase.json
vendored
Normal file
8
internal/compare/testdata/duplicate-objects/testcase.json
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"exitCode": 0,
|
||||
"name": "BuildPlanValid_1",
|
||||
"msg": "BuildPlan File validity 1: Two or more identical objects exist in the same file. They must be treated as unique objects - should match when both files have identical objects",
|
||||
"file1": "before.yaml",
|
||||
"file2": "after.yaml",
|
||||
"expectedErrors": []
|
||||
}
|
||||
0
internal/compare/testdata/empty/1.yaml
vendored
Normal file
0
internal/compare/testdata/empty/1.yaml
vendored
Normal file
0
internal/compare/testdata/empty/2.yaml
vendored
Normal file
0
internal/compare/testdata/empty/2.yaml
vendored
Normal file
8
internal/compare/testdata/empty/testcase.json
vendored
Normal file
8
internal/compare/testdata/empty/testcase.json
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"exitCode": 1,
|
||||
"name": "EmptyFiles",
|
||||
"msg": "empty files should return not implemented error",
|
||||
"file1": "1.yaml",
|
||||
"file2": "2.yaml",
|
||||
"expectedErrors": ["not implemented"]
|
||||
}
|
||||
13
internal/compare/testdata/fields-must-exist/after.yaml
vendored
Normal file
13
internal/compare/testdata/fields-must-exist/after.yaml
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: component
|
||||
labels:
|
||||
holos.run/component.name: component
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: component.yaml
|
||||
generators:
|
||||
- kind: Kubernetes
|
||||
output: manifests.yaml
|
||||
14
internal/compare/testdata/fields-must-exist/before.yaml
vendored
Normal file
14
internal/compare/testdata/fields-must-exist/before.yaml
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
---
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: component
|
||||
labels:
|
||||
holos.run/component.name: component
|
||||
holos.run/stack.name: demo
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: component.yaml
|
||||
generators:
|
||||
- kind: Kubernetes
|
||||
output: manifests.yaml
|
||||
8
internal/compare/testdata/fields-must-exist/testcase.json
vendored
Normal file
8
internal/compare/testdata/fields-must-exist/testcase.json
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"exitCode": 1,
|
||||
"name": "BuildPlan_5",
|
||||
"msg": "BuildPlan spec 5: Fields in a must always be present in b - should fail when field exists in a but not in b",
|
||||
"file1": "before.yaml",
|
||||
"file2": "after.yaml",
|
||||
"expectedErrors": ["- holos.run/stack.name: demo"]
|
||||
}
|
||||
13
internal/compare/testdata/key-order/after.yaml
vendored
Normal file
13
internal/compare/testdata/key-order/after.yaml
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
labels:
|
||||
env: prod
|
||||
version: "1.0"
|
||||
app: myapp
|
||||
name: component
|
||||
spec:
|
||||
config:
|
||||
timeout: 30
|
||||
host: localhost
|
||||
port: 8080
|
||||
13
internal/compare/testdata/key-order/before.yaml
vendored
Normal file
13
internal/compare/testdata/key-order/before.yaml
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: component
|
||||
labels:
|
||||
app: myapp
|
||||
version: "1.0"
|
||||
env: prod
|
||||
spec:
|
||||
config:
|
||||
port: 8080
|
||||
host: localhost
|
||||
timeout: 30
|
||||
8
internal/compare/testdata/key-order/testcase.json
vendored
Normal file
8
internal/compare/testdata/key-order/testcase.json
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"exitCode": 0,
|
||||
"name": "BuildPlan_3.2",
|
||||
"msg": "BuildPlan spec 3.2: The ordering of keys does not matter - should match when only key order differs",
|
||||
"file1": "before.yaml",
|
||||
"file2": "after.yaml",
|
||||
"expectedErrors": []
|
||||
}
|
||||
406
internal/compare/testdata/labels/after.yaml
vendored
Normal file
406
internal/compare/testdata/labels/after.yaml
vendored
Normal file
@@ -0,0 +1,406 @@
|
||||
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
|
||||
some-arbitrary-label: not-in-before
|
||||
another-arbitrary-label: also-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/labels/before.yaml
vendored
Normal file
404
internal/compare/testdata/labels/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
|
||||
11
internal/compare/testdata/labels/testcase.json
vendored
Normal file
11
internal/compare/testdata/labels/testcase.json
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"exitCode": 1,
|
||||
"name": "ArbitraryLabels",
|
||||
"msg": "should not match when before labels are a subset of arbitrary after labels",
|
||||
"file1": "before.yaml",
|
||||
"file2": "after.yaml",
|
||||
"expectedErrors": [
|
||||
"+ some-arbitrary-label: not-in-before",
|
||||
"+ another-arbitrary-label: also-not-in-before"
|
||||
]
|
||||
}
|
||||
811
internal/compare/testdata/labels2/after.yaml
vendored
Normal file
811
internal/compare/testdata/labels2/after.yaml
vendored
Normal file
@@ -0,0 +1,811 @@
|
||||
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
|
||||
seq: 2
|
||||
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
|
||||
---
|
||||
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
|
||||
seq: 1
|
||||
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
|
||||
811
internal/compare/testdata/labels2/before.yaml
vendored
Normal file
811
internal/compare/testdata/labels2/before.yaml
vendored
Normal file
@@ -0,0 +1,811 @@
|
||||
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
|
||||
seq: 1
|
||||
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
|
||||
---
|
||||
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
|
||||
seq: 2
|
||||
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/labels2/testcase.json
vendored
Normal file
8
internal/compare/testdata/labels2/testcase.json
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"exitCode": 0,
|
||||
"name": "IdenticalObjectsToleration",
|
||||
"msg": "Toleration 1: multiple identical BuildPlans may exist and must be treated as unique - should match when identical objects exist",
|
||||
"file1": "before.yaml",
|
||||
"file2": "after.yaml",
|
||||
"expectedErrors": []
|
||||
}
|
||||
811
internal/compare/testdata/labels3/after.yaml
vendored
Normal file
811
internal/compare/testdata/labels3/after.yaml
vendored
Normal file
@@ -0,0 +1,811 @@
|
||||
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
|
||||
seq: 1
|
||||
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
|
||||
---
|
||||
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
|
||||
seq: 1
|
||||
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
|
||||
811
internal/compare/testdata/labels3/before.yaml
vendored
Normal file
811
internal/compare/testdata/labels3/before.yaml
vendored
Normal file
@@ -0,0 +1,811 @@
|
||||
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
|
||||
seq: 1
|
||||
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
|
||||
---
|
||||
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
|
||||
seq: 2
|
||||
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
|
||||
11
internal/compare/testdata/labels3/testcase.json
vendored
Normal file
11
internal/compare/testdata/labels3/testcase.json
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"exitCode": 1,
|
||||
"name": "MultipleIdenticalObjectsOutOfOrderAllLabels",
|
||||
"msg": "should not match when the same object is duplicated in after and differs only by an arbitrary deeply nested field in before",
|
||||
"file1": "before.yaml",
|
||||
"file2": "after.yaml",
|
||||
"expectedErrors": [
|
||||
"- seq: 2",
|
||||
"+ seq: 1"
|
||||
]
|
||||
}
|
||||
2
internal/compare/testdata/minimal/after.yaml
vendored
Normal file
2
internal/compare/testdata/minimal/after.yaml
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
version: v1alpha5
|
||||
kind: BuildPlan
|
||||
2
internal/compare/testdata/minimal/before.yaml
vendored
Normal file
2
internal/compare/testdata/minimal/before.yaml
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
version: v1alpha5
|
||||
kind: BuildPlan
|
||||
8
internal/compare/testdata/minimal/testcase.json
vendored
Normal file
8
internal/compare/testdata/minimal/testcase.json
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"exitCode": 0,
|
||||
"name": "MinimalBuildPlans",
|
||||
"msg": "minimal BuildPlans with same version and kind should match",
|
||||
"file1": "before.yaml",
|
||||
"file2": "after.yaml",
|
||||
"expectedErrors": []
|
||||
}
|
||||
7
internal/compare/testdata/missing-field/after.yaml
vendored
Normal file
7
internal/compare/testdata/missing-field/after.yaml
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: component
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: test.yaml
|
||||
9
internal/compare/testdata/missing-field/before.yaml
vendored
Normal file
9
internal/compare/testdata/missing-field/before.yaml
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: component
|
||||
labels:
|
||||
test: value
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: test.yaml
|
||||
8
internal/compare/testdata/missing-field/testcase.json
vendored
Normal file
8
internal/compare/testdata/missing-field/testcase.json
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"exitCode": 1,
|
||||
"name": "MissingFieldInTwo",
|
||||
"msg": "BuildPlan spec requirement 1&2: all field values must be equivalent - should fail when field exists in one but not two",
|
||||
"file1": "before.yaml",
|
||||
"file2": "after.yaml",
|
||||
"expectedErrors": ["- labels:"]
|
||||
}
|
||||
19
internal/compare/testdata/nested-diff/after.yaml
vendored
Normal file
19
internal/compare/testdata/nested-diff/after.yaml
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: component
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: test.yaml
|
||||
generators:
|
||||
- kind: Resources
|
||||
output: test.yaml
|
||||
resources:
|
||||
Deployment:
|
||||
myapp:
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: myapp
|
||||
spec:
|
||||
replicas: 5
|
||||
19
internal/compare/testdata/nested-diff/before.yaml
vendored
Normal file
19
internal/compare/testdata/nested-diff/before.yaml
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: component
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: test.yaml
|
||||
generators:
|
||||
- kind: Resources
|
||||
output: test.yaml
|
||||
resources:
|
||||
Deployment:
|
||||
myapp:
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: myapp
|
||||
spec:
|
||||
replicas: 3
|
||||
8
internal/compare/testdata/nested-diff/testcase.json
vendored
Normal file
8
internal/compare/testdata/nested-diff/testcase.json
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"exitCode": 1,
|
||||
"name": "BuildPlan_3_Nested",
|
||||
"msg": "BuildPlan spec 3: Field f is equivalent when a.f exactly equals b.f, including nested objects recursively - should fail when nested values differ",
|
||||
"file1": "before.yaml",
|
||||
"file2": "after.yaml",
|
||||
"expectedErrors": ["int(3)", "int(5)"]
|
||||
}
|
||||
24
internal/compare/testdata/not-backwards-compatible/after.yaml
vendored
Normal file
24
internal/compare/testdata/not-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/not-backwards-compatible/before.yaml
vendored
Normal file
17
internal/compare/testdata/not-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
|
||||
15
internal/compare/testdata/not-backwards-compatible/testcase.json
vendored
Normal file
15
internal/compare/testdata/not-backwards-compatible/testcase.json
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"exitCode": 1,
|
||||
"name": "BuildPlan_4_NotBackwards",
|
||||
"msg": "BuildPlan spec 4: after and before must have exactly the same fields when isBackwardsCompatible is false - should fail when after has additional fields",
|
||||
"file1": "before.yaml",
|
||||
"file2": "after.yaml",
|
||||
"expectedErrors": [
|
||||
"+ annotations: map[string]any{\"holos.run/environment\": string(\"prod\"), \"holos.run/purpose\": string(\"example\")}",
|
||||
"+ holos.run/stack.name: demo",
|
||||
"+ resources: []any{map[string]any{\"name\": string(\"deployment\"), \"namespace\": string(\"default\")}}",
|
||||
"+ transformers: []any{",
|
||||
"+ map[string]any{\"kind: SetLabels\"), \"labels\": map[string]any{\"app\": string(\"demo\")}}"
|
||||
],
|
||||
"isBackwardsCompatible": false
|
||||
}
|
||||
13
internal/compare/testdata/null-empty/after.yaml
vendored
Normal file
13
internal/compare/testdata/null-empty/after.yaml
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: component
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: component.yaml
|
||||
generators:
|
||||
- kind: Kubernetes
|
||||
output: manifests.yaml
|
||||
resources: []
|
||||
transformers: []
|
||||
13
internal/compare/testdata/null-empty/before.yaml
vendored
Normal file
13
internal/compare/testdata/null-empty/before.yaml
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: component
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: component.yaml
|
||||
generators:
|
||||
- kind: Kubernetes
|
||||
output: manifests.yaml
|
||||
resources: null
|
||||
transformers: null
|
||||
8
internal/compare/testdata/null-empty/testcase.json
vendored
Normal file
8
internal/compare/testdata/null-empty/testcase.json
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"exitCode": 0,
|
||||
"name": "BuildPlan_6.2",
|
||||
"msg": "BuildPlan spec 6.2: List type fields with a null value are equivalent to empty values ([]) - should match when one is null and other is empty array",
|
||||
"file1": "before.yaml",
|
||||
"file2": "after.yaml",
|
||||
"expectedErrors": []
|
||||
}
|
||||
13
internal/compare/testdata/null-list/after.yaml
vendored
Normal file
13
internal/compare/testdata/null-list/after.yaml
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: component
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: component.yaml
|
||||
generators:
|
||||
- kind: Kubernetes
|
||||
output: manifests.yaml
|
||||
resources: null
|
||||
transformers: null
|
||||
13
internal/compare/testdata/null-list/before.yaml
vendored
Normal file
13
internal/compare/testdata/null-list/before.yaml
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: component
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: component.yaml
|
||||
generators:
|
||||
- kind: Kubernetes
|
||||
output: manifests.yaml
|
||||
resources: null
|
||||
transformers: null
|
||||
8
internal/compare/testdata/null-list/testcase.json
vendored
Normal file
8
internal/compare/testdata/null-list/testcase.json
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"exitCode": 0,
|
||||
"name": "BuildPlan_6.1",
|
||||
"msg": "BuildPlan spec 6.1: List type fields with a null value are equivalent to null values - should match when both are null",
|
||||
"file1": "before.yaml",
|
||||
"file2": "after.yaml",
|
||||
"expectedErrors": []
|
||||
}
|
||||
11
internal/compare/testdata/null-missing/after.yaml
vendored
Normal file
11
internal/compare/testdata/null-missing/after.yaml
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
---
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: component
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: component.yaml
|
||||
generators:
|
||||
- kind: Kubernetes
|
||||
output: manifests.yaml
|
||||
13
internal/compare/testdata/null-missing/before.yaml
vendored
Normal file
13
internal/compare/testdata/null-missing/before.yaml
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: component
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: component.yaml
|
||||
generators:
|
||||
- kind: Kubernetes
|
||||
output: manifests.yaml
|
||||
resources: null
|
||||
transformers: null
|
||||
8
internal/compare/testdata/null-missing/testcase.json
vendored
Normal file
8
internal/compare/testdata/null-missing/testcase.json
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"exitCode": 0,
|
||||
"name": "BuildPlan_6.3",
|
||||
"msg": "BuildPlan spec 6.3: List type fields with a null value are equivalent to a missing field - should match when one is null and other is missing",
|
||||
"file1": "before.yaml",
|
||||
"file2": "after.yaml",
|
||||
"expectedErrors": []
|
||||
}
|
||||
26
internal/compare/testdata/same-names/after.yaml
vendored
Normal file
26
internal/compare/testdata/same-names/after.yaml
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: component
|
||||
labels:
|
||||
holos.run/stack.name: stack-b
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: component-b.yaml
|
||||
generators:
|
||||
- kind: Kubernetes
|
||||
output: manifests.yaml
|
||||
---
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: component
|
||||
labels:
|
||||
holos.run/stack.name: stack-a
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: component-a.yaml
|
||||
generators:
|
||||
- kind: Kubernetes
|
||||
output: manifests.yaml
|
||||
26
internal/compare/testdata/same-names/before.yaml
vendored
Normal file
26
internal/compare/testdata/same-names/before.yaml
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: component
|
||||
labels:
|
||||
holos.run/stack.name: stack-a
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: component-a.yaml
|
||||
generators:
|
||||
- kind: Kubernetes
|
||||
output: manifests.yaml
|
||||
---
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: component
|
||||
labels:
|
||||
holos.run/stack.name: stack-b
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: component-b.yaml
|
||||
generators:
|
||||
- kind: Kubernetes
|
||||
output: manifests.yaml
|
||||
8
internal/compare/testdata/same-names/testcase.json
vendored
Normal file
8
internal/compare/testdata/same-names/testcase.json
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"exitCode": 0,
|
||||
"name": "BuildPlanValid_2",
|
||||
"msg": "BuildPlan File validity 2: Two objects may have the same value for the metadata.name field - should match when objects have same names but different content",
|
||||
"file1": "before.yaml",
|
||||
"file2": "after.yaml",
|
||||
"expectedErrors": []
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user