mirror of
https://github.com/holos-run/holos.git
synced 2026-03-20 01:04:59 +00:00
Compare commits
1 Commits
kubeslice
...
jeff/378-k
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
700c6975f1 |
2
.github/workflows/golangci-lint.yaml
vendored
2
.github/workflows/golangci-lint.yaml
vendored
@@ -27,4 +27,4 @@ jobs:
|
||||
- name: golangci-lint
|
||||
uses: golangci/golangci-lint-action@v6
|
||||
with:
|
||||
version: v1.64.5
|
||||
version: v1.60
|
||||
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -12,4 +12,3 @@ tmp/
|
||||
/holos-k3d/
|
||||
/holos-infra/
|
||||
node_modules/
|
||||
.tmp/
|
||||
|
||||
9
Makefile
9
Makefile
@@ -32,20 +32,17 @@ bump: bumppatch
|
||||
.PHONY: bumppatch
|
||||
bumppatch: ## Bump the patch version.
|
||||
scripts/bump patch
|
||||
HOLOS_UPDATE_SCRIPTS=1 scripts/test
|
||||
|
||||
.PHONY: bumpminor
|
||||
bumpminor: ## Bump the minor version.
|
||||
scripts/bump minor
|
||||
scripts/bump patch 0
|
||||
HOLOS_UPDATE_SCRIPTS=1 scripts/test
|
||||
|
||||
.PHONY: bumpmajor
|
||||
bumpmajor: ## Bump the major version.
|
||||
scripts/bump major
|
||||
scripts/bump minor 0
|
||||
scripts/bump patch 0
|
||||
HOLOS_UPDATE_SCRIPTS=1 scripts/test
|
||||
|
||||
.PHONY: show-version
|
||||
show-version: ## Print the full version.
|
||||
@@ -78,12 +75,6 @@ build: ## Build holos executable.
|
||||
@echo "GOPATH=${GOPATH}"
|
||||
go build -trimpath -o bin/$(BIN_NAME) -ldflags $(LD_FLAGS) $(REPO_PATH)/cmd/$(BIN_NAME)
|
||||
|
||||
.PHONY: debug
|
||||
debug: ## Build debug executable.
|
||||
@echo "building ${BIN_NAME}-debug ${VERSION}"
|
||||
@echo "GOPATH=${GOPATH}"
|
||||
go build -o bin/$(BIN_NAME)-debug $(REPO_PATH)/cmd/$(BIN_NAME)
|
||||
|
||||
linux: ## Build holos executable for tilt.
|
||||
@echo "building ${BIN_NAME}.linux ${VERSION}"
|
||||
@echo "GOPATH=${GOPATH}"
|
||||
|
||||
@@ -190,13 +190,11 @@ type AuthSource struct {
|
||||
// 1. [Kustomize] - Patch and transform the output from prior generators or
|
||||
// transformers. See [Introduction to Kustomize].
|
||||
// 2. [Join] - Concatenate multiple prior outputs into one output.
|
||||
// 3. [Slice] - Slice an artifact into multiple artifacts using [kubectl-slice].
|
||||
//
|
||||
// [Introduction to Kustomize]: https://kubectl.docs.kubernetes.io/guides/config_management/introduction/
|
||||
// [kubectl-slice]: https://github.com/patrickdappollonio/kubectl-slice
|
||||
type Transformer struct {
|
||||
// Kind represents the kind of transformer. Must be Kustomize, or Join.
|
||||
Kind string `json:"kind" yaml:"kind" cue:"\"Kustomize\" | \"Join\" | \"Slice\""`
|
||||
Kind string `json:"kind" yaml:"kind" cue:"\"Kustomize\" | \"Join\""`
|
||||
// Inputs represents the files to transform. The Output of prior Generators
|
||||
// and Transformers.
|
||||
Inputs []FilePath `json:"inputs" yaml:"inputs"`
|
||||
|
||||
@@ -11,11 +11,10 @@ import (
|
||||
)
|
||||
|
||||
func TestMain(m *testing.M) {
|
||||
holosMain := cmd.MakeMain()
|
||||
testscript.Main(m, map[string]func(){
|
||||
"holos": func() { os.Exit(holosMain()) },
|
||||
"cue": func() { os.Exit(cue.Main()) },
|
||||
})
|
||||
os.Exit(testscript.RunMain(m, map[string]func() int{
|
||||
"holos": cmd.MakeMain(),
|
||||
"cue": cue.Main,
|
||||
}))
|
||||
}
|
||||
|
||||
func TestGuides_v1alpha5(t *testing.T) {
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
# https://github.com/holos-run/holos/issues/330
|
||||
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
|
||||
stdout 'name: has-foo-v1beta1'
|
||||
stdout 'kubeVersion: v'
|
||||
cmp stdout want/helm-template.yaml
|
||||
exec holos render platform ./platform
|
||||
# When no capabilities are specified
|
||||
cmp deploy/components/capabilities/capabilities.gen.yaml want/when-no-capabilities-specified.yaml
|
||||
|
||||
@@ -31,6 +31,7 @@ spec:
|
||||
- kind: Resources
|
||||
output: resources.gen.yaml
|
||||
resources: {}
|
||||
validators: []
|
||||
transformers:
|
||||
- kind: Kustomize
|
||||
inputs:
|
||||
@@ -38,8 +39,7 @@ spec:
|
||||
output: components/no-name/no-name.gen.yaml
|
||||
kustomize:
|
||||
kustomization:
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- resources.gen.yaml
|
||||
validators: []
|
||||
kind: Kustomization
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
|
||||
@@ -464,12 +464,11 @@ Transformer combines multiple inputs from prior [Generator](<#Generator>) or [Tr
|
||||
|
||||
1. [Kustomize](<#Kustomize>) \- Patch and transform the output from prior generators or transformers. See [Introduction to Kustomize](<https://kubectl.docs.kubernetes.io/guides/config_management/introduction/>).
|
||||
2. [Join](<#Join>) \- Concatenate multiple prior outputs into one output.
|
||||
3. \[Slice\] \- Slice an artifact into multiple artifacts using [kubectl\\\-slice](<https://github.com/patrickdappollonio/kubectl-slice>).
|
||||
|
||||
```go
|
||||
type Transformer struct {
|
||||
// Kind represents the kind of transformer. Must be Kustomize, or Join.
|
||||
Kind string `json:"kind" yaml:"kind" cue:"\"Kustomize\" | \"Join\" | \"Slice\""`
|
||||
Kind string `json:"kind" yaml:"kind" cue:"\"Kustomize\" | \"Join\""`
|
||||
// Inputs represents the files to transform. The Output of prior Generators
|
||||
// and Transformers.
|
||||
Inputs []FilePath `json:"inputs" yaml:"inputs"`
|
||||
|
||||
@@ -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
|
||||
2
doc/md/topics/progressive-delivery/.gitignore
vendored
Normal file
2
doc/md/topics/progressive-delivery/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
kargo-demo/
|
||||
.tmp/
|
||||
@@ -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'...
|
||||
@@ -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
|
||||
@@ -1,7 +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.104.1
|
||||
0.102.3
|
||||
@@ -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
|
||||
@@ -0,0 +1,2 @@
|
||||
git clone https://github.com/${GH_USER}/kargo-demo.git
|
||||
cd kargo-demo
|
||||
@@ -0,0 +1 @@
|
||||
238fe0403c99eeea4f4fb764a88b780554048414
|
||||
@@ -0,0 +1 @@
|
||||
Cloning into 'kargo-demo'...
|
||||
@@ -0,0 +1 @@
|
||||
cert-manager.cue
|
||||
@@ -0,0 +1 @@
|
||||
stacks/security/components/cert-manager/cert-manager.cue
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
certmanager.cue
|
||||
@@ -0,0 +1 @@
|
||||
config/certmanager/certmanager.cue
|
||||
@@ -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]+$"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
stacks.cue
|
||||
@@ -0,0 +1 @@
|
||||
platform/stacks.cue
|
||||
@@ -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
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
security.cue
|
||||
@@ -0,0 +1 @@
|
||||
config/platform/security.cue
|
||||
@@ -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
|
||||
@@ -0,0 +1 @@
|
||||
0.102.3
|
||||
@@ -0,0 +1,4 @@
|
||||
@if(${GH_USER})
|
||||
package platform
|
||||
|
||||
organization: repoURL: "https://github.com/${GH_USER}/kargo-demo.git"
|
||||
@@ -0,0 +1,4 @@
|
||||
@if(jeffmccune)
|
||||
package platform
|
||||
|
||||
organization: repoURL: "https://github.com/jeffmccune/kargo-demo.git"
|
||||
@@ -0,0 +1 @@
|
||||
holos render platform -t ${GH_USER}
|
||||
@@ -0,0 +1,2 @@
|
||||
git add .
|
||||
git commit -m "Switch to $GH_USER fork"
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -0,0 +1 @@
|
||||
cat <<EOF > config/platform/organization_${GH_USER}.cue
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -1,7 +1,4 @@
|
||||
// Package doc contains helper functions to run doc examples as testscript
|
||||
// scripts to keep the docs up to date with the code at the head of the
|
||||
// repository.
|
||||
package doc
|
||||
package kargo
|
||||
|
||||
import (
|
||||
"os"
|
||||
@@ -18,14 +15,26 @@ import (
|
||||
)
|
||||
|
||||
func TestMain(m *testing.M) {
|
||||
holosMain := cmd.MakeMain()
|
||||
testscript.Main(m, map[string]func(){
|
||||
"holos": func() { os.Exit(holosMain()) },
|
||||
"cue": func() { os.Exit(cue.Main()) },
|
||||
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 TestKargo(t *testing.T) {
|
||||
t.Run("AddOnPromoter", func(t *testing.T) {
|
||||
// Get an ordered list of test script files.
|
||||
dir := "_platform-components"
|
||||
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) {
|
||||
func runOneScript(t *testing.T, dir string, file string) {
|
||||
params := testscript.Params{
|
||||
Dir: "",
|
||||
Files: []string{file},
|
||||
@@ -50,17 +59,14 @@ func RunOneScript(t *testing.T, dir string, file string) {
|
||||
// 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(2)
|
||||
_, file, _, ok := runtime.Caller(0)
|
||||
if !ok {
|
||||
t.Fatal("could not get runtime caller")
|
||||
}
|
||||
return filepath.Dir(file)
|
||||
}
|
||||
|
||||
// SortedTestScripts returns test scripts in sorted order for sequential
|
||||
// execution. Scripts are executed in parallel by default with testscript,
|
||||
// which is a problem for the docs that build on previous examples.
|
||||
func SortedTestScripts(t *testing.T, dir string) (files []string) {
|
||||
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.
|
||||
40
doc/md/topics/progressive-delivery/index.mdx
Normal file
40
doc/md/topics/progressive-delivery/index.mdx
Normal 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
|
||||
184
doc/md/topics/progressive-delivery/platform-components.mdx
Normal file
184
doc/md/topics/progressive-delivery/platform-components.mdx
Normal 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
|
||||
38
doc/md/topics/progressive-delivery/workloads.mdx
Normal file
38
doc/md/topics/progressive-delivery/workloads.mdx
Normal 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.
|
||||
*/}
|
||||
@@ -1,126 +0,0 @@
|
||||
# Set $HOME because:
|
||||
# - Helm uses it for temporary files
|
||||
# - Git requires it for setting author name/email globally
|
||||
env HOME=$WORK/.tmp
|
||||
chmod 0755 $WORK/update.sh
|
||||
|
||||
# Configure git author for testscript execution
|
||||
exec git config --global user.name 'Holos Docs'
|
||||
exec git config --global user.email 'hello@holos.run'
|
||||
exec git config --global init.defaultBranch main
|
||||
|
||||
# Remove the tutorial directory if it already exists
|
||||
exec rm -rf holos-tutorial
|
||||
|
||||
# Create and change to the tutorial directory, and then initialize the Holos platform
|
||||
exec bash -c 'bash -euo pipefail $WORK/mkdir-and-init.sh'
|
||||
cd holos-tutorial
|
||||
|
||||
# Create the components directory
|
||||
exec bash -c 'bash -euo pipefail $WORK/mkdir-components.sh'
|
||||
|
||||
# Combine and execute the multiline podinfo component header/body/trailer files
|
||||
exec cat $WORK/podinfo-component-header.sh ../podinfo-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-podinfo-header.sh ../register-podinfo-body.cue ../eof-trailer.sh
|
||||
stdin stdout
|
||||
exec bash -xeuo pipefail
|
||||
|
||||
# Render the platform, capture stdout, and use update.sh to gate whether the
|
||||
# output file should be updated.
|
||||
#
|
||||
# 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
|
||||
|
||||
# Generate and update the tree of the tutorial directory (omitting the cue.mod directory)
|
||||
exec bash -c 'bash -euo pipefail $WORK/tree.sh'
|
||||
stdin stdout
|
||||
exec $WORK/update.sh $WORK/tree.txt
|
||||
|
||||
# Split the rendered manifest into two separate files to display separately
|
||||
exec bash -c 'bash -euo pipefail $WORK/split-rendered-manifest.sh $WORK/holos-tutorial/deploy/components/podinfo/podinfo.gen.yaml $WORK'
|
||||
|
||||
# Grep for the Hello Holos message and write the output file
|
||||
exec bash -c 'bash -euo pipefail $WORK/grep-for-message.sh'
|
||||
stdin stdout
|
||||
exec $WORK/update.sh $WORK/grepped-output.txt
|
||||
|
||||
# Clean up the tutorial directory and tmp $HOME directory
|
||||
cd $WORK
|
||||
exec rm -rf holos-tutorial
|
||||
exec rm -rf $HOME
|
||||
|
||||
-- update.sh --
|
||||
#! /bin/bash
|
||||
set -euo pipefail
|
||||
[[ -s "$1" ]] && [[ -z "${HOLOS_UPDATE_SCRIPTS:-}" ]] && exit 0
|
||||
cat > "$1"
|
||||
-- mkdir-and-init.sh --
|
||||
mkdir holos-tutorial && cd holos-tutorial
|
||||
holos init platform v1alpha5
|
||||
-- tree.sh --
|
||||
tree -L 3 -I cue.mod .
|
||||
-- mkdir-components.sh --
|
||||
mkdir -p components/podinfo
|
||||
-- podinfo-component-header.sh --
|
||||
cat <<EOF > components/podinfo/podinfo.cue
|
||||
-- podinfo-component-body.cue --
|
||||
package holos
|
||||
|
||||
// Produce a helm chart build plan.
|
||||
holos: HelmChart.BuildPlan
|
||||
|
||||
HelmChart: #Helm & {
|
||||
Name: "podinfo"
|
||||
Chart: {
|
||||
version: "6.6.2"
|
||||
repository: {
|
||||
name: "podinfo"
|
||||
url: "https://stefanprodan.github.io/podinfo"
|
||||
}
|
||||
}
|
||||
// Holos marshals Values into values.yaml for Helm.
|
||||
Values: {
|
||||
// message is a string with a default value. @tag indicates a value may
|
||||
// be injected from the platform spec component parameters.
|
||||
ui: {
|
||||
message: string | *"Hello World" @tag(greeting, type=string)
|
||||
}
|
||||
}
|
||||
}
|
||||
-- eof-trailer.sh --
|
||||
EOF
|
||||
-- register-podinfo-header.sh --
|
||||
cat <<EOF > platform/podinfo.cue
|
||||
-- register-podinfo-body.cue --
|
||||
package holos
|
||||
|
||||
Platform: Components: podinfo: {
|
||||
name: "podinfo"
|
||||
path: "components/podinfo"
|
||||
// Inject a value into the component.
|
||||
parameters: greeting: "Hello Holos!"
|
||||
}
|
||||
-- render.sh --
|
||||
holos render platform
|
||||
-- register-components-output.txt --
|
||||
cached podinfo 6.6.2
|
||||
rendered podinfo in 1.938665041s
|
||||
rendered platform in 1.938759417s
|
||||
-- podinfo-rendered-path.sh --
|
||||
deploy/components/podinfo/podinfo.gen.yaml
|
||||
-- split-rendered-manifest.sh --
|
||||
awk 'BEGIN {RS="---"} NR==1 {print > "service.yaml"} NR==2 {print > "deployment.yaml"}' $1
|
||||
mv service.yaml $2/rendered-service.yaml
|
||||
mv deployment.yaml $2/rendered-deployment.yaml
|
||||
-- grep-for-message.sh --
|
||||
grep -B2 Hello deploy/components/podinfo/podinfo.gen.yaml
|
||||
-- grepped-output.txt --
|
||||
env:
|
||||
- name: PODINFO_UI_MESSAGE
|
||||
value: Hello Holos!
|
||||
@@ -1 +0,0 @@
|
||||
0.104.1
|
||||
@@ -1 +0,0 @@
|
||||
grep -B2 Hello deploy/components/podinfo/podinfo.gen.yaml
|
||||
@@ -1,3 +0,0 @@
|
||||
env:
|
||||
- name: PODINFO_UI_MESSAGE
|
||||
value: Hello Holos!
|
||||
@@ -1,2 +0,0 @@
|
||||
mkdir holos-tutorial && cd holos-tutorial
|
||||
holos init platform v1alpha5
|
||||
@@ -1 +0,0 @@
|
||||
mkdir -p components/podinfo
|
||||
@@ -1,23 +0,0 @@
|
||||
package holos
|
||||
|
||||
// Produce a helm chart build plan.
|
||||
holos: HelmChart.BuildPlan
|
||||
|
||||
HelmChart: #Helm & {
|
||||
Name: "podinfo"
|
||||
Chart: {
|
||||
version: "6.6.2"
|
||||
repository: {
|
||||
name: "podinfo"
|
||||
url: "https://stefanprodan.github.io/podinfo"
|
||||
}
|
||||
}
|
||||
// Holos marshals Values into values.yaml for Helm.
|
||||
Values: {
|
||||
// message is a string with a default value. @tag indicates a value may
|
||||
// be injected from the platform spec component parameters.
|
||||
ui: {
|
||||
message: string | *"Hello World" @tag(greeting, type=string)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
cat <<EOF > components/podinfo/podinfo.cue
|
||||
@@ -1 +0,0 @@
|
||||
deploy/components/podinfo/podinfo.gen.yaml
|
||||
@@ -1,2 +0,0 @@
|
||||
rendered podinfo in 312.472625ms
|
||||
rendered platform in 312.557375ms
|
||||
@@ -1,8 +0,0 @@
|
||||
package holos
|
||||
|
||||
Platform: Components: podinfo: {
|
||||
name: "podinfo"
|
||||
path: "components/podinfo"
|
||||
// Inject a value into the component.
|
||||
parameters: greeting: "Hello Holos!"
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
cat <<EOF > platform/podinfo.cue
|
||||
@@ -1 +0,0 @@
|
||||
holos render platform
|
||||
@@ -1,93 +0,0 @@
|
||||
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: podinfo
|
||||
app.kubernetes.io/version: 6.6.2
|
||||
helm.sh/chart: podinfo-6.6.2
|
||||
name: podinfo
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: podinfo
|
||||
strategy:
|
||||
rollingUpdate:
|
||||
maxUnavailable: 1
|
||||
type: RollingUpdate
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
prometheus.io/port: "9898"
|
||||
prometheus.io/scrape: "true"
|
||||
labels:
|
||||
app.kubernetes.io/name: podinfo
|
||||
spec:
|
||||
containers:
|
||||
- command:
|
||||
- ./podinfo
|
||||
- --port=9898
|
||||
- --cert-path=/data/cert
|
||||
- --port-metrics=9797
|
||||
- --grpc-port=9999
|
||||
- --grpc-service-name=podinfo
|
||||
- --level=info
|
||||
- --random-delay=false
|
||||
- --random-error=false
|
||||
env:
|
||||
- name: PODINFO_UI_MESSAGE
|
||||
value: Hello Holos!
|
||||
- name: PODINFO_UI_COLOR
|
||||
value: '#34577c'
|
||||
image: ghcr.io/stefanprodan/podinfo:6.6.2
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
exec:
|
||||
command:
|
||||
- podcli
|
||||
- check
|
||||
- http
|
||||
- localhost:9898/healthz
|
||||
failureThreshold: 3
|
||||
initialDelaySeconds: 1
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
name: podinfo
|
||||
ports:
|
||||
- containerPort: 9898
|
||||
name: http
|
||||
protocol: TCP
|
||||
- containerPort: 9797
|
||||
name: http-metrics
|
||||
protocol: TCP
|
||||
- containerPort: 9999
|
||||
name: grpc
|
||||
protocol: TCP
|
||||
readinessProbe:
|
||||
exec:
|
||||
command:
|
||||
- podcli
|
||||
- check
|
||||
- http
|
||||
- localhost:9898/readyz
|
||||
failureThreshold: 3
|
||||
initialDelaySeconds: 1
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
resources:
|
||||
limits: null
|
||||
requests:
|
||||
cpu: 1m
|
||||
memory: 16Mi
|
||||
volumeMounts:
|
||||
- mountPath: /data
|
||||
name: data
|
||||
terminationGracePeriodSeconds: 30
|
||||
volumes:
|
||||
- emptyDir: {}
|
||||
name: data
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: podinfo
|
||||
app.kubernetes.io/version: 6.6.2
|
||||
helm.sh/chart: podinfo-6.6.2
|
||||
name: podinfo
|
||||
spec:
|
||||
ports:
|
||||
- name: http
|
||||
port: 9898
|
||||
protocol: TCP
|
||||
targetPort: http
|
||||
- name: grpc
|
||||
port: 9999
|
||||
protocol: TCP
|
||||
targetPort: grpc
|
||||
selector:
|
||||
app.kubernetes.io/name: podinfo
|
||||
type: ClusterIP
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
awk 'BEGIN {RS="---"} NR==1 {print > "service.yaml"} NR==2 {print > "deployment.yaml"}' $1
|
||||
mv service.yaml $2/rendered-service.yaml
|
||||
mv deployment.yaml $2/rendered-deployment.yaml
|
||||
@@ -1 +0,0 @@
|
||||
tree -L 3 -I cue.mod .
|
||||
@@ -1,17 +0,0 @@
|
||||
.
|
||||
|-- components
|
||||
| `-- podinfo
|
||||
| |-- podinfo.cue
|
||||
| `-- vendor
|
||||
|-- deploy
|
||||
| `-- components
|
||||
| `-- podinfo
|
||||
|-- platform
|
||||
| |-- platform.gen.cue
|
||||
| `-- podinfo.cue
|
||||
|-- platform.metadata.json
|
||||
|-- resources.cue
|
||||
|-- schema.cue
|
||||
`-- tags.cue
|
||||
|
||||
8 directories, 7 files
|
||||
@@ -4,4 +4,4 @@ cmp stdout $WORK/output.txt
|
||||
-- command.sh --
|
||||
holos --version
|
||||
-- output.txt --
|
||||
0.104.1
|
||||
0.103.0
|
||||
|
||||
@@ -1 +1 @@
|
||||
0.104.1
|
||||
0.102.5
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
[main aa9749e] add blackbox configuration
|
||||
[main e1c6859] add blackbox configuration
|
||||
1 file changed, 15 insertions(+)
|
||||
create mode 100644 config/prometheus/blackbox.cue
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
[main 656d4ee] integrate blackbox and prometheus together
|
||||
[main 668706a] integrate blackbox and prometheus together
|
||||
3 files changed, 1348 insertions(+), 2 deletions(-)
|
||||
create mode 100644 components/prometheus/values.cue.orig
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[main 3788921] 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
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
rendered blackbox in 129.142708ms
|
||||
rendered prometheus in 165.260375ms
|
||||
rendered platform in 165.33ms
|
||||
rendered blackbox in 146.654292ms
|
||||
rendered prometheus in 178.845292ms
|
||||
rendered platform in 178.9115ms
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[main 654ae06] 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
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
rendered blackbox in 1.096663084s
|
||||
rendered prometheus in 1.151784875s
|
||||
rendered platform in 1.151839916s
|
||||
rendered blackbox in 1.794799666s
|
||||
rendered prometheus in 1.835097625s
|
||||
rendered platform in 1.835185792s
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
[main 9bc0126] render integrated blackbox and prometheus manifests
|
||||
[main 1399737] render integrated blackbox and prometheus manifests
|
||||
2 files changed, 7 insertions(+), 7 deletions(-)
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
exec bash -c 'bash -euo pipefail $WORK/command.sh 2>&1'
|
||||
cmp stdout $WORK/output.txt
|
||||
|
||||
-- command.sh --
|
||||
holos --version
|
||||
-- output.txt --
|
||||
0.104.1
|
||||
@@ -1,226 +0,0 @@
|
||||
# Set $HOME because:
|
||||
# - Helm uses it for temporary files
|
||||
# - Git requires it for setting author name/email globally
|
||||
env HOME=$WORK/.tmp
|
||||
chmod 0755 $WORK/update.sh
|
||||
|
||||
# Configure git author for testscript execution
|
||||
exec git config --global user.name 'Holos Docs'
|
||||
exec git config --global user.email 'hello@holos.run'
|
||||
exec git config --global init.defaultBranch main
|
||||
|
||||
# Remove the tutorial directory if it already exists
|
||||
exec rm -rf holos-kustomize-tutorial
|
||||
|
||||
# Create and change to the tutorial directory, and then initialize the Holos platform
|
||||
exec bash -c 'bash -euo pipefail $WORK/mkdir-and-init.sh'
|
||||
cd holos-kustomize-tutorial
|
||||
|
||||
# Initialize git
|
||||
exec bash -c 'bash -euo pipefail $WORK/git-init.sh'
|
||||
|
||||
# Create the component directory
|
||||
exec bash -c 'bash -euo pipefail $WORK/mkdir-component.sh'
|
||||
|
||||
# Combine and execute the multiline httpbin component header/body/trailer files
|
||||
exec cat $WORK/httpbin-component-header.sh $WORK/httpbin-component-body.cue $WORK/eof-trailer.sh
|
||||
stdin stdout
|
||||
exec bash -xeuo pipefail
|
||||
|
||||
# Combine and execute the multiline httpbin yaml header/body/trailer files
|
||||
exec cat $WORK/httpbin-yaml-header.sh $WORK/httpbin-yaml-body.yaml $WORK/eof-trailer.sh
|
||||
stdin stdout
|
||||
exec bash -xeuo pipefail
|
||||
|
||||
# Combine and execute the multiline registration header/body/trailer files
|
||||
exec cat $WORK/register-component-header.sh $WORK/register-component-body.cue $WORK/eof-trailer.sh
|
||||
stdin stdout
|
||||
exec bash -xeuo pipefail
|
||||
|
||||
# Render the platform, capture stdout, and use update.sh to gate whether the
|
||||
# output file should be updated.
|
||||
#
|
||||
# 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-component-output.txt
|
||||
|
||||
# Git commit and capture output
|
||||
exec bash -c 'bash -euo pipefail $WORK/git-commit-component.sh'
|
||||
stdin stdout
|
||||
exec $WORK/update.sh $WORK/git-commit-component-output.txt
|
||||
|
||||
# Export Build Plan and capture output
|
||||
exec bash -c 'bash -euo pipefail $WORK/cue-export.sh'
|
||||
stdin stdout
|
||||
exec $WORK/update.sh $WORK/buildplan-output.cue
|
||||
|
||||
# Combine and execute the multiline kustomize patch header/body/trailer files
|
||||
exec cat $WORK/httpbin-patch-header.sh $WORK/httpbin-patch-body.cue $WORK/eof-trailer.sh
|
||||
stdin stdout
|
||||
exec bash -xeuo pipefail
|
||||
|
||||
# Render the platform and capture output
|
||||
[net] exec bash -c 'bash -euo pipefail $WORK/render.sh 2>&1'
|
||||
[net] stdin stdout
|
||||
exec $WORK/update.sh $WORK/kustomize-patch-render-output.txt
|
||||
|
||||
# Git diff and capture output
|
||||
exec bash -c 'bash -euo pipefail $WORK/git-diff.sh'
|
||||
stdin stdout
|
||||
exec $WORK/update.sh $WORK/git.diff
|
||||
|
||||
# Git commit and capture output
|
||||
exec bash -c 'bash -euo pipefail $WORK/git-commit-final.sh'
|
||||
stdin stdout
|
||||
exec $WORK/update.sh $WORK/git-commit-final-output.txt
|
||||
|
||||
# Clean up the tutorial directory and tmp $HOME directory
|
||||
cd $WORK
|
||||
exec rm -rf holos-kustomize-tutorial
|
||||
exec rm -rf $HOME
|
||||
|
||||
-- update.sh --
|
||||
#! /bin/bash
|
||||
set -euo pipefail
|
||||
[[ -s "$1" ]] && [[ -z "${HOLOS_UPDATE_SCRIPTS:-}" ]] && exit 0
|
||||
cat > "$1"
|
||||
-- mkdir-and-init.sh --
|
||||
mkdir holos-kustomize-tutorial
|
||||
cd holos-kustomize-tutorial
|
||||
holos init platform v1alpha5
|
||||
-- git-init.sh --
|
||||
git init . && git add . && git commit -m initial
|
||||
-- mkdir-component.sh --
|
||||
mkdir -p components/httpbin
|
||||
-- httpbin-component-header.sh --
|
||||
cat <<EOF > components/httpbin/httpbin.cue
|
||||
-- httpbin-component-body.cue --
|
||||
package holos
|
||||
|
||||
// Produce a Kustomize BuildPlan for Holos
|
||||
holos: Kustomize.BuildPlan
|
||||
|
||||
// https://github.com/mccutchen/go-httpbin/blob/v2.15.0/kustomize/README.md
|
||||
Kustomize: #Kustomize & {
|
||||
KustomizeConfig: {
|
||||
// Files tells Holos to copy the file from the component path to the
|
||||
// temporary directory Holos uses for BuildPlan execution.
|
||||
Files: {
|
||||
"httpbin.yaml": _
|
||||
}
|
||||
CommonLabels: {
|
||||
"app.kubernetes.io/name": "httpbin"
|
||||
}
|
||||
// Kustomization represents a kustomization.yaml file in CUE. Holos
|
||||
// marshals this field into a `kustomization.yaml` while processing a
|
||||
// BuildPlan. See
|
||||
// https://kubectl.docs.kubernetes.io/references/kustomize/kustomization/
|
||||
Kustomization: {
|
||||
images: [{name: "mccutchen/go-httpbin"}]
|
||||
// Use a hidden field to compose patches easily with a struct. Hidden
|
||||
// fields are not included in exported structures.
|
||||
_patches: {}
|
||||
// Convert the hidden struct to a list.
|
||||
patches: [for x in _patches {x}]
|
||||
}
|
||||
}
|
||||
}
|
||||
-- eof-trailer.sh --
|
||||
EOF
|
||||
-- httpbin-yaml-header.sh --
|
||||
cat <<EOF > components/httpbin/httpbin.yaml
|
||||
-- httpbin-yaml-body.yaml --
|
||||
# https://github.com/mccutchen/go-httpbin/blob/v2.15.0/kustomize/resources.yaml
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: httpbin
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: httpbin
|
||||
image: mccutchen/go-httpbin
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8080
|
||||
protocol: TCP
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /status/200
|
||||
port: http
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /status/200
|
||||
port: http
|
||||
resources: {}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: httpbin
|
||||
spec:
|
||||
ports:
|
||||
- port: 80
|
||||
targetPort: http
|
||||
protocol: TCP
|
||||
name: http
|
||||
appProtocol: http
|
||||
-- register-component-header.sh --
|
||||
cat <<EOF > platform/httpbin.cue
|
||||
-- register-component-body.cue --
|
||||
package holos
|
||||
|
||||
Platform: Components: {
|
||||
httpbin: {
|
||||
name: "httpbin"
|
||||
path: "components/httpbin"
|
||||
}
|
||||
}
|
||||
-- git-commit-component.sh --
|
||||
git add . && git commit -m 'add httpbin'
|
||||
-- cue-export.sh --
|
||||
holos cue export --expression holos --out=yaml ./components/httpbin
|
||||
-- httpbin-patch-header.sh --
|
||||
cat <<EOF > components/httpbin/patches.cue
|
||||
-- httpbin-patch-body.cue --
|
||||
package holos
|
||||
|
||||
import "encoding/yaml"
|
||||
|
||||
// Mix in a Kustomize patch to the configuration.
|
||||
Kustomize: KustomizeConfig: Kustomization: _patches: {
|
||||
probe: {
|
||||
target: kind: "Service"
|
||||
target: name: "httpbin"
|
||||
patch: yaml.Marshal([{
|
||||
op: "add"
|
||||
path: "/metadata/annotations/prometheus.io~1probe"
|
||||
value: "true"
|
||||
}])
|
||||
}
|
||||
}
|
||||
-- httpbin-component-output.txt --
|
||||
rendered httpbin in 197.030208ms
|
||||
rendered platform in 197.416416ms
|
||||
-- render.sh --
|
||||
holos render platform
|
||||
-- git-diff.sh --
|
||||
git diff
|
||||
-- git.diff --
|
||||
diff --git a/deploy/components/httpbin/httpbin.gen.yaml b/deploy/components/httpbin/httpbin.gen.yaml
|
||||
index 298b9a8..a16bd1a 100644
|
||||
--- a/deploy/components/httpbin/httpbin.gen.yaml
|
||||
+++ b/deploy/components/httpbin/httpbin.gen.yaml
|
||||
@@ -1,6 +1,8 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
+ annotations:
|
||||
+ prometheus.io/probe: "true"
|
||||
labels:
|
||||
app.kubernetes.io/name: httpbin
|
||||
name: httpbin
|
||||
-- git-commit-final.sh --
|
||||
git add . && git commit -m 'annotate httpbin for prometheus probes'
|
||||
@@ -1 +0,0 @@
|
||||
holos --version
|
||||
@@ -1 +0,0 @@
|
||||
0.104.1
|
||||
@@ -1,36 +0,0 @@
|
||||
kind: BuildPlan
|
||||
apiVersion: v1alpha5
|
||||
metadata:
|
||||
name: no-name
|
||||
spec:
|
||||
artifacts:
|
||||
- artifact: components/no-name/no-name.gen.yaml
|
||||
generators:
|
||||
- kind: Resources
|
||||
output: resources.gen.yaml
|
||||
resources: {}
|
||||
- kind: File
|
||||
output: httpbin.yaml
|
||||
file:
|
||||
source: httpbin.yaml
|
||||
transformers:
|
||||
- kind: Kustomize
|
||||
inputs:
|
||||
- resources.gen.yaml
|
||||
- httpbin.yaml
|
||||
output: components/no-name/no-name.gen.yaml
|
||||
kustomize:
|
||||
kustomization:
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
labels:
|
||||
- includeSelectors: false
|
||||
pairs:
|
||||
app.kubernetes.io/name: httpbin
|
||||
patches: []
|
||||
images:
|
||||
- name: mccutchen/go-httpbin
|
||||
resources:
|
||||
- resources.gen.yaml
|
||||
- httpbin.yaml
|
||||
validators: []
|
||||
@@ -1 +0,0 @@
|
||||
holos cue export --expression holos --out=yaml ./components/httpbin
|
||||
@@ -1 +0,0 @@
|
||||
EOF
|
||||
@@ -1,6 +0,0 @@
|
||||
[main 823e136] add httpbin
|
||||
4 files changed, 113 insertions(+)
|
||||
create mode 100644 components/httpbin/httpbin.cue
|
||||
create mode 100644 components/httpbin/httpbin.yaml
|
||||
create mode 100644 deploy/components/httpbin/httpbin.gen.yaml
|
||||
create mode 100644 platform/httpbin.cue
|
||||
@@ -1 +0,0 @@
|
||||
git add . && git commit -m 'add httpbin'
|
||||
@@ -1,3 +0,0 @@
|
||||
[main 96f5f45] annotate httpbin for prometheus probes
|
||||
2 files changed, 18 insertions(+)
|
||||
create mode 100644 components/httpbin/patches.cue
|
||||
@@ -1 +0,0 @@
|
||||
git add . && git commit -m 'annotate httpbin for prometheus probes'
|
||||
@@ -1 +0,0 @@
|
||||
git init . && git add . && git commit -m initial
|
||||
@@ -1,13 +0,0 @@
|
||||
diff --git a/deploy/components/httpbin/httpbin.gen.yaml b/deploy/components/httpbin/httpbin.gen.yaml
|
||||
index 298b9a8..a16bd1a 100644
|
||||
--- a/deploy/components/httpbin/httpbin.gen.yaml
|
||||
+++ b/deploy/components/httpbin/httpbin.gen.yaml
|
||||
@@ -1,6 +1,8 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
+ annotations:
|
||||
+ prometheus.io/probe: "true"
|
||||
labels:
|
||||
app.kubernetes.io/name: httpbin
|
||||
name: httpbin
|
||||
@@ -1,30 +0,0 @@
|
||||
package holos
|
||||
|
||||
// Produce a Kustomize BuildPlan for Holos
|
||||
holos: Kustomize.BuildPlan
|
||||
|
||||
// https://github.com/mccutchen/go-httpbin/blob/v2.15.0/kustomize/README.md
|
||||
Kustomize: #Kustomize & {
|
||||
KustomizeConfig: {
|
||||
// Files tells Holos to copy the file from the component path to the
|
||||
// temporary directory Holos uses for BuildPlan execution.
|
||||
Files: {
|
||||
"httpbin.yaml": _
|
||||
}
|
||||
CommonLabels: {
|
||||
"app.kubernetes.io/name": "httpbin"
|
||||
}
|
||||
// Kustomization represents a kustomization.yaml file in CUE. Holos
|
||||
// marshals this field into a `kustomization.yaml` while processing a
|
||||
// BuildPlan. See
|
||||
// https://kubectl.docs.kubernetes.io/references/kustomize/kustomization/
|
||||
Kustomization: {
|
||||
images: [{name: "mccutchen/go-httpbin"}]
|
||||
// Use a hidden field to compose patches easily with a struct. Hidden
|
||||
// fields are not included in exported structures.
|
||||
_patches: {}
|
||||
// Convert the hidden struct to a list.
|
||||
patches: [for x in _patches {x}]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
cat <<EOF > components/httpbin/httpbin.cue
|
||||
@@ -1,2 +0,0 @@
|
||||
rendered httpbin in 197.030208ms
|
||||
rendered platform in 197.416416ms
|
||||
@@ -1,16 +0,0 @@
|
||||
package holos
|
||||
|
||||
import "encoding/yaml"
|
||||
|
||||
// Mix in a Kustomize patch to the configuration.
|
||||
Kustomize: KustomizeConfig: Kustomization: _patches: {
|
||||
probe: {
|
||||
target: kind: "Service"
|
||||
target: name: "httpbin"
|
||||
patch: yaml.Marshal([{
|
||||
op: "add"
|
||||
path: "/metadata/annotations/prometheus.io~1probe"
|
||||
value: "true"
|
||||
}])
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
cat <<EOF > components/httpbin/patches.cue
|
||||
@@ -1,36 +0,0 @@
|
||||
# https://github.com/mccutchen/go-httpbin/blob/v2.15.0/kustomize/resources.yaml
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: httpbin
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: httpbin
|
||||
image: mccutchen/go-httpbin
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8080
|
||||
protocol: TCP
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /status/200
|
||||
port: http
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /status/200
|
||||
port: http
|
||||
resources: {}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: httpbin
|
||||
spec:
|
||||
ports:
|
||||
- port: 80
|
||||
targetPort: http
|
||||
protocol: TCP
|
||||
name: http
|
||||
appProtocol: http
|
||||
@@ -1 +0,0 @@
|
||||
cat <<EOF > components/httpbin/httpbin.yaml
|
||||
@@ -1,2 +0,0 @@
|
||||
rendered httpbin in 112.916375ms
|
||||
rendered platform in 112.990333ms
|
||||
@@ -1,3 +0,0 @@
|
||||
mkdir holos-kustomize-tutorial
|
||||
cd holos-kustomize-tutorial
|
||||
holos init platform v1alpha5
|
||||
@@ -1 +0,0 @@
|
||||
mkdir -p components/httpbin
|
||||
@@ -1,8 +0,0 @@
|
||||
package holos
|
||||
|
||||
Platform: Components: {
|
||||
httpbin: {
|
||||
name: "httpbin"
|
||||
path: "components/httpbin"
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
cat <<EOF > platform/httpbin.cue
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user