Skip to content

Commit 266e786

Browse files
authored
⚠️ [core] Adjust Helm Chart (#552)
Instead of providing a seperate Helm chart for the "hub" and "satellite" component, we decided to create a single Helm chart named "kobs" which can be used to deploy all components. The components can be enabled / disabled sperately in the Helm chart, so that it is still possible to just deploy one component using the Helm chart. We also adjusted the configuration for all components to make it easier to configure them via the Helm chart. This means that there are no "gloabl" settings anymore an everything must be configured on a per component basis (e.g. instead of "log.level" the log level can now be configured via the "<component>.log.level" option).
1 parent c09bd70 commit 266e786

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+1743
-1662
lines changed

.github/workflows/helm.yaml

+67
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: Helm
2+
3+
on:
4+
push:
5+
paths:
6+
- '.github/workflows/helm.yaml'
7+
- 'deploy/helm/**'
8+
9+
jobs:
10+
helm:
11+
name: Helm Chart
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Checkout
15+
uses: actions/checkout@v3
16+
17+
- name: Lint
18+
run: |
19+
helm lint deploy/helm/kobs
20+
21+
- name: Template
22+
run: |
23+
helm template -n kobs kobs deploy/helm/kobs
24+
25+
- name: Install
26+
run: |
27+
kind create cluster
28+
sleep 60s
29+
kubectl create namespace kobs
30+
sleep 10s
31+
helm install -n kobs kobs deploy/helm/kobs
32+
33+
- name: Configure SSH
34+
if: ${{ github.ref == 'refs/heads/main' }}
35+
uses: webfactory/[email protected]
36+
with:
37+
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
38+
39+
- name: Configure Git
40+
if: ${{ github.ref == 'refs/heads/main' }}
41+
run: |
42+
git config --global user.email "[email protected]" && git config --global user.name "kobsio"
43+
44+
- name: Package Helm Chart
45+
if: ${{ github.ref == 'refs/heads/main' }}
46+
run: |
47+
helm package ./deploy/helm/kobs
48+
49+
- name: Clone Helm Repository
50+
if: ${{ github.ref == 'refs/heads/main' }}
51+
run: |
52+
git clone [email protected]:kobsio/helm-repository.git
53+
54+
- name: Update Helm Repository
55+
if: ${{ github.ref == 'refs/heads/main' }}
56+
run: |
57+
mv kobs* ./helm-repository/ && helm repo index helm-repository/ --url https://helm.kobs.io/
58+
59+
- name: Commit Changes
60+
if: ${{ github.ref == 'refs/heads/main' }}
61+
run: |
62+
cd helm-repository/ && git add . && git commit -m "Add new release for kobs"
63+
64+
- name: Push Changes
65+
if: ${{ github.ref == 'refs/heads/main' }}
66+
run: |
67+
cd helm-repository/ && git push

Makefile

+3-3
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ test-coverage:
2828
@go tool cover -html coverage.out -o coverage.html
2929

3030
.PHONY: generate
31-
generate: generate-crds
31+
generate: generate-mocks generate-crds
3232

33-
.PHONY: generate-crds
33+
.PHONY: generate-mocks
3434
generate-mocks:
3535
@go generate ./...
3636

@@ -53,7 +53,7 @@ generate-crds:
5353
@controller-gen "crd:crdVersions={v1}" paths="./pkg/..." output:crd:artifacts:config=deploy/kustomize/crds
5454

5555
@for crd in $(CRDS); do \
56-
cp ./deploy/kustomize/crds/kobs.io_$$crd\s.yaml ./deploy/helm/satellite/crds/kobs.io_$$crd\s.yaml; \
56+
cp ./deploy/kustomize/crds/kobs.io_$$crd\s.yaml ./deploy/helm/kobs/crds/kobs.io_$$crd\s.yaml; \
5757
done
5858

5959
.PHONY: clean

cmd/kobs/cluster/cluster.go

+6-7
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,10 @@ import (
2222
type Cmd struct {
2323
Config string `env:"KOBS_CONFIG" default:"config.yaml" help:"The path to the configuration file for the cluster."`
2424

25-
Log log.Config `json:"log" embed:"" prefix:"log." envprefix:"KOBS_LOG_"`
26-
Tracer tracer.Config `json:"tracer" embed:"" prefix:"tracer." envprefix:"KOBS_TRACER_"`
27-
Metrics metrics.Config `json:"metrics" embed:"" prefix:"metrics." envprefix:"KOBS_METRICS_"`
28-
2925
Cluster struct {
26+
Log log.Config `json:"log" embed:"" prefix:"log." envprefix:"LOG_"`
27+
Tracer tracer.Config `json:"tracer" embed:"" prefix:"tracer." envprefix:"TRACER_"`
28+
Metrics metrics.Config `json:"metrics" embed:"" prefix:"metrics." envprefix:"METRICS_"`
3029
Kubernetes kubernetes.Config `json:"kubernetes" embed:"" prefix:"kubernetes." envprefix:"KUBERNETES_"`
3130
API api.Config `json:"api" embed:"" prefix:"api." envprefix:"API_"`
3231
Plugins []plugin.Instance `json:"plugins" kong:"-"`
@@ -40,21 +39,21 @@ func (r *Cmd) Run(plugins []plugins.Plugin) error {
4039
return err
4140
}
4241

43-
logger, err := log.Setup(cfg.Log)
42+
logger, err := log.Setup(cfg.Cluster.Log)
4443
if err != nil {
4544
return err
4645
}
4746
defer logger.Sync()
4847

49-
tracerClient, err := tracer.Setup(cfg.Tracer)
48+
tracerClient, err := tracer.Setup(cfg.Cluster.Tracer)
5049
if err != nil {
5150
return err
5251
}
5352
if tracerClient != nil {
5453
defer tracerClient.Shutdown()
5554
}
5655

57-
metricsServer := metrics.New(cfg.Metrics)
56+
metricsServer := metrics.New(cfg.Cluster.Metrics)
5857
go metricsServer.Start()
5958
defer metricsServer.Stop()
6059

cmd/kobs/hub/hub.go

+8-9
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,11 @@ import (
2525
type Cmd struct {
2626
Config string `env:"KOBS_CONFIG" default:"config.yaml" help:"The path to the configuration file for the hub."`
2727

28-
Log log.Config `json:"log" embed:"" prefix:"log." envprefix:"KOBS_LOG_"`
29-
Tracer tracer.Config `json:"tracer" embed:"" prefix:"tracer." envprefix:"KOBS_TRACER_"`
30-
Metrics metrics.Config `json:"metrics" embed:"" prefix:"metrics." envprefix:"KOBS_METRICS_"`
31-
Database db.Config `json:"database" embed:"" prefix:"database." envprefix:"KOBS_DATABASE_"`
32-
3328
Hub struct {
29+
Log log.Config `json:"log" embed:"" prefix:"log." envprefix:"LOG_"`
30+
Tracer tracer.Config `json:"tracer" embed:"" prefix:"tracer." envprefix:"TRACER_"`
31+
Metrics metrics.Config `json:"metrics" embed:"" prefix:"metrics." envprefix:"METRICS_"`
32+
Database db.Config `json:"database" embed:"" prefix:"database." envprefix:"DATABASE_"`
3433
API api.Config `json:"api" embed:"" prefix:"api." envprefix:"API_"`
3534
Auth auth.Config `json:"auth" embed:"" prefix:"auth." envprefix:"AUTH_"`
3635
App app.Config `json:"app" embed:"" prefix:"app." envprefix:"APP_"`
@@ -46,21 +45,21 @@ func (r *Cmd) Run(plugins []plugins.Plugin) error {
4645
return err
4746
}
4847

49-
logger, err := log.Setup(cfg.Log)
48+
logger, err := log.Setup(cfg.Hub.Log)
5049
if err != nil {
5150
return err
5251
}
5352
defer logger.Sync()
5453

55-
tracerClient, err := tracer.Setup(cfg.Tracer)
54+
tracerClient, err := tracer.Setup(cfg.Hub.Tracer)
5655
if err != nil {
5756
return err
5857
}
5958
if tracerClient != nil {
6059
defer tracerClient.Shutdown()
6160
}
6261

63-
metricsServer := metrics.New(cfg.Metrics)
62+
metricsServer := metrics.New(cfg.Hub.Metrics)
6463
go metricsServer.Start()
6564
defer metricsServer.Stop()
6665

@@ -70,7 +69,7 @@ func (r *Cmd) Run(plugins []plugins.Plugin) error {
7069
return err
7170
}
7271

73-
dbClient, err := db.NewClient(cfg.Database)
72+
dbClient, err := db.NewClient(cfg.Hub.Database)
7473
if err != nil {
7574
log.Error(context.Background(), "Could not create database client", zap.Error(err))
7675
return err

cmd/kobs/watcher/watcher.go

+8-9
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,11 @@ import (
2121
type Cmd struct {
2222
Config string `env:"KOBS_CONFIG" default:"config.yaml" help:"The path to the configuration file for the watcher."`
2323

24-
Log log.Config `json:"log" embed:"" prefix:"log." envprefix:"KOBS_LOG_"`
25-
Tracer tracer.Config `json:"tracer" embed:"" prefix:"tracer." envprefix:"KOBS_TRACER_"`
26-
Metrics metrics.Config `json:"metrics" embed:"" prefix:"metrics." envprefix:"KOBS_METRICS_"`
27-
Database db.Config `json:"database" embed:"" prefix:"database." envprefix:"KOBS_DATABASE_"`
28-
2924
Watcher struct {
25+
Log log.Config `json:"log" embed:"" prefix:"log." envprefix:"LOG_"`
26+
Tracer tracer.Config `json:"tracer" embed:"" prefix:"tracer." envprefix:"TRACER_"`
27+
Metrics metrics.Config `json:"metrics" embed:"" prefix:"metrics." envprefix:"METRICS_"`
28+
Database db.Config `json:"database" embed:"" prefix:"database." envprefix:"DATABASE_"`
3029
Watcher watcher.Config `json:"watcher" embed:"" prefix:"watcher." envprefix:"WATCHER_"`
3130
Clusters clusters.Config `json:"clusters" kong:"-"`
3231
} `json:"watcher" embed:"" prefix:"watcher." envprefix:"KOBS_WATCHER_"`
@@ -39,21 +38,21 @@ func (r *Cmd) Run(plugins []plugins.Plugin) error {
3938
return err
4039
}
4140

42-
logger, err := log.Setup(cfg.Log)
41+
logger, err := log.Setup(cfg.Watcher.Log)
4342
if err != nil {
4443
return err
4544
}
4645
defer logger.Sync()
4746

48-
tracerClient, err := tracer.Setup(cfg.Tracer)
47+
tracerClient, err := tracer.Setup(cfg.Watcher.Tracer)
4948
if err != nil {
5049
return err
5150
}
5251
if tracerClient != nil {
5352
defer tracerClient.Shutdown()
5453
}
5554

56-
metricsServer := metrics.New(cfg.Metrics)
55+
metricsServer := metrics.New(cfg.Watcher.Metrics)
5756
go metricsServer.Start()
5857
defer metricsServer.Stop()
5958

@@ -63,7 +62,7 @@ func (r *Cmd) Run(plugins []plugins.Plugin) error {
6362
return err
6463
}
6564

66-
dbClient, err := db.NewClient(cfg.Database)
65+
dbClient, err := db.NewClient(cfg.Watcher.Database)
6766
if err != nil {
6867
log.Error(context.Background(), "Could not create database client", zap.Error(err))
6968
}

deploy/helm/hub/Chart.yaml

-8
This file was deleted.

deploy/helm/hub/templates/NOTES.txt

-1
This file was deleted.

0 commit comments

Comments
 (0)