mirror of
https://github.com/holos-run/holos.git
synced 2026-03-20 09:15:02 +00:00
Compare commits
1 Commits
jeff/comma
...
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"`
|
||||
@@ -256,46 +254,12 @@ type Validator struct {
|
||||
Command Command `json:"command,omitempty" yaml:"command,omitempty"`
|
||||
}
|
||||
|
||||
// Command represents a generic command for use as a Generator, Transformer, or
|
||||
// Validator. Holos uses the Go template engine to render the Args field using
|
||||
// data provided by the TaskData field. For example to fill in the fully
|
||||
// qualified temporary directory used to provide inputs to the task.
|
||||
// Command represents a command vetting one or more artifacts. Holos appends
|
||||
// fully qualified input file paths to the end of the args list, then executes
|
||||
// the command. Inputs are written into a temporary directory prior to
|
||||
// executing the command and removed afterwards.
|
||||
type Command struct {
|
||||
// DisplayName represents a friendly display name for the command.
|
||||
DisplayName string `json:"displayName,omitempty" yaml:"displayName,omitempty"`
|
||||
// Args represents the complete command argument vector as a go template.
|
||||
Args []string `json:"args,omitempty" yaml:"args,omitempty"`
|
||||
// OutputRef references the source of the output data.
|
||||
OutputRef OutputRef `json:"outputRef,omitempty" yaml:"outputRef,omitempty"`
|
||||
// TaskData populated by Holos for template rendering.
|
||||
TaskData TaskData `json:"taskData,omitempty" yaml:"taskData,omitempty"`
|
||||
// TODO(jjm): add command environment variable support similar to args.
|
||||
}
|
||||
|
||||
// TaskData represents data values associated with a pipeline task necessary to
|
||||
// execute the task. For example, the randomly generated temporary directory
|
||||
// used to read and write artifact files when executing user defined task
|
||||
// commands. Values of this struct are intended for the Go template engine.
|
||||
//
|
||||
// Holos populates this struct as needed. Holos may treat user provided values
|
||||
// as an error condition.
|
||||
type TaskData struct {
|
||||
// TempDir represents the temp directory holos manages for task artifacts.
|
||||
TempDir string `json:"tempDir,omitempty" yaml:"tempDir,omitempty"`
|
||||
}
|
||||
|
||||
// OutputRef represents a reference to the data source used as the output of a
|
||||
// task. For example, a Generator output may be sourced from standard output or
|
||||
// a file path.
|
||||
type OutputRef struct {
|
||||
// Kind represents the kind of output produced.
|
||||
Kind string `json:"kind,omitempty" yaml:"kind,omitempty" cue:"string | *\"Pipe\" | \"Path\""`
|
||||
// Pipe represents stdout or stderr. Ignored unless kind is Pipe.
|
||||
Pipe string `json:"pipe,omitempty" yaml:"pipe,omitempty" cue:"string | *\"stdout\" | \"stderr\""`
|
||||
// Path represents an artifact path relative to the task temp directory.
|
||||
// Ignored unless kind is Path.
|
||||
Path string `json:"path,omitempty" yaml:"path,omitempty"`
|
||||
// TODO(jjm): support jsonpath or cel references to the output data maybe?
|
||||
}
|
||||
|
||||
// InternalLabel is an arbitrary unique identifier internal to holos itself.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -36,13 +36,11 @@ Package core contains schemas for a [Platform](<#Platform>) and [BuildPlan](<#Bu
|
||||
- [type Kustomization](<#Kustomization>)
|
||||
- [type Kustomize](<#Kustomize>)
|
||||
- [type Metadata](<#Metadata>)
|
||||
- [type OutputRef](<#OutputRef>)
|
||||
- [type Platform](<#Platform>)
|
||||
- [type PlatformSpec](<#PlatformSpec>)
|
||||
- [type Repository](<#Repository>)
|
||||
- [type Resource](<#Resource>)
|
||||
- [type Resources](<#Resources>)
|
||||
- [type TaskData](<#TaskData>)
|
||||
- [type Transformer](<#Transformer>)
|
||||
- [type Validator](<#Validator>)
|
||||
- [type ValueFile](<#ValueFile>)
|
||||
@@ -153,18 +151,11 @@ type Chart struct {
|
||||
<a name="Command"></a>
|
||||
## type Command {#Command}
|
||||
|
||||
Command represents a generic command for use as a Generator, Transformer, or Validator. Holos uses the Go template engine to render the Args field using data provided by the TaskData field. For example to fill in the fully qualified temporary directory used to provide inputs to the task.
|
||||
Command represents a command vetting one or more artifacts. Holos appends fully qualified input file paths to the end of the args list, then executes the command. Inputs are written into a temporary directory prior to executing the command and removed afterwards.
|
||||
|
||||
```go
|
||||
type Command struct {
|
||||
// DisplayName represents a friendly display name for the command.
|
||||
DisplayName string `json:"displayName,omitempty" yaml:"displayName,omitempty"`
|
||||
// Args represents the complete command argument vector as a go template.
|
||||
Args []string `json:"args,omitempty" yaml:"args,omitempty"`
|
||||
// OutputRef references the source of the output data.
|
||||
OutputRef OutputRef `json:"outputRef,omitempty" yaml:"outputRef,omitempty"`
|
||||
// TaskData populated by Holos for template rendering.
|
||||
TaskData TaskData `json:"taskData,omitempty" yaml:"taskData,omitempty"`
|
||||
}
|
||||
```
|
||||
|
||||
@@ -396,23 +387,6 @@ type Metadata struct {
|
||||
}
|
||||
```
|
||||
|
||||
<a name="OutputRef"></a>
|
||||
## type OutputRef {#OutputRef}
|
||||
|
||||
OutputRef represents a reference to the data source used as the output of a task. For example, a Generator output may be sourced from standard output or a file path.
|
||||
|
||||
```go
|
||||
type OutputRef struct {
|
||||
// Kind represents the kind of output produced.
|
||||
Kind string `json:"kind,omitempty" yaml:"kind,omitempty" cue:"string | *\"Pipe\" | \"Path\""`
|
||||
// Pipe represents stdout or stderr. Ignored unless kind is Pipe.
|
||||
Pipe string `json:"pipe,omitempty" yaml:"pipe,omitempty" cue:"string | *\"stdout\" | \"stderr\""`
|
||||
// Path represents an artifact path relative to the task temp directory.
|
||||
// Ignored unless kind is Path.
|
||||
Path string `json:"path,omitempty" yaml:"path,omitempty"`
|
||||
}
|
||||
```
|
||||
|
||||
<a name="Platform"></a>
|
||||
## type Platform {#Platform}
|
||||
|
||||
@@ -483,20 +457,6 @@ Resources represents Kubernetes resources. Most commonly used to mix resources i
|
||||
type Resources map[Kind]map[InternalLabel]Resource
|
||||
```
|
||||
|
||||
<a name="TaskData"></a>
|
||||
## type TaskData {#TaskData}
|
||||
|
||||
TaskData represents data values associated with a pipeline task necessary to execute the task. For example, the randomly generated temporary directory used to read and write artifact files when executing user defined task commands. Values of this struct are intended for the Go template engine.
|
||||
|
||||
Holos populates this struct as needed. Holos may treat user provided values as an error condition.
|
||||
|
||||
```go
|
||||
type TaskData struct {
|
||||
// TempDir represents the temp directory holos manages for task artifacts.
|
||||
TempDir string `json:"tempDir,omitempty" yaml:"tempDir,omitempty"`
|
||||
}
|
||||
```
|
||||
|
||||
<a name="Transformer"></a>
|
||||
## type Transformer {#Transformer}
|
||||
|
||||
@@ -504,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