Skip to content

Commit 4f7cfa5

Browse files
authored
Generate Query resources for production (#782)
1 parent 4c531d1 commit 4f7cfa5

File tree

8 files changed

+1281
-106
lines changed

8 files changed

+1281
-106
lines changed

magefiles/cr.go

+41
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,47 @@ import (
1818
"k8s.io/utils/ptr"
1919
)
2020

21+
// OperatorCR Generates the RHOBS-specific CRs for Thanos Operator.
22+
func (p Production) OperatorCR() {
23+
templateDir := "rhobs-thanos-operator"
24+
25+
gen := p.generator(templateDir)
26+
ns := p.namespace()
27+
var objs []runtime.Object
28+
29+
objs = append(objs, queryCR(ns, ProductionMaps, true)...)
30+
objs = append(objs, storeCR(ns, ProductionMaps)...)
31+
32+
// Sort objects by Kind then Name
33+
sort.Slice(objs, func(i, j int) bool {
34+
iMeta := objs[i].(metav1.Object)
35+
jMeta := objs[j].(metav1.Object)
36+
iType := objs[i].GetObjectKind().GroupVersionKind().Kind
37+
jType := objs[j].GetObjectKind().GroupVersionKind().Kind
38+
39+
if iType != jType {
40+
return iType < jType
41+
}
42+
return iMeta.GetName() < jMeta.GetName()
43+
})
44+
45+
gen.Add("rhobs.yaml", encoding.GhodssYAML(
46+
openshift.WrapInTemplate(
47+
objs,
48+
metav1.ObjectMeta{Name: "thanos-rhobs"},
49+
[]templatev1.Parameter{
50+
{
51+
Name: "OAUTH_PROXY_COOKIE_SECRET",
52+
Generate: "expression",
53+
From: `[a-zA-Z0-9]{40}`,
54+
},
55+
},
56+
),
57+
))
58+
59+
gen.Generate()
60+
}
61+
2162
// OperatorCR Generates the RHOBS-specific CRs for Thanos Operator.
2263
func (s Stage) OperatorCR() {
2364
templateDir := "rhobs-thanos-operator"

magefiles/secrets.go

+17-5
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,31 @@ package main
33
import (
44
"github.com/observatorium/observatorium/configuration_go/kubegen/openshift"
55
templatev1 "github.com/openshift/api/template/v1"
6+
"github.com/philipgough/mimic"
67
"github.com/philipgough/mimic/encoding"
78
corev1 "k8s.io/api/core/v1"
89
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
910
"k8s.io/apimachinery/pkg/runtime"
1011
)
1112

12-
// Secrets generates the secrets for both Stage and Local environments
13+
const (
14+
secretsTemplateDir = "objstore"
15+
)
16+
17+
// Secrets generates the secrets for the Production environment
18+
func (p Production) Secrets() {
19+
secrets(p.generator(secretsTemplateDir), p.namespace())
20+
}
21+
22+
// Secrets generates the secrets for the Stage environment
1323
func (s Stage) Secrets() {
14-
templateDir := "objstore"
15-
gen := s.generator(templateDir)
24+
secrets(s.generator(secretsTemplateDir), s.namespace())
25+
}
1626

27+
func secrets(gen *mimic.Generator, ns string) {
1728
gen.Add("thanos-telemeter-secret.yaml", encoding.GhodssYAML(
1829
openshift.WrapInTemplate(
19-
[]runtime.Object{thanosObjectStoreSecret("thanos-objectstorage", s.namespace())},
30+
[]runtime.Object{thanosObjectStoreSecret("thanos-objectstorage", ns)},
2031
metav1.ObjectMeta{Name: "thanos-telemeter-secret"},
2132
[]templatev1.Parameter{
2233
{Name: "S3_BUCKET_NAME"},
@@ -31,7 +42,7 @@ func (s Stage) Secrets() {
3142
// Generate MST Thanos objectstorage secret
3243
gen.Add("thanos-default-secret.yaml", encoding.GhodssYAML(
3344
openshift.WrapInTemplate(
34-
[]runtime.Object{thanosObjectStoreSecret("observatorium-mst-thanos-objectstorage", s.namespace())},
45+
[]runtime.Object{thanosObjectStoreSecret("observatorium-mst-thanos-objectstorage", ns)},
3546
metav1.ObjectMeta{Name: "thanos-default-secret"},
3647
[]templatev1.Parameter{
3748
{Name: "S3_BUCKET_NAME"},
@@ -46,6 +57,7 @@ func (s Stage) Secrets() {
4657
gen.Generate()
4758
}
4859

60+
// Secrets generates the secrets for the Local environment
4961
func (l Local) Secrets() {
5062
templateDir := "objstore"
5163
gen := l.generator(templateDir)

magefiles/servicemonitors.go

+5-1
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,18 @@ import (
1111
"k8s.io/utils/ptr"
1212
)
1313

14+
// ServiceMonitors generates ServiceMonitor resources for the Stage environment.
1415
func (s Stage) ServiceMonitors() {
1516
objs := createServiceMonitors(s.namespace())
1617
objs = append(objs, operatorServiceMonitor(s.namespace())...)
1718
serviceMonitorTemplateGen(s.generator("servicemonitors"), objs)
1819
}
1920

21+
// ServiceMonitors generates ServiceMonitor resources for the Production environment.
2022
func (p Production) ServiceMonitors() {
21-
objs := operatorServiceMonitor(p.namespace())
23+
ns := p.namespace()
24+
objs := createServiceMonitors(ns)
25+
objs = append(objs, operatorServiceMonitor(ns)...)
2226
serviceMonitorTemplateGen(p.generator("servicemonitors"), objs)
2327
}
2428

0 commit comments

Comments
 (0)