Compare commits

...

8 Commits

Author SHA1 Message Date
Jeff McCune
700c6975f1 docs: Add kargo add-on promoter topic
This patch adds an Add-On Promoter topic to demonstrate how Holos pairs
nicely with Kargo for progressive rollouts.

Code examples are automatically tested and used in the doc using go test
and testscripts.

Update the examples using:

    HOLOS_UPDATE_SCRIPTS=1 go test ./doc/md/topics/kargo
2025-01-13 09:56:07 -08:00
Jeff McCune
e9d1240d63 docs: make update-docs for version 0.103.0 2025-01-12 14:26:27 -08:00
Gary Larizza
03fa4eaaa2 docs: Helm Values test updates
* Convert all files with.period.separators to hyphen-separators.
* Rename and markdown_test.go to be specific to Helm Values.
* Move helm-values_test.go to be in the same directory as the Helm Values doc.
* Move Blackbox common configuration CUE file to `config/prometheus` so it can be imported as necessary.
* Use explicit import statements for Blackbox common config in `blackbox` and `prometheus` components.

Closes: #399
2025-01-12 14:25:44 -08:00
Jeff McCune
e363f3a597 docs: add make update-docs task
We need to run this prior to tagging a release otherwise the tests fail
for the new version string.
2025-01-12 14:22:58 -08:00
Jeff McCune
8b49ed93be docs: release version 0.103.0 2025-01-12 14:09:45 -08:00
Jeff McCune
d2be9fe278 helm: add valueFiles for migration from an ApplicationSet
Without this patch migrating from [helm hierarchies] to Holos requires
the user to unify the value hierarchy.  This is a problem because helm
hierarchies are difficult to unify because it's not clear if or why a
value is used in the final results.  This makes it difficult to identify
how to resolve conflicts.

This patch adds `valueFiles` field to the Helm component kind.  This
field is intended to provide a direct migration path from the
ApplicationSet.spec.template.spec.sources.helm.valueFiles field.  With
this patch, users can directly migrate the values files to CUE using
`@embed`, then directly migrate the valueFiles field to reference the
values from within CUE.

Note we actively discourage the use of Helm value hierarchies.  The
feature is intended as a temporary migration tool.  We encourage the use
of CUE unification instead.  After migration, the valueFiles field
should be refactored to the values field as one unified structure in
CUE.  The valueFiles field makes this second order migration easier
becuase we can inspect and verify the complete rendered output, allowing
us to determine if a value is actually used in the final configuration
or is overridden.

[helm hierarchies]: https://medium.com/containers-101/using-helm-hierarchies-in-multi-source-argo-cd-applications-for-promoting-to-different-gitops-133c3bc93678
2025-01-12 13:30:29 -08:00
Jeff McCune
6ec341bbb1 docs: redirect /docs/api/core 2025-01-10 15:02:12 -08:00
Jeff McCune
13a4305b78 docs: add redirect for /blog/rendered-manifest-pattern (manifest instead of manifests) 2025-01-10 14:50:26 -08:00
106 changed files with 1644 additions and 167 deletions

View File

@@ -154,6 +154,10 @@ website: ## Build website
unity: ## https://cuelabs.dev/unity/
./scripts/unity
.PHONY: update-docs
update-docs: ## Update doc examples
HOLOS_UPDATE_SCRIPTS=1 go test -v ./doc/md/...
.PHONY: help
help: ## Display this help menu.
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n"} /^[a-zA-Z_0-9-]+:.*?##/ { printf " \033[36m%-20s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)

View File

@@ -84,6 +84,9 @@ type Helm struct {
Chart core.Chart
// Values represents data to marshal into a values.yaml for helm.
Values core.Values
// ValueFiles represents value files for migration from helm value
// hierarchies. Use Values instead.
ValueFiles []core.ValueFile `json:",omitempty"`
// EnableHooks enables helm hooks when executing the `helm template` command.
EnableHooks bool `cue:"true | *false"`
// Namespace sets the helm chart namespace flag if provided.

View File

@@ -118,8 +118,12 @@ type Helm struct {
// Chart represents a helm chart to manage.
Chart Chart `json:"chart" yaml:"chart"`
// Values represents values for holos to marshal into values.yaml when
// rendering the chart.
// rendering the chart. Values follow ValueFiles when both are provided.
Values Values `json:"values" yaml:"values"`
// ValueFiles represents hierarchial value files passed in order to the helm
// template -f flag. Useful for migration from an ApplicationSet. Use Values
// instead. ValueFiles precede Values when both are provided.
ValueFiles []ValueFile `json:"valueFiles,omitempty" yaml:"valueFiles,omitempty"`
// EnableHooks enables helm hooks when executing the `helm template` command.
EnableHooks bool `json:"enableHooks,omitempty" yaml:"enableHooks,omitempty"`
// Namespace represents the helm namespace flag
@@ -130,6 +134,17 @@ type Helm struct {
KubeVersion string `json:"kubeVersion,omitempty" yaml:"kubeVersion,omitempty"`
}
// ValueFile represents one Helm value file produced from CUE.
type ValueFile struct {
// Name represents the file name, e.g. "region-values.yaml"
Name string `json:"name" yaml:"name"`
// Kind is a discriminator.
Kind string `json:"kind" yaml:"kind" cue:"\"Values\""`
// Values represents values for holos to marshal into the file name specified
// by Name when rendering the chart.
Values Values `json:"values,omitempty" yaml:"values,omitempty"`
}
// Values represents [Helm] Chart values generated from CUE.
type Values map[string]any

View File

@@ -1,3 +0,0 @@
[main ffea4dd] add blackbox configuration
1 file changed, 15 insertions(+)
create mode 100644 components/blackbox.cue

View File

@@ -1 +0,0 @@
cat <<EOF > components/blackbox.cue

View File

@@ -1,2 +0,0 @@
[main a4bc817] integrate blackbox and prometheus together
2 files changed, 4 insertions(+), 2 deletions(-)

View File

@@ -1,3 +0,0 @@
rendered blackbox in 161.782375ms
rendered prometheus in 203.388ms
rendered platform in 203.481459ms

View File

@@ -1,3 +0,0 @@
rendered blackbox in 1.324044833s
rendered prometheus in 1.336657625s
rendered platform in 1.33672525s

View File

@@ -1,2 +0,0 @@
[main 1200227] render integrated blackbox and prometheus manifests
2 files changed, 7 insertions(+), 7 deletions(-)

View File

@@ -86,6 +86,9 @@ type Helm struct {
Chart core.Chart
// Values represents data to marshal into a values.yaml for helm.
Values core.Values
// ValueFiles represents value files for migration from helm value
// hierarchies. Use Values instead.
ValueFiles []core.ValueFile `json:",omitempty"`
// EnableHooks enables helm hooks when executing the `helm template` command.
EnableHooks bool `cue:"true | *false"`
// Namespace sets the helm chart namespace flag if provided.

View File

@@ -43,6 +43,7 @@ Package core contains schemas for a [Platform](<#Platform>) and [BuildPlan](<#Bu
- [type Resources](<#Resources>)
- [type Transformer](<#Transformer>)
- [type Validator](<#Validator>)
- [type ValueFile](<#ValueFile>)
- [type Values](<#Values>)
@@ -283,8 +284,12 @@ type Helm struct {
// Chart represents a helm chart to manage.
Chart Chart `json:"chart" yaml:"chart"`
// Values represents values for holos to marshal into values.yaml when
// rendering the chart.
// rendering the chart. Values follow ValueFiles when both are provided.
Values Values `json:"values" yaml:"values"`
// ValueFiles represents hierarchial value files passed in order to the helm
// template -f flag. Useful for migration from an ApplicationSet. Use Values
// instead. ValueFiles precede Values when both are provided.
ValueFiles []ValueFile `json:"valueFiles,omitempty" yaml:"valueFiles,omitempty"`
// EnableHooks enables helm hooks when executing the `helm template` command.
EnableHooks bool `json:"enableHooks,omitempty" yaml:"enableHooks,omitempty"`
// Namespace represents the helm namespace flag
@@ -493,6 +498,23 @@ type Validator struct {
}
```
<a name="ValueFile"></a>
## type ValueFile {#ValueFile}
ValueFile represents one Helm value file produced from CUE.
```go
type ValueFile struct {
// Name represents the file name, e.g. "region-values.yaml"
Name string `json:"name" yaml:"name"`
// Kind is a discriminator.
Kind string `json:"kind" yaml:"kind" cue:"\"Values\""`
// Values represents values for holos to marshal into the file name specified
// by Name when rendering the chart.
Values Values `json:"values,omitempty" yaml:"values,omitempty"`
}
```
<a name="Values"></a>
## type Values {#Values}

View File

@@ -1,20 +0,0 @@
---
description: Kargo
slug: kargo
sidebar_position: 110
---
# Kargo
Holos pairs nicely with [Kargo], offering a holistic solution for code
promotion across stages.
Watch this space for a more detailed write up of the integration being
developed.
If you're interested in this topic, please thumbs up the [Kargo
Topic](https://github.com/holos-run/holos/issues/378) issue, or drop into
[Discord] and let us know about your use case.
[Kargo]: https://kargo.io/
[Discord]: https://discord.gg/JgDVbNpye7

View File

@@ -0,0 +1,2 @@
kargo-demo/
.tmp/

View File

@@ -0,0 +1,17 @@
env GH_USER=holos-run
# Remove the directory if it already exists
exec rm -rf kargo-demo
# Clone your fork of the kargo-demo repository
exec bash -c 'bash -euo pipefail command.sh 2>&1'
cmp stdout output.txt
# Get the git commit
cd kargo-demo
exec git rev-parse --verify origin/HEAD
cp stdout $WORK/git.commit
-- command.sh --
git clone https://github.com/${GH_USER}/kargo-demo.git
cd kargo-demo
-- output.txt --
Cloning into 'kargo-demo'...

View File

@@ -0,0 +1,37 @@
env GH_USER=jeffmccune
cd ../script-01-clone/kargo-demo
## Walk the reader from entrypoint to the deployment pipeline
# holos render platform entrypoint
exec bash -c 'cat $(<$WORK/entrypoint.path)'
cp stdout $WORK/entrypoint.txt
exec bash -c 'basename $(<$WORK/entrypoint.path)'
cp stdout $WORK/entrypoint.basename
# platform.stacks location
exec bash -c 'cat $(<$WORK/stacks.path)'
cp stdout $WORK/stacks.txt
exec bash -c 'basename $(<$WORK/stacks.path)'
cp stdout $WORK/stacks.basename
# certmanager.config location
exec bash -c 'cat $(<$WORK/config.path)'
cp stdout $WORK/config.txt
exec bash -c 'basename $(<$WORK/config.path)'
cp stdout $WORK/config.basename
# Cert Manager Component.
exec bash -c 'cat $(<$WORK/component.path)'
cp stdout $WORK/component.txt
# Get the path basename for the docs.
exec bash -c 'basename $(<$WORK/component.path)'
cp stdout $WORK/component.basename
-- config.path --
config/certmanager/certmanager.cue
-- stacks.path --
config/platform/security.cue
-- entrypoint.path --
platform/stacks.cue
-- component.path --
stacks/security/components/cert-manager/cert-manager.cue

View File

@@ -0,0 +1,8 @@
cd ../script-01-clone/kargo-demo
exec bash -c 'bash -euo pipefail $WORK/command.sh 2>&1'
cmp stdout $WORK/output.txt
-- command.sh --
holos --version
-- output.txt --
0.102.3

View File

@@ -0,0 +1,56 @@
env GH_USER=jeffmccune
env HOME=$WORK/.tmp
cd ../script-01-clone/kargo-demo
chmod 0755 $WORK/update.sh
# Combine the steps separated in the doc.
exec cat $WORK/header.sh $WORK/body.txt $WORK/trailer.sh
stdin stdout
exec bash -xeuo pipefail
cmp config/platform/organization_$GH_USER.cue $WORK/code.want.cue
# Render the platform
exec bash -c 'bash -euo pipefail $WORK/command.sh 2>&1'
stdin stdout
exec $WORK/update.sh $WORK/output.txt
# Get the diff
exec bash -c 'bash -euo pipefail $WORK/diff.sh 2>&1'
stdin stdout
exec $WORK/update.sh $WORK/diff.patch
# Set the author
exec git config --global user.name 'Holos Docs'
exec git config --global user.email 'hello@holos.run'
# Make the commit
exec bash -c 'bash -euo pipefail $WORK/commit.sh 2>&1'
stdin stdout
exec $WORK/update.sh $WORK/commit.txt
-- update.sh --
#! /bin/bash
set -euo pipefail
[[ -s "$1" ]] && [[ -z "${HOLOS_UPDATE_SCRIPTS:-}" ]] && exit 0
cat > "$1"
-- header.sh --
cat <<EOF > config/platform/organization_${GH_USER}.cue
-- body.txt --
@if(${GH_USER})
package platform
organization: repoURL: "https://github.com/${GH_USER}/kargo-demo.git"
-- trailer.sh --
EOF
-- code.want.cue --
@if(jeffmccune)
package platform
organization: repoURL: "https://github.com/jeffmccune/kargo-demo.git"
-- command.sh --
holos render platform -t ${GH_USER}
-- commit.sh --
git add .
git commit -m "Switch to $GH_USER fork"
-- diff.sh --
git diff

View File

@@ -0,0 +1,2 @@
git clone https://github.com/${GH_USER}/kargo-demo.git
cd kargo-demo

View File

@@ -0,0 +1 @@
238fe0403c99eeea4f4fb764a88b780554048414

View File

@@ -0,0 +1 @@
Cloning into 'kargo-demo'...

View File

@@ -0,0 +1 @@
stacks/security/components/cert-manager/cert-manager.cue

View File

@@ -0,0 +1,21 @@
package holos
import "holos.example/config/certmanager"
// Produce a helm chart build plan.
holos: Component.BuildPlan
Component: #Helm & {
Name: "cert-manager"
Namespace: certmanager.config.namespace
Chart: certmanager.config.chart
EnableHooks: true
Values: #Values & {
crds: enabled: true
startupapicheck: enabled: false
// https://github.com/cert-manager/cert-manager/issues/6716
global: leaderElection: namespace: Namespace
}
}

View File

@@ -0,0 +1 @@
config/certmanager/certmanager.cue

View File

@@ -0,0 +1,30 @@
@extern(embed)
package certmanager
import "github.com/holos-run/holos/api/core/v1alpha5:core"
// Unify data from yaml for Kargo integration.
_data: _ @embed(file=cert-manager.yaml)
config: #Config & {
namespace: "cert-manager"
// datafile value must align to the embed file directive above for proper
// configuration of Kargo promotion stages.
datafile: "./config/certmanager/cert-manager.yaml"
chart: {
name: "cert-manager"
version: _data.chart.version
repository: {
name: "jetstack"
url: "https://charts.jetstack.io"
}
}
}
#Config: {
namespace: string
datafile: string
chart: core.#Chart & {
version: =~"^v{0,1}[0-9]+\\.[0-9]+\\.[0-9]+$"
}
}

View File

@@ -0,0 +1,8 @@
package main
import "holos.example/config/platform"
// Register all stack components with the platform spec.
for STACK in platform.stacks {
Platform: Components: STACK.components
}

View File

@@ -0,0 +1 @@
config/platform/security.cue

View File

@@ -0,0 +1,46 @@
package platform
import "holos.example/config/certmanager"
stacks: security: (#StackBuilder & {
(#PromoterBuilder & {parameters: {
name: "cert-manager"
config: {
datafile: certmanager.config.datafile
chart: certmanager.config.chart
}
}}).promoter
// Manage the external-secrets namespace.
stack: namespaces: "external-secrets": _
parameters: {
name: "security"
components: {
namespaces: {
path: "stacks/security/components/namespaces"
annotations: description: "configures namespaces for all stacks"
}
"external-secrets-crds": {
path: "stacks/security/components/external-secrets-crds"
annotations: description: "external secrets custom resource definitions"
}
"external-secrets": {
path: "stacks/security/components/external-secrets"
annotations: description: "external secrets custom resource definitions"
}
"cert-manager": {
path: "stacks/security/components/cert-manager"
annotations: description: "cert-manager operator and custom resource definitions"
parameters: {
kargoProject: "cert-manager"
kargoStage: "main"
}
}
"local-ca": {
path: "stacks/security/components/local-ca"
annotations: description: "localhost mkcert certificate authority"
}
}
}
}).stack

View File

@@ -0,0 +1,4 @@
@if(${GH_USER})
package platform
organization: repoURL: "https://github.com/${GH_USER}/kargo-demo.git"

View File

@@ -0,0 +1,4 @@
@if(jeffmccune)
package platform
organization: repoURL: "https://github.com/jeffmccune/kargo-demo.git"

View File

@@ -0,0 +1 @@
holos render platform -t ${GH_USER}

View File

@@ -0,0 +1,2 @@
git add .
git commit -m "Switch to $GH_USER fork"

View File

@@ -0,0 +1,3 @@
[main b883807] Switch to jeffmccune fork
43 files changed, 70 insertions(+), 66 deletions(-)
create mode 100644 config/platform/organization_jeffmccune.cue

View File

@@ -0,0 +1,686 @@
diff --git a/deploy/components/cert-manager-promoter/cert-manager-promoter.gen.yaml b/deploy/components/cert-manager-promoter/cert-manager-promoter.gen.yaml
index 55a6a49..ab483d5 100644
--- a/deploy/components/cert-manager-promoter/cert-manager-promoter.gen.yaml
+++ b/deploy/components/cert-manager-promoter/cert-manager-promoter.gen.yaml
@@ -28,7 +28,7 @@ spec:
checkout:
- branch: main
path: ./src
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
uses: git-clone
- as: update
config:
@@ -51,7 +51,7 @@ spec:
uses: git-push
- as: pull
config:
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
sourceBranch: ${{ outputs.push.branch }}
targetBranch: main
uses: git-open-pr
diff --git a/deploy/components/kargo-promoter/kargo-promoter.gen.yaml b/deploy/components/kargo-promoter/kargo-promoter.gen.yaml
index 87e4bfd..a2eb91d 100644
--- a/deploy/components/kargo-promoter/kargo-promoter.gen.yaml
+++ b/deploy/components/kargo-promoter/kargo-promoter.gen.yaml
@@ -28,7 +28,7 @@ spec:
checkout:
- branch: main
path: ./src
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
uses: git-clone
- as: update
config:
@@ -51,7 +51,7 @@ spec:
uses: git-push
- as: pull
config:
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
sourceBranch: ${{ outputs.push.branch }}
targetBranch: main
uses: git-open-pr
diff --git a/deploy/gitops/app-projects.application.gen.yaml b/deploy/gitops/app-projects.application.gen.yaml
index a98a52e..a58f7fb 100644
--- a/deploy/gitops/app-projects.application.gen.yaml
+++ b/deploy/gitops/app-projects.application.gen.yaml
@@ -10,5 +10,5 @@ spec:
project: argocd
source:
path: deploy/components/app-projects
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: main
diff --git a/deploy/gitops/argocd-crds.application.gen.yaml b/deploy/gitops/argocd-crds.application.gen.yaml
index 6aba002..4ce8835 100644
--- a/deploy/gitops/argocd-crds.application.gen.yaml
+++ b/deploy/gitops/argocd-crds.application.gen.yaml
@@ -10,5 +10,5 @@ spec:
project: argocd
source:
path: deploy/components/argocd-crds
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: main
diff --git a/deploy/gitops/argocd-secrets.application.gen.yaml b/deploy/gitops/argocd-secrets.application.gen.yaml
index 245fb00..0a5b79d 100644
--- a/deploy/gitops/argocd-secrets.application.gen.yaml
+++ b/deploy/gitops/argocd-secrets.application.gen.yaml
@@ -10,5 +10,5 @@ spec:
project: argocd
source:
path: deploy/components/argocd-secrets
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: main
diff --git a/deploy/gitops/argocd.application.gen.yaml b/deploy/gitops/argocd.application.gen.yaml
index 764a55f..6c4cfad 100644
--- a/deploy/gitops/argocd.application.gen.yaml
+++ b/deploy/gitops/argocd.application.gen.yaml
@@ -10,5 +10,5 @@ spec:
project: argocd
source:
path: deploy/components/argocd
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: main
diff --git a/deploy/gitops/cert-manager-promoter.application.gen.yaml b/deploy/gitops/cert-manager-promoter.application.gen.yaml
index c28bb66..a98c0ef 100644
--- a/deploy/gitops/cert-manager-promoter.application.gen.yaml
+++ b/deploy/gitops/cert-manager-promoter.application.gen.yaml
@@ -16,5 +16,5 @@ spec:
project: security
source:
path: deploy/components/cert-manager-promoter
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: main
diff --git a/deploy/gitops/cert-manager.application.gen.yaml b/deploy/gitops/cert-manager.application.gen.yaml
index 14e15f0..d6a24d3 100644
--- a/deploy/gitops/cert-manager.application.gen.yaml
+++ b/deploy/gitops/cert-manager.application.gen.yaml
@@ -12,5 +12,5 @@ spec:
project: security
source:
path: deploy/components/cert-manager
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: main
diff --git a/deploy/gitops/external-secrets-crds.application.gen.yaml b/deploy/gitops/external-secrets-crds.application.gen.yaml
index 5515a52..c86bbf8 100644
--- a/deploy/gitops/external-secrets-crds.application.gen.yaml
+++ b/deploy/gitops/external-secrets-crds.application.gen.yaml
@@ -10,5 +10,5 @@ spec:
project: security
source:
path: deploy/components/external-secrets-crds
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: main
diff --git a/deploy/gitops/external-secrets.application.gen.yaml b/deploy/gitops/external-secrets.application.gen.yaml
index b1b2434..a1a90d2 100644
--- a/deploy/gitops/external-secrets.application.gen.yaml
+++ b/deploy/gitops/external-secrets.application.gen.yaml
@@ -10,5 +10,5 @@ spec:
project: security
source:
path: deploy/components/external-secrets
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: main
diff --git a/deploy/gitops/gateway-api.application.gen.yaml b/deploy/gitops/gateway-api.application.gen.yaml
index a567685..1209068 100644
--- a/deploy/gitops/gateway-api.application.gen.yaml
+++ b/deploy/gitops/gateway-api.application.gen.yaml
@@ -10,5 +10,5 @@ spec:
project: network
source:
path: deploy/components/gateway-api
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: main
diff --git a/deploy/gitops/httproutes.application.gen.yaml b/deploy/gitops/httproutes.application.gen.yaml
index 01e7eea..ba17725 100644
--- a/deploy/gitops/httproutes.application.gen.yaml
+++ b/deploy/gitops/httproutes.application.gen.yaml
@@ -10,5 +10,5 @@ spec:
project: network
source:
path: deploy/components/httproutes
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: main
diff --git a/deploy/gitops/istio-base.application.gen.yaml b/deploy/gitops/istio-base.application.gen.yaml
index 344bba2..32d4f4b 100644
--- a/deploy/gitops/istio-base.application.gen.yaml
+++ b/deploy/gitops/istio-base.application.gen.yaml
@@ -10,5 +10,5 @@ spec:
project: network
source:
path: deploy/components/istio-base
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: main
diff --git a/deploy/gitops/istio-cni.application.gen.yaml b/deploy/gitops/istio-cni.application.gen.yaml
index 478e7c4..5fdf222 100644
--- a/deploy/gitops/istio-cni.application.gen.yaml
+++ b/deploy/gitops/istio-cni.application.gen.yaml
@@ -10,5 +10,5 @@ spec:
project: network
source:
path: deploy/components/istio-cni
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: main
diff --git a/deploy/gitops/istio-gateway.application.gen.yaml b/deploy/gitops/istio-gateway.application.gen.yaml
index 9561e06..0267f9b 100644
--- a/deploy/gitops/istio-gateway.application.gen.yaml
+++ b/deploy/gitops/istio-gateway.application.gen.yaml
@@ -10,5 +10,5 @@ spec:
project: network
source:
path: deploy/components/istio-gateway
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: main
diff --git a/deploy/gitops/istio-ztunnel.application.gen.yaml b/deploy/gitops/istio-ztunnel.application.gen.yaml
index a6da24e..ac21566 100644
--- a/deploy/gitops/istio-ztunnel.application.gen.yaml
+++ b/deploy/gitops/istio-ztunnel.application.gen.yaml
@@ -10,5 +10,5 @@ spec:
project: network
source:
path: deploy/components/istio-ztunnel
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: main
diff --git a/deploy/gitops/istiod.application.gen.yaml b/deploy/gitops/istiod.application.gen.yaml
index 57d3fdc..a09c8b9 100644
--- a/deploy/gitops/istiod.application.gen.yaml
+++ b/deploy/gitops/istiod.application.gen.yaml
@@ -10,5 +10,5 @@ spec:
project: network
source:
path: deploy/components/istiod
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: main
diff --git a/deploy/gitops/kargo-promoter.application.gen.yaml b/deploy/gitops/kargo-promoter.application.gen.yaml
index 079ee37..f6db555 100644
--- a/deploy/gitops/kargo-promoter.application.gen.yaml
+++ b/deploy/gitops/kargo-promoter.application.gen.yaml
@@ -16,5 +16,5 @@ spec:
project: argocd
source:
path: deploy/components/kargo-promoter
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: main
diff --git a/deploy/gitops/kargo-secrets.application.gen.yaml b/deploy/gitops/kargo-secrets.application.gen.yaml
index c1d048b..308560d 100644
--- a/deploy/gitops/kargo-secrets.application.gen.yaml
+++ b/deploy/gitops/kargo-secrets.application.gen.yaml
@@ -10,5 +10,5 @@ spec:
project: argocd
source:
path: deploy/components/kargo-secrets
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: main
diff --git a/deploy/gitops/kargo.application.gen.yaml b/deploy/gitops/kargo.application.gen.yaml
index 22408e1..04f92fc 100644
--- a/deploy/gitops/kargo.application.gen.yaml
+++ b/deploy/gitops/kargo.application.gen.yaml
@@ -10,5 +10,5 @@ spec:
project: argocd
source:
path: deploy/components/kargo
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: main
diff --git a/deploy/gitops/local-ca.application.gen.yaml b/deploy/gitops/local-ca.application.gen.yaml
index 38901f2..16caa18 100644
--- a/deploy/gitops/local-ca.application.gen.yaml
+++ b/deploy/gitops/local-ca.application.gen.yaml
@@ -10,5 +10,5 @@ spec:
project: security
source:
path: deploy/components/local-ca
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: main
diff --git a/deploy/gitops/namespaces.application.gen.yaml b/deploy/gitops/namespaces.application.gen.yaml
index e35f41c..2fd01a8 100644
--- a/deploy/gitops/namespaces.application.gen.yaml
+++ b/deploy/gitops/namespaces.application.gen.yaml
@@ -10,5 +10,5 @@ spec:
project: security
source:
path: deploy/components/namespaces
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: main
diff --git a/deploy/gitops/rollouts-crds.application.gen.yaml b/deploy/gitops/rollouts-crds.application.gen.yaml
index 221cb50..761a823 100644
--- a/deploy/gitops/rollouts-crds.application.gen.yaml
+++ b/deploy/gitops/rollouts-crds.application.gen.yaml
@@ -10,5 +10,5 @@ spec:
project: argocd
source:
path: deploy/components/rollouts-crds
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: main
diff --git a/deploy/gitops/rollouts.application.gen.yaml b/deploy/gitops/rollouts.application.gen.yaml
index f96f85c..d1fc696 100644
--- a/deploy/gitops/rollouts.application.gen.yaml
+++ b/deploy/gitops/rollouts.application.gen.yaml
@@ -10,5 +10,5 @@ spec:
project: argocd
source:
path: deploy/components/rollouts
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: main
diff --git a/deploy/projects/httpbin/components/kargo-stages/kargo-stages.gen.yaml b/deploy/projects/httpbin/components/kargo-stages/kargo-stages.gen.yaml
index 815f6a3..bbf1f89 100644
--- a/deploy/projects/httpbin/components/kargo-stages/kargo-stages.gen.yaml
+++ b/deploy/projects/httpbin/components/kargo-stages/kargo-stages.gen.yaml
@@ -16,7 +16,7 @@ spec:
- branch: project/httpbin/component/dev-httpbin
create: true
path: ./out
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
uses: git-clone
- config:
path: ./out
@@ -46,7 +46,7 @@ spec:
- name: httpbin-dev-httpbin
sources:
- desiredCommitFromStep: commit
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
uses: argocd-update
requestedFreight:
- origin:
@@ -73,7 +73,7 @@ spec:
- branch: project/httpbin/component/prod-us-central-httpbin
create: true
path: ./out
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
uses: git-clone
- config:
path: ./out
@@ -103,7 +103,7 @@ spec:
- name: httpbin-prod-us-central-httpbin
sources:
- desiredCommitFromStep: commit
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
uses: argocd-update
requestedFreight:
- origin:
@@ -131,7 +131,7 @@ spec:
- branch: project/httpbin/component/prod-us-east-httpbin
create: true
path: ./out
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
uses: git-clone
- config:
path: ./out
@@ -161,7 +161,7 @@ spec:
- name: httpbin-prod-us-east-httpbin
sources:
- desiredCommitFromStep: commit
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
uses: argocd-update
requestedFreight:
- origin:
@@ -189,7 +189,7 @@ spec:
- branch: project/httpbin/component/prod-us-west-httpbin
create: true
path: ./out
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
uses: git-clone
- config:
path: ./out
@@ -219,7 +219,7 @@ spec:
- name: httpbin-prod-us-west-httpbin
sources:
- desiredCommitFromStep: commit
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
uses: argocd-update
requestedFreight:
- origin:
@@ -247,7 +247,7 @@ spec:
- branch: project/httpbin/component/test-httpbin
create: true
path: ./out
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
uses: git-clone
- config:
path: ./out
@@ -277,7 +277,7 @@ spec:
- name: httpbin-test-httpbin
sources:
- desiredCommitFromStep: commit
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
uses: argocd-update
requestedFreight:
- origin:
@@ -305,7 +305,7 @@ spec:
- branch: project/httpbin/component/uat-httpbin
create: true
path: ./out
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
uses: git-clone
- config:
path: ./out
@@ -335,7 +335,7 @@ spec:
- name: httpbin-uat-httpbin
sources:
- desiredCommitFromStep: commit
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
uses: argocd-update
requestedFreight:
- origin:
diff --git a/deploy/projects/httpbin/gitops/dev-httpbin.application.gen.yaml b/deploy/projects/httpbin/gitops/dev-httpbin.application.gen.yaml
index 03136e0..8b207ff 100644
--- a/deploy/projects/httpbin/gitops/dev-httpbin.application.gen.yaml
+++ b/deploy/projects/httpbin/gitops/dev-httpbin.application.gen.yaml
@@ -14,5 +14,5 @@ spec:
project: httpbin
source:
path: ./
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: project/httpbin/component/dev-httpbin
diff --git a/deploy/projects/httpbin/gitops/kargo-project.application.gen.yaml b/deploy/projects/httpbin/gitops/kargo-project.application.gen.yaml
index 9e666a7..07ebce2 100644
--- a/deploy/projects/httpbin/gitops/kargo-project.application.gen.yaml
+++ b/deploy/projects/httpbin/gitops/kargo-project.application.gen.yaml
@@ -10,5 +10,5 @@ spec:
project: httpbin
source:
path: deploy/projects/httpbin/components/kargo-project
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: main
diff --git a/deploy/projects/httpbin/gitops/kargo-stages.application.gen.yaml b/deploy/projects/httpbin/gitops/kargo-stages.application.gen.yaml
index df82b81..157a1e0 100644
--- a/deploy/projects/httpbin/gitops/kargo-stages.application.gen.yaml
+++ b/deploy/projects/httpbin/gitops/kargo-stages.application.gen.yaml
@@ -10,5 +10,5 @@ spec:
project: httpbin
source:
path: deploy/projects/httpbin/components/kargo-stages
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: main
diff --git a/deploy/projects/httpbin/gitops/prod-us-central-httpbin.application.gen.yaml b/deploy/projects/httpbin/gitops/prod-us-central-httpbin.application.gen.yaml
index d3eb9ee..3e5e8b3 100644
--- a/deploy/projects/httpbin/gitops/prod-us-central-httpbin.application.gen.yaml
+++ b/deploy/projects/httpbin/gitops/prod-us-central-httpbin.application.gen.yaml
@@ -14,5 +14,5 @@ spec:
project: httpbin
source:
path: ./
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: project/httpbin/component/prod-us-central-httpbin
diff --git a/deploy/projects/httpbin/gitops/prod-us-east-httpbin.application.gen.yaml b/deploy/projects/httpbin/gitops/prod-us-east-httpbin.application.gen.yaml
index 2d768f4..e43d1f6 100644
--- a/deploy/projects/httpbin/gitops/prod-us-east-httpbin.application.gen.yaml
+++ b/deploy/projects/httpbin/gitops/prod-us-east-httpbin.application.gen.yaml
@@ -14,5 +14,5 @@ spec:
project: httpbin
source:
path: ./
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: project/httpbin/component/prod-us-east-httpbin
diff --git a/deploy/projects/httpbin/gitops/prod-us-west-httpbin.application.gen.yaml b/deploy/projects/httpbin/gitops/prod-us-west-httpbin.application.gen.yaml
index 8903303..a7012b0 100644
--- a/deploy/projects/httpbin/gitops/prod-us-west-httpbin.application.gen.yaml
+++ b/deploy/projects/httpbin/gitops/prod-us-west-httpbin.application.gen.yaml
@@ -14,5 +14,5 @@ spec:
project: httpbin
source:
path: ./
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: project/httpbin/component/prod-us-west-httpbin
diff --git a/deploy/projects/httpbin/gitops/test-httpbin.application.gen.yaml b/deploy/projects/httpbin/gitops/test-httpbin.application.gen.yaml
index 5426c31..296e3ed 100644
--- a/deploy/projects/httpbin/gitops/test-httpbin.application.gen.yaml
+++ b/deploy/projects/httpbin/gitops/test-httpbin.application.gen.yaml
@@ -14,5 +14,5 @@ spec:
project: httpbin
source:
path: ./
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: project/httpbin/component/test-httpbin
diff --git a/deploy/projects/httpbin/gitops/uat-httpbin.application.gen.yaml b/deploy/projects/httpbin/gitops/uat-httpbin.application.gen.yaml
index 717e608..264d1c4 100644
--- a/deploy/projects/httpbin/gitops/uat-httpbin.application.gen.yaml
+++ b/deploy/projects/httpbin/gitops/uat-httpbin.application.gen.yaml
@@ -14,5 +14,5 @@ spec:
project: httpbin
source:
path: ./
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: project/httpbin/component/uat-httpbin
diff --git a/deploy/projects/podinfo/components/kargo-stages/kargo-stages.gen.yaml b/deploy/projects/podinfo/components/kargo-stages/kargo-stages.gen.yaml
index 1107e34..2ebbbd1 100644
--- a/deploy/projects/podinfo/components/kargo-stages/kargo-stages.gen.yaml
+++ b/deploy/projects/podinfo/components/kargo-stages/kargo-stages.gen.yaml
@@ -16,7 +16,7 @@ spec:
- branch: project/podinfo/component/dev-podinfo
create: true
path: ./out
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
uses: git-clone
- config:
path: ./out
@@ -46,7 +46,7 @@ spec:
- name: podinfo-dev-podinfo
sources:
- desiredCommitFromStep: commit
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
uses: argocd-update
requestedFreight:
- origin:
@@ -73,7 +73,7 @@ spec:
- branch: project/podinfo/component/prod-us-central-podinfo
create: true
path: ./out
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
uses: git-clone
- config:
path: ./out
@@ -103,7 +103,7 @@ spec:
- name: podinfo-prod-us-central-podinfo
sources:
- desiredCommitFromStep: commit
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
uses: argocd-update
requestedFreight:
- origin:
@@ -131,7 +131,7 @@ spec:
- branch: project/podinfo/component/prod-us-east-podinfo
create: true
path: ./out
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
uses: git-clone
- config:
path: ./out
@@ -161,7 +161,7 @@ spec:
- name: podinfo-prod-us-east-podinfo
sources:
- desiredCommitFromStep: commit
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
uses: argocd-update
requestedFreight:
- origin:
@@ -189,7 +189,7 @@ spec:
- branch: project/podinfo/component/prod-us-west-podinfo
create: true
path: ./out
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
uses: git-clone
- config:
path: ./out
@@ -219,7 +219,7 @@ spec:
- name: podinfo-prod-us-west-podinfo
sources:
- desiredCommitFromStep: commit
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
uses: argocd-update
requestedFreight:
- origin:
@@ -247,7 +247,7 @@ spec:
- branch: project/podinfo/component/test-podinfo
create: true
path: ./out
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
uses: git-clone
- config:
path: ./out
@@ -277,7 +277,7 @@ spec:
- name: podinfo-test-podinfo
sources:
- desiredCommitFromStep: commit
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
uses: argocd-update
requestedFreight:
- origin:
@@ -305,7 +305,7 @@ spec:
- branch: project/podinfo/component/uat-podinfo
create: true
path: ./out
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
uses: git-clone
- config:
path: ./out
@@ -335,7 +335,7 @@ spec:
- name: podinfo-uat-podinfo
sources:
- desiredCommitFromStep: commit
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
uses: argocd-update
requestedFreight:
- origin:
diff --git a/deploy/projects/podinfo/gitops/dev-podinfo.application.gen.yaml b/deploy/projects/podinfo/gitops/dev-podinfo.application.gen.yaml
index 9b3108e..9ac4849 100644
--- a/deploy/projects/podinfo/gitops/dev-podinfo.application.gen.yaml
+++ b/deploy/projects/podinfo/gitops/dev-podinfo.application.gen.yaml
@@ -14,5 +14,5 @@ spec:
project: podinfo
source:
path: ./
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: project/podinfo/component/dev-podinfo
diff --git a/deploy/projects/podinfo/gitops/kargo-project.application.gen.yaml b/deploy/projects/podinfo/gitops/kargo-project.application.gen.yaml
index 3878efa..ab934d5 100644
--- a/deploy/projects/podinfo/gitops/kargo-project.application.gen.yaml
+++ b/deploy/projects/podinfo/gitops/kargo-project.application.gen.yaml
@@ -10,5 +10,5 @@ spec:
project: podinfo
source:
path: deploy/projects/podinfo/components/kargo-project
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: main
diff --git a/deploy/projects/podinfo/gitops/kargo-stages.application.gen.yaml b/deploy/projects/podinfo/gitops/kargo-stages.application.gen.yaml
index 0d4ade7..1b5eb9f 100644
--- a/deploy/projects/podinfo/gitops/kargo-stages.application.gen.yaml
+++ b/deploy/projects/podinfo/gitops/kargo-stages.application.gen.yaml
@@ -10,5 +10,5 @@ spec:
project: podinfo
source:
path: deploy/projects/podinfo/components/kargo-stages
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: main
diff --git a/deploy/projects/podinfo/gitops/prod-us-central-podinfo.application.gen.yaml b/deploy/projects/podinfo/gitops/prod-us-central-podinfo.application.gen.yaml
index 59b3f98..182a3c9 100644
--- a/deploy/projects/podinfo/gitops/prod-us-central-podinfo.application.gen.yaml
+++ b/deploy/projects/podinfo/gitops/prod-us-central-podinfo.application.gen.yaml
@@ -14,5 +14,5 @@ spec:
project: podinfo
source:
path: ./
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: project/podinfo/component/prod-us-central-podinfo
diff --git a/deploy/projects/podinfo/gitops/prod-us-east-podinfo.application.gen.yaml b/deploy/projects/podinfo/gitops/prod-us-east-podinfo.application.gen.yaml
index 0165d40..6101a9b 100644
--- a/deploy/projects/podinfo/gitops/prod-us-east-podinfo.application.gen.yaml
+++ b/deploy/projects/podinfo/gitops/prod-us-east-podinfo.application.gen.yaml
@@ -14,5 +14,5 @@ spec:
project: podinfo
source:
path: ./
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: project/podinfo/component/prod-us-east-podinfo
diff --git a/deploy/projects/podinfo/gitops/prod-us-west-podinfo.application.gen.yaml b/deploy/projects/podinfo/gitops/prod-us-west-podinfo.application.gen.yaml
index 3422981..88b7409 100644
--- a/deploy/projects/podinfo/gitops/prod-us-west-podinfo.application.gen.yaml
+++ b/deploy/projects/podinfo/gitops/prod-us-west-podinfo.application.gen.yaml
@@ -14,5 +14,5 @@ spec:
project: podinfo
source:
path: ./
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: project/podinfo/component/prod-us-west-podinfo
diff --git a/deploy/projects/podinfo/gitops/test-podinfo.application.gen.yaml b/deploy/projects/podinfo/gitops/test-podinfo.application.gen.yaml
index 7ca895f..c3c32a1 100644
--- a/deploy/projects/podinfo/gitops/test-podinfo.application.gen.yaml
+++ b/deploy/projects/podinfo/gitops/test-podinfo.application.gen.yaml
@@ -14,5 +14,5 @@ spec:
project: podinfo
source:
path: ./
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: project/podinfo/component/test-podinfo
diff --git a/deploy/projects/podinfo/gitops/uat-podinfo.application.gen.yaml b/deploy/projects/podinfo/gitops/uat-podinfo.application.gen.yaml
index cb28add..63cf194 100644
--- a/deploy/projects/podinfo/gitops/uat-podinfo.application.gen.yaml
+++ b/deploy/projects/podinfo/gitops/uat-podinfo.application.gen.yaml
@@ -14,5 +14,5 @@ spec:
project: podinfo
source:
path: ./
- repoURL: https://github.com/holos-run/kargo-demo.git
+ repoURL: https://github.com/jeffmccune/kargo-demo.git
targetRevision: project/podinfo/component/uat-podinfo

View File

@@ -0,0 +1 @@
cat <<EOF > config/platform/organization_${GH_USER}.cue

View File

@@ -0,0 +1,47 @@
rendered kargo-project for project podinfo in 438.04325ms
rendered kargo-promoter for stack argocd in 440.84075ms
rendered kargo-secrets for stack argocd in 441.76175ms
rendered rollouts for stack argocd in 441.989625ms
rendered kargo-project for project httpbin in 444.166291ms
rendered kargo-stages for project httpbin in 446.7485ms
rendered kargo-stages for project podinfo in 446.739792ms
rendered argocd-secrets for stack argocd in 448.0085ms
rendered app-projects for stack argocd in 449.610209ms
rendered gateway-api for stack network in 597.720375ms
rendered istio-gateway for stack network in 248.44325ms
rendered rollouts-crds for stack argocd in 885.346417ms
rendered namespaces for stack security in 478.418ms
rendered local-ca for stack security in 244.84025ms
rendered argocd-crds for stack argocd in 991.27875ms
rendered external-secrets-crds for stack security in 686.799417ms
rendered istio-cni for stack network in 748.069458ms
rendered istio-ztunnel for stack network in 762.896542ms
rendered test-httpbin for project httpbin in 318.5385ms
rendered cert-manager-promoter for stack security in 481.661833ms
rendered dev-httpbin for project httpbin in 465.202083ms
Pulled: ghcr.io/akuity/kargo-charts/kargo:1.1.1
Digest: sha256:4055c72418db85b85979da2fe12136c0e275709efc2e36a505b158e8234ad443
rendered kargo for stack argocd in 1.396269208s
rendered istiod for stack network in 997.264208ms
rendered external-secrets for stack security in 996.459042ms
rendered uat-httpbin for project httpbin in 517.124875ms
rendered prod-us-central-httpbin for project httpbin in 344.330875ms
rendered prod-us-east-httpbin for project httpbin in 449.991417ms
rendered prod-us-west-httpbin for project httpbin in 411.234333ms
rendered argocd for stack argocd in 1.631300708s
rendered istio-base for stack network in 1.203177s
rendered cert-manager for stack security in 1.127040208s
rendered httproutes for stack network in 1.556993875s
Pulled: ghcr.io/stefanprodan/charts/podinfo:6.7.0
Digest: sha256:104d101017e501c63b3aa71b20d5edd2ca6d5d58cbc57ff8163770110f92b9db
rendered dev-podinfo for project podinfo in 1.010673334s
rendered test-podinfo for project podinfo in 945.39075ms
rendered prod-us-west-podinfo for project podinfo in 897.117125ms
rendered uat-podinfo for project podinfo in 1.022036209s
Pulled: ghcr.io/stefanprodan/charts/podinfo:6.6.2
Digest: sha256:83295d47de6d6ca634ed4b952a7572fc176bcc38854d0c11ca0fa197bc5f1154
rendered prod-us-central-podinfo for project podinfo in 977.250667ms
Pulled: ghcr.io/stefanprodan/charts/podinfo:6.6.1
Digest: sha256:0cc9a8446c95009ef382f5eade883a67c257f77d50f84e78ecef2aac9428d1e5
rendered prod-us-east-podinfo for project podinfo in 1.071360916s
rendered platform in 2.467827834s

View File

@@ -0,0 +1,8 @@
cd ../script-setup/kargo-demo
# Execute the example capture stdout and stderr to one file.
exec bash -c 'bash -euo pipefail $WORK/tree.sh 2>&1'
# Copy standard output to a file to embed in the docs.
cp stdout $WORK/tree.txt
-- tree.sh --
tree -L3 -d platform stacks config

View File

@@ -1,4 +1,4 @@
package main
package kargo
import (
"os"
@@ -22,10 +22,10 @@ func TestMain(m *testing.M) {
}
// Run these with go test -v to see the verbose names
func TestMarkdown(t *testing.T) {
func TestKargo(t *testing.T) {
t.Run("AddOnPromoter", func(t *testing.T) {
// Get an ordered list of test script files.
dir := "_markdown-tests"
dir := "_platform-components"
for _, file := range sortedTestScripts(t, filepath.Join(dir, "examples")) {
t.Run("examples", func(t *testing.T) {
runOneScript(t, dir, file)

View File

@@ -0,0 +1,40 @@
---
title: Progressive Delivery
description: Learn how to manage progressive delivery pipelines with Holos.
sidebar_position: 110
---
import DocCardList from '@theme/DocCardList';
# Progressive Delivery
Holos pairs nicely with [Kargo], offering a holistic way to manage the
configuration of reusable progressive rollout deployment pipelines for Holos
components.
> Kargo is a next-generation continuous delivery and application lifecycle
> orchestration platform for Kubernetes. It builds upon GitOps principles and
> integrates with existing technologies, like Argo CD, to streamline and automate
> the progressive rollout of changes across the many stages of an application's
> lifecycle. ([ref](https://github.com/akuity/kargo#:~:text=Kargo%20is%20a%20next%2Dgeneration,stages%20of%20an%20application's%20lifecycle.))
Two main use cases are addressed within this topic.
1. **Platform Components**: Platform operators want pull requests automatically
opened when new versions of cluster add-ons are available so they can see
upcoming changes clearly.
2. **Workloads**: Product development teams want a well defined deployment
pipeline to automatically and safely promote new features and bug fixes. For
example, from dev to test to staging, then across multiple production regions
globally.
:::tip
Holos pairs well with Kargo to progressively deploy changes across multiple
clusters. Contact us for personalized [support] for your use case.
:::
---
<DocCardList />
[Kargo]: https://kargo.io/
[support]: ../support.mdx

View File

@@ -0,0 +1,184 @@
---
description: Automatic pull requests for platform components.
sidebar_position: 100
---
import useBaseUrl from '@docusaurus/useBaseUrl';
import ThemedImage from '@theme/ThemedImage';
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import CodeBlock from '@theme/CodeBlock';
# Platform Components
## Overview
We'll use Holos to configure Kargo to automatically watch for new versions of
the Istio, cert-manager, and external-secrets cluster platform components.
We'll learn how to define a reusable technique to mix-in the deployment pipeline
to any other cluster add-ons, like Kargo and ArgoCD.
<ThemedImage
alt="Pull Request summary for an available cert-manager update"
sources= {{
light: useBaseUrl('/img/kargo/add-on-promoter/kargo-pr-small.light.png'),
dark: useBaseUrl('/img/kargo/add-on-promoter/kargo-pr-small.dark.png'),
}}
/>
<ThemedImage
alt="Pull Request diff for an available cert-manager update"
sources= {{
light: useBaseUrl('/img/kargo/add-on-promoter/diff.light.png'),
dark: useBaseUrl('/img/kargo/add-on-promoter/diff.dark.png'),
}}
/>
## Setup
First, [fork] the [kargo-demo] repository to your personal account. Set your
GitHub user name for use through the rest of this tutorial.
```bash
export GH_USER=<your username>
```
Clone your fork. We'll run the rest of the commands from the root of the
repository.
import SetupCommand from '!!raw-loader!./_platform-components/script-01-clone/command.sh';
import SetupOutput from '!!raw-loader!./_platform-components/script-01-clone/output.txt';
<Tabs groupId="setup">
<TabItem value="command" label="Command">
<CodeBlock language="bash">{SetupCommand}</CodeBlock>
</TabItem>
<TabItem value="output" label="Output">
<CodeBlock language="txt">{SetupOutput}</CodeBlock>
</TabItem>
</Tabs>
## Configuration Tour
Let's review what happens when the `holos render platform` command renders the
Kargo deployment pipeline configuration for `cert-manager`.
import GitHubLink from '@site/src/components/GitHubLink';
import GitCommit from '!!raw-loader!./_platform-components/script-01-clone/git.commit';
import CertManagerEntrypointPath from '!!raw-loader!./_platform-components/script-10-cert-manager/entrypoint.path';
import CertManagerEntrypointBaseName from '!!raw-loader!./_platform-components/script-10-cert-manager/entrypoint.basename';
import CertManagerEntrypointCode from '!!raw-loader!./_platform-components/script-10-cert-manager/entrypoint.txt';
import CertManagerStacksPath from '!!raw-loader!./_platform-components/script-10-cert-manager/stacks.path';
import CertManagerStacksBaseName from '!!raw-loader!./_platform-components/script-10-cert-manager/stacks.basename';
import CertManagerStacksCode from '!!raw-loader!./_platform-components/script-10-cert-manager/stacks.txt';
import CertManagerComponentPath from '!!raw-loader!./_platform-components/script-10-cert-manager/component.path';
import CertManagerComponentBaseName from '!!raw-loader!./_platform-components/script-10-cert-manager/component.basename';
import CertManagerComponentCode from '!!raw-loader!./_platform-components/script-10-cert-manager/component.txt';
import CertManagerConfigPath from '!!raw-loader!./_platform-components/script-10-cert-manager/config.path';
import CertManagerConfigBaseName from '!!raw-loader!./_platform-components/script-10-cert-manager/config.basename';
import CertManagerConfigCode from '!!raw-loader!./_platform-components/script-10-cert-manager/config.txt';
1. <GitHubLink repo="holos-run/kargo-demo" tree={GitCommit} path={CertManagerEntrypointPath}>{CertManagerEntrypointPath}</GitHubLink> is the main entrypoint for the `holos render platform` command. Each platform stack's components are composed into the Platform spec `holos` uses to render each component.
1. <GitHubLink repo="holos-run/kargo-demo" tree={GitCommit} path={`${CertManagerStacksPath}#L32-L39`}>{CertManagerStacksBaseName}</GitHubLink> in the platform config package is where cert-manager is added to the platform as a holos component.
1. <GitHubLink repo="holos-run/kargo-demo" tree={GitCommit} path={CertManagerComponentPath}>{CertManagerComponentBaseName}</GitHubLink> is the component definition. The component imports the certmanager config package to get the chart version.
1. <GitHubLink repo="holos-run/kargo-demo" tree={GitCommit} path={CertManagerConfigPath}>{CertManagerConfigBaseName}</GitHubLink> in the certmanager config package defines configuration imported by multiple components. This file uses the CUE embed feature to load data from a yaml file in the same directory. Kargo promotion steps update the cert manager version in this file.
Cert Manager is managed as a Holos Component wrapping the official helm chart.
See
<Tabs groupId="render-git-url">
<TabItem value="entrypoint" label={CertManagerEntrypointBaseName}>
<CodeBlock language="txt">{CertManagerEntrypointPath}</CodeBlock>
<CodeBlock language="cue">{CertManagerEntrypointCode}</CodeBlock>
</TabItem>
<TabItem value="stacks" label={CertManagerStacksBaseName}>
<CodeBlock language="txt">{CertManagerStacksPath}</CodeBlock>
<CodeBlock language="cue">{CertManagerStacksCode}</CodeBlock>
</TabItem>
<TabItem value="component" label={CertManagerComponentBaseName}>
<CodeBlock language="txt">{CertManagerComponentPath}</CodeBlock>
<CodeBlock language="cue">{CertManagerComponentCode}</CodeBlock>
</TabItem>
<TabItem value="config" label={CertManagerConfigBaseName}>
<CodeBlock language="txt">{CertManagerConfigPath}</CodeBlock>
<CodeBlock language="cue">{CertManagerConfigCode}</CodeBlock>
</TabItem>
</Tabs>
## Holos Version
Ensure you have a current version of `holos` installed. This document was
tested with the following version.
import HolosVersionCommand from '!!raw-loader!./_platform-components/script-20-holos-version/command.sh';
import HolosVersionOutput from '!!raw-loader!./_platform-components/script-20-holos-version/output.txt';
<CodeBlock language="bash">{HolosVersionCommand}</CodeBlock>
<CodeBlock language="txt">{HolosVersionOutput}</CodeBlock>
## Configure Git URL
We need to configure gitops tools like ArgoCD and Kargo to use our fork instead
of the upstream repository when reconciling changes and opening pull requests.
Create the following file to configure your fork url.
import GitURLHeader from '!!raw-loader!./_platform-components/script-30-git-url/header.sh';
import GitURLBody from '!!raw-loader!./_platform-components/script-30-git-url/body.txt';
import GitURLTrailer from '!!raw-loader!./_platform-components/script-30-git-url/trailer.sh';
<CodeBlock language="bash">{GitURLHeader}</CodeBlock>
<CodeBlock language="cue">{GitURLBody}</CodeBlock>
<CodeBlock language="bash">{GitURLTrailer}</CodeBlock>
Then render the platform with your GitHub user name as a cue build tag.
import RenderCommand from '!!raw-loader!./_platform-components/script-30-git-url/command.sh';
import RenderOutput from '!!raw-loader!./_platform-components/script-30-git-url/output.txt';
<Tabs groupId="render-git-url">
<TabItem value="command" label="Command">
<CodeBlock language="bash">{RenderCommand}</CodeBlock>
</TabItem>
<TabItem value="output" label="Output">
<CodeBlock language="txt">{RenderOutput}</CodeBlock>
</TabItem>
</Tabs>
Holos reconfigures the Application resources for all components in the platform
to point to your git url. Take a look at the diff.
import DiffCommand from '!!raw-loader!./_platform-components/script-30-git-url/diff.sh';
import DiffOutput from '!!raw-loader!./_platform-components/script-30-git-url/diff.patch';
<Tabs groupId="git-diff">
<TabItem value="command" label="Command">
<CodeBlock language="bash">{DiffCommand}</CodeBlock>
</TabItem>
<TabItem value="output" label="Output">
<CodeBlock language="diff">{DiffOutput}</CodeBlock>
</TabItem>
</Tabs>
Commit and push the changes.
import CommitCommand from '!!raw-loader!./_platform-components/script-30-git-url/commit.sh';
import CommitOutput from '!!raw-loader!./_platform-components/script-30-git-url/commit.txt';
<Tabs groupId="git-commit">
<TabItem value="command" label="Command">
<CodeBlock language="bash">{CommitCommand}</CodeBlock>
</TabItem>
<TabItem value="output" label="Output">
<CodeBlock language="txt">{CommitOutput}</CodeBlock>
</TabItem>
</Tabs>
<CodeBlock language="bash">git push</CodeBlock>
[kargo-demo]: https://github.com/holos-run/kargo-demo
[fork]: https://github.com/holos-run/kargo-demo/fork
[installed]: ../../tutorial/setup.mdx

View File

@@ -0,0 +1,38 @@
---
description: Progressive delivery for your Workloads.
sidebar_position: 200
---
# Workloads
{/*
Based on my experience with enterprise Kubernetes platforms, "Workloads" or
"Applications" are the two most common terms, with "Workloads" being more
technically precise and common in platform engineering circles.
Here's why:
1. "Workloads" is preferred because:
- It's the term Kubernetes itself uses (Deployments, StatefulSets etc. are "workload" resources)
- It encompasses both services and batch jobs
- It clearly distinguishes from platform infrastructure
- Major cloud providers (AWS, GCP, Azure) use this terminology
2. "Applications" is also common but has some drawbacks:
- Can be ambiguous whether it means a single service or a group of services
- Doesn't naturally include batch jobs or data processing
- More of a business/product term than a technical one
3. Less common terms:
- "Services" - Too specific, excludes jobs/tasks
- "Business Applications" - Too wordy
- "User Applications" - Ambiguous about which users
- "Customer Workloads" - Implies external customers
Looking at your question about "software my internal teams build for our
business", these are classic workloads - the business logic, services, and jobs
that run on top of the platform you provide.
So while both "Workloads" and "Applications" are acceptable, "Workloads" is the
more precise and commonly used technical term in platform engineering contexts.
*/}

View File

@@ -4,4 +4,4 @@ cmp stdout $WORK/output.txt
-- command.sh --
holos --version
-- output.txt --
0.102.5
0.103.0

View File

@@ -13,23 +13,23 @@ exec git config --global init.defaultBranch main
exec rm -rf holos-helm-values-tutorial
# Create and change to the tutorial directory, and then initialize the Holos platform
exec bash -c 'bash -euo pipefail mkdir.and.init.sh'
exec bash -c 'bash -euo pipefail mkdir-and-init.sh'
cd holos-helm-values-tutorial
# Git init and create the component directories
exec bash -c 'bash -euo pipefail $WORK/git.init.sh'
exec bash -c 'bash -euo pipefail $WORK/mkdir.components.sh'
exec bash -c 'bash -euo pipefail $WORK/git-init.sh'
exec bash -c 'bash -euo pipefail $WORK/mkdir-components.sh'
# Combine and execute the multiline prometheus/blackbox component header/body/trailer files
exec cat $WORK/prometheus.component.header.sh ../prometheus.component.body.cue ../eof.trailer.sh
exec cat $WORK/prometheus-component-header.sh ../prometheus-component-body.cue ../eof-trailer.sh
stdin stdout
exec bash -xeuo pipefail
exec cat $WORK/blackbox.component.header.sh ../blackbox.component.body.cue ../eof.trailer.sh
exec cat $WORK/blackbox-component-header.sh ../blackbox-component-body.cue ../eof-trailer.sh
stdin stdout
exec bash -xeuo pipefail
# Combine and execute the multiline platform registration header/body/trailer files.
exec cat $WORK/register.components.header.sh ../register.components.body.cue ../eof.trailer.sh
exec cat $WORK/register-components-header.sh ../register-components-body.cue ../eof-trailer.sh
stdin stdout
exec bash -xeuo pipefail
@@ -39,34 +39,37 @@ exec bash -xeuo pipefail
# NOTE: The [net] condition will test whether external network access is available
[net] exec bash -c 'bash -euo pipefail $WORK/render.sh 2>&1'
[net] stdin stdout
exec $WORK/update.sh $WORK/register.components.output.txt
exec $WORK/update.sh $WORK/register-components-output.txt
# Commit and conditionally update the output file
exec bash -c 'bash -euo pipefail $WORK/register.components.git.commit.sh'
exec bash -c 'bash -euo pipefail $WORK/register-components-git-commit.sh'
stdin stdout
exec $WORK/update.sh $WORK/register.components.git.commit.output.txt
exec $WORK/update.sh $WORK/register-components-git-commit-output.txt
# Import values
exec bash -c 'bash -euo pipefail $WORK/import.prometheus.values.sh'
exec bash -c 'bash -euo pipefail $WORK/import.blackbox.values.sh'
exec bash -c 'bash -euo pipefail $WORK/import-prometheus-values.sh'
exec bash -c 'bash -euo pipefail $WORK/import-blackbox-values.sh'
# Render, update the output file, commit, and update the commit output file.
[net] exec bash -c 'bash -euo pipefail $WORK/render.sh 2>&1'
[net] stdin stdout
exec $WORK/update.sh $WORK/import.values.render.output.txt
exec bash -c 'bash -euo pipefail $WORK/import.values.git.commit.sh'
exec $WORK/update.sh $WORK/import-values-render-output.txt
exec bash -c 'bash -euo pipefail $WORK/import-values-git-commit.sh'
stdin stdout
exec $WORK/update.sh $WORK/import.values.git.output.txt
exec $WORK/update.sh $WORK/import-values-git-output.txt
# Create the common configuration path
exec bash -c 'bash -euo pipefail $WORK/mkdir-common-config.sh'
# Combine and execute the common configuration header/body/trailer to write the cue file.
exec cat $WORK/blackbox.common.config.header.sh ../blackbox.common.config.body.cue ../eof.trailer.sh
exec cat $WORK/blackbox-common-config-header.sh ../blackbox-common-config-body.cue ../eof-trailer.sh
stdin stdout
exec bash -xeuo pipefail
# Git commit blackbox common config
exec bash -c 'bash -euo pipefail $WORK/blackbox.common.config.git.commit.sh'
exec bash -c 'bash -euo pipefail $WORK/blackbox-common-config-git-commit.sh'
stdin stdout
exec $WORK/update.sh $WORK/blackbox.common.config.git.output.txt
exec $WORK/update.sh $WORK/blackbox-common-config-git-output.txt
# Patch the common config values file and write to output file.
#
@@ -74,30 +77,30 @@ exec $WORK/update.sh $WORK/blackbox.common.config.git.output.txt
# within the same directory, but it actually lives one directory up in the
# testscript $WORK dir.
exec ln -s $WORK/values.patch values.patch
exec bash -c 'bash -euo pipefail $WORK/common.config.patch.sh'
exec bash -c 'bash -euo pipefail $WORK/common-config-patch.sh'
stdin stdout
exec $WORK/update.sh $WORK/common.config.patch.txt
exec $WORK/update.sh $WORK/common-config-patch.txt
# Remove patch and commit changes
exec bash -c 'bash -euo pipefail $WORK/common.config.rm.sh'
exec bash -c 'bash -euo pipefail $WORK/common.config.git.sh'
exec bash -c 'bash -euo pipefail $WORK/common-config-rm.sh'
exec bash -c 'bash -euo pipefail $WORK/common-config-git.sh'
stdin stdout
exec $WORK/update.sh $WORK/common.config.git.output.txt
exec $WORK/update.sh $WORK/common-config-git-output.txt
# Final render and update of output file.
[net] exec bash -c 'bash -euo pipefail $WORK/render.sh 2>&1'
[net] stdin stdout
exec $WORK/update.sh $WORK/reviewing.changes.git.output.txt
exec $WORK/update.sh $WORK/reviewing-changes-git-output.txt
# Git diff and write to output file.
exec bash -c 'bash -euo pipefail $WORK/git.diff.sh'
exec bash -c 'bash -euo pipefail $WORK/git-diff.sh'
stdin stdout
exec $WORK/update.sh $WORK/git.diff
# Final commit and write to output file
exec bash -c 'bash -euo pipefail $WORK/reviewing.changes.git.commit.sh'
exec bash -c 'bash -euo pipefail $WORK/reviewing-changes-git-commit.sh'
stdin stdout
exec $WORK/update.sh $WORK/reviewing.changes.git.output.txt
exec $WORK/update.sh $WORK/reviewing-changes-git-output.txt
# Clean up the tutorial directory and tmp $HOME directory
cd $WORK
@@ -109,17 +112,17 @@ exec rm -rf $HOME
set -euo pipefail
[[ -s "$1" ]] && [[ -z "${HOLOS_UPDATE_SCRIPTS:-}" ]] && exit 0
cat > "$1"
-- mkdir.and.init.sh --
-- mkdir-and-init.sh --
mkdir holos-helm-values-tutorial
cd holos-helm-values-tutorial
holos init platform v1alpha5
-- git.init.sh --
-- git-init.sh --
git init . && git add . && git commit -m "initial commit"
-- mkdir.components.sh --
-- mkdir-components.sh --
mkdir -p components/prometheus components/blackbox
-- prometheus.component.header.sh --
-- prometheus-component-header.sh --
cat <<EOF > components/prometheus/prometheus.cue
-- prometheus.component.body.cue --
-- prometheus-component-body.cue --
package holos
// Produce a helm chart build plan.
@@ -135,11 +138,11 @@ Helm: #Helm & {
}
}
}
-- eof.trailer.sh --
-- eof-trailer.sh --
EOF
-- blackbox.component.header.sh --
-- blackbox-component-header.sh --
cat <<EOF > components/blackbox/blackbox.cue
-- blackbox.component.body.cue --
-- blackbox-component-body.cue --
package holos
// Produce a helm chart build plan.
@@ -155,9 +158,9 @@ Helm: #Helm & {
}
}
}
-- register.components.header.sh --
-- register-components-header.sh --
cat <<EOF > platform/prometheus.cue
-- register.components.body.cue --
-- register-components-body.cue --
package holos
Platform: Components: {
@@ -172,15 +175,15 @@ Platform: Components: {
}
-- render.sh --
holos render platform
-- register.components.output.txt --
-- register-components-output.txt --
cached prometheus-blackbox-exporter 9.0.1
rendered blackbox in 3.825430417s
cached prometheus 25.27.0
rendered prometheus in 4.840089667s
rendered platform in 4.840137792s
-- register.components.git.commit.sh --
-- register-components-git-commit.sh --
git add . && git commit -m 'add blackbox and prometheus'
-- register.components.git.commit.output.txt --
-- register-components-git-commit-output.txt --
[main b5df111] add blackbox and prometheus
5 files changed, 1550 insertions(+)
create mode 100644 components/blackbox/blackbox.cue
@@ -188,33 +191,35 @@ git add . && git commit -m 'add blackbox and prometheus'
create mode 100644 deploy/components/blackbox/blackbox.gen.yaml
create mode 100644 deploy/components/prometheus/prometheus.gen.yaml
create mode 100644 platform/prometheus.cue
-- import.prometheus.values.sh --
-- import-prometheus-values.sh --
holos cue import \
--package holos \
--path 'Helm: Values:' \
--outfile components/prometheus/values.cue \
components/prometheus/vendor/25.27.0/prometheus/values.yaml
-- import.blackbox.values.sh --
-- import-blackbox-values.sh --
holos cue import \
--package holos \
--path 'Helm: Values:' \
--outfile components/blackbox/values.cue \
components/blackbox/vendor/9.0.1/prometheus-blackbox-exporter/values.yaml
-- import.values.render.output.txt --
-- import-values-render-output.txt --
rendered blackbox in 365.936792ms
rendered prometheus in 371.855875ms
rendered platform in 372.109916ms
-- import.values.git.commit.sh --
-- import-values-git-commit.sh --
git add . && git commit -m 'import values'
-- import.values.git.output.txt --
-- import-values-git-output.txt --
[main 52e90ea] import values
2 files changed, 1815 insertions(+)
create mode 100644 components/blackbox/values.cue
create mode 100644 components/prometheus/values.cue
-- blackbox.common.config.header.sh --
cat <<EOF > components/blackbox.cue
-- blackbox.common.config.body.cue --
package holos
-- mkdir-common-config.sh --
mkdir -p config/prometheus
-- blackbox-common-config-header.sh --
cat <<EOF > config/prometheus/blackbox.cue
-- blackbox-common-config-body.cue --
package prometheus
// Schema Definition
#Blackbox: {
@@ -225,65 +230,77 @@ package holos
}
// Concrete values must validate against the schema.
Blackbox: #Blackbox & {
blackbox: #Blackbox & {
host: "blackbox"
port: 9115
}
-- blackbox.common.config.git.commit.sh --
-- blackbox-common-config-git-commit.sh --
git add . && git commit -m 'add blackbox configuration'
-- blackbox.common.config.git.output.txt --
-- blackbox-common-config-git-output.txt --
[main 1adcd08] add blackbox configuration
1 file changed, 15 insertions(+)
create mode 100644 components/blackbox.cue
-- common.config.patch.sh --
-- common-config-patch.sh --
patch -p1 < values.patch
-- values.patch --
--- a/components/blackbox/values.cue
+++ b/components/blackbox/values.cue
@@ -1,6 +1,8 @@
@@ -1,6 +1,11 @@
package holos
+// Import common blackbox configuration
+import "holos.example/config/prometheus"
+
Helm: Values: {
+ fullnameOverride: Blackbox.host
+ fullnameOverride: prometheus.blackbox.host
+
global: {
//# Global image registry to use if it needs to be overriden for some specific use cases (e.g local registries, custom images, ...)
//#
@@ -192,7 +194,7 @@ Helm: Values: {
@@ -192,7 +197,7 @@ Helm: Values: {
annotations: {}
labels: {}
type: "ClusterIP"
- port: 9115
+ port: Blackbox.port
+ port: prometheus.blackbox.port
ipDualStack: {
enabled: false
ipFamilies: ["IPv6", "IPv4"]
--- a/components/prometheus/values.cue
+++ b/components/prometheus/values.cue
@@ -1083,7 +1083,7 @@ Helm: Values: {
@@ -1,5 +1,8 @@
package holos
+// Import common blackbox configuration
+import "holos.example/config/prometheus"
+
Helm: Values: {
// yaml-language-server: $schema=values.schema.json
// Default values for prometheus.
@@ -1083,7 +1086,7 @@ Helm: Values: {
target_label: "__param_target"
}, {
target_label: "__address__"
- replacement: "blackbox"
+ replacement: "\(Blackbox.host):\(Blackbox.port)"
+ replacement: "\(prometheus.blackbox.host):\(prometheus.blackbox.port)"
}, {
source_labels: ["__param_target"]
target_label: "instance"
-- common.config.patch.txt --
-- common-config-patch.txt --
patching file 'components/blackbox/values.cue'
patching file 'components/prometheus/values.cue'
-- common.config.rm.sh --
-- common-config-rm.sh --
rm values.patch
-- common.config.git.sh --
-- common-config-git.sh --
git add . && git commit -m 'integrate blackbox and prometheus together'
-- common.config.git.output.txt --
-- common-config-git-output.txt --
[main 4221803] integrate blackbox and prometheus together
2 files changed, 4 insertions(+), 2 deletions(-)
-- reviewing.changes.render.output.txt --
-- reviewing-changes-render-output.txt --
rendered blackbox in 374.810666ms
rendered prometheus in 382.899334ms
rendered platform in 383.270625ms
-- git.diff.sh --
-- git-diff.sh --
git diff
-- git.diff --
diff --git a/deploy/components/blackbox/blackbox.gen.yaml b/deploy/components/blackbox/blackbox.gen.yaml
@@ -350,8 +367,8 @@ index 9e02bce..ab638f0 100644
target_label: __address__
- source_labels:
- __param_target
-- reviewing.changes.git.commit.sh --
-- reviewing-changes-git-commit.sh --
git add . && git commit -m 'render integrated blackbox and prometheus manifests'
-- reviewing.changes.git.output.txt --
-- reviewing-changes-git-output.txt --
[main 67efe0d] render integrated blackbox and prometheus manifests
2 files changed, 7 insertions(+), 7 deletions(-)

View File

@@ -0,0 +1 @@
holos --version

View File

@@ -0,0 +1 @@
0.102.5

View File

@@ -1,4 +1,4 @@
package holos
package prometheus
// Schema Definition
#Blackbox: {
@@ -9,7 +9,7 @@ package holos
}
// Concrete values must validate against the schema.
Blackbox: #Blackbox & {
blackbox: #Blackbox & {
host: "blackbox"
port: 9115
}

View File

@@ -0,0 +1,3 @@
[main e1c6859] add blackbox configuration
1 file changed, 15 insertions(+)
create mode 100644 config/prometheus/blackbox.cue

View File

@@ -0,0 +1 @@
cat <<EOF > config/prometheus/blackbox.cue

View File

@@ -0,0 +1,3 @@
[main 668706a] integrate blackbox and prometheus together
3 files changed, 1348 insertions(+), 2 deletions(-)
create mode 100644 components/prometheus/values.cue.orig

View File

@@ -0,0 +1 @@
EOF

View File

@@ -0,0 +1 @@
git diff

View File

@@ -1,4 +1,4 @@
[main d8046af] import values
[main 7bc6772] import values
2 files changed, 1815 insertions(+)
create mode 100644 components/blackbox/values.cue
create mode 100644 components/prometheus/values.cue

View File

@@ -0,0 +1,3 @@
rendered blackbox in 146.654292ms
rendered prometheus in 178.845292ms
rendered platform in 178.9115ms

View File

@@ -0,0 +1 @@
mkdir -p config/prometheus

View File

@@ -1,4 +1,4 @@
[main 8971a74] add blackbox and prometheus
[main d144f24] add blackbox and prometheus
5 files changed, 1550 insertions(+)
create mode 100644 components/blackbox/blackbox.cue
create mode 100644 components/prometheus/prometheus.cue

View File

@@ -0,0 +1,3 @@
rendered blackbox in 1.794799666s
rendered prometheus in 1.835097625s
rendered platform in 1.835185792s

View File

@@ -0,0 +1,2 @@
[main 1399737] render integrated blackbox and prometheus manifests
2 files changed, 7 insertions(+), 7 deletions(-)

View File

@@ -0,0 +1,4 @@
#! /bin/bash
set -euo pipefail
[[ -s "$1" ]] && [[ -z "${HOLOS_UPDATE_SCRIPTS:-}" ]] && exit 0
cat > "$1"

View File

@@ -1,31 +1,43 @@
--- a/components/blackbox/values.cue
+++ b/components/blackbox/values.cue
@@ -1,6 +1,8 @@
@@ -1,6 +1,11 @@
package holos
+// Import common blackbox configuration
+import "holos.example/config/prometheus"
+
Helm: Values: {
+ fullnameOverride: Blackbox.host
+ fullnameOverride: prometheus.blackbox.host
+
global: {
//# Global image registry to use if it needs to be overriden for some specific use cases (e.g local registries, custom images, ...)
//#
@@ -192,7 +194,7 @@ Helm: Values: {
@@ -192,7 +197,7 @@ Helm: Values: {
annotations: {}
labels: {}
type: "ClusterIP"
- port: 9115
+ port: Blackbox.port
+ port: prometheus.blackbox.port
ipDualStack: {
enabled: false
ipFamilies: ["IPv6", "IPv4"]
--- a/components/prometheus/values.cue
+++ b/components/prometheus/values.cue
@@ -1083,7 +1083,7 @@ Helm: Values: {
@@ -1,5 +1,8 @@
package holos
+// Import common blackbox configuration
+import "holos.example/config/prometheus"
+
Helm: Values: {
// yaml-language-server: $schema=values.schema.json
// Default values for prometheus.
@@ -1083,7 +1086,7 @@ Helm: Values: {
target_label: "__param_target"
}, {
target_label: "__address__"
- replacement: "blackbox"
+ replacement: "\(Blackbox.host):\(Blackbox.port)"
+ replacement: "\(prometheus.blackbox.host):\(prometheus.blackbox.port)"
}, {
source_labels: ["__param_target"]
target_label: "instance"

View File

@@ -47,8 +47,8 @@ resource.
Ensure you have a current version of `holos` installed. This document was
tested with the following version.
import HolosVersionCommand from '!!raw-loader!../_markdown-tests/script-01-holos-version/command.sh';
import HolosVersionOutput from '!!raw-loader!../_markdown-tests/script-01-holos-version/output.txt';
import HolosVersionCommand from '!!raw-loader!./_helm-values/script-01-holos-version/command.sh';
import HolosVersionOutput from '!!raw-loader!./_helm-values/script-01-holos-version/output.txt';
<CodeBlock language="bash">{HolosVersionCommand}</CodeBlock>
<CodeBlock language="txt">{HolosVersionOutput}</CodeBlock>
@@ -58,13 +58,13 @@ import HolosVersionOutput from '!!raw-loader!../_markdown-tests/script-01-holos-
Use `holos` to generate a minimal platform directory structure. First, create
and navigate into a blank directory, then use the `holos init platform` command:
import MkdirAndInit from '!!raw-loader!../_markdown-tests/script-02-helm-values/mkdir.and.init.sh';
import MkdirAndInit from '!!raw-loader!./_helm-values/script-02-helm-values/mkdir-and-init.sh';
<CodeBlock language="bash">{MkdirAndInit}</CodeBlock>
Make an initial commit to track changes:
import GitInit from '!!raw-loader!../_markdown-tests/script-02-helm-values/git.init.sh';
import GitInit from '!!raw-loader!./_helm-values/script-02-helm-values/git-init.sh';
<CodeBlock language="bash">{GitInit}</CodeBlock>
@@ -73,12 +73,12 @@ import GitInit from '!!raw-loader!../_markdown-tests/script-02-helm-values/git.i
Create the `prometheus` and `blackbox` component directories, then add each of
the following file contents.
import MkdirComponents from '!!raw-loader!../_markdown-tests/script-02-helm-values/mkdir.components.sh';
import PrometheusComponentHeader from '!!raw-loader!../_markdown-tests/script-02-helm-values/prometheus.component.header.sh';
import PrometheusComponentBody from '!!raw-loader!../_markdown-tests/script-02-helm-values/prometheus.component.body.cue';
import BlackboxComponentHeader from '!!raw-loader!../_markdown-tests/script-02-helm-values/blackbox.component.header.sh';
import BlackboxComponentBody from '!!raw-loader!../_markdown-tests/script-02-helm-values/blackbox.component.body.cue';
import EofTrailer from '!!raw-loader!../_markdown-tests/script-02-helm-values/eof.trailer.sh';
import MkdirComponents from '!!raw-loader!./_helm-values/script-02-helm-values/mkdir-components.sh';
import PrometheusComponentHeader from '!!raw-loader!./_helm-values/script-02-helm-values/prometheus-component-header.sh';
import PrometheusComponentBody from '!!raw-loader!./_helm-values/script-02-helm-values/prometheus-component-body.cue';
import BlackboxComponentHeader from '!!raw-loader!./_helm-values/script-02-helm-values/blackbox-component-header.sh';
import BlackboxComponentBody from '!!raw-loader!./_helm-values/script-02-helm-values/blackbox-component-body.cue';
import EofTrailer from '!!raw-loader!./_helm-values/script-02-helm-values/eof-trailer.sh';
<CodeBlock language="bash">{MkdirComponents}</CodeBlock>
@@ -100,8 +100,8 @@ import EofTrailer from '!!raw-loader!../_markdown-tests/script-02-helm-values/eo
Register the components with the platform by adding the following file to the platform directory.
import RegisterComponentsHeader from '!!raw-loader!../_markdown-tests/script-02-helm-values/register.components.header.sh';
import RegisterComponentsBody from '!!raw-loader!../_markdown-tests/script-02-helm-values/register.components.body.cue';
import RegisterComponentsHeader from '!!raw-loader!./_helm-values/script-02-helm-values/register-components-header.sh';
import RegisterComponentsBody from '!!raw-loader!./_helm-values/script-02-helm-values/register-components-body.cue';
<CodeBlock language="bash">{RegisterComponentsHeader}</CodeBlock>
<CodeBlock language="cue" showLineNumbers>{RegisterComponentsBody}</CodeBlock>
@@ -109,8 +109,8 @@ import RegisterComponentsBody from '!!raw-loader!../_markdown-tests/script-02-he
Render the platform.
import RenderCommand from '!!raw-loader!../_markdown-tests/script-02-helm-values/render.sh';
import RegisterComponentsRenderOutput from '!!raw-loader!../_markdown-tests/script-02-helm-values/register.components.output.txt';
import RenderCommand from '!!raw-loader!./_helm-values/script-02-helm-values/render.sh';
import RegisterComponentsRenderOutput from '!!raw-loader!./_helm-values/script-02-helm-values/register-components-output.txt';
<Tabs groupId="33D6BFED-62D8-4A42-A26A-F3121D57C4E5">
<TabItem value="command" label="Command">
@@ -123,8 +123,8 @@ import RegisterComponentsRenderOutput from '!!raw-loader!../_markdown-tests/scri
Commit the results.
import GitCommitRegisterComponents from '!!raw-loader!../_markdown-tests/script-02-helm-values/register.components.git.commit.sh';
import RegisterComponentsGitOutput from '!!raw-loader!../_markdown-tests/script-02-helm-values/register.components.git.commit.output.txt';
import GitCommitRegisterComponents from '!!raw-loader!./_helm-values/script-02-helm-values/register-components-git-commit.sh';
import RegisterComponentsGitOutput from '!!raw-loader!./_helm-values/script-02-helm-values/register-components-git-commit-output.txt';
<Tabs groupId="446CC550-A634-45C0-BEC7-992E5C56D4FA">
<TabItem value="command" label="Command">
@@ -140,8 +140,8 @@ import RegisterComponentsGitOutput from '!!raw-loader!../_markdown-tests/script-
Holos renders Helm charts with their default values. We can import these default
values into CUE to work with them as structured data instead of text markup.
import ImportPrometheusValues from '!!raw-loader!../_markdown-tests/script-02-helm-values/import.prometheus.values.sh';
import ImportBlackboxValues from '!!raw-loader!../_markdown-tests/script-02-helm-values/import.blackbox.values.sh';
import ImportPrometheusValues from '!!raw-loader!./_helm-values/script-02-helm-values/import-prometheus-values.sh';
import ImportBlackboxValues from '!!raw-loader!./_helm-values/script-02-helm-values/import-blackbox-values.sh';
<CodeBlock language="bash">{ImportPrometheusValues}</CodeBlock>
<CodeBlock language="bash">{ImportBlackboxValues}</CodeBlock>
@@ -155,9 +155,9 @@ CUE unifies `values.cue` with the other `\*.cue` files in the same directory.
Render the platform using `holos render platform` and commit the results.
import ImportValuesRenderOutput from '!!raw-loader!../_markdown-tests/script-02-helm-values/import.values.render.output.txt';
import ImportValuesGitCommit from '!!raw-loader!../_markdown-tests/script-02-helm-values/import.values.git.commit.sh';
import ImportValuesGitOutput from '!!raw-loader!../_markdown-tests/script-02-helm-values/import.values.git.output.txt';
import ImportValuesRenderOutput from '!!raw-loader!./_helm-values/script-02-helm-values/import-values-render-output.txt';
import ImportValuesGitCommit from '!!raw-loader!./_helm-values/script-02-helm-values/import-values-git-commit.sh';
import ImportValuesGitOutput from '!!raw-loader!./_helm-values/script-02-helm-values/import-values-git-output.txt';
<Tabs groupId="BDDCD65A-2E9D-4BA6-AAE2-8099494D5E4B">
<TabItem value="command" label="Command">
@@ -180,12 +180,15 @@ import ImportValuesGitOutput from '!!raw-loader!../_markdown-tests/script-02-hel
### Managing Common Configuration
To manage shared configuration for both Helm charts, define a structure that
holds the common configuration values. Place this configuration in the
`components` directory to ensure it is accessible to all components.
holds the common configuration values. Create a `config` directory at the root
of the repository, and place the configuration file there to ensure it is
accessible to all components.
import BlackboxCommonConfigHeader from '!!raw-loader!../_markdown-tests/script-02-helm-values/blackbox.common.config.header.sh';
import BlackboxCommonConfigBody from '!!raw-loader!../_markdown-tests/script-02-helm-values/blackbox.common.config.body.cue';
import BlackboxCommonConfigMkdir from '!!raw-loader!./_helm-values/script-02-helm-values/mkdir-common-config.sh';
import BlackboxCommonConfigHeader from '!!raw-loader!./_helm-values/script-02-helm-values/blackbox-common-config-header.sh';
import BlackboxCommonConfigBody from '!!raw-loader!./_helm-values/script-02-helm-values/blackbox-common-config-body.cue';
<CodeBlock language="bash">{BlackboxCommonConfigMkdir}</CodeBlock>
<CodeBlock language="bash">{BlackboxCommonConfigHeader}</CodeBlock>
<CodeBlock language="cue" showLineNumbers>{BlackboxCommonConfigBody}</CodeBlock>
<CodeBlock language="bash" showLineNumbers>{EofTrailer}</CodeBlock>
@@ -199,8 +202,8 @@ languages with only type checking.
Add and commit the configuration.
import BlackboxCommonConfigGit from '!!raw-loader!../_markdown-tests/script-02-helm-values/blackbox.common.config.git.commit.sh';
import BlackboxCommonConfigGitOutput from '!!raw-loader!../_markdown-tests/script-02-helm-values/blackbox.common.config.git.output.txt';
import BlackboxCommonConfigGit from '!!raw-loader!./_helm-values/script-02-helm-values/blackbox-common-config-git-commit.sh';
import BlackboxCommonConfigGitOutput from '!!raw-loader!./_helm-values/script-02-helm-values/blackbox-common-config-git-output.txt';
<Tabs groupId="A738CCE4-F0C6-4CC7-BE1F-2B92F0E86FDC">
<TabItem value="command" label="Command">
@@ -214,14 +217,16 @@ import BlackboxCommonConfigGitOutput from '!!raw-loader!../_markdown-tests/scrip
### Using Common Configuration Across Components
Referencing common configuration across multiple components is straightforward
and reliable using Holos and CUE.
and reliable using Holos and CUE. Configuration can be imported where necessary
following [CUE module standards], which are similar to Golang.
To apply the common configuration, patch the two `values.cue` files, or manually
edit them to reference `Blackbox.host` and `Blackbox.port`.
edit them to import the configuration and reference `prometheus.blackbox.host`
and `prometheus.blackbox.port`.
import CommonConfigPatchCommand from '!!raw-loader!../_markdown-tests/script-02-helm-values/common.config.patch.sh';
import CommonConfigPatchDiff from '!!raw-loader!../_markdown-tests/script-02-helm-values/values.patch';
import CommonConfigPatchOutput from '!!raw-loader!../_markdown-tests/script-02-helm-values/common.config.patch.txt';
import CommonConfigPatchCommand from '!!raw-loader!./_helm-values/script-02-helm-values/common-config-patch.sh';
import CommonConfigPatchDiff from '!!raw-loader!./_helm-values/script-02-helm-values/values.patch';
import CommonConfigPatchOutput from '!!raw-loader!./_helm-values/script-02-helm-values/common-config-patch.txt';
<Tabs groupId="5FFCE892-B8D4-4F5B-B2E2-39EC9E9F87A4">
<TabItem value="command" label="Command">
@@ -242,9 +247,9 @@ safely and easily.
Remove the patch file, then commit the changes.
import CommonConfigPatchRm from '!!raw-loader!../_markdown-tests/script-02-helm-values/common.config.rm.sh';
import CommonConfigPatchGitCommit from '!!raw-loader!../_markdown-tests/script-02-helm-values/common.config.git.sh';
import CommonConfigPatchGitCommitOutput from '!!raw-loader!../_markdown-tests/script-02-helm-values/common.config.git.output.txt';
import CommonConfigPatchRm from '!!raw-loader!./_helm-values/script-02-helm-values/common-config-rm.sh';
import CommonConfigPatchGitCommit from '!!raw-loader!./_helm-values/script-02-helm-values/common-config-git.sh';
import CommonConfigPatchGitCommitOutput from '!!raw-loader!./_helm-values/script-02-helm-values/common-config-git-output.txt';
<Tabs groupId="6498B00E-FADA-4EB2-885C-808F1D22E04D">
<TabItem value="command" label="Command">
@@ -261,7 +266,7 @@ import CommonConfigPatchGitCommitOutput from '!!raw-loader!../_markdown-tests/sc
Holos makes it easy to view and review platform-wide changes. Render the
platform to observe how both Prometheus and Blackbox update in sync.
import ReviewingChangesRenderOutput from '!!raw-loader!../_markdown-tests/script-02-helm-values/reviewing.changes.render.output.txt';
import ReviewingChangesRenderOutput from '!!raw-loader!./_helm-values/script-02-helm-values/reviewing-changes-render-output.txt';
<Tabs groupId="E7F6D8B1-22FA-4075-9B44-D9F2815FE0D3">
<TabItem value="command" label="Command">
@@ -274,8 +279,8 @@ import ReviewingChangesRenderOutput from '!!raw-loader!../_markdown-tests/script
Changes are easily visible in version control.
import GitDiffCommand from '!!raw-loader!../_markdown-tests/script-02-helm-values/git.diff.sh';
import GitDiff from '!!raw-loader!../_markdown-tests/script-02-helm-values/git.diff';
import GitDiffCommand from '!!raw-loader!./_helm-values/script-02-helm-values/git-diff.sh';
import GitDiff from '!!raw-loader!./_helm-values/script-02-helm-values/git.diff';
<Tabs groupId="9789A0EF-24D4-4FB9-978A-3895C2778789">
<TabItem value="command" label="Command">
@@ -299,8 +304,8 @@ Blackbox host or port will reconfigure both charts correctly.
Commit the changes and proceed to deploy them.
import ReviewingChangesGitCommit from '!!raw-loader!../_markdown-tests/script-02-helm-values/reviewing.changes.git.commit.sh';
import ReviewingChangesGitOutput from '!!raw-loader!../_markdown-tests/script-02-helm-values/reviewing.changes.git.output.txt';
import ReviewingChangesGitCommit from '!!raw-loader!./_helm-values/script-02-helm-values/reviewing-changes-git-commit.sh';
import ReviewingChangesGitOutput from '!!raw-loader!./_helm-values/script-02-helm-values/reviewing-changes-git-output.txt';
<Tabs groupId="F8C9A98D-DE1E-4EF6-92C1-017A9166F6C7">
<TabItem value="command" label="Command">
@@ -327,7 +332,7 @@ service endpoint.
[prometheus]: https://github.com/prometheus-community/helm-charts/tree/prometheus-25.27.0/charts/prometheus
[blackbox]: https://github.com/prometheus-community/helm-charts/tree/prometheus-blackbox-exporter-9.0.1/charts/prometheus-blackbox-exporter
[httpbin]: https://github.com/mccutchen/go-httpbin/tree/v2.15.0
[CUE module standards]: https://cuelang.org/docs/concept/modules-packages-instances/
[Config Schema]: #config-schema
[Technical Overview]: ./overview.mdx

View File

@@ -0,0 +1,87 @@
package main
import (
"os"
"path/filepath"
"runtime"
"slices"
"strings"
"testing"
"github.com/holos-run/holos/cmd"
"github.com/rogpeppe/go-internal/testscript"
cue "cuelang.org/go/cmd/cue/cmd"
)
func TestMain(m *testing.M) {
os.Exit(testscript.RunMain(m, map[string]func() int{
"holos": cmd.MakeMain(),
"cue": cue.Main,
}))
}
// Run these with go test -v to see the verbose names
func TestHelmValues(t *testing.T) {
t.Run("TestHelmValues", func(t *testing.T) {
// Get an ordered list of test script files.
dir := "_helm-values"
for _, file := range sortedTestScripts(t, filepath.Join(dir, "examples")) {
t.Run("examples", func(t *testing.T) {
runOneScript(t, dir, file)
})
}
})
}
func runOneScript(t *testing.T, dir string, file string) {
params := testscript.Params{
Dir: "",
Files: []string{file},
RequireExplicitExec: true,
RequireUniqueNames: false,
WorkdirRoot: filepath.Join(testDir(t), dir),
UpdateScripts: os.Getenv("HOLOS_UPDATE_SCRIPTS") != "",
Setup: func(env *testscript.Env) error {
// Needed for update.sh to determine if we need to update output files.
env.Setenv("HOLOS_UPDATE_SCRIPTS", os.Getenv("HOLOS_UPDATE_SCRIPTS"))
// Just like cmd/cue/cmd.TestScript, set up separate cache and config dirs per test.
env.Setenv("CUE_CACHE_DIR", filepath.Join(env.WorkDir, "tmp/cachedir"))
configDir := filepath.Join(env.WorkDir, "tmp/configdir")
env.Setenv("CUE_CONFIG_DIR", configDir)
return nil
},
}
testscript.Run(t, params)
}
// testDir returns the path of the directory containing the go source file of
// the caller.
func testDir(t *testing.T) string {
_, file, _, ok := runtime.Caller(0)
if !ok {
t.Fatal("could not get runtime caller")
}
return filepath.Dir(file)
}
func sortedTestScripts(t *testing.T, dir string) (files []string) {
entries, err := os.ReadDir(dir)
if os.IsNotExist(err) {
// Continue to helpful error on len(files) == 0 below.
} else if err != nil {
t.Fatal(err)
}
for _, entry := range entries {
name := entry.Name()
if strings.HasSuffix(name, ".txtar") || strings.HasSuffix(name, ".txt") {
files = append(files, filepath.Join(dir, name))
}
}
if len(files) == 0 {
t.Fatalf("no txtar nor txt scripts found in dir %s", dir)
}
slices.Sort(files)
return files
}

View File

@@ -0,0 +1,6 @@
export default function GitHubLink({ repo, tree, path, children }: { repo: string, commit: string, path: string, children: React.ReactNode }) {
const href = `https://github.com/${repo}/tree/${tree}/${path}`
return (
<a href={href} target="_blank" rel="noopener noreferrer">{children}</a>
);
};

View File

@@ -22,8 +22,12 @@
/docs/comparison/ /docs/v1alpha5/topics/comparison/ 301
/docs/support /docs/v1alpha5/tutorial/overview/#getting-help 301
/docs/support/ /docs/v1alpha5/tutorial/overview/#getting-help 301
/docs/api/core /docs/v1alpha5/api/core/ 301
/docs/api/core/ /docs/v1alpha5/api/core/ 301
/docs/api/author /docs/v1alpha5/api/author/ 301
/docs/api/author/ /docs/v1alpha5/api/author/ 301
# Redirect to our own take on the pattern once we figure out what to call it.
# See: https://discord.com/channels/1299051862418395216/1299055980738383882/1327347525354524805
/blog/the-rendered-manifests-pattern https://akuity.io/blog/the-rendered-manifests-pattern 301
# without the s which I always forget
/blog/the-rendered-manifest-pattern https://akuity.io/blog/the-rendered-manifests-pattern 301

Binary file not shown.

After

Width:  |  Height:  |  Size: 510 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 462 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Some files were not shown because too many files have changed in this diff Show More